CEGUI.h   CEGUI.h 
skipping to change at line 34 skipping to change at line 34
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE. * OTHER DEALINGS IN THE SOFTWARE.
************************************************************************** */ ************************************************************************** */
#ifndef _CEGUI_h_ #ifndef _CEGUI_h_
#define _CEGUI_h_ #define _CEGUI_h_
// base stuff // base stuff
#include "CEGUIAffector.h"
#include "CEGUIAnimation.h"
#include "CEGUIAnimationInstance.h"
#include "CEGUIAnimationManager.h"
#include "CEGUIBasicInterpolators.h"
#include "CEGUIBasicRenderedStringParser.h" #include "CEGUIBasicRenderedStringParser.h"
#include "CEGUIBiDiVisualMapping.h" #include "CEGUIBiDiVisualMapping.h"
#include "CEGUICentredRenderedString.h" #include "CEGUICentredRenderedString.h"
#include "CEGUIcolour.h" #include "CEGUIcolour.h"
#include "CEGUIColourRect.h" #include "CEGUIColourRect.h"
#include "CEGUICoordConverter.h" #include "CEGUICoordConverter.h"
#include "CEGUIDataContainer.h" #include "CEGUIDataContainer.h"
#include "CEGUIDefaultLogger.h" #include "CEGUIDefaultLogger.h"
#include "CEGUIDefaultRenderedStringParser.h" #include "CEGUIDefaultRenderedStringParser.h"
#include "CEGUIDefaultResourceProvider.h" #include "CEGUIDefaultResourceProvider.h"
#include "CEGUIDynamicModule.h" #include "CEGUIDynamicModule.h"
#include "CEGUIExceptions.h" #include "CEGUIExceptions.h"
#include "CEGUIFactoryModule.h" #include "CEGUIFactoryModule.h"
#include "CEGUIFontManager.h" #include "CEGUIFontManager.h"
#include "CEGUIGeometryBuffer.h" #include "CEGUIGeometryBuffer.h"
#include "CEGUIGlobalEventSet.h" #include "CEGUIGlobalEventSet.h"
#include "CEGUIImageCodec.h" #include "CEGUIImageCodec.h"
#include "CEGUIImagesetManager.h" #include "CEGUIImagesetManager.h"
#include "CEGUIInputEvent.h" #include "CEGUIInputEvent.h"
#include "CEGUIInterpolator.h"
#include "CEGUIJustifiedRenderedString.h" #include "CEGUIJustifiedRenderedString.h"
#include "CEGUIKeyFrame.h"
#include "CEGUILeftAlignedRenderedString.h" #include "CEGUILeftAlignedRenderedString.h"
#include "CEGUIMouseCursor.h" #include "CEGUIMouseCursor.h"
#include "CEGUIPropertyHelper.h" #include "CEGUIPropertyHelper.h"
#include "CEGUIPropertySet.h" #include "CEGUIPropertySet.h"
#include "CEGUIRect.h" #include "CEGUIRect.h"
#include "CEGUIRegexMatcher.h" #include "CEGUIRegexMatcher.h"
#include "CEGUIRenderedString.h" #include "CEGUIRenderedString.h"
#include "CEGUIRenderedStringImageComponent.h" #include "CEGUIRenderedStringImageComponent.h"
#include "CEGUIRenderedStringParser.h" #include "CEGUIRenderedStringParser.h"
#include "CEGUIRenderedStringTextComponent.h" #include "CEGUIRenderedStringTextComponent.h"
#include "CEGUIRenderedStringWidgetComponent.h" #include "CEGUIRenderedStringWidgetComponent.h"
#include "CEGUIRenderedStringWordWrapper.h" #include "CEGUIRenderedStringWordWrapper.h"
#include "CEGUIRenderEffect.h" #include "CEGUIRenderEffect.h"
#include "CEGUIRenderEffectManager.h"
#include "CEGUIRenderer.h" #include "CEGUIRenderer.h"
#include "CEGUIRenderingContext.h" #include "CEGUIRenderingContext.h"
#include "CEGUIRenderingRoot.h" #include "CEGUIRenderingRoot.h"
#include "CEGUIRenderingSurface.h" #include "CEGUIRenderingSurface.h"
#include "CEGUIRenderingWindow.h" #include "CEGUIRenderingWindow.h"
#include "CEGUIRenderQueue.h" #include "CEGUIRenderQueue.h"
#include "CEGUIRenderTarget.h" #include "CEGUIRenderTarget.h"
#include "CEGUIRightAlignedRenderedString.h" #include "CEGUIRightAlignedRenderedString.h"
#include "CEGUISchemeManager.h" #include "CEGUISchemeManager.h"
#include "CEGUIScriptModule.h" #include "CEGUIScriptModule.h"
 End of changes. 4 change blocks. 
0 lines changed or deleted 8 lines changed or added


 CEGUIAll.h   CEGUIAll.h 
skipping to change at line 38 skipping to change at line 38
#ifndef _CEGUIAll_h_ #ifndef _CEGUIAll_h_
#define _CEGUIAll_h_ #define _CEGUIAll_h_
#include "CEGUICheckbox.h" #include "CEGUICheckbox.h"
#include "CEGUIClippedContainer.h" #include "CEGUIClippedContainer.h"
#include "CEGUICombobox.h" #include "CEGUICombobox.h"
#include "CEGUIComboDropList.h" #include "CEGUIComboDropList.h"
#include "CEGUIDragContainer.h" #include "CEGUIDragContainer.h"
#include "CEGUIEditbox.h" #include "CEGUIEditbox.h"
#include "CEGUIFrameWindow.h" #include "CEGUIFrameWindow.h"
#include "CEGUIGridLayoutContainer.h"
#include "CEGUIGroupBox.h" #include "CEGUIGroupBox.h"
#include "CEGUIGUISheet.h" #include "CEGUIGUISheet.h"
#include "CEGUIHorizontalLayoutContainer.h"
#include "CEGUIItemEntry.h" #include "CEGUIItemEntry.h"
#include "CEGUIItemListbox.h" #include "CEGUIItemListbox.h"
#include "CEGUIListbox.h" #include "CEGUIListbox.h"
#include "CEGUIListboxItem.h" #include "CEGUIListboxItem.h"
#include "CEGUIListboxTextItem.h" #include "CEGUIListboxTextItem.h"
#include "CEGUIListHeader.h" #include "CEGUIListHeader.h"
#include "CEGUIMenubar.h" #include "CEGUIMenubar.h"
#include "CEGUIMenuItem.h" #include "CEGUIMenuItem.h"
#include "CEGUIMultiColumnList.h" #include "CEGUIMultiColumnList.h"
#include "CEGUIMultiLineEditbox.h" #include "CEGUIMultiLineEditbox.h"
skipping to change at line 66 skipping to change at line 68
#include "CEGUIScrolledContainer.h" #include "CEGUIScrolledContainer.h"
#include "CEGUISlider.h" #include "CEGUISlider.h"
#include "CEGUISpinner.h" #include "CEGUISpinner.h"
#include "CEGUITabButton.h" #include "CEGUITabButton.h"
#include "CEGUITabControl.h" #include "CEGUITabControl.h"
#include "CEGUIThumb.h" #include "CEGUIThumb.h"
#include "CEGUITitlebar.h" #include "CEGUITitlebar.h"
#include "CEGUITooltip.h" #include "CEGUITooltip.h"
#include "CEGUITree.h" #include "CEGUITree.h"
#include "CEGUITreeItem.h" #include "CEGUITreeItem.h"
#include "CEGUIVerticalLayoutContainer.h"
#endif // End of guard _CEGUIAll_h_ #endif // End of guard _CEGUIAll_h_
 End of changes. 3 change blocks. 
0 lines changed or deleted 3 lines changed or added


 CEGUIBase.h   CEGUIBase.h 
skipping to change at line 104 skipping to change at line 104
// The following defines macros used within CEGUI for std::min/std::max // The following defines macros used within CEGUI for std::min/std::max
// usage, and is done as a compatibility measure for VC6 with native STL. // usage, and is done as a compatibility measure for VC6 with native STL.
#if defined(_MSC_VER) && (_MSC_VER <= 1200) && !defined(_STLPORT_VERSION) #if defined(_MSC_VER) && (_MSC_VER <= 1200) && !defined(_STLPORT_VERSION)
# define ceguimin std::_cpp_min # define ceguimin std::_cpp_min
# define ceguimax std::_cpp_max # define ceguimax std::_cpp_max
#else #else
# define ceguimin std::min # define ceguimin std::min
# define ceguimax std::max # define ceguimax std::max
#endif #endif
// CEGUI's Exception macros
// This provides a mechanism to override how exception handling is used. N
ote
// that in general this facility _should not be used_. Attempts to use thi
s
// to disable exceptions to 'make things easier' are doomed to failure. CE
GUI
// becomes less robust without exceptions (because they are used internally
by
// CEGUI). In addition, overriding the exception mechanism will also cause
// memory leaks in various places. This is your only warning about such th
ings,
// if you decide to continue anyway you hereby waive any right to complain
:-p
#ifndef CEGUI_TRY
# define CEGUI_TRY try
#endif
#ifndef CEGUI_CATCH
# define CEGUI_CATCH(e) catch (e)
#endif
#ifndef CEGUI_THROW
# define CEGUI_THROW(e) throw e
#endif
#ifndef CEGUI_RETHROW
# define CEGUI_RETHROW throw
#endif
/************************************************************************* /*************************************************************************
Documentation for the CEGUI namespace itself Documentation for the CEGUI namespace itself
*************************************************************************/ *************************************************************************/
/*! /*!
\brief \brief
Main namespace for Crazy Eddie's GUI Library Main namespace for Crazy Eddie's GUI Library
The CEGUI namespace contains all the classes and other items that co mprise the core The CEGUI namespace contains all the classes and other items that co mprise the core
of Crazy Eddie's GUI system. of Crazy Eddie's GUI system.
*/ */
 End of changes. 1 change blocks. 
0 lines changed or deleted 27 lines changed or added


 CEGUICheckbox.h   CEGUICheckbox.h 
skipping to change at line 59 skipping to change at line 59
*/ */
class CEGUIEXPORT Checkbox : public ButtonBase class CEGUIEXPORT Checkbox : public ButtonBase
{ {
public: public:
static const String EventNamespace; //!< Namespace for global events static const String EventNamespace; //!< Namespace for global events
static const String WidgetTypeName; //!< Window factory nam e static const String WidgetTypeName; //!< Window factory nam e
/******************************************************************* ****** /******************************************************************* ******
Event name constants Event name constants
******************************************************************** *****/ ******************************************************************** *****/
// generated internally by Window /** Event fired when then checked state of the Checkbox changes.
static const String EventCheckStateChanged; //!< * Handlers are passed a const WindowEventArgs reference with
The check-state of the widget has changed. * WindowEventArgs::window set to the Checkbox whose state has changed.
*/
static const String EventCheckStateChanged;
/******************************************************************* ****** /******************************************************************* ******
Accessor Functions Accessor Functions
******************************************************************** *****/ ******************************************************************** *****/
/*! /*!
\brief \brief
return true if the check-box is selected (has the checkmark) return true if the check-box is selected (has the checkmark)
\return \return
true if the widget is selected and has the check-mark, false if the widget true if the widget is selected and has the check-mark, false if the widget
 End of changes. 1 change blocks. 
3 lines changed or deleted 5 lines changed or added


 CEGUIColourRect.h   CEGUIColourRect.h 
skipping to change at line 190 skipping to change at line 190
The constant factor to modulate all alpha colour components by. The constant factor to modulate all alpha colour components by.
*/ */
void modulateAlpha(float alpha); void modulateAlpha(float alpha);
/*! /*!
\brief \brief
Modulate all components of this colour rect with corresponding comp onents from another colour rect. Modulate all components of this colour rect with corresponding comp onents from another colour rect.
*/ */
ColourRect& operator*=(const ColourRect& other); ColourRect& operator*=(const ColourRect& other);
inline ColourRect operator*(const float val) const
{
return ColourRect(
d_top_left * val,
d_top_right * val,
d_bottom_left * val,
d_bottom_right * val
);
}
inline ColourRect operator+(const ColourRect& val) const
{
return ColourRect(
d_top_left + val.d_top_left,
d_top_right + val.d_top_right,
d_bottom_left + val.d_bottom_left,
d_bottom_right + val.d_bottom_right
);
}
colour d_top_left, d_top_right, d_bottom_left, d_bottom_right; //<! ColourRect component colours colour d_top_left, d_top_right, d_bottom_left, d_bottom_right; //<! ColourRect component colours
}; };
} // End of CEGUI namespace section } // End of CEGUI namespace section
#endif // end of guard _CEGUIColourRect_h_ #endif // end of guard _CEGUIColourRect_h_
 End of changes. 1 change blocks. 
0 lines changed or deleted 20 lines changed or added


 CEGUIComboDropList.h   CEGUIComboDropList.h 
skipping to change at line 57 skipping to change at line 57
class CEGUIEXPORT ComboDropList : public Listbox class CEGUIEXPORT ComboDropList : public Listbox
{ {
public: public:
static const String EventNamespace; //!< Namespace for global events static const String EventNamespace; //!< Namespace for global events
static const String WidgetTypeName; //!< Window factory nam e static const String WidgetTypeName; //!< Window factory nam e
/******************************************************************* ****** /******************************************************************* ******
Constants Constants
******************************************************************** *****/ ******************************************************************** *****/
// Event names // Event names
static const String EventListSelectionAccepted; //!< Event f /** Event fired when the user confirms the selection by clicking the mo
ired when the user confirms the selection by clicking the mouse. use.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the ComboDropList whose selection has
been
* confirmed by the user.
*/
static const String EventListSelectionAccepted;
/*! /*!
\brief \brief
Initialise the Window based object ready for use. Initialise the Window based object ready for use.
\note \note
This must be called for every window created. Normally this is handled automatically by the WindowFactory for each Window type. This must be called for every window created. Normally this is handled automatically by the WindowFactory for each Window type.
\return \return
Nothing Nothing
 End of changes. 1 change blocks. 
2 lines changed or deleted 8 lines changed or added


 CEGUICombobox.h   CEGUICombobox.h 
skipping to change at line 60 skipping to change at line 60
class CEGUIEXPORT Combobox : public Window class CEGUIEXPORT Combobox : public Window
{ {
public: public:
static const String EventNamespace; //!< Namespace for global events static const String EventNamespace; //!< Namespace for global events
static const String WidgetTypeName; //!< Window factory nam e static const String WidgetTypeName; //!< Window factory nam e
/******************************************************************* ****** /******************************************************************* ******
Constants Constants
******************************************************************** *****/ ******************************************************************** *****/
// event names from edit box // event names from edit box
static const String EventReadOnlyModeChanged; //!< /** Event fired when the read-only mode for the edit box is changed.
The read-only mode for the edit box has been changed. * Handlers are passed a const WindowEventArgs reference with
static const String EventValidationStringChanged; //!< * WindowEventArgs::window set to the Combobox whose read only mode
The validation string has been changed. * has been changed.
static const String EventMaximumTextLengthChanged; //!< The max */
imum allowable string length has been changed. static const String EventReadOnlyModeChanged;
static const String EventTextInvalidated; /** Event fired when the edix box validation string is changed.
//!< Some operation has made the current text invalid with regards to t * Handlers are passed a const WindowEventArgs reference with
he validation string. * WindowEventArgs::window set to the Combobox whose validation
static const String EventInvalidEntryAttempted; //!< The use * string was changed.
r attempted to modify the text in a way that would have made it invalid. */
static const String EventCaratMoved; static const String EventValidationStringChanged;
//!< The text carat (insert point) has changed. /** Event fired when the maximum string length is changed.
static const String EventTextSelectionChanged; //!< The cur * Handlers are passed a const WindowEventArgs reference with
rent text selection has changed. * WindowEventArgs::window set to the Combobox whose maximum edit box
static const String EventEditboxFull; * string length has been changed.
//!< The number of characters in the edit box has reached the current m */
aximum. static const String EventMaximumTextLengthChanged;
static const String EventTextAccepted; //!< /** Event fired when an operation has made the current edit box text in
The user has accepted the current text by pressing Return, Enter, or Tab. valid
* as regards to the current validation string.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Combobox whose edit box text has
* become invalid.
*/
static const String EventTextInvalidated;
/** Event fired when the user attempts to modify the edit box text in a
way
* that would make it invalid.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Combobox in which the user's inpu
t
* would have invalidated the text.
*/
static const String EventInvalidEntryAttempted;
/** Event fired when the edit box text insertion position is changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Combobox whose caret position has
* been changed.
*/
static const String EventCaratMoved;
/** Event fired when the current edit box text selection is changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Combobox whose edit box text sele
ction
* has been changed.
*/
static const String EventTextSelectionChanged;
/** Event fired when the number of characters in the edit box has reach
ed
* the currently set maximum.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Combobox whose edit box has becom
e
* full.
*/
static const String EventEditboxFull;
/** Event fired when the user accepts the current edit box text by pres
sing
* Return, Enter, or Tab.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Combobox whose edit box text has
been
* accepted / confirmed by the user.
*/
static const String EventTextAccepted;
// event names from list box // event names from list box
static const String EventListContentsChanged; //!< /** Event fired when the contents of the list is changed.
Event triggered when the contents of the list is changed. * Handlers are passed a const WindowEventArgs reference with
static const String EventListSelectionChanged; //!< Event t * WindowEventArgs::window set to the Combobox whose list content has
riggered when there is a change to the currently selected item(s). * changed.
static const String EventSortModeChanged; */
//!< Event triggered when the sort mode setting changes. static const String EventListContentsChanged;
static const String EventVertScrollbarModeChanged; //!< Event t /** Event fired when there is a change to the currently selected item i
riggered when the vertical scroll bar 'force' setting changes. n the
static const String EventHorzScrollbarModeChanged; //!< Event t * list.
riggered when the horizontal scroll bar 'force' setting changes. * Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Combobox whose currently selected
list
* item has changed.
*/
static const String EventListSelectionChanged;
/** Event fired when the sort mode setting of the list is changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Combobox whose list sorting mode
has
* been changed.
*/
static const String EventSortModeChanged;
/** Event fired when the vertical scroll bar 'force' setting for the li
st is
* changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Combobox whose vertical scroll ba
r
* setting is changed.
*/
static const String EventVertScrollbarModeChanged;
/** Event fired when the horizontal scroll bar 'force' setting for the
list
* is changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Combobox whose horizontal scroll
bar
* setting has been changed.
*/
static const String EventHorzScrollbarModeChanged;
// events we produce / generate ourselves // events we produce / generate ourselves
static const String EventDropListDisplayed; //!< /** Event fired when the drop-down list is displayed
Event triggered when the drop-down list is displayed * Handlers are passed a const WindowEventArgs reference with
static const String EventDropListRemoved; * WindowEventArgs::window set to the Combobox whose drop down list has
//!< Event triggered when the drop-down list is removed / hidden. * been displayed.
static const String EventListSelectionAccepted; //!< Event t */
riggered when the user accepts a selection from the drop-down list static const String EventDropListDisplayed;
/** Event fired when the drop-down list is removed / hidden.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Combobox whose drop down list has
* been hidden.
*/
static const String EventDropListRemoved;
/** Event fired when the user accepts a selection from the drop-down li
st
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Combobox in which the user has
* confirmed a selection from the drop down list.
*/
static const String EventListSelectionAccepted;
/********************************************************************** *** /********************************************************************** ***
Child Widget name suffix constants Child Widget name suffix constants
*********************************************************************** **/ *********************************************************************** **/
static const String EditboxNameSuffix; //!< Widget name suffix for the editbox component. static const String EditboxNameSuffix; //!< Widget name suffix for the editbox component.
static const String DropListNameSuffix; //!< Widget name suffix for t he drop list component. static const String DropListNameSuffix; //!< Widget name suffix for t he drop list component.
static const String ButtonNameSuffix; //!< Widget name suffix for the button component. static const String ButtonNameSuffix; //!< Widget name suffix for the button component.
// override from Window class // override from Window class
bool isHit(const Vector2& position, bool isHit(const Vector2& position,
 End of changes. 3 change blocks. 
36 lines changed or deleted 125 lines changed or added


 CEGUIConfig.h   CEGUIConfig.h 
skipping to change at line 144 skipping to change at line 144
// provide the bidirectional support (not supplied). // provide the bidirectional support (not supplied).
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
//#define CEGUI_BIDI_SUPPORT //#define CEGUI_BIDI_SUPPORT
// Uncomment this to use the embedded minibidi library. // Uncomment this to use the embedded minibidi library.
//#define CEGUI_USE_MINIBIDI //#define CEGUI_USE_MINIBIDI
// - or - // - or -
// Uncomment this to use an external fribidi library. // Uncomment this to use an external fribidi library.
//#define CEGUI_USE_FRIBIDI //#define CEGUI_USE_FRIBIDI
//////////////////////////////////////////////////////////////////////////
// The following controls whether the MinizipResourceProvider will be
// built into the CEGUIBase library. You can uncomment the following line
// to include this code (and it's dependency code).
//
// The MinizipResourceProvider provides the ability to load resource files
// from locations within .zip files.
//////////////////////////////////////////////////////////////////////////
//#define CEGUI_HAS_MINIZIP_RESOURCE_PROVIDER
#endif // defined(__APPLE__) #endif // defined(__APPLE__)
#endif // end of guard _CEGUIConfig_h_ #endif // end of guard _CEGUIConfig_h_
 End of changes. 1 change blocks. 
0 lines changed or deleted 10 lines changed or added


 CEGUIDragContainer.h   CEGUIDragContainer.h 
skipping to change at line 55 skipping to change at line 55
Generic drag & drop enabled window class Generic drag & drop enabled window class
*/ */
class CEGUIEXPORT DragContainer : public Window class CEGUIEXPORT DragContainer : public Window
{ {
public: public:
/****************************************************************** ******* /****************************************************************** *******
Constants Constants
******************************************************************* ******/ ******************************************************************* ******/
static const String WidgetTypeName; //!< Type name for DragCont ainer. static const String WidgetTypeName; //!< Type name for DragCont ainer.
static const String EventNamespace; //!< Namespace for global e vents static const String EventNamespace; //!< Namespace for global e vents
static const String EventDragStarted; //!< Name of the event fire /** Event fired when the user begins dragging the DragContainer.
d when the user begins dragging the thumb. * Handlers are passed a const WindowEventArgs reference with
static const String EventDragEnded; //!< Name of the event fire * WindowEventArgs::window set to the DragContainer that the user
d when the user releases the thumb. * has started to drag.
static const String EventDragPositionChanged; //!< Event fired wh */
en the drag position has changed. static const String EventDragStarted;
static const String EventDragEnabledChanged; //!< Event fired wh /** Event fired when the user releases the DragContainer.
en dragging is enabled or disabled. * Handlers are passed a const WindowEventArgs reference with
static const String EventDragAlphaChanged; //!< Event fired wh * WindowEventArgs::window set to the DragContainer that the user h
en the alpha value used when dragging is changed. as
static const String EventDragMouseCursorChanged;//!< Event fired wh * released.
en the mouse cursor used when dragging is changed. */
static const String EventDragThresholdChanged; //!< Event fired wh static const String EventDragEnded;
en the drag pixel threshold is changed. /** Event fired when the drag position has changed.
static const String EventDragDropTargetChanged; //!< Event fired wh * Handlers are passed a const WindowEventArgs reference with
en the drop target changes. * WindowEventArgs::window set to the DragContainer whose position
has
* changed due to the user dragging it.
*/
static const String EventDragPositionChanged;
/** Event fired when dragging is enabled or disabled.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the DragContainer whose setting h
as
* been changed.
*/
static const String EventDragEnabledChanged;
/** Event fired when the alpha value used when dragging is changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the DragContainer whose drag alph
a
* value has been changed.
*/
static const String EventDragAlphaChanged;
/** Event fired when the mouse cursor to used when dragging is chan
ged.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the DragContainer whose dragging
* mouse cursor image has been changed.
*/
static const String EventDragMouseCursorChanged;
/** Event fired when the drag pixel threshold is changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the DragContainer whose dragging
pixel
* threshold has been changed.
*/
static const String EventDragThresholdChanged;
/** Event fired when the drop target changes.
* Handlers are passed a const DragDropEventArgs reference with
* WindowEventArgs::window set to the Window that is now the target
* window and DragDropEventArgs::dragDropItem set to the DragConta
iner
* whose target has changed.
*/
static const String EventDragDropTargetChanged;
/****************************************************************** ******* /****************************************************************** *******
Object Construction and Destruction Object Construction and Destruction
******************************************************************* ******/ ******************************************************************* ******/
/*! /*!
\brief \brief
Constructor for DragContainer objects Constructor for DragContainer objects
*/ */
DragContainer(const String& type, const String& name); DragContainer(const String& type, const String& name);
 End of changes. 1 change blocks. 
16 lines changed or deleted 56 lines changed or added


 CEGUIDynamicModule.h   CEGUIDynamicModule.h 
skipping to change at line 46 skipping to change at line 46
*************************************************************************/ *************************************************************************/
#if defined(__WIN32__) || defined(_WIN32) #if defined(__WIN32__) || defined(_WIN32)
# define DYNLIB_HANDLE hInstance # define DYNLIB_HANDLE hInstance
# define DYNLIB_LOAD( a ) LoadLibrary( a ) # define DYNLIB_LOAD( a ) LoadLibrary( a )
# define DYNLIB_GETSYM( a, b ) GetProcAddress( a, b ) # define DYNLIB_GETSYM( a, b ) GetProcAddress( a, b )
# define DYNLIB_UNLOAD( a ) !FreeLibrary( a ) # define DYNLIB_UNLOAD( a ) !FreeLibrary( a )
struct HINSTANCE__; struct HINSTANCE__;
typedef struct HINSTANCE__* hInstance; typedef struct HINSTANCE__* hInstance;
#elif defined(__linux__) || defined(__FreeBSD__) #elif defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__)
# define DYNLIB_HANDLE void* # define DYNLIB_HANDLE void*
# define DYNLIB_LOAD( a ) dlopen( a, RTLD_LAZY ) # define DYNLIB_LOAD( a ) dlopen( a, RTLD_LAZY )
# define DYNLIB_GETSYM( a, b ) dlsym( a, b ) # define DYNLIB_GETSYM( a, b ) dlsym( a, b )
# define DYNLIB_UNLOAD( a ) dlclose( a ) # define DYNLIB_UNLOAD( a ) dlclose( a )
# define DYNLIB_ERROR( ) dlerror( ) # define DYNLIB_ERROR( ) dlerror( )
#elif defined(__APPLE_CC__) #elif defined(__APPLE_CC__)
# define DYNLIB_HANDLE CFBundleRef # define DYNLIB_HANDLE CFBundleRef
# define DYNLIB_LOAD( a ) mac_loadExeBundle( a ) # define DYNLIB_LOAD( a ) mac_loadExeBundle( a )
# define DYNLIB_GETSYM( a, b ) mac_getBundleSym( a, b ) # define DYNLIB_GETSYM( a, b ) mac_getBundleSym( a, b )
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 CEGUIEditbox.h   CEGUIEditbox.h 
skipping to change at line 77 skipping to change at line 77
//------------------------------------------------------------------------- ---// //------------------------------------------------------------------------- ---//
//! Base class for an Editbox widget //! Base class for an Editbox widget
class CEGUIEXPORT Editbox : public Window class CEGUIEXPORT Editbox : public Window
{ {
public: public:
//! Namespace for global events //! Namespace for global events
static const String EventNamespace; static const String EventNamespace;
//! Window factory name //! Window factory name
static const String WidgetTypeName; static const String WidgetTypeName;
//! The read-only mode for the edit box has been changed. /** Event fired when the read-only mode for the edit box is changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Editbox whose read only setting
* has been changed.
*/
static const String EventReadOnlyModeChanged; static const String EventReadOnlyModeChanged;
//! The masked rendering mode (password mode) has been changed. /** Event fired when the masked rendering mode (password mode) is chang
ed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Editbox that has been put into or
* taken out of masked text (password) mode.
*/
static const String EventMaskedRenderingModeChanged; static const String EventMaskedRenderingModeChanged;
//! The code point (character) to use for masked text has been changed. /** Event fired whrn the code point (character) used for masked text is
* changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Editbox whose text masking codepo
int
* has been changed.
*/
static const String EventMaskCodePointChanged; static const String EventMaskCodePointChanged;
//! The validation string has been changed. /** Event fired when the validation string is changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Editbox whose validation string h
as
* been changed.
*/
static const String EventValidationStringChanged; static const String EventValidationStringChanged;
//! The maximum allowable string length has been changed. /** Event fired when the maximum allowable string length is changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Editbox whose maximum string leng
th
* has been changed.
*/
static const String EventMaximumTextLengthChanged; static const String EventMaximumTextLengthChanged;
//! The current text has become invalid as regards to the validation st /** Event fired when the current text has become invalid as regards to
ring. the
* validation string.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Editbox whose text has become inv
alid.
*/
static const String EventTextInvalidated; static const String EventTextInvalidated;
//! The user attempted to chage the text in a way that was invalid. /** Event fired when the user attempts to chage the text in a way that
would
* make it invalid as regards to the validation string.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Editbox in which the users input
would
* have invalidated the text.
*/
static const String EventInvalidEntryAttempted; static const String EventInvalidEntryAttempted;
//! The text carat (insert point) has changed. /** Event fired when the text caret position / insertion point is chang
ed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Editbox whose current insertion p
oint
* has changed.
*/
static const String EventCaratMoved; static const String EventCaratMoved;
//! The current text selection has changed. /** Event fired when the current text selection is changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Editbox whose current text select
ion
* was changed.
*/
static const String EventTextSelectionChanged; static const String EventTextSelectionChanged;
//! The number of characters in the edit box reached the current maximu /** Event fired when the number of characters in the edit box reaches t
m. he
* currently set maximum.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Editbox that has become full.
*/
static const String EventEditboxFull; static const String EventEditboxFull;
//! The user accepted the current text by pressing Return, Enter, or Ta /** Event fired when the user accepts the current text by pressing Retu
b. rn,
* Enter, or Tab.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Editbox in which the user has acc
epted
* the current text.
*/
static const String EventTextAccepted; static const String EventTextAccepted;
/*! /*!
\brief \brief
return true if the Editbox has input focus. return true if the Editbox has input focus.
\return \return
- true if the Editbox has keyboard input focus. - true if the Editbox has keyboard input focus.
- false if the Editbox does not have keyboard input focus. - false if the Editbox does not have keyboard input focus.
*/ */
 End of changes. 11 change blocks. 
14 lines changed or deleted 72 lines changed or added


 CEGUIFalPropertyDefinition.h   CEGUIFalPropertyDefinition.h 
skipping to change at line 43 skipping to change at line 43
// Start of CEGUI namespace section // Start of CEGUI namespace section
namespace CEGUI namespace CEGUI
{ {
/*! /*!
\brief \brief
Class representing a generic get/set property. Class representing a generic get/set property.
*/ */
class CEGUIEXPORT PropertyDefinition : public PropertyDefinitionBase class CEGUIEXPORT PropertyDefinition : public PropertyDefinitionBase
{ {
public: public:
/*!
\deprecated
This version of the constructor is deprecated in favour of the
version taking a help string.
*/
PropertyDefinition(const String& name, const String& initialValue, bool redrawOnWrite, bool layoutOnWrite); PropertyDefinition(const String& name, const String& initialValue, bool redrawOnWrite, bool layoutOnWrite);
//! Constructor.
PropertyDefinition(const String& name, const String& initialValue,
const String& help, bool redrawOnWrite,
bool layoutOnWrite);
// abstract members from Property // abstract members from Property
String get(const PropertyReceiver* receiver) const; String get(const PropertyReceiver* receiver) const;
void set(PropertyReceiver* receiver, const String& value); void set(PropertyReceiver* receiver, const String& value);
protected: protected:
void writeXMLElementType(XMLSerializer& xml_stream) const; void writeXMLElementType(XMLSerializer& xml_stream) const;
String d_userStringName; String d_userStringName;
}; };
 End of changes. 2 change blocks. 
0 lines changed or deleted 10 lines changed or added


 CEGUIFalPropertyLinkDefinition.h   CEGUIFalPropertyLinkDefinition.h 
/*********************************************************************** /***********************************************************************
filename: CEGUIFalPropertyLinkDefinition.h filename: CEGUIFalPropertyLinkDefinition.h
created: Sat Oct 8 2005 created: Sat Oct 8 2005
author: Paul D Turner <paul@cegui.org.uk> author: Paul D Turner <paul@cegui.org.uk>
*************************************************************************/ *************************************************************************/
/************************************************************************** * /************************************************************************** *
* Copyright (C) 2004 - 2006 Paul D Turner & The CEGUI Development Team * Copyright (C) 2004 - 2010 Paul D Turner & The CEGUI Development Team
* *
* Permission is hereby granted, free of charge, to any person obtaining * Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the * a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including * "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish, * without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to * distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to * permit persons to whom the Software is furnished to do so, subject to
* the following conditions: * the following conditions:
* *
* The above copyright notice and this permission notice shall be * The above copyright notice and this permission notice shall be
skipping to change at line 32 skipping to change at line 32
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE. * OTHER DEALINGS IN THE SOFTWARE.
************************************************************************** */ ************************************************************************** */
#ifndef _CEGUIFalPropertyLinkDefinition_h_ #ifndef _CEGUIFalPropertyLinkDefinition_h_
#define _CEGUIFalPropertyLinkDefinition_h_ #define _CEGUIFalPropertyLinkDefinition_h_
#include "CEGUIFalPropertyDefinitionBase.h" #include "CEGUIFalPropertyDefinitionBase.h"
#include <vector>
#if defined (_MSC_VER)
# pragma warning(push)
# pragma warning(disable : 4251)
#endif
// Start of CEGUI namespace section // Start of CEGUI namespace section
namespace CEGUI namespace CEGUI
{ {
/*! /*!
\brief \brief
Class representing a property that links to another property define d on Class representing a property that links to another property define d on
an attached child widget. an attached child widget.
*/ */
class CEGUIEXPORT PropertyLinkDefinition : public PropertyDefinitionBas e class CEGUIEXPORT PropertyLinkDefinition : public PropertyDefinitionBas e
{ {
public: public:
PropertyLinkDefinition(const String& propertyName, const String& wi dgetNameSuffix, const String& targetProperty, const String& initialValue, b ool redrawOnWrite, bool layoutOnWrite); PropertyLinkDefinition(const String& propertyName, const String& wi dgetNameSuffix, const String& targetProperty, const String& initialValue, b ool redrawOnWrite, bool layoutOnWrite);
//! add a new link target to \a property on \a widget (name suffix)
.
void addLinkTarget(const String& widget, const String& property);
//! clear all link targets from this link definition.
void clearLinkTargets();
// override members from PropertyDefinitionBase // override members from PropertyDefinitionBase
String get(const PropertyReceiver* receiver) const; String get(const PropertyReceiver* receiver) const;
void set(PropertyReceiver* receiver, const String& value); void set(PropertyReceiver* receiver, const String& value);
protected: protected:
void writeXMLElementType(XMLSerializer& xml_stream) const; void writeXMLElementType(XMLSerializer& xml_stream) const;
void writeXMLAttributes(XMLSerializer& xml_stream) const; void writeXMLAttributes(XMLSerializer& xml_stream) const;
/*! /*!
\brief \brief
return a pointer to the window containing the target property t o return a pointer to the window containing the target property t o
be accessed. be accessed.
\exception UnknownObjectException \exception UnknownObjectException
thrown if no such target window exists within the system. thrown if no such target window exists within the system.
\deprecated
This will be removed in 0.8.x. Use the version taking a suffix
string instead!
*/ */
const Window* getTargetWindow(const PropertyReceiver* receiver) con st; const Window* getTargetWindow(const PropertyReceiver* receiver) con st;
/*!
\deprecated
This will be removed in 0.8.x. Use the version taking a suffix
string instead!
*/
Window* getTargetWindow(PropertyReceiver* receiver); Window* getTargetWindow(PropertyReceiver* receiver);
String d_widgetNameSuffix; //! Return a pointer to the target window with the given suffix.
String d_targetProperty; const Window* getTargetWindow(const PropertyReceiver* receiver,
const String& name_suffix) const;
//! Return a pointer to the target window with the given suffix.
Window* getTargetWindow(PropertyReceiver* receiver,
const String& name_suffix);
//! Internal struct used to keep track of targets.
struct LinkTarget
{
//! name suffix of the target widget.
String d_widgetNameSuffix;
//! the property to use on the target widget.
String d_targetProperty;
};
//! type used for the collection of targets.
typedef std::vector<LinkTarget> LinkTargetCollection;
//! collection of targets for this PropertyLinkDefinition.
LinkTargetCollection d_targets;
}; };
} // End of CEGUI namespace section } // End of CEGUI namespace section
#if defined (_MSC_VER)
# pragma warning(pop)
#endif
#endif // end of guard _CEGUIFalPropertyLinkDefinition_h_ #endif // end of guard _CEGUIFalPropertyLinkDefinition_h_
 End of changes. 7 change blocks. 
3 lines changed or deleted 49 lines changed or added


 CEGUIFalSectionSpecification.h   CEGUIFalSectionSpecification.h 
skipping to change at line 61 skipping to change at line 61
\brief \brief
Constructor Constructor
\param owner \param owner
String holding the name of the WidgetLookFeel object that conta ins the target section. String holding the name of the WidgetLookFeel object that conta ins the target section.
\param sectionName \param sectionName
String holding the name of the target section. String holding the name of the target section.
\param controlPropertySource \param controlPropertySource
String holding the name of a boolean property that will control String holding the name of a property that will control whether
if rendering for this secion will actually occur or not.
the rendering for this secion will actually occur or not.
\param controlPropertyValue
String holding the value to be tested for from the property nam
ed in
controlPropertySource. If this is empty, then controlPropertyS
ource
will be accessed as a boolean property, otherwise rendering wil
l
only occur when the value returned via controlPropertySource ma
tches
the value specified here.
\param controlPropertyWidget
String holding either a widget name suffix or the special value
of
'__parent__' indicating the window upon which the property name
d
in controlPropertySource should be accessed. If this is empty
then
the window itself is used as the source, rather than a child or
the
parent.
*/ */
SectionSpecification(const String& owner, const String& sectionName SectionSpecification(const String& owner, const String& sectionName
, const String& controlPropertySource); ,
const String& controlPropertySource,
const String& controlPropertyValue,
const String& controlPropertyWidget);
/*! /*!
\brief \brief
Constructor Constructor
\param owner \param owner
String holding the name of the WidgetLookFeel object that conta ins the target section. String holding the name of the WidgetLookFeel object that conta ins the target section.
\param sectionName \param sectionName
String holding the name of the target section. String holding the name of the target section.
\param controlPropertySource \param controlPropertySource
String holding the name of a boolean property that will control String holding the name of a property that will control whether
if rendering for this secion will actually occur or not.
the rendering for this secion will actually occur or not.
\param controlPropertyValue
String holding the value to be tested for from the property nam
ed in
controlPropertySource. If this is empty, then controlPropertyS
ource
will be accessed as a boolean property, otherwise rendering wil
l
only occur when the value returned via controlPropertySource ma
tches
the value specified here.
\param controlPropertyWidget
String holding either a widget name suffix or the special value
of
'__parent__' indicating the window upon which the property name
d
in controlPropertySource should be accessed. If this is empty
then
the window itself is used as the source, rather than a child or
the
parent.
\param cols \param cols
Override colours to be used (modulates sections master colours) . Override colours to be used (modulates sections master colours) .
*/ */
SectionSpecification(const String& owner, const String& sectionName SectionSpecification(const String& owner, const String& sectionName
, const String& controlPropertySource, const ColourRect& cols); ,
const String& controlPropertySource,
const String& controlPropertyValue,
const String& controlPropertyWidget,
const ColourRect& cols);
/*! /*!
\brief \brief
Render the section specified by this SectionSpecification. Render the section specified by this SectionSpecification.
\param srcWindow \param srcWindow
Window object to be used when calculating pixel values from Bas eDim values. Window object to be used when calculating pixel values from Bas eDim values.
\return \return
Nothing. Nothing.
skipping to change at line 215 skipping to change at line 250
\param property \param property
String containing the name of the property. String containing the name of the property.
\return \return
Nothing. Nothing.
*/ */
void setRenderControlPropertySource(const String& property); void setRenderControlPropertySource(const String& property);
/*! /*!
\brief \brief
Set the test value used when determining whether to render this
section.
The value set here will be compared to the current value of the
property named as the render control property, if they match th
e
secion will be drawn, otherwise the section will not be drawn.
If
this value is set to the empty string, the control property wil
l
instead be treated as a boolean property.
*/
void setRenderControlValue(const String& value);
/*!
\brief
Set the widget what will be used as the source of the property
named as the control property.
The value of this setting will be interpreted as follows:
- empty string: The target widget being drawn will be the sourc
e of
the property value.
- '__parent__': The parent of the widget being drawn will be th
e
source of the property value.
- any other value: The value will be taken as a name suffix and
a window with the name of the widget being drawn with the
specified suffix will be the source of the property value.
*/
void setRenderControlWidget(const String& widget);
/*!
\brief
Writes an xml representation of this SectionSpecification to \a out_stream. Writes an xml representation of this SectionSpecification to \a out_stream.
\param xml_stream \param xml_stream
Stream where xml data should be output. Stream where xml data should be output.
\return \return
Nothing. Nothing.
*/ */
void writeXMLToStream(XMLSerializer& xml_stream) const; void writeXMLToStream(XMLSerializer& xml_stream) const;
skipping to change at line 238 skipping to change at line 302
Helper method to initialise a ColourRect with appropriate value s according to the way the Helper method to initialise a ColourRect with appropriate value s according to the way the
section sepcification is set up. section sepcification is set up.
This will try and get values from multiple places: This will try and get values from multiple places:
- a property attached to \a wnd - a property attached to \a wnd
- the integral d_coloursOverride values. - the integral d_coloursOverride values.
- or default to colour(1,1,1,1); - or default to colour(1,1,1,1);
*/ */
void initColourRectForOverride(const Window& wnd, ColourRect& cr) c onst; void initColourRectForOverride(const Window& wnd, ColourRect& cr) c onst;
/** return whether the section should be drawn, based upon the
* render control property and associated items.
*/
bool shouldBeDrawn(const Window& wnd) const;
private: private:
String d_owner; //!< Name of the WidgetLook Feel containing the required section. String d_owner; //!< Name of the WidgetLook Feel containing the required section.
String d_sectionName; //!< Name of the required s ection within the specified WidgetLookFeel. String d_sectionName; //!< Name of the required s ection within the specified WidgetLookFeel.
ColourRect d_coloursOverride; //!< Colours to use when ov erride is enabled. ColourRect d_coloursOverride; //!< Colours to use when ov erride is enabled.
bool d_usingColourOverride; //!< true if colour overrid e is enabled. bool d_usingColourOverride; //!< true if colour overrid e is enabled.
String d_colourPropertyName; //!< name of property to fe tch colours from. String d_colourPropertyName; //!< name of property to fe tch colours from.
bool d_colourProperyIsRect; //!< true if the colour pro perty will fetch a full ColourRect. bool d_colourProperyIsRect; //!< true if the colour pro perty will fetch a full ColourRect.
String d_renderControlProperty; //!< Name of a 'boolean //! Name of a property to control whether to draw this section.
' property that controls whether to actually draw this section. String d_renderControlProperty;
//! Comparison value to test against d_renderControlProperty.
String d_renderControlValue;
//! Widget upon which d_renderControlProperty is to be accessed.
String d_renderControlWidget;
}; };
} // End of CEGUI namespace section } // End of CEGUI namespace section
#endif // end of guard _CEGUIFalSectionSpecification_h_ #endif // end of guard _CEGUIFalSectionSpecification_h_
 End of changes. 7 change blocks. 
12 lines changed or deleted 104 lines changed or added


 CEGUIFalTextComponent.h   CEGUIFalTextComponent.h 
skipping to change at line 57 skipping to change at line 57
*/ */
class CEGUIEXPORT TextComponent : public FalagardComponentBase class CEGUIEXPORT TextComponent : public FalagardComponentBase
{ {
public: public:
/*! /*!
\brief \brief
Constructor Constructor
*/ */
TextComponent(); TextComponent();
//! Destructor
~TextComponent();
//! Copy constructor
TextComponent(const TextComponent& obj);
//! Assignment
TextComponent& operator=(const TextComponent& other);
/*! /*!
\brief \brief
Return the text object that will be rendered by this TextCompon ent. Return the text object that will be rendered by this TextCompon ent.
\return \return
String object containing the text that will be rendered. String object containing the text that will be rendered.
*/ */
const String& getText() const; const String& getText() const;
//! return text string with \e visual ordering of glyphs. //! return text string with \e visual ordering of glyphs.
 End of changes. 1 change blocks. 
0 lines changed or deleted 9 lines changed or added


 CEGUIFalWidgetLookFeel.h   CEGUIFalWidgetLookFeel.h 
skipping to change at line 305 skipping to change at line 305
\brief \brief
Clear all defined property link definitions from the WidgetLook Feel Clear all defined property link definitions from the WidgetLook Feel
\return \return
Nothing. Nothing.
*/ */
void clearPropertyLinkDefinitions(); void clearPropertyLinkDefinitions();
/*! /*!
\brief \brief
Add the name of an animation that is associated with the
WidgetLookFeel.
\param anim_name
Reference to a String object that contains the name of the anim
ation
to be associated with this WidgetLookFeel.
*/
void addAnimationName(const String& anim_name);
/*!
\brief
Writes an xml representation of this WidgetLookFeel to \a out_s tream. Writes an xml representation of this WidgetLookFeel to \a out_s tream.
\param xml_stream \param xml_stream
Stream where xml data should be output. Stream where xml data should be output.
\return \return
Nothing. Nothing.
*/ */
void writeXMLToStream(XMLSerializer& xml_stream) const; void writeXMLToStream(XMLSerializer& xml_stream) const;
skipping to change at line 379 skipping to change at line 390
* @access public * @access public
* @return CEGUI::WidgetLookFeel::PropertyList List of properties * @return CEGUI::WidgetLookFeel::PropertyList List of properties
*/ */
const PropertyList& getProperties() const { return d_properties; } const PropertyList& getProperties() const { return d_properties; }
private: private:
typedef std::map<String, StateImagery, String::FastLessCompare> StateList; typedef std::map<String, StateImagery, String::FastLessCompare> StateList;
typedef std::map<String, ImagerySection, String::FastLessCompare> ImageryList; typedef std::map<String, ImagerySection, String::FastLessCompare> ImageryList;
typedef std::map<String, NamedArea, String::FastLessCompare> NamedAreaList; typedef std::map<String, NamedArea, String::FastLessCompare> NamedAreaList;
typedef std::vector<WidgetComponent> WidgetList; typedef std::vector<WidgetComponent> WidgetList;
typedef std::vector<String> AnimationList;
typedef std::multimap<Window*, AnimationInstance*> AnimationInst
anceMap;
CEGUI::String d_lookName; //!< Name of this WidgetLookFee l. CEGUI::String d_lookName; //!< Name of this WidgetLookFee l.
ImageryList d_imagerySections; //!< Collection of ImagerySecti on objects. ImageryList d_imagerySections; //!< Collection of ImagerySecti on objects.
WidgetList d_childWidgets; //!< Collection of WidgetCompon ent objects. WidgetList d_childWidgets; //!< Collection of WidgetCompon ent objects.
StateList d_stateImagery; //!< Collection of StateImagery objects. StateList d_stateImagery; //!< Collection of StateImagery objects.
PropertyList d_properties; //!< Collection of PropertyInit ialser objects. PropertyList d_properties; //!< Collection of PropertyInit ialser objects.
NamedAreaList d_namedAreas; //!< Collection of NamedArea ob jects. NamedAreaList d_namedAreas; //!< Collection of NamedArea ob jects.
mutable PropertyDefinitionList d_propertyDefinitions; //!< Collec tion of PropertyDefinition objects. mutable PropertyDefinitionList d_propertyDefinitions; //!< Collec tion of PropertyDefinition objects.
mutable PropertyLinkDefinitionList d_propertyLinkDefinitions; //!< Collection of PropertyLinkDefinition objects. mutable PropertyLinkDefinitionList d_propertyLinkDefinitions; //!< Collection of PropertyLinkDefinition objects.
//! Collection of animation names associated with this WidgetLookFe
el.
AnimationList d_animations;
//! map of windows and their associated animation instances
mutable AnimationInstanceMap d_animationInstances;
}; };
} // End of CEGUI namespace section } // End of CEGUI namespace section
#if defined(_MSC_VER) #if defined(_MSC_VER)
# pragma warning(pop) # pragma warning(pop)
#endif #endif
#endif // end of guard _CEGUIFalWidgetLookFeel_h_ #endif // end of guard _CEGUIFalWidgetLookFeel_h_
 End of changes. 3 change blocks. 
0 lines changed or deleted 20 lines changed or added


 CEGUIFalWidgetLookManager.h   CEGUIFalWidgetLookManager.h 
/*********************************************************************** /***********************************************************************
filename: CEGUIFalWidgetLookManager.h filename: CEGUIFalWidgetLookManager.h
created: Mon Jun 13 2005 created: Mon Jun 13 2005
author: Paul D Turner <paul@cegui.org.uk> author: Paul D Turner <paul@cegui.org.uk>
*************************************************************************/ *************************************************************************/
/************************************************************************** * /************************************************************************** *
* Copyright (C) 2004 - 2006 Paul D Turner & The CEGUI Development Team * Copyright (C) 2004 - 2010 Paul D Turner & The CEGUI Development Team
* *
* Permission is hereby granted, free of charge, to any person obtaining * Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the * a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including * "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish, * without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to * distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to * permit persons to whom the Software is furnished to do so, subject to
* the following conditions: * the following conditions:
* *
* The above copyright notice and this permission notice shall be * The above copyright notice and this permission notice shall be
skipping to change at line 76 skipping to change at line 76
\brief \brief
Return singleton WidgetLookManager object Return singleton WidgetLookManager object
\return \return
Singleton WidgetLookManager object Singleton WidgetLookManager object
*/ */
static WidgetLookManager& getSingleton(void); static WidgetLookManager& getSingleton(void);
/*! /*!
\brief \brief
Return pointer to singleton WindowFactoryManager obj ect Return pointer to singleton WidgetLookManager object
\return \return
Pointer to singleton WindowFactoryManager object Pointer to singleton WidgetLookManager object
*/ */
static WidgetLookManager* getSingletonPtr(void); static WidgetLookManager* getSingletonPtr(void);
/*! /*!
\brief \brief
Parses a file containing window look & feel specifications (in the form of XML). Parses a file containing window look & feel specifications (in the form of XML).
\note \note
If the new file contains specifications for widget types that a re already specified, it is not an error; If the new file contains specifications for widget types that a re already specified, it is not an error;
the previous definitions are overwritten by the new data. An e ntry will appear in the log each time any the previous definitions are overwritten by the new data. An e ntry will appear in the log each time any
skipping to change at line 114 skipping to change at line 114
void parseLookNFeelSpecification(const String& filename, const Stri ng& resourceGroup = ""); void parseLookNFeelSpecification(const String& filename, const Stri ng& resourceGroup = "");
/*! /*!
\brief \brief
Return whether a WidgetLookFeel has been created with the speci fied name. Return whether a WidgetLookFeel has been created with the speci fied name.
\param widget \param widget
String object holding the name of a widget look to test for. String object holding the name of a widget look to test for.
\return \return
- true if a WindowLookFeel named \a widget is available. - true if a WidgetLookFeel named \a widget is available.
- false if so such WindowLookFeel is currently available. - false if so such WidgetLookFeel is currently available.
*/ */
bool isWidgetLookAvailable(const String& widget) const; bool isWidgetLookAvailable(const String& widget) const;
/*! /*!
\brief \brief
Return a const reference to a WidgetLookFeel object which has t he specified name. Return a const reference to a WidgetLookFeel object which has t he specified name.
\param widget \param widget
String object holding the name of a widget look that is to be r eturned. String object holding the name of a widget look that is to be r eturned.
\return \return
const reference to the requested WidgetLookFeel object. const reference to the requested WidgetLookFeel object.
\exception UnknownObjectException thrown if no WindowLookFeel is available with the requested name. \exception UnknownObjectException thrown if no WidgetLookFeel is available with the requested name.
*/ */
const WidgetLookFeel& getWidgetLook(const String& widget) const; const WidgetLookFeel& getWidgetLook(const String& widget) const;
/*! /*!
\brief \brief
Erase the WidgetLookFeel that has the specified name. Erase the WidgetLookFeel that has the specified name.
\param widget \param widget
String object holding the name of a widget look to be erased. If no such WindowLookFeel exists, nothing String object holding the name of a widget look to be erased. If no such WidgetLookFeel exists, nothing
happens. happens.
\return \return
Nothing. Nothing.
*/ */
void eraseWidgetLook(const String& widget); void eraseWidgetLook(const String& widget);
/*! /*!
\brief \brief
Add the given WidgetLookFeel. Add the given WidgetLookFeel.
 End of changes. 6 change blocks. 
7 lines changed or deleted 7 lines changed or added


 CEGUIFont_xmlHandler.h   CEGUIFont_xmlHandler.h 
skipping to change at line 32 skipping to change at line 32
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE. * OTHER DEALINGS IN THE SOFTWARE.
************************************************************************** */ ************************************************************************** */
#ifndef _CEGUIFont_xmlHandler_h_ #ifndef _CEGUIFont_xmlHandler_h_
#define _CEGUIFont_xmlHandler_h_ #define _CEGUIFont_xmlHandler_h_
#include "CEGUIXMLHandler.h" #include "CEGUIXMLHandler.h"
#include "CEGUIString.h"
// Start of CEGUI namespace section // Start of CEGUI namespace section
namespace CEGUI namespace CEGUI
{ {
//! Handler class used to parse the Font XML files to create Font objects. //! Handler class used to parse the Font XML files to create Font objects.
class CEGUIEXPORT Font_xmlHandler : public XMLHandler class CEGUIEXPORT Font_xmlHandler : public XMLHandler
{ {
public: public:
//! Filename of the XML schema used for validating Font files. //! Filename of the XML schema used for validating Font files.
static const String FontSchemaName; static const String FontSchemaName;
skipping to change at line 60 skipping to change at line 61
//! Attribute name that stores the filename of the font source (font / imageset) //! Attribute name that stores the filename of the font source (font / imageset)
static const String FontFilenameAttribute; static const String FontFilenameAttribute;
//! Attribute name that stores the resource group of the font source. //! Attribute name that stores the resource group of the font source.
static const String FontResourceGroupAttribute; static const String FontResourceGroupAttribute;
//! Attribute name that stores the auto-scaled setting. //! Attribute name that stores the auto-scaled setting.
static const String FontAutoScaledAttribute; static const String FontAutoScaledAttribute;
//! Attribute name that stores the horizontal native resolution. //! Attribute name that stores the horizontal native resolution.
static const String FontNativeHorzResAttribute; static const String FontNativeHorzResAttribute;
//! Attribute name that stores the vertical native resolution. //! Attribute name that stores the vertical native resolution.
static const String FontNativeVertResAttribute; static const String FontNativeVertResAttribute;
//! Attribute name that stores the line height that we'll report for th
is font.
static const String FontLineSpacingAttribute;
//! Attribute name that stores the font point size. //! Attribute name that stores the font point size.
static const String FontSizeAttribute; static const String FontSizeAttribute;
//! Attribute name that stores the font anti-aliasing setting. //! Attribute name that stores the font anti-aliasing setting.
static const String FontAntiAliasedAttribute; static const String FontAntiAliasedAttribute;
//! Attribute name that stores the codepoint value for a mapping //! Attribute name that stores the codepoint value for a mapping
static const String MappingCodepointAttribute; static const String MappingCodepointAttribute;
//! Attribute name that stores the image name for a mapping //! Attribute name that stores the image name for a mapping
static const String MappingImageAttribute; static const String MappingImageAttribute;
//! Attribute name that stores the horizontal advance value for a mappi ng. //! Attribute name that stores the horizontal advance value for a mappi ng.
static const String MappingHorzAdvanceAttribute; static const String MappingHorzAdvanceAttribute;
 End of changes. 2 change blocks. 
0 lines changed or deleted 4 lines changed or added


 CEGUIForwardRefs.h   CEGUIForwardRefs.h 
skipping to change at line 39 skipping to change at line 39
************************************************************************** */ ************************************************************************** */
#ifndef _CEGUIForwardRefs_h_ #ifndef _CEGUIForwardRefs_h_
#define _CEGUIForwardRefs_h_ #define _CEGUIForwardRefs_h_
// Start of CEGUI namespace section // Start of CEGUI namespace section
namespace CEGUI namespace CEGUI
{ {
/************************************************************************* /*************************************************************************
Forward declare majority of core classes Forward declare majority of core classes
*************************************************************************/ *************************************************************************/
class Affector;
class Animation;
class AnimationInstance;
class AnimationManager;
class BasicRenderedStringParser; class BasicRenderedStringParser;
class BiDiVisualMapping; class BiDiVisualMapping;
class CentredRenderedString; class CentredRenderedString;
class colour; class colour;
class ColourRect; class ColourRect;
class CoordConverter; class CoordConverter;
class DefaultLogger; class DefaultLogger;
class DefaultRenderedStringParser; class DefaultRenderedStringParser;
class DefaultResourceProvider; class DefaultResourceProvider;
class DynamicModule; class DynamicModule;
skipping to change at line 65 skipping to change at line 69
class FontGlyph; class FontGlyph;
class FontManager; class FontManager;
class FormattedRenderedString; class FormattedRenderedString;
class GeometryBuffer; class GeometryBuffer;
class GlobalEventSet; class GlobalEventSet;
class Image; class Image;
class ImageCodec; class ImageCodec;
class ImagerySection; class ImagerySection;
class Imageset; class Imageset;
class ImagesetManager; class ImagesetManager;
class Interpolator;
class JustifiedRenderedString; class JustifiedRenderedString;
class KeyFrame;
class LeftAlignedRenderedString; class LeftAlignedRenderedString;
class Logger; class Logger;
class MouseCursor; class MouseCursor;
class Property; class Property;
class PropertyHelper; class PropertyHelper;
class PropertyReceiver; class PropertyReceiver;
class PropertySet; class PropertySet;
class RawDataContainer; class RawDataContainer;
class Rect; class Rect;
class RegexMatcher; class RegexMatcher;
class RenderedString; class RenderedString;
class RenderedStringComponent; class RenderedStringComponent;
class RenderedStringImageComponent; class RenderedStringImageComponent;
class RenderedStringParser; class RenderedStringParser;
class RenderedStringTextComponent; class RenderedStringTextComponent;
class RenderedStringWidgetComponent; class RenderedStringWidgetComponent;
class Renderer; class Renderer;
class RenderEffect; class RenderEffect;
class RenderEffectManager;
struct RenderingContext; struct RenderingContext;
class RenderingRoot; class RenderingRoot;
class RenderingSurface; class RenderingSurface;
class RenderingWindow; class RenderingWindow;
class RenderQueue; class RenderQueue;
class RenderSystem; class RenderSystem;
class RenderTarget; class RenderTarget;
class ResourceEventSet; class ResourceEventSet;
class ResourceProvider; class ResourceProvider;
class RightAlignedRenderedString; class RightAlignedRenderedString;
class Scheme; class Scheme;
class SchemeManager; class SchemeManager;
class ScriptFunctor; class ScriptFunctor;
class ScriptModule; class ScriptModule;
class Size; class Size;
class String; class String;
class System; class System;
class Texture; class Texture;
class TextureTarget; class TextureTarget;
class TextUtils; class TextUtils;
class UBox;
class UDim;
class URect;
class UVector2;
class Vector2; class Vector2;
class Vector3; class Vector3;
struct Vertex; struct Vertex;
class WidgetLookFeel; class WidgetLookFeel;
class Window; class Window;
class WindowFactory; class WindowFactory;
class WindowFactoryManager; class WindowFactoryManager;
class WindowManager; class WindowManager;
class WindowRenderer; class WindowRenderer;
class WindowRendererModule; class WindowRendererModule;
skipping to change at line 130 skipping to change at line 141
Forward declare window / widget classes. Forward declare window / widget classes.
*************************************************************************/ *************************************************************************/
class ButtonBase; class ButtonBase;
class Checkbox; class Checkbox;
class ClippedContainer; class ClippedContainer;
class Combobox; class Combobox;
class ComboDropList; class ComboDropList;
class DragContainer; class DragContainer;
class Editbox; class Editbox;
class FrameWindow; class FrameWindow;
class GridLayoutContainer;
class GUISheet; class GUISheet;
class HorizontalLayoutContainer;
class ItemEntry; class ItemEntry;
class ItemListBase; class ItemListBase;
class ItemListbox; class ItemListbox;
class LayoutContainer;
class Listbox; class Listbox;
class ListboxItem; class ListboxItem;
class ListboxTextItem; class ListboxTextItem;
class ListHeader; class ListHeader;
class ListHeaderSegment; class ListHeaderSegment;
class Menubar; class Menubar;
class MenuBase; class MenuBase;
class MenuItem; class MenuItem;
class MultiColumnList; class MultiColumnList;
class MultiLineEditbox; class MultiLineEditbox;
class PopupMenu; class PopupMenu;
class ProgressBar; class ProgressBar;
class PushButton; class PushButton;
class RadioButton; class RadioButton;
class ScrollablePane; class ScrollablePane;
class Scrollbar; class Scrollbar;
class ScrolledContainer; class ScrolledContainer;
class ScrolledItemListBase; class ScrolledItemListBase;
class SequentialLayoutContainer;
class Slider; class Slider;
class Spinner; class Spinner;
class TabButton; class TabButton;
class TabControl; class TabControl;
class Thumb; class Thumb;
class Titlebar; class Titlebar;
class Tooltip; class Tooltip;
class Tree; class Tree;
class TreeItem; class TreeItem;
class VerticalLayoutContainer;
/************************************************************************* /*************************************************************************
Forward declare EventArg based classes. Forward declare EventArg based classes.
*************************************************************************/ *************************************************************************/
class ActivationEventArgs; class ActivationEventArgs;
class DisplayEventArgs; class DisplayEventArgs;
class DragDropEventArgs; class DragDropEventArgs;
class HeaderSequenceEventArgs; class HeaderSequenceEventArgs;
class KeyEventArgs; class KeyEventArgs;
class MouseCursorEventArgs; class MouseCursorEventArgs;
 End of changes. 10 change blocks. 
0 lines changed or deleted 16 lines changed or added


 CEGUIFrameWindow.h   CEGUIFrameWindow.h 
skipping to change at line 59 skipping to change at line 59
class CEGUIEXPORT FrameWindow : public Window class CEGUIEXPORT FrameWindow : public Window
{ {
public: public:
static const String EventNamespace; //!< Namespace for global events static const String EventNamespace; //!< Namespace for global events
static const String WidgetTypeName; //!< Window factory nam e static const String WidgetTypeName; //!< Window factory nam e
/******************************************************************* ****** /******************************************************************* ******
Constants Constants
******************************************************************** *****/ ******************************************************************** *****/
// additional event names for this window // additional event names for this window
static const String EventRollupToggled; //!< Fired when the /** Event fired when the rollup (shade) state of the window is changed.
rollup (shade) state of the window changes * Handlers are passed a const WindowEventArgs reference with
static const String EventCloseClicked; //!< Fired when the * WindowEventArgs::window set to the FrameWindow whose rolled up state
close button for the window is clicked. * has been changed.
//! Fired when drag-sizing of the window starts. */
static const String EventRollupToggled;
/** Event fired when the close button for the window is clicked.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the FrameWindow whose close button wa
s
* clicked.
*/
static const String EventCloseClicked;
/** Event fired when drag-sizing of the window starts.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the FrameWindow that has started to b
e
* drag sized.
*/
static const String EventDragSizingStarted; static const String EventDragSizingStarted;
//! Fired when drag-sizing of the window ends. /** Event fired when drag-sizing of the window ends.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the FrameWindow for which drag sizing
has
* ended.
*/
static const String EventDragSizingEnded; static const String EventDragSizingEnded;
// other bits // other bits
static const float DefaultSizingBorderSize; //!< Default size for the sizing border (in pixels) static const float DefaultSizingBorderSize; //!< Default size for the sizing border (in pixels)
/********************************************************************** *** /********************************************************************** ***
Child Widget name suffix constants Child Widget name suffix constants
*********************************************************************** **/ *********************************************************************** **/
static const String TitlebarNameSuffix; //!< Widget name suffix fo r the titlebar component. static const String TitlebarNameSuffix; //!< Widget name suffix fo r the titlebar component.
static const String CloseButtonNameSuffix; //!< Widget name suffix fo r the close button component. static const String CloseButtonNameSuffix; //!< Widget name suffix fo r the close button component.
skipping to change at line 474 skipping to change at line 492
*/ */
PushButton* getCloseButton() const; PushButton* getCloseButton() const;
/******************************************************************* ****** /******************************************************************* ******
Construction / Destruction Construction / Destruction
******************************************************************** *****/ ******************************************************************** *****/
/*! /*!
\brief \brief
Constructor for FrameWindow objects. Constructor for FrameWindow objects.
*/ */
FrameWindow(const String& name, const String& type); FrameWindow(const String& type, const String& name);
/*! /*!
\brief \brief
Destructor for FramwWindow objects. Destructor for FramwWindow objects.
*/ */
virtual ~FrameWindow(void); virtual ~FrameWindow(void);
protected: protected:
/******************************************************************* ****** /******************************************************************* ******
Implementation Functions Implementation Functions
 End of changes. 3 change blocks. 
7 lines changed or deleted 26 lines changed or added


 CEGUIFreeTypeFont.h   CEGUIFreeTypeFont.h 
skipping to change at line 90 skipping to change at line 90
maintain the same physical size (which is calculated by using the maintain the same physical size (which is calculated by using the
native resolution setting). native resolution setting).
\param native_horz_res \param native_horz_res
The horizontal native resolution value. This is only significant w hen The horizontal native resolution value. This is only significant w hen
auto scaling is enabled. auto scaling is enabled.
\param native_vert_res \param native_vert_res
The vertical native resolution value. This is only significant whe n The vertical native resolution value. This is only significant whe n
auto scaling is enabled. auto scaling is enabled.
\param specific_line_spacing
If specified (non-zero), this will be the line spacing that we will
report for this font, regardless of what is mentioned in the font f
ile
itself.
*/ */
FreeTypeFont(const String& font_name, const float point_size, FreeTypeFont(const String& font_name, const float point_size,
const bool anti_aliased, const String& font_filename, const bool anti_aliased, const String& font_filename,
const String& resource_group = "", const String& resource_group = "",
const bool auto_scaled = false, const bool auto_scaled = false,
const float native_horz_res = 640.0f, const float native_horz_res = 640.0f,
const float native_vert_res = 480.0f); const float native_vert_res = 480.0f,
const float specific_line_spacing = 0.0f);
//! Destructor. //! Destructor.
~FreeTypeFont(); ~FreeTypeFont();
//! return the point size of the freetype font. //! return the point size of the freetype font.
float getPointSize() const; float getPointSize() const;
//! return whether the freetype font is rendered anti-aliased. //! return whether the freetype font is rendered anti-aliased.
bool isAntiAliased() const; bool isAntiAliased() const;
skipping to change at line 153 skipping to change at line 159
//! Register all properties of this class. //! Register all properties of this class.
void addFreeTypeFontProperties(); void addFreeTypeFontProperties();
//! Free all allocated font data. //! Free all allocated font data.
void free(); void free();
// overrides of functions in Font base class. // overrides of functions in Font base class.
void rasterise(utf32 start_codepoint, utf32 end_codepoint) const; void rasterise(utf32 start_codepoint, utf32 end_codepoint) const;
void updateFont(); void updateFont();
void writeXMLToStream_impl (XMLSerializer& xml_stream) const; void writeXMLToStream_impl (XMLSerializer& xml_stream) const;
//! If non-zero, the overridden line spacing that we're to report.
float d_specificLineSpacing;
//! Point size of font. //! Point size of font.
float d_ptSize; float d_ptSize;
//! True if the font should be rendered as anti-alaised by freeType. //! True if the font should be rendered as anti-alaised by freeType.
bool d_antiAliased; bool d_antiAliased;
//! FreeType-specific font handle //! FreeType-specific font handle
FT_Face d_fontFace; FT_Face d_fontFace;
//! Font file data //! Font file data
RawDataContainer d_fontData; RawDataContainer d_fontData;
//! Type definition for ImagesetVector. //! Type definition for ImagesetVector.
typedef std::vector<Imageset*> ImagesetVector; typedef std::vector<Imageset*> ImagesetVector;
 End of changes. 3 change blocks. 
1 lines changed or deleted 10 lines changed or added


 CEGUIGeometryBuffer.h   CEGUIGeometryBuffer.h 
/*********************************************************************** /***********************************************************************
filename: CEGUIGeometryBuffer.h filename: CEGUIGeometryBuffer.h
created: Thu Jan 8 2009 created: Thu Jan 8 2009
author: Paul D Turner author: Paul D Turner
*************************************************************************/ *************************************************************************/
/************************************************************************** * /************************************************************************** *
* Copyright (C) 2004 - 2009 Paul D Turner & The CEGUI Development Team * Copyright (C) 2004 - 2010 Paul D Turner & The CEGUI Development Team
* *
* Permission is hereby granted, free of charge, to any person obtaining * Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the * a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including * "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish, * without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to * distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to * permit persons to whom the Software is furnished to do so, subject to
* the following conditions: * the following conditions:
* *
* The above copyright notice and this permission notice shall be * The above copyright notice and this permission notice shall be
skipping to change at line 32 skipping to change at line 32
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE. * OTHER DEALINGS IN THE SOFTWARE.
************************************************************************** */ ************************************************************************** */
#ifndef _CEGUIGeometryBuffer_h_ #ifndef _CEGUIGeometryBuffer_h_
#define _CEGUIGeometryBuffer_h_ #define _CEGUIGeometryBuffer_h_
#include "CEGUIBase.h" #include "CEGUIBase.h"
#include "CEGUIRenderer.h"
// Start of CEGUI namespace section // Start of CEGUI namespace section
namespace CEGUI namespace CEGUI
{ {
/*! /*!
\brief \brief
Abstract class defining the interface for objects that buffer geometry for Abstract class defining the interface for objects that buffer geometry for
later rendering. later rendering.
*/ */
class CEGUIEXPORT GeometryBuffer class CEGUIEXPORT GeometryBuffer
{ {
public: public:
//! Destructor //! Destructor
virtual ~GeometryBuffer() virtual ~GeometryBuffer();
{}
/*! /*!
\brief \brief
Draw the geometry buffered within this GeometryBuffer object. Draw the geometry buffered within this GeometryBuffer object.
*/ */
virtual void draw() const = 0; virtual void draw() const = 0;
/*! /*!
\brief \brief
Set the translation to be applied to the geometry in the buffer whe n it Set the translation to be applied to the geometry in the buffer whe n it
skipping to change at line 189 skipping to change at line 189
be in use! be in use!
*/ */
virtual void setRenderEffect(RenderEffect* effect) = 0; virtual void setRenderEffect(RenderEffect* effect) = 0;
/*! /*!
\brief \brief
Return the RenderEffect object that is assigned to this GeometryBuf fer Return the RenderEffect object that is assigned to this GeometryBuf fer
or 0 if none. or 0 if none.
*/ */
virtual RenderEffect* getRenderEffect() = 0; virtual RenderEffect* getRenderEffect() = 0;
/*!
\brief
Set the blend mode option to use when rendering this GeometryBuffer
.
\note
The blend mode setting is not a 'state' setting, but is used for \e
all
geometry added to the buffer regardless of when the blend mode is s
et.
\param mode
One of the BlendMode enumerated values indicating the blending mode
to
be used.
*/
virtual void setBlendMode(const BlendMode mode);
/*!
\brief
Return the blend mode that is set to be used for this GeometryBuffe
r.
\return
One of the BlendMode enumerated values indicating the blending mode
that will be used when rendering all geometry added to this
GeometryBuffer object.
*/
virtual BlendMode getBlendMode() const;
protected:
//! Constructor.
GeometryBuffer();
//! The BlendMode to use when rendering this GeometryBuffer.
BlendMode d_blendMode;
}; };
} // End of CEGUI namespace section } // End of CEGUI namespace section
#endif // end of guard _CEGUIGeometryBuffer_h_ #endif // end of guard _CEGUIGeometryBuffer_h_
 End of changes. 4 change blocks. 
3 lines changed or deleted 40 lines changed or added


 CEGUIImageset_xmlHandler.h   CEGUIImageset_xmlHandler.h 
skipping to change at line 32 skipping to change at line 32
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE. * OTHER DEALINGS IN THE SOFTWARE.
************************************************************************** */ ************************************************************************** */
#ifndef _CEGUIImageset_xmlHandler_h_ #ifndef _CEGUIImageset_xmlHandler_h_
#define _CEGUIImageset_xmlHandler_h_ #define _CEGUIImageset_xmlHandler_h_
#include "CEGUIXMLHandler.h" #include "CEGUIXMLHandler.h"
#include "CEGUIString.h"
// Start of CEGUI namespace section // Start of CEGUI namespace section
namespace CEGUI namespace CEGUI
{ {
//! Class used to parse the Imageset XML files to create Imageset objects //! Class used to parse the Imageset XML files to create Imageset objects
class CEGUIEXPORT Imageset_xmlHandler : public XMLHandler class CEGUIEXPORT Imageset_xmlHandler : public XMLHandler
{ {
public: public:
//! Constructor. //! Constructor.
Imageset_xmlHandler(const String& filename, const String& resource_grou p); Imageset_xmlHandler(const String& filename, const String& resource_grou p);
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 CEGUIInputEvent.h   CEGUIInputEvent.h 
skipping to change at line 180 skipping to change at line 180
ArrowUp =0xC8, /* UpArrow on arrow keypad */ ArrowUp =0xC8, /* UpArrow on arrow keypad */
PageUp =0xC9, /* PgUp on arrow keypad */ PageUp =0xC9, /* PgUp on arrow keypad */
ArrowLeft =0xCB, /* LeftArrow on arrow keypad */ ArrowLeft =0xCB, /* LeftArrow on arrow keypad */
ArrowRight =0xCD, /* RightArrow on arrow keypad */ ArrowRight =0xCD, /* RightArrow on arrow keypad */
End =0xCF, /* End on arrow keypad */ End =0xCF, /* End on arrow keypad */
ArrowDown =0xD0, /* DownArrow on arrow keypad */ ArrowDown =0xD0, /* DownArrow on arrow keypad */
PageDown =0xD1, /* PgDn on arrow keypad */ PageDown =0xD1, /* PgDn on arrow keypad */
Insert =0xD2, /* Insert on arrow keypad */ Insert =0xD2, /* Insert on arrow keypad */
Delete =0xD3, /* Delete on arrow keypad */ Delete =0xD3, /* Delete on arrow keypad */
LeftWindows =0xDB, /* Left Windows key */ LeftWindows =0xDB, /* Left Windows key */
RightWindow =0xDC, /* Right Windows key */
RightWindows =0xDC, /* Right Windows key - Correct spelling : ) */ RightWindows =0xDC, /* Right Windows key - Correct spelling : ) */
AppMenu =0xDD, /* AppMenu key */ AppMenu =0xDD, /* AppMenu key */
Power =0xDE, /* System Power */ Power =0xDE, /* System Power */
Sleep =0xDF, /* System Sleep */ Sleep =0xDF, /* System Sleep */
Wake =0xE3, /* System Wake */ Wake =0xE3, /* System Wake */
WebSearch =0xE5, /* Web Search */ WebSearch =0xE5, /* Web Search */
WebFavorites =0xE6, /* Web Favorites */ WebFavorites =0xE6, /* Web Favorites */
WebRefresh =0xE7, /* Web Refresh */ WebRefresh =0xE7, /* Web Refresh */
WebStop =0xE8, /* Web Stop */ WebStop =0xE8, /* Web Stop */
WebForward =0xE9, /* Web Forward */ WebForward =0xE9, /* Web Forward */
 End of changes. 1 change blocks. 
1 lines changed or deleted 0 lines changed or added


 CEGUIIrrlichtEventPusher.h   CEGUIIrrlichtEventPusher.h 
skipping to change at line 42 skipping to change at line 42
#include <irrlicht.h> #include <irrlicht.h>
namespace CEGUI namespace CEGUI
{ {
using namespace irr; using namespace irr;
class IrrlichtEventPusher class IrrlichtEventPusher
{ {
gui::ICursorControl* d_cursorctrl; gui::ICursorControl* d_cursorctrl;
core::position2d<s32> d_pos;
core::position2d<s32> d_dpos;
public : public :
IrrlichtEventPusher(irr::gui::ICursorControl* ctrl) : IrrlichtEventPusher(irr::gui::ICursorControl* ctrl) :
d_cursorctrl(ctrl) d_cursorctrl(ctrl)
{ {
d_cursorctrl->setPosition(0.5f, 0.5f);
d_pos = d_cursorctrl->getPosition();
d_dpos.X = 0;
d_dpos.Y = 0;
initCodes(); initCodes();
}; };
virtual ~IrrlichtEventPusher(){}; virtual ~IrrlichtEventPusher(){};
bool OnEvent(const SEvent& event) bool OnEvent(const SEvent& event)
{ {
switch (event.EventType) switch (event.EventType)
{ {
case EET_KEY_INPUT_EVENT : case EET_KEY_INPUT_EVENT :
skipping to change at line 233 skipping to change at line 226
irr2ceCODE[KEY_KEY_R ] = Key::R; // R key irr2ceCODE[KEY_KEY_R ] = Key::R; // R key
irr2ceCODE[KEY_KEY_S ] = Key::S; // S key irr2ceCODE[KEY_KEY_S ] = Key::S; // S key
irr2ceCODE[KEY_KEY_T ] = Key::T; // T key irr2ceCODE[KEY_KEY_T ] = Key::T; // T key
irr2ceCODE[KEY_KEY_U ] = Key::U; // U key irr2ceCODE[KEY_KEY_U ] = Key::U; // U key
irr2ceCODE[KEY_KEY_V ] = Key::V; // V key irr2ceCODE[KEY_KEY_V ] = Key::V; // V key
irr2ceCODE[KEY_KEY_W ] = Key::W; // W key irr2ceCODE[KEY_KEY_W ] = Key::W; // W key
irr2ceCODE[KEY_KEY_X ] = Key::X; // X key irr2ceCODE[KEY_KEY_X ] = Key::X; // X key
irr2ceCODE[KEY_KEY_Y ] = Key::Y; // Y key irr2ceCODE[KEY_KEY_Y ] = Key::Y; // Y key
irr2ceCODE[KEY_KEY_Z ] = Key::Z; // Z key irr2ceCODE[KEY_KEY_Z ] = Key::Z; // Z key
irr2ceCODE[KEY_LWIN ] = Key::LeftWindows; // Left Windows key (Microsoft� Natural� keyboard) irr2ceCODE[KEY_LWIN ] = Key::LeftWindows; // Left Windows key (Microsoft� Natural� keyboard)
irr2ceCODE[KEY_RWIN ] = Key::RightWindow; // Right Windows ke y (Natural keyboard) irr2ceCODE[KEY_RWIN ] = Key::RightWindows; // Right Windows k ey (Natural keyboard)
irr2ceCODE[KEY_APPS ] = Key::AppMenu; //Applications key (Nat ural keyboard) irr2ceCODE[KEY_APPS ] = Key::AppMenu; //Applications key (Nat ural keyboard)
irr2ceCODE[KEY_SLEEP ] = Key::Sleep; // Computer Sleep key irr2ceCODE[KEY_SLEEP ] = Key::Sleep; // Computer Sleep key
irr2ceCODE[KEY_NUMPAD0 ] = Key::Numpad0; // Numeric keypad 0 key irr2ceCODE[KEY_NUMPAD0 ] = Key::Numpad0; // Numeric keypad 0 key
irr2ceCODE[KEY_NUMPAD1 ] = Key::Numpad1; // Numeric keypad 1 key irr2ceCODE[KEY_NUMPAD1 ] = Key::Numpad1; // Numeric keypad 1 key
irr2ceCODE[KEY_NUMPAD2 ] = Key::Numpad2; // Numeric keypad 2 key irr2ceCODE[KEY_NUMPAD2 ] = Key::Numpad2; // Numeric keypad 2 key
irr2ceCODE[KEY_NUMPAD3 ] = Key::Numpad3; // Numeric keypad 3 key irr2ceCODE[KEY_NUMPAD3 ] = Key::Numpad3; // Numeric keypad 3 key
irr2ceCODE[KEY_NUMPAD4 ] = Key::Numpad4; // Numeric keypad 4 key irr2ceCODE[KEY_NUMPAD4 ] = Key::Numpad4; // Numeric keypad 4 key
irr2ceCODE[KEY_NUMPAD5 ] = Key::Numpad5; // Numeric keypad 5 key irr2ceCODE[KEY_NUMPAD5 ] = Key::Numpad5; // Numeric keypad 5 key
irr2ceCODE[KEY_NUMPAD6 ] = Key::Numpad6; // Numeric keypad 6 key irr2ceCODE[KEY_NUMPAD6 ] = Key::Numpad6; // Numeric keypad 6 key
irr2ceCODE[KEY_NUMPAD7 ] = Key::Numpad7; // Numeric keypad 7 key irr2ceCODE[KEY_NUMPAD7 ] = Key::Numpad7; // Numeric keypad 7 key
 End of changes. 3 change blocks. 
8 lines changed or deleted 1 lines changed or added


 CEGUIIrrlichtGeometryBuffer.h   CEGUIIrrlichtGeometryBuffer.h 
skipping to change at line 58 skipping to change at line 58
//! GeometryBuffer implementation for the Irrlicht engine. //! GeometryBuffer implementation for the Irrlicht engine.
class IRR_GUIRENDERER_API IrrlichtGeometryBuffer : public GeometryBuffer class IRR_GUIRENDERER_API IrrlichtGeometryBuffer : public GeometryBuffer
{ {
public: public:
//! constructor //! constructor
IrrlichtGeometryBuffer(irr::video::IVideoDriver& driver); IrrlichtGeometryBuffer(irr::video::IVideoDriver& driver);
//! return the transformation matrix used for this buffer. //! return the transformation matrix used for this buffer.
const irr::core::matrix4& getMatrix() const; const irr::core::matrix4& getMatrix() const;
//! return reference to the Irrlicht material used with this GeometryBu
ffer.
irr::video::SMaterial& getMaterial();
//! return reference to the Irrlicht material used with this GeometryBu
ffer.
const irr::video::SMaterial& getMaterial() const;
// implement GeometryBuffer interface // implement GeometryBuffer interface
void draw() const; void draw() const;
void setTranslation(const Vector3& v); void setTranslation(const Vector3& v);
void setRotation(const Vector3& r); void setRotation(const Vector3& r);
void setPivot(const Vector3& p); void setPivot(const Vector3& p);
void setClippingRegion(const Rect& region); void setClippingRegion(const Rect& region);
void appendVertex(const Vertex& vertex); void appendVertex(const Vertex& vertex);
void appendGeometry(const Vertex* const vbuff, uint vertex_count); void appendGeometry(const Vertex* const vbuff, uint vertex_count);
void setActiveTexture(Texture* texture); void setActiveTexture(Texture* texture);
void reset(); void reset();
 End of changes. 1 change blocks. 
0 lines changed or deleted 7 lines changed or added


 CEGUIIrrlichtTexture.h   CEGUIIrrlichtTexture.h 
skipping to change at line 99 skipping to change at line 99
IrrlichtTexture(IrrlichtRenderer& owner, irr::video::IVideoDriver& driv er); IrrlichtTexture(IrrlichtRenderer& owner, irr::video::IVideoDriver& driv er);
//! Construct a texture from the specified file. //! Construct a texture from the specified file.
IrrlichtTexture(IrrlichtRenderer& owner, irr::video::IVideoDriver& driv er, IrrlichtTexture(IrrlichtRenderer& owner, irr::video::IVideoDriver& driv er,
const String& filename, const String& resourceGroup); const String& filename, const String& resourceGroup);
//! Construct a texture with the given size. //! Construct a texture with the given size.
IrrlichtTexture(IrrlichtRenderer& owner, irr::video::IVideoDriver& driv er, IrrlichtTexture(IrrlichtRenderer& owner, irr::video::IVideoDriver& driv er,
const Size& size); const Size& size);
//! destructor. //! destructor.
~IrrlichtTexture(); ~IrrlichtTexture();
//! create the underlying Irrlicht texture with the given size
void createIrrlichtTexture(const Size& sz);
//! release the underlying irrlicht texture currently used. //! release the underlying irrlicht texture currently used.
void freeIrrlichtTexture(); void freeIrrlichtTexture();
//! updates cached scale value used to map pixels to texture co-ords. //! updates cached scale value used to map pixels to texture co-ords.
void updateCachedScaleValues(); void updateCachedScaleValues();
//! Counter used to provide unique texture names. //! Counter used to provide unique texture names.
static uint32 d_textureNumber; static uint32 d_textureNumber;
//! Irrlicht video driver we're to use. //! Irrlicht video driver we're to use.
irr::video::IVideoDriver& d_driver; irr::video::IVideoDriver& d_driver;
 End of changes. 1 change blocks. 
0 lines changed or deleted 3 lines changed or added


 CEGUIItemEntry.h   CEGUIItemEntry.h 
skipping to change at line 85 skipping to change at line 85
Fire events on selection / deselection. Fire events on selection / deselection.
(Maybe selectable mode changed as well?) (Maybe selectable mode changed as well?)
*/ */
class CEGUIEXPORT ItemEntry : public Window class CEGUIEXPORT ItemEntry : public Window
{ {
public: public:
/********************************************************************** *** /********************************************************************** ***
Constants Constants
*********************************************************************** **/ *********************************************************************** **/
static const String WidgetTypeName; //!< Window factory nam e static const String WidgetTypeName; //!< Window factory nam e
static const String EventSelectionChanged; //!< Event fired when sel /** Event fired when the item's selection state changes.
ection state changes. * Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the ItemEntry whose selection state h
as
* changed.
*/
static const String EventSelectionChanged;
/******************************************************************* ****** /******************************************************************* ******
Accessors Accessors
******************************************************************** *****/ ******************************************************************** *****/
/*! /*!
\brief \brief
Return the "optimal" size for the item Return the "optimal" size for the item
\return \return
Size describing the size in pixel that this ItemEntry's cont ent requires Size describing the size in pixel that this ItemEntry's cont ent requires
 End of changes. 1 change blocks. 
2 lines changed or deleted 7 lines changed or added


 CEGUIItemListBase.h   CEGUIItemListBase.h 
skipping to change at line 101 skipping to change at line 101
UserSort UserSort
}; };
//!< Sorting callback type //!< Sorting callback type
typedef bool (*SortCallback)(const ItemEntry* a, const ItemEntry* b); typedef bool (*SortCallback)(const ItemEntry* a, const ItemEntry* b);
/******************************************************************* ****** /******************************************************************* ******
Constants Constants
******************************************************************** *****/ ******************************************************************** *****/
// event names // event names
static const String EventListContentsChanged; //!< /** Event fired when the contents of the list is changed.
Event triggered when the contents of the list is changed. * Handlers are passed a const WindowEventArgs reference with
static const String EventSortEnabledChanged; //!< Event fired when the * WindowEventArgs::window set to the ItemListBase whose contents
sort enabled state changes. * has changed.
static const String EventSortModeChanged; //!< Event fired when the sor */
t mode changes. static const String EventListContentsChanged;
/** Event fired when the sort enabled state of the list is changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the ItemListBase whose sort enabled m
ode
* has been changed.
*/
static const String EventSortEnabledChanged;
/** Event fired when the sort mode of the list is changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the ItemListBase whose sorting mode
* has been changed.
*/
static const String EventSortModeChanged;
/******************************************************************* ****** /******************************************************************* ******
Accessor Methods Accessor Methods
******************************************************************** *****/ ******************************************************************** *****/
/*! /*!
\brief \brief
Return number of items attached to the list Return number of items attached to the list
\return \return
the number of items currently attached to this list. the number of items currently attached to this list.
 End of changes. 1 change blocks. 
6 lines changed or deleted 19 lines changed or added


 CEGUIItemListbox.h   CEGUIItemListbox.h 
skipping to change at line 56 skipping to change at line 56
*/ */
class CEGUIEXPORT ItemListbox : public ScrolledItemListBase class CEGUIEXPORT ItemListbox : public ScrolledItemListBase
{ {
public: public:
static const String EventNamespace; //!< Namespace for global events static const String EventNamespace; //!< Namespace for global events
static const String WidgetTypeName; //!< Window factory name static const String WidgetTypeName; //!< Window factory name
/********************************************************************** ** /********************************************************************** **
Constants Constants
*********************************************************************** **/ *********************************************************************** **/
static const String EventSelectionChanged; //!< Event fired when the se /** Event fired when the list selection changes.
lection changes. * Handlers are passed a const WindowEventArgs reference with
static const String EventMultiSelectModeChanged; //!< Event fired when * WindowEventArgs::window set to the ItemListbox whose current selecti
the multiselect mode changes. on
* has been changed.
*/
static const String EventSelectionChanged;
/** Event fired when the multiselect mode of the list box is changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the ItemListbox whose multiselect mod
e
* has been changed.
*/
static const String EventMultiSelectModeChanged;
/********************************************************************** ** /********************************************************************** **
Accessors Accessors
*********************************************************************** **/ *********************************************************************** **/
/*! /*!
\brief \brief
Returns the number of selected items in this ItemListbox. Returns the number of selected items in this ItemListbox.
*/ */
size_t getSelectedCount(void) const; size_t getSelectedCount(void) const;
 End of changes. 1 change blocks. 
4 lines changed or deleted 14 lines changed or added


 CEGUIIteratorBase.h   CEGUIIteratorBase.h 
skipping to change at line 215 skipping to change at line 215
{ {
return d_currIter == rhs.d_currIter; return d_currIter == rhs.d_currIter;
} }
/*! /*!
\brief \brief
Compares two iterators. Return true if the current position of the iterators are different. Compares two iterators. Return true if the current position of the iterators are different.
*/ */
bool operator!=(const ConstBaseIterator<T>& rhs) const bool operator!=(const ConstBaseIterator<T>& rhs) const
{ {
return !this == rhs; return !operator==(rhs);
} }
/*! /*!
\brief \brief
Return the value for the current iterator position. Return the value for the current iterator position.
*/ */
mapped_type operator*() const mapped_type operator*() const
{ {
return d_currIter->second; return d_currIter->second;
} }
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 CEGUIListHeader.h   CEGUIListHeader.h 
skipping to change at line 113 skipping to change at line 113
class CEGUIEXPORT ListHeader : public Window class CEGUIEXPORT ListHeader : public Window
{ {
public: public:
static const String EventNamespace; //!< Namespace for global events static const String EventNamespace; //!< Namespace for global events
static const String WidgetTypeName; //!< Window factory nam e static const String WidgetTypeName; //!< Window factory nam e
/******************************************************************* ****** /******************************************************************* ******
Constants Constants
******************************************************************** *****/ ******************************************************************** *****/
// Event names // Event names
static const String EventSortColumnChanged; //!< /** Event fired when the current sort column of the header is changed.
Event fired when the current sort column changes. * Handlers are passed a const WindowEventArgs reference with
static const String EventSortDirectionChanged; //!< Event f * WindowEventArgs::window set to the ListHeader whose sort column has
ired when the sort direction changes. * been changed.
static const String EventSegmentSized; //!< */
Event fired when a segment has been sized by the user (e.window is the seg static const String EventSortColumnChanged;
ment). /** Event fired when the sort direction of the header is changed.
static const String EventSegmentClicked; * Handlers are passed a const WindowEventArgs reference with
//!< Event fired when a segment has been clicked by the user (e.window * WindowEventArgs::window set to the ListHeader whose sort direction h
is the segment). ad
static const String EventSplitterDoubleClicked; //!< Event f * been changed.
ired when a segment splitter has been double-clicked. (e.window is the seg */
ment). static const String EventSortDirectionChanged;
static const String EventSegmentSequenceChanged; //!< /** Event fired when a segment of the header is sized by the user.
Event fired when the order of the segments has changed. ('e' is a HeaderS * Handlers are passed a const WindowEventArgs reference with
equenceEventArgs&) * WindowEventArgs::window set to the ListHeaderSegment that has been s
static const String EventSegmentAdded; //!< ized.
Event fired when a segment is added to the header. */
static const String EventSegmentRemoved; static const String EventSegmentSized;
//!< Event fired when a segment is removed from the header. /** Event fired when a segment of the header is clicked by the user.
static const String EventSortSettingChanged; //!< * Handlers are passed a const WindowEventArgs reference with
Event fired when setting that controls user modification to sort configura * WindowEventArgs::window set to the ListHeaderSegment that was clicke
tion changes. d.
static const String EventDragMoveSettingChanged; //!< */
Event fired when setting that controls user drag & drop of segments change static const String EventSegmentClicked;
s. /** Event fired when a segment splitter of the header is double-clicked
static const String EventDragSizeSettingChanged; //!< .
Event fired when setting that controls user sizing of segments changes. * Handlers are passed a const WindowEventArgs reference with
static const String EventSegmentRenderOffsetChanged; //!< Event f * WindowEventArgs::window set to the ListHeaderSegment whose splitter
ired when the rendering offset for the segments changes. area
* was double-clicked.
*/
static const String EventSplitterDoubleClicked;
/** Event fired when the order of the segments in the header has change
d.
* Handlers are passed a const HeaderSequenceEventArgs reference with
* WindowEventArgs::window set to the ListHeader whose segments have ch
anged
* sequence, HeaderSequenceEventArgs::d_oldIdx is the original index of
the
* segment that has moved, and HeaderSequenceEventArgs::d_newIdx is the
new
* index of the segment that has moved.
*/
static const String EventSegmentSequenceChanged;
/** Event fired when a segment is added to the header.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the ListHeader that has had a new seg
ment
* added.
*/
static const String EventSegmentAdded;
/** Event fired when a segment is removed from the header.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the ListHeader that has had a segment
* removed.
*/
static const String EventSegmentRemoved;
/** Event fired when setting that controls user modification to sort
* configuration is changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the ListHeader whose user sort contro
l
* setting has been changed.
*/
static const String EventSortSettingChanged;
/** Event fired when setting that controls user drag & drop of segments
is
* changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the ListHeader whose drag & drop enab
led
* setting has changed.
*/
static const String EventDragMoveSettingChanged;
/** Event fired when setting that controls user sizing of segments is
* changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the ListHeader whose user sizing sett
ing
* has changed.
*/
static const String EventDragSizeSettingChanged;
/** Event fired when the rendering offset for the segments changes.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the ListHeader whose segment renderin
g
* offset has changed.
*/
static const String EventSegmentRenderOffsetChanged;
// values // values
static const float ScrollSpeed; //!< Speed to scroll at when dragging outside header. static const float ScrollSpeed; //!< Speed to scroll at when dragging outside header.
static const float MinimumSegmentPixelWidth; //!< Miniumu m width of a segment in pixels. static const float MinimumSegmentPixelWidth; //!< Miniumu m width of a segment in pixels.
/********************************************************************** *** /********************************************************************** ***
Child Widget name suffix constants Child Widget name suffix constants
*********************************************************************** **/ *********************************************************************** **/
static const char SegmentNameSuffix[]; //!< Widget name suffix for header segments. static const char SegmentNameSuffix[]; //!< Widget name suffix for header segments.
 End of changes. 1 change blocks. 
30 lines changed or deleted 90 lines changed or added


 CEGUIListHeaderSegment.h   CEGUIListHeaderSegment.h 
skipping to change at line 59 skipping to change at line 59
class CEGUIEXPORT ListHeaderSegment : public Window class CEGUIEXPORT ListHeaderSegment : public Window
{ {
public: public:
static const String EventNamespace; //!< Namespace for global events static const String EventNamespace; //!< Namespace for global events
static const String WidgetTypeName; //!< Window factory nam e static const String WidgetTypeName; //!< Window factory nam e
/******************************************************************* ****** /******************************************************************* ******
Constants Constants
******************************************************************** *****/ ******************************************************************** *****/
// Event names // Event names
static const String EventSegmentClicked; /** Event fired when the segment is clicked.
//!< Event fired when the segment is clicked. * Hanlders are passed a const WindowEventArgs reference with
static const String EventSplitterDoubleClicked; //!< Event f * WindowEventArgs::window set to the ListHeaderSegment that was clicke
ired when the sizer/splitter is double-clicked. d.
static const String EventSizingSettingChanged; //!< Event f */
ired when the sizing setting changes. static const String EventSegmentClicked;
static const String EventSortDirectionChanged; //!< Event f /** Event fired when the sizer/splitter is double-clicked.
ired when the sort direction value changes. * Hanlders are passed a const WindowEventArgs reference with
static const String EventMovableSettingChanged; //!< Event f * WindowEventArgs::window set to the ListHeaderSegment whose
ired when the movable setting changes. * sizer / splitter area was double-clicked.
static const String EventSegmentDragStart; //!< */
Event fired when the segment has started to be dragged. static const String EventSplitterDoubleClicked;
static const String EventSegmentDragStop; /** Event fired when the user drag-sizable setting is changed.
//!< Event fired when segment dragging has stopped (via mouse release). * Hanlders are passed a const WindowEventArgs reference with
static const String EventSegmentDragPositionChanged; //!< Event f * WindowEventArgs::window set to the ListHeaderSegment whose user siza
ired when the segment drag position has changed. ble
static const String EventSegmentSized; //!< * setting has been changed.
Event fired when the segment is sized. */
static const String EventClickableSettingChanged; //!< static const String EventSizingSettingChanged;
Event fired when the clickable state of the segment changes. /** Event fired when the sort direction value is changed.
* Hanlders are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the ListHeaderSegment whose sort dire
ction
* has been changed.
*/
static const String EventSortDirectionChanged;
/** Event fired when the user drag-movable setting is changed.
* Hanlders are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the ListHeaderSegment whose user
* drag-movable setting has been changed.
*/
static const String EventMovableSettingChanged;
/** Event fired when the segment has started to be dragged.
* Hanlders are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the ListHeaderSegment that has starte
d to
* be dragged.
*/
static const String EventSegmentDragStart;
/** Event fired when segment dragging has stopped (via mouse release).
* Hanlders are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the ListHeaderSegment that is no long
er
* being dragged.
*/
static const String EventSegmentDragStop;
/** Event fired when the segment drag position has changed.
* Hanlders are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the ListHeaderSegment whose position
has
* changed due to being dragged.
*/
static const String EventSegmentDragPositionChanged;
/** Event fired when the segment is sized by the user.
* Hanlders are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the ListHeaderSegment that has been
* resized by the user dragging.
*/
static const String EventSegmentSized;
/** Event fired when the clickable setting for the segment is changed.
* Hanlders are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the ListHeaderSegment whose setting t
hat
* controls whether the segment is clickable has been changed.
*/
static const String EventClickableSettingChanged;
// Defaults // Defaults
static const float DefaultSizingArea; //!< Default size of the sizing area. static const float DefaultSizingArea; //!< Default size of the sizing area.
static const float SegmentMoveThreshold; //!< Amount the mous e must be dragged before drag-moving is initiated. static const float SegmentMoveThreshold; //!< Amount the mous e must be dragged before drag-moving is initiated.
/******************************************************************* ****** /******************************************************************* ******
Enumerated types Enumerated types
******************************************************************** *****/ ******************************************************************** *****/
/*! /*!
\brief \brief
 End of changes. 1 change blocks. 
20 lines changed or deleted 66 lines changed or added


 CEGUIListbox.h   CEGUIListbox.h 
skipping to change at line 86 skipping to change at line 86
class CEGUIEXPORT Listbox : public Window class CEGUIEXPORT Listbox : public Window
{ {
public: public:
static const String EventNamespace; //!< Namespace for global events static const String EventNamespace; //!< Namespace for global events
static const String WidgetTypeName; //!< Window factory nam e static const String WidgetTypeName; //!< Window factory nam e
/******************************************************************* ****** /******************************************************************* ******
Constants Constants
******************************************************************** *****/ ******************************************************************** *****/
// event names // event names
static const String EventListContentsChanged; //!< /** Event fired when the contents of the list is changed.
Event triggered when the contents of the list is changed. * Handlers are passed a const WindowEventArgs reference with
static const String EventSelectionChanged; //!< * WindowEventArgs::window set to the Listbox whose content is changed.
Event triggered when there is a change to the currently selected item(s). */
static const String EventSortModeChanged; static const String EventListContentsChanged;
//!< Event triggered when the sort mode setting changes. /** Event fired when there is a change to the currently selected item(s
static const String EventMultiselectModeChanged; //!< )
Event triggered when the multi-select mode setting changes. * within the list.
static const String EventVertScrollbarModeChanged; //!< Event t * Handlers are passed a const WindowEventArgs reference with
riggered when the vertical scroll bar 'force' setting changes. * WindowEventArgs::window set to the Litbox that has had a change in t
static const String EventHorzScrollbarModeChanged; //!< Event t he
riggered when the horizontal scroll bar 'force' setting changes. * selected items.
*/
static const String EventSelectionChanged;
/** Event fired when the sort mode setting changes for the Listbox.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Listbox whose sort mode has been
* changed.
*/
static const String EventSortModeChanged;
/** Event fired when the multi-select mode setting changes for the List
box.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Listbox whose multi-select mode h
as
* been changed.
*/
static const String EventMultiselectModeChanged;
/** Event fired when the mode setting that forces the display of the
* vertical scroll bar for the Listbox is changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Listbox whose vertical
* scrollbar mode has been changed.
*/
static const String EventVertScrollbarModeChanged;
/** Event fired when the mode setting that forces the display of the
* horizontal scroll bar for the Listbox is changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Listbox whose horizontal
* scrollbar mode has been changed.
*/
static const String EventHorzScrollbarModeChanged;
/********************************************************************** *** /********************************************************************** ***
Child Widget name suffix constants Child Widget name suffix constants
*********************************************************************** **/ *********************************************************************** **/
static const String VertScrollbarNameSuffix; //!< Widget name suffix for the vertical scrollbar component. static const String VertScrollbarNameSuffix; //!< Widget name suffix for the vertical scrollbar component.
static const String HorzScrollbarNameSuffix; //!< Widget name suffix for the horizontal scrollbar component. static const String HorzScrollbarNameSuffix; //!< Widget name suffix for the horizontal scrollbar component.
/******************************************************************* ****** /******************************************************************* ******
Accessor Methods Accessor Methods
******************************************************************** *****/ ******************************************************************** *****/
skipping to change at line 523 skipping to change at line 555
Return the sum of all item heights Return the sum of all item heights
*/ */
float getTotalItemsHeight(void) const; float getTotalItemsHeight(void) const;
/*! /*!
\brief \brief
Return the width of the widest item Return the width of the widest item
*/ */
float getWidestItemWidth(void) const; float getWidestItemWidth(void) const;
/*!
\brief
Return a pointer to the ListboxItem attached to this Listbox
at the
given screen pixel co-ordinate.
\return
Pointer to the ListboxItem attached to this Listbox that is
at screen
position \a pt, or 0 if no ListboxItem attached to this Listbox is
at
that position.
*/
ListboxItem* getItemAtPoint(const Point& pt) const;
/******************************************************************* ****** /******************************************************************* ******
Construction and Destruction Construction and Destruction
******************************************************************** *****/ ******************************************************************** *****/
/*! /*!
\brief \brief
Constructor for Listbox base class. Constructor for Listbox base class.
*/ */
Listbox(const String& type, const String& name); Listbox(const String& type, const String& name);
/*! /*!
skipping to change at line 580 skipping to change at line 624
\brief \brief
Clear the selected state for all items (implementation) Clear the selected state for all items (implementation)
\return \return
true if some selections were cleared, false nothing was chan ged. true if some selections were cleared, false nothing was chan ged.
*/ */
bool clearAllSelections_impl(void); bool clearAllSelections_impl(void);
/*! /*!
\brief \brief
Return the ListboxItem under the given window local pixel co
-ordinate.
\return
ListboxItem that is under window pixel co-ordinate \a pt, or
NULL if no
item is under that position.
*/
ListboxItem* getItemAtPoint(const Point& pt) const;
/*!
\brief
Remove all items from the list. Remove all items from the list.
\note \note
Note that this will cause 'AutoDelete' items to be deleted. Note that this will cause 'AutoDelete' items to be deleted.
\return \return
- true if the list contents were changed. - true if the list contents were changed.
- false if the list contents were not changed (list already empty). - false if the list contents were not changed (list already empty).
*/ */
bool resetList_impl(void); bool resetList_impl(void);
 End of changes. 3 change blocks. 
24 lines changed or deleted 57 lines changed or added


 CEGUIListboxItem.h   CEGUIListboxItem.h 
skipping to change at line 71 skipping to change at line 71
/*! /*!
\brief \brief
base class constructor base class constructor
*/ */
ListboxItem(const String& text, uint item_id = 0, void* item_data = 0, bool disabled = false, bool auto_delete = true); ListboxItem(const String& text, uint item_id = 0, void* item_data = 0, bool disabled = false, bool auto_delete = true);
/*! /*!
\brief \brief
base class destructor base class destructor
*/ */
virtual ~ListboxItem(void) {} virtual ~ListboxItem(void);
/********************************************************************** *** /********************************************************************** ***
Accessors Accessors
*********************************************************************** **/ *********************************************************************** **/
/*! /*!
\brief \brief
return the text string set for this list box item. return the text string set for this list box item.
Note that even if the item does not render text, the text string ca n still be useful, since it Note that even if the item does not render text, the text string ca n still be useful, since it
is used for sorting list box items. is used for sorting list box items.
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 CEGUIListboxTextItem.h   CEGUIListboxTextItem.h 
skipping to change at line 34 skipping to change at line 34
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE. * OTHER DEALINGS IN THE SOFTWARE.
************************************************************************** */ ************************************************************************** */
#ifndef _CEGUIListboxTextItem_h_ #ifndef _CEGUIListboxTextItem_h_
#define _CEGUIListboxTextItem_h_ #define _CEGUIListboxTextItem_h_
#include "CEGUIListboxItem.h" #include "CEGUIListboxItem.h"
#include "../CEGUIBasicRenderedStringParser.h" #include "../CEGUIBasicRenderedStringParser.h"
#include "../CEGUIDefaultRenderedStringParser.h"
// Start of CEGUI namespace section // Start of CEGUI namespace section
namespace CEGUI namespace CEGUI
{ {
/*! /*!
\brief \brief
Class used for textual items in a list box. Class used for textual items in a list box.
*/ */
class CEGUIEXPORT ListboxTextItem : public ListboxItem class CEGUIEXPORT ListboxTextItem : public ListboxItem
{ {
skipping to change at line 161 skipping to change at line 162
Set the colours used for text rendering. Set the colours used for text rendering.
\param col \param col
colour value to be used when rendering. colour value to be used when rendering.
\return \return
Nothing. Nothing.
*/ */
void setTextColours(colour col) {setTextColours(col, col, col, col);} void setTextColours(colour col) {setTextColours(col, col, col, col);}
/*!
\brief
Set whether the the ListboxTextItem will have it's text parsed via
the
BasicRenderedStringParser or not.
\param enable
- true if the ListboxTextItem text will be parsed.
- false if the ListboxTextItem text will be used verbatim.
*/
void setTextParsingEnabled(const bool enable);
//! return whether text parsing is enabled for this ListboxTextItem.
bool isTextParsingEnabled() const;
// base class overrides // base class overrides
void setText(const String& text); void setText(const String& text);
/******************************************************************* ****** /******************************************************************* ******
Required implementations of pure virtuals from the base clas s. Required implementations of pure virtuals from the base clas s.
******************************************************************** *****/ ******************************************************************** *****/
Size getPixelSize(void) const; Size getPixelSize(void) const;
void draw(GeometryBuffer& buffer, const Rect& targetRect, float alpha, const Rect* clipper) const; void draw(GeometryBuffer& buffer, const Rect& targetRect, float alpha, const Rect* clipper) const;
protected: protected:
skipping to change at line 184 skipping to change at line 199
Implementation Data Implementation Data
******************************************************************** *****/ ******************************************************************** *****/
ColourRect d_textCols; //!< Colours used fo r rendering the text. ColourRect d_textCols; //!< Colours used fo r rendering the text.
Font* d_font; //!< Font used for r endering text. Font* d_font; //!< Font used for r endering text.
//! Parser used to produce a final RenderedString from the standard Str ing. //! Parser used to produce a final RenderedString from the standard Str ing.
static BasicRenderedStringParser d_stringParser; static BasicRenderedStringParser d_stringParser;
//! RenderedString drawn by this item. //! RenderedString drawn by this item.
mutable RenderedString d_renderedString; mutable RenderedString d_renderedString;
//! boolean used to track when item state changes (and needs re-parse) //! boolean used to track when item state changes (and needs re-parse)
mutable bool d_renderedStringValid; mutable bool d_renderedStringValid;
//! Parser used when parsing is off. Basically just does linebreaks.
static DefaultRenderedStringParser d_noTagsStringParser;
//! boolean that specifies whether text parsing is enabled for the item
.
bool d_textParsingEnabled;
}; };
} // End of CEGUI namespace section } // End of CEGUI namespace section
#endif // end of guard _CEGUIListboxTextItem_h_ #endif // end of guard _CEGUIListboxTextItem_h_
 End of changes. 3 change blocks. 
0 lines changed or deleted 21 lines changed or added


 CEGUIMenuBase.h   CEGUIMenuBase.h 
skipping to change at line 60 skipping to change at line 60
*/ */
class CEGUIEXPORT MenuBase : public ItemListBase class CEGUIEXPORT MenuBase : public ItemListBase
{ {
public: public:
static const String EventNamespace; //!< Namespace for global events static const String EventNamespace; //!< Namespace for global events
/******************************************************************* ****** /******************************************************************* ******
Event name constants Event name constants
******************************************************************** *****/ ******************************************************************** *****/
// generated internally by Window // generated internally by Window
static const String EventPopupOpened; /** Event fired when a MenuItem attached to this menu opened a PopupMen
//!< A MenuItem attached to this menu opened a PopupMenu u.
static const String EventPopupClosed; * Handlers are passed a const WindowEventArgs reference with
//!< A MenuItem attached to this menu opened a PopupMenu * WindowEventArgs::window set to the PopupMenu that was opened.
*/
static const String EventPopupOpened;
/** Event fired when a MenuItem attached to this menu closed a PopupMen
u.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the PopupMenu that was closed.
*/
static const String EventPopupClosed;
/******************************************************************* ****** /******************************************************************* ******
Accessor type functions Accessor type functions
******************************************************************** *****/ ******************************************************************** *****/
/*! /*!
\brief \brief
Get the item spacing for this menu. Get the item spacing for this menu.
\return \return
A float value with the current item spacing for this menu A float value with the current item spacing for this menu
 End of changes. 1 change blocks. 
4 lines changed or deleted 12 lines changed or added


 CEGUIMenuItem.h   CEGUIMenuItem.h 
skipping to change at line 55 skipping to change at line 55
class CEGUIEXPORT MenuItem : public ItemEntry class CEGUIEXPORT MenuItem : public ItemEntry
{ {
public: public:
static const String EventNamespace; //!< Namespace for global events static const String EventNamespace; //!< Namespace for global events
static const String WidgetTypeName; //!< Window factory nam e static const String WidgetTypeName; //!< Window factory nam e
/******************************************************************* ****** /******************************************************************* ******
Event name constants Event name constants
******************************************************************** *****/ ******************************************************************** *****/
// generated internally by Window // generated internally by Window
static const String EventClicked; /** Event fired when the menu item is clicked.
//!< The menu item was clicked. * Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the MenuItem that was clicked.
*/
static const String EventClicked;
/******************************************************************* ****** /******************************************************************* ******
Accessor type functions Accessor type functions
******************************************************************** *****/ ******************************************************************** *****/
/*! /*!
\brief \brief
return true if user is hovering over this widget (or it's pu shed and user is not over it for highlight) return true if user is hovering over this widget (or it's pu shed and user is not over it for highlight)
\return \return
true if the user is hovering or if the button is pushed and the mouse is not over the button. Otherwise return false. true if the user is hovering or if the button is pushed and the mouse is not over the button. Otherwise return false.
 End of changes. 1 change blocks. 
2 lines changed or deleted 5 lines changed or added


 CEGUIMouseCursor.h   CEGUIMouseCursor.h 
skipping to change at line 76 skipping to change at line 76
*/ */
class CEGUIEXPORT MouseCursor : public EventSet, public Singleton<MouseCurs or> class CEGUIEXPORT MouseCursor : public EventSet, public Singleton<MouseCurs or>
{ {
public: public:
static const String EventNamespace; //!< Namespace for global events static const String EventNamespace; //!< Namespace for global events
/******************************************************************* ****** /******************************************************************* ******
Event name constants Event name constants
******************************************************************** *****/ ******************************************************************** *****/
// generated internally by MouseCursor // generated internally by MouseCursor
static const String EventImageChanged; //!< The cur /** Event fired when the mouse cursor image is changed.
sor image of the widget has changed. * Handlers are passed a const MouseCursorEventArgs reference with
* MouseCursorEventArgs::mouseCursor set to the MouseCursor that has
* had it's image changed, and MouseCursorEventArgs::image set to the
* Image that is now set for the MouseCursor (may be 0).
*/
static const String EventImageChanged;
/*! /*!
\brief \brief
Constructor for MouseCursor objects Constructor for MouseCursor objects
*/ */
MouseCursor(void); MouseCursor(void);
/*! /*!
\brief \brief
Destructor for MouseCursor objects Destructor for MouseCursor objects
skipping to change at line 288 skipping to change at line 294
You normally would not call this directly; rather you would call th e You normally would not call this directly; rather you would call th e
function System::notifyDisplaySizeChanged and that will then call t his function System::notifyDisplaySizeChanged and that will then call t his
function for you. function for you.
\param new_size \param new_size
Size object describing the new display size in pixels. Size object describing the new display size in pixels.
*/ */
void notifyDisplaySizeChanged(const Size& new_size); void notifyDisplaySizeChanged(const Size& new_size);
/*!
\brief
Set an explicit size for the mouse cursor image to be drawn at.
This will override the size that is usually obtained directly from
the
mouse cursor image and will stay in effect across changes to the mo
use
cursor image.
Setting this size to (0, 0) will revert back to using the size as
obtained from the Image itself.
\param size
Reference to a Size object that describes the size at which the cur
sor
image should be drawn in pixels.
*/
void setExplicitRenderSize(const Size& size);
/*!
\brief
Return the explicit render size currently set. A return size of (0
, 0)
indicates that the real image size will be used.
*/
const Size& getExplicitRenderSize() const;
/*!
\brief
Static function to pre-initialise the mouse cursor position (prior
to
MouseCursor instantiation).
Calling this function prior to instantiating MouseCursor will preve
nt
the mouse having it's position set to the middle of the initial vie
w.
Calling this function after the MouseCursor is instantiated will ha
ve
no effect.
\param position
Reference to a point object describing the initial pixel position t
o
be used for the mouse cursor.
*/
static void setInitialMousePosition(const Point& position);
/*!
\brief
Mark the cached geometry as invalid so it will be recached next tim
e the
mouse cursor is drawn.
*/
void invalidate();
protected: protected:
/******************************************************************* ****** /******************************************************************* ******
New event handlers New event handlers
******************************************************************** *****/ ******************************************************************** *****/
/*! /*!
\brief \brief
event triggered internally when image of mouse cursor change s event triggered internally when image of mouse cursor change s
*/ */
virtual void onImageChanged(MouseCursorEventArgs& e); virtual void onImageChanged(MouseCursorEventArgs& e);
private: private:
/******************************************************************* ****** /******************************************************************* ******
Implementation Methods Implementation Methods
******************************************************************** *****/ ******************************************************************** *****/
/*! /*!
\brief \brief
Checks the mouse cursor position is within the current 'cons train' Rect and adjusts as required. Checks the mouse cursor position is within the current 'cons train' Rect and adjusts as required.
*/ */
void constrainPosition(void); void constrainPosition(void);
//! updates the cached geometry.
void cacheGeometry() const;
//! calculate offset for custom image size so 'hot spot' is maintained.
void calculateCustomOffset() const;
/******************************************************************* ****** /******************************************************************* ******
Implementation Data Implementation Data
******************************************************************** *****/ ******************************************************************** *****/
const Image* d_cursorImage; //!< Image that is currently set as the mouse cursor. const Image* d_cursorImage; //!< Image that is currently set as the mouse cursor.
Vector2 d_position; //!< Current location of the cursor Vector2 d_position; //!< Current location of the cursor
bool d_visible; //!< true if the cursor will be drawn, else false. bool d_visible; //!< true if the cursor will be drawn, else false.
URect d_constraints; //!< Specifies the a rea (in screen pixels) that the mouse can move around in. URect d_constraints; //!< Specifies the a rea (in screen pixels) that the mouse can move around in.
//! buffer to hold geometry for mouse cursor imagery. //! buffer to hold geometry for mouse cursor imagery.
GeometryBuffer* d_geometry; GeometryBuffer* d_geometry;
//! custom explicit size to render the cursor image at
Size d_customSize;
//! correctly scaled offset used when using custom image size.
mutable Point d_customOffset;
//! true if the mouse initial position has been pre-set
static bool s_initialPositionSet;
//! value set as initial position (if any)
static Point s_initialPosition;
//! boolean indicating whether cached pointer geometry is valid.
mutable bool d_cachedGeometryValid;
}; };
} // End of CEGUI namespace section } // End of CEGUI namespace section
#if defined(_MSC_VER) #if defined(_MSC_VER)
# pragma warning(pop) # pragma warning(pop)
#endif #endif
#endif // end of guard _CEGUIMouseCursor_h_ #endif // end of guard _CEGUIMouseCursor_h_
 End of changes. 4 change blocks. 
2 lines changed or deleted 80 lines changed or added


 CEGUIMultiColumnList.h   CEGUIMultiColumnList.h 
skipping to change at line 107 skipping to change at line 107
class CEGUIEXPORT MultiColumnList : public Window class CEGUIEXPORT MultiColumnList : public Window
{ {
public: public:
static const String EventNamespace; //!< Namespace for global events static const String EventNamespace; //!< Namespace for global events
static const String WidgetTypeName; //!< Window factory nam e static const String WidgetTypeName; //!< Window factory nam e
/******************************************************************* ****** /******************************************************************* ******
Constants Constants
******************************************************************** *****/ ******************************************************************** *****/
// Event names // Event names
static const String EventSelectionModeChanged; //!< Event f /** Event fired when the selection mode for the list box changes.
ired when the selection mode for the list box changes. * Handlers are passed a const WindowEventArgs reference with
static const String EventNominatedSelectColumnChanged;//!< Event fir * WindowEventArgs::window set to the MultiColumnList whose selection m
ed when the nominated select column changes. ode
static const String EventNominatedSelectRowChanged; //!< Event f * has been changed.
ired when the nominated select row changes. */
static const String EventVertScrollbarModeChanged; //!< Event f static const String EventSelectionModeChanged;
ired when the vertical scroll bar 'force' setting changes. /** Event fired when the nominated select column changes.
static const String EventHorzScrollbarModeChanged; //!< Event f * Handlers are passed a const WindowEventArgs reference with
ired when the horizontal scroll bar 'force' setting changes. * WindowEventArgs::window set to the MultiColumnList whose nominated
static const String EventSelectionChanged; //!< * selection column has been changed.
Event fired when the current selection(s) within the list box changes. */
static const String EventListContentsChanged; //!< static const String EventNominatedSelectColumnChanged;
Event fired when the contents of the list box changes. /** Event fired when the nominated select row changes.
static const String EventSortColumnChanged; //!< * Handlers are passed a const WindowEventArgs reference with
Event fired when the sort column changes. * WindowEventArgs::window set to the MultiColumnList whose nominated
static const String EventSortDirectionChanged; //!< Event f * selection row has been changed.
ired when the sort direction changes. */
static const String EventListColumnSized; static const String EventNominatedSelectRowChanged;
//!< Event fired when the width of a column in the list changes. /** Event fired when the vertical scroll bar 'force' setting changes.
static const String EventListColumnMoved; * Handlers are passed a const WindowEventArgs reference with
//!< Event fired when the column order changes. * WindowEventArgs::window set to the MultiColumnList whose vertical sc
roll
* bar mode has been changed.
*/
static const String EventVertScrollbarModeChanged;
/** Event fired when the horizontal scroll bar 'force' setting changes.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the MultiColumnList whose horizontal
* scroll bar mode has been changed.
*/
static const String EventHorzScrollbarModeChanged;
/** Event fired when the current selection(s) within the list box chang
es.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the MultiColumnList whose current
* selection has changed.
*/
static const String EventSelectionChanged;
/** Event fired when the contents of the list box changes.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the MultiColumnList whose contents ha
s
* changed.
*/
static const String EventListContentsChanged;
/** Event fired when the sort column changes.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the MultiColumnList whose sort column
has
* been changed.
*/
static const String EventSortColumnChanged;
/** Event fired when the sort direction changes.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the MultiColumnList whose sort direct
ion
* has been changed.
*/
static const String EventSortDirectionChanged;
/** Event fired when the width of a column in the list changes.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the MultiColumnList for which a colum
n
* width has changed.
*/
static const String EventListColumnSized;
/** Event fired when the column order changes.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the MultiColumnList for which the ord
er
* of columns has been changed.
*/
static const String EventListColumnMoved;
/********************************************************************** *** /********************************************************************** ***
Child Widget name suffix constants Child Widget name suffix constants
*********************************************************************** **/ *********************************************************************** **/
static const String VertScrollbarNameSuffix; //!< Widget name suffix for the vertical scrollbar component. static const String VertScrollbarNameSuffix; //!< Widget name suffix for the vertical scrollbar component.
static const String HorzScrollbarNameSuffix; //!< Widget name suffix for the horizontal scrollbar component. static const String HorzScrollbarNameSuffix; //!< Widget name suffix for the horizontal scrollbar component.
static const String ListHeaderNameSuffix; //!< Widget name suffix for the list header component. static const String ListHeaderNameSuffix; //!< Widget name suffix for the list header component.
/******************************************************************* ****** /******************************************************************* ******
Enumerations Enumerations
 End of changes. 1 change blocks. 
22 lines changed or deleted 74 lines changed or added


 CEGUIMultiLineEditbox.h   CEGUIMultiLineEditbox.h 
skipping to change at line 90 skipping to change at line 90
class CEGUIEXPORT MultiLineEditbox : public Window class CEGUIEXPORT MultiLineEditbox : public Window
{ {
public: public:
static const String EventNamespace; //!< Namespace for global events static const String EventNamespace; //!< Namespace for global events
static const String WidgetTypeName; //!< Window factory nam e static const String WidgetTypeName; //!< Window factory nam e
/******************************************************************* ****** /******************************************************************* ******
Constants Constants
******************************************************************** *****/ ******************************************************************** *****/
// event names // event names
static const String EventReadOnlyModeChanged; //!< /** Event fired when the read-only mode for the edit box has been chang
The read-only mode for the edit box has been changed. ed.
static const String EventWordWrapModeChanged; //!< * Handlers are passed a const WindowEventArgs reference with
The word wrap mode of the text box has been changed. * WindowEventArgs::window set to the MultiLineEditbox whose read-only
static const String EventMaximumTextLengthChanged; //!< The max mode
imum allowable string length has been changed. * was changed.
static const String EventCaratMoved; */
//!< The text carat (insert point) has changed. static const String EventReadOnlyModeChanged;
static const String EventTextSelectionChanged; //!< The cur /** Event fired when the word wrap mode of the edit box has been change
rent text selection has changed. d.
static const String EventEditboxFull; * Handlers are passed a const WindowEventArgs reference with
//!< The number of characters in the edit box has reached the current m * WindowEventArgs::window set to the MultiLineEditbox whose word wrap
aximum. * mode was changed.
static const String EventVertScrollbarModeChanged; //!< Event t */
riggered when the vertical scroll bar 'force' setting changes. static const String EventWordWrapModeChanged;
static const String EventHorzScrollbarModeChanged; //!< Event t /** Event fired when the maximum allowable string length for the edit b
riggered when the horizontal scroll bar 'force' setting changes. ox
* has been changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the MultiLineEditbox whose maximum st
ring
* length was changed.
*/
static const String EventMaximumTextLengthChanged;
/** Event fired when the text caret / current insertion position is cha
nged.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the MultiLineEditbox whose caret posi
tion
* has changed.
*/
static const String EventCaratMoved;
/** Event fired when the current text selection for the edit box is cha
nged.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the MultiLineEditbox whose text selec
tion
* was changed.
*/
static const String EventTextSelectionChanged;
/** Event fired when the number of characters in the edit box reaches t
he
* current maximum length.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the MultiLineEditbox whose text lengt
h
* has reached the set maximum allowable length for the edit box.
*/
static const String EventEditboxFull;
/** Event fired when the mode setting that forces the display of the
* vertical scroll bar for the edit box is changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the MultiLineEditbox whose vertical
* scrollbar mode has been changed.
*/
static const String EventVertScrollbarModeChanged;
/** Event fired when the mode setting that forces the display of the
* horizontal scroll bar for the edit box is changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the MultiLineEditbox whose horizontal
* scrollbar mode has been changed.
*/
static const String EventHorzScrollbarModeChanged;
/********************************************************************** *** /********************************************************************** ***
Child Widget name suffix constants Child Widget name suffix constants
*********************************************************************** **/ *********************************************************************** **/
static const String VertScrollbarNameSuffix; //!< Widget name suffix for the vertical scrollbar component. static const String VertScrollbarNameSuffix; //!< Widget name suffix for the vertical scrollbar component.
static const String HorzScrollbarNameSuffix; //!< Widget name suffix for the horizontal scrollbar component. static const String HorzScrollbarNameSuffix; //!< Widget name suffix for the horizontal scrollbar component.
/********************************************************************** *** /********************************************************************** ***
Implementation struct Implementation struct
*********************************************************************** **/ *********************************************************************** **/
skipping to change at line 398 skipping to change at line 442
Rect object describing the area of the Window to be used for rendering text. Rect object describing the area of the Window to be used for rendering text.
*/ */
//virtual Rect getTextRenderArea_impl(void) const = 0; //virtual Rect getTextRenderArea_impl(void) const = 0;
/******************************************************************* ****** /******************************************************************* ******
Implementation Methods Implementation Methods
******************************************************************** *****/ ******************************************************************** *****/
/*! /*!
\brief \brief
Format the text into lines as needed by the current formatti ng options. Format the text into lines as needed by the current formatti ng options.
\deprecated
This is deprecated in favour of the version taking a boolean.
*/ */
void formatText(void); void formatText(void);
/*!
\brief
Format the text into lines as dictated by the formatting options.
\param update_scrollbars
- true if scrollbar configuration should be performed.
- false if scrollbar configuration should not be performed.
*/
void formatText(const bool update_scrollbars);
/*! /*!
\brief \brief
Return the length of the next token in String \a text starti ng at index \a start_idx. Return the length of the next token in String \a text starti ng at index \a start_idx.
\note \note
Any single whitespace character is one token, any group of o ther characters is a token. Any single whitespace character is one token, any group of o ther characters is a token.
\return \return
The code point length of the token. The code point length of the token.
*/ */
skipping to change at line 563 skipping to change at line 619
return Window::testClassName_impl(class_name); return Window::testClassName_impl(class_name);
} }
/*! /*!
\brief \brief
Internal handler that is triggered when the user interacts with t he scrollbars. Internal handler that is triggered when the user interacts with t he scrollbars.
*/ */
bool handle_scrollChange(const EventArgs& args); bool handle_scrollChange(const EventArgs& args);
// handler triggered when vertical scrollbar is shown or hidden
bool handle_vertScrollbarVisibilityChanged(const EventArgs&);
// validate window renderer // validate window renderer
virtual bool validateWindowRenderer(const String& name) const virtual bool validateWindowRenderer(const String& name) const
{ {
return (name == EventNamespace); return (name == EventNamespace);
} }
/******************************************************************* ****** /******************************************************************* ******
New event handlers New event handlers
******************************************************************** *****/ ******************************************************************** *****/
/*! /*!
 End of changes. 4 change blocks. 
17 lines changed or deleted 78 lines changed or added


 CEGUINamedXMLResourceManager.h   CEGUINamedXMLResourceManager.h 
skipping to change at line 61 skipping to change at line 61
}; };
//------------------------------------------------------------------------- ---// //------------------------------------------------------------------------- ---//
//! implementation class to gather EventSet parts for all template instance s. //! implementation class to gather EventSet parts for all template instance s.
class CEGUIEXPORT ResourceEventSet : public EventSet class CEGUIEXPORT ResourceEventSet : public EventSet
{ {
public: public:
//! Namespace name for all resource managers //! Namespace name for all resource managers
static const String EventNamespace; static const String EventNamespace;
//! Name of event fired when a resource is created by this manager. /** Name of event fired when a resource is created by this manager.
* Handlers are passed a const ResourceEventArgs reference with
* ResourceEventArgs::resourceType String set to the type of resource t
hat
* the event is related to, and ResourceEventArgs::resourceName String
set
* to the name of the resource that the event is related to.
*/
static const String EventResourceCreated; static const String EventResourceCreated;
//! Name of event fired when a resource is destroyed by this manager. /** Name of event fired when a resource is destroyed by this manager.
* Handlers are passed a const ResourceEventArgs reference with
* ResourceEventArgs::resourceType String set to the type of resource t
hat
* the event is related to, and ResourceEventArgs::resourceName String
set
* to the name of the resource that the event is related to.
*/
static const String EventResourceDestroyed; static const String EventResourceDestroyed;
//! Name of event fired when a resource is replaced by this manager. /** Name of event fired when a resource is replaced by this manager.
* Handlers are passed a const ResourceEventArgs reference with
* ResourceEventArgs::resourceType String set to the type of resource t
hat
* the event is related to, and ResourceEventArgs::resourceName String
set
* to the name of the resource that the event is related to.
*/
static const String EventResourceReplaced; static const String EventResourceReplaced;
}; };
//------------------------------------------------------------------------- ---// //------------------------------------------------------------------------- ---//
/*! /*!
\brief \brief
Templatised manager class that loads and manages named XML based resour ces. Templatised manager class that loads and manages named XML based resour ces.
\tparam T \tparam T
skipping to change at line 262 skipping to change at line 277
destroyObject(d_objects.begin()); destroyObject(d_objects.begin());
} }
//------------------------------------------------------------------------- ---// //------------------------------------------------------------------------- ---//
template<typename T, typename U> template<typename T, typename U>
T& NamedXMLResourceManager<T, U>::get(const String& object_name) const T& NamedXMLResourceManager<T, U>::get(const String& object_name) const
{ {
typename ObjectRegistry::const_iterator i(d_objects.find(object_name)); typename ObjectRegistry::const_iterator i(d_objects.find(object_name));
if (i == d_objects.end()) if (i == d_objects.end())
throw UnknownObjectException("NamedXMLResourceManager::get: " CEGUI_THROW(UnknownObjectException("NamedXMLResourceManager::get: "
"No object of type '" + d_resourceType + "' named '" + object_n ame + "No object of type '" + d_resourceType + "' named '" + object_n ame +
"' is present in the collection."); "' is present in the collection."));
return *i->second; return *i->second;
} }
//------------------------------------------------------------------------- ---// //------------------------------------------------------------------------- ---//
template<typename T, typename U> template<typename T, typename U>
bool NamedXMLResourceManager<T, U>::isDefined(const String& object_name) co nst bool NamedXMLResourceManager<T, U>::isDefined(const String& object_name) co nst
{ {
return d_objects.find(object_name) != d_objects.end(); return d_objects.find(object_name) != d_objects.end();
} }
skipping to change at line 328 skipping to change at line 343
case XREA_REPLACE: case XREA_REPLACE:
Logger::getSingleton().logEvent("---- Replacing existing instan ce " Logger::getSingleton().logEvent("---- Replacing existing instan ce "
"of " + d_resourceType + " named '" + object_name + "of " + d_resourceType + " named '" + object_name +
"' (DANGER!)."); "' (DANGER!).");
destroy(object_name); destroy(object_name);
event_name = EventResourceReplaced; event_name = EventResourceReplaced;
break; break;
case XREA_THROW: case XREA_THROW:
delete object; delete object;
throw AlreadyExistsException( CEGUI_THROW(AlreadyExistsException(
"NamedXMLResourceManager::checkExistingObjectAction: " "NamedXMLResourceManager::checkExistingObjectAction: "
"an object of type '" + d_resourceType + "' named '" + "an object of type '" + d_resourceType + "' named '" +
object_name + "' already exists in the collection."); object_name + "' already exists in the collection."));
default: default:
delete object; delete object;
throw InvalidRequestException( CEGUI_THROW(InvalidRequestException(
"NamedXMLResourceManager::checkExistingObjectAction: " "NamedXMLResourceManager::checkExistingObjectAction: "
"Invalid CEGUI::XMLResourceExistsAction was specified."); "Invalid CEGUI::XMLResourceExistsAction was specified."));
} }
} }
else else
event_name = EventResourceCreated; event_name = EventResourceCreated;
d_objects[object_name] = object; d_objects[object_name] = object;
doPostObjectAdditionAction(*object); doPostObjectAdditionAction(*object);
// fire event about this resource change // fire event about this resource change
ResourceEventArgs args(d_resourceType, object_name); ResourceEventArgs args(d_resourceType, object_name);
 End of changes. 9 change blocks. 
9 lines changed or deleted 30 lines changed or added


 CEGUIOpenGLGeometryBuffer.h   CEGUIOpenGLGeometryBuffer.h 
/*********************************************************************** /***********************************************************************
filename: CEGUIOpenGLGeometryBuffer.h filename: CEGUIOpenGLGeometryBuffer.h
created: Thu Jan 8 2009 created: Thu Jan 8 2009
author: Paul D Turner author: Paul D Turner
*************************************************************************/ *************************************************************************/
/************************************************************************** * /************************************************************************** *
* Copyright (C) 2004 - 2009 Paul D Turner & The CEGUI Development Team * Copyright (C) 2004 - 2010 Paul D Turner & The CEGUI Development Team
* *
* Permission is hereby granted, free of charge, to any person obtaining * Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the * a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including * "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish, * without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to * distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to * permit persons to whom the Software is furnished to do so, subject to
* the following conditions: * the following conditions:
* *
* The above copyright notice and this permission notice shall be * The above copyright notice and this permission notice shall be
skipping to change at line 56 skipping to change at line 56
class OpenGLTexture; class OpenGLTexture;
/*! /*!
\brief \brief
OpenGL based implementation of the GeometryBuffer interface. OpenGL based implementation of the GeometryBuffer interface.
*/ */
class OPENGL_GUIRENDERER_API OpenGLGeometryBuffer : public GeometryBuffer class OPENGL_GUIRENDERER_API OpenGLGeometryBuffer : public GeometryBuffer
{ {
public: public:
//! Constructor //! Constructor
OpenGLGeometryBuffer(); OpenGLGeometryBuffer(OpenGLRenderer& owner);
// implementation of abstract members from GeometryBuffer // implementation of abstract members from GeometryBuffer
void draw() const; void draw() const;
void setTranslation(const Vector3& t); void setTranslation(const Vector3& t);
void setRotation(const Vector3& r); void setRotation(const Vector3& r);
void setPivot(const Vector3& p); void setPivot(const Vector3& p);
void setClippingRegion(const Rect& region); void setClippingRegion(const Rect& region);
void appendVertex(const Vertex& vertex); void appendVertex(const Vertex& vertex);
void appendGeometry(const Vertex* const vbuff, uint vertex_count); void appendGeometry(const Vertex* const vbuff, uint vertex_count);
void setActiveTexture(Texture* texture); void setActiveTexture(Texture* texture);
skipping to change at line 92 skipping to change at line 92
void updateMatrix() const; void updateMatrix() const;
//! internal Vertex structure used for GL based geometry. //! internal Vertex structure used for GL based geometry.
struct GLVertex struct GLVertex
{ {
float tex[2]; float tex[2];
float colour[4]; float colour[4];
float position[3]; float position[3];
}; };
//! OpenGLRenderer object that owns the GeometryBuffer.
OpenGLRenderer* d_owner;
//! last texture that was set as active //! last texture that was set as active
OpenGLTexture* d_activeTexture; OpenGLTexture* d_activeTexture;
//! type to track info for per-texture sub batches of geometry //! type to track info for per-texture sub batches of geometry
typedef std::pair<uint, uint> BatchInfo; typedef std::pair<uint, uint> BatchInfo;
//! type of container that tracks BatchInfos. //! type of container that tracks BatchInfos.
typedef std::vector<BatchInfo> BatchList; typedef std::vector<BatchInfo> BatchList;
//! list of texture batches added to the geometry buffer //! list of texture batches added to the geometry buffer
BatchList d_batches; BatchList d_batches;
//! type of container used to queue the geometry //! type of container used to queue the geometry
typedef std::vector<GLVertex> VertexList; typedef std::vector<GLVertex> VertexList;
 End of changes. 3 change blocks. 
2 lines changed or deleted 4 lines changed or added


 CEGUIOpenGLRenderer.h   CEGUIOpenGLRenderer.h 
/*********************************************************************** /***********************************************************************
filename: CEGUIOpenGLRenderer.h filename: CEGUIOpenGLRenderer.h
created: Sun Jan 11 2009 created: Sun Jan 11 2009
author: Paul D Turner author: Paul D Turner
*************************************************************************/ *************************************************************************/
/************************************************************************** * /************************************************************************** *
* Copyright (C) 2004 - 2009 Paul D Turner & The CEGUI Development Team * Copyright (C) 2004 - 2010 Paul D Turner & The CEGUI Development Team
* *
* Permission is hereby granted, free of charge, to any person obtaining * Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the * a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including * "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish, * without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to * distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to * permit persons to whom the Software is furnished to do so, subject to
* the following conditions: * the following conditions:
* *
* The above copyright notice and this permission notice shall be * The above copyright notice and this permission notice shall be
skipping to change at line 83 skipping to change at line 83
//! Use targets based on frame buffer objects if available, else no ne. //! Use targets based on frame buffer objects if available, else no ne.
TTT_FBO, TTT_FBO,
//! Use targets based on pbuffer support if available, else none. //! Use targets based on pbuffer support if available, else none.
TTT_PBUFFER, TTT_PBUFFER,
//! Disable texture targets. //! Disable texture targets.
TTT_NONE TTT_NONE
}; };
/*! /*!
\brief \brief
Convenience function that creates the required objects to initialis
e the
CEGUI system.
The created Renderer will use the current OpenGL viewport as it's
default surface size.
This will create and initialise the following objects for you:
- CEGUI::OpenGLRenderer
- CEGUI::DefaultResourceProvider
- CEGUI::System
\param tt_type
Specifies one of the TextureTargetType enumerated values indicating
the
desired TextureTarget type to be used. Defaults to TTT_AUTO.
\return
Reference to the CEGUI::OpenGLRenderer object that was created.
*/
static OpenGLRenderer& bootstrapSystem(
const TextureTargetType tt_type = TTT_A
UTO);
/*!
\brief
Convenience function that creates the required objects to initialis
e the
CEGUI system.
The created Renderer will use the current OpenGL viewport as it's
default surface size.
This will create and initialise the following objects for you:
- CEGUI::OpenGLRenderer
- CEGUI::DefaultResourceProvider
- CEGUI::System
\param display_size
Size object describing the initial display resolution.
\param tt_type
Specifies one of the TextureTargetType enumerated values indicating
the
desired TextureTarget type to be used. Defaults to TTT_AUTO.
\return
Reference to the CEGUI::OpenGLRenderer object that was created.
*/
static OpenGLRenderer& bootstrapSystem(const Size& display_size,
const TextureTargetType tt_type = TTT_AUT
O);
/*!
\brief
Convenience function to cleanup the CEGUI system and related object
s
that were created by calling the bootstrapSystem function.
This function will destroy the following objects for you:
- CEGUI::System
- CEGUI::DefaultResourceProvider
- CEGUI::OpenGLRenderer
\note
If you did not initialise CEGUI by calling the bootstrapSystem func
tion,
you should \e not call this, but rather delete any objects you crea
ted
manually.
*/
static void destroySystem();
/*!
\brief
Create an OpenGLRenderer object. Create an OpenGLRenderer object.
\param tt_type \param tt_type
Specifies one of the TextureTargetType enumerated values indicating the Specifies one of the TextureTargetType enumerated values indicating the
desired TextureTarget type to be used. desired TextureTarget type to be used.
*/ */
static OpenGLRenderer& create(const TextureTargetType tt_type = TTT_AUT O); static OpenGLRenderer& create(const TextureTargetType tt_type = TTT_AUT O);
/*! /*!
\brief \brief
skipping to change at line 200 skipping to change at line 266
*/ */
Size getAdjustedTextureSize(const Size& sz) const; Size getAdjustedTextureSize(const Size& sz) const;
/*! /*!
\brief \brief
Utility function that will return \a f if it's a power of two, or t he Utility function that will return \a f if it's a power of two, or t he
next power of two up from \a f if it's not. next power of two up from \a f if it's not.
*/ */
static float getNextPOTSize(const float f); static float getNextPOTSize(const float f);
//! set the render states for the specified BlendMode.
void setupRenderingBlendMode(const BlendMode mode, const bool force = f
alse);
private: private:
/*! /*!
\brief \brief
Constructor for OpenGL Renderer objects Constructor for OpenGL Renderer objects
\param tt_type \param tt_type
Specifies one of the TextureTargetType enumerated values indicating the Specifies one of the TextureTargetType enumerated values indicating the
desired TextureTarget type to be used. desired TextureTarget type to be used.
*/ */
OpenGLRenderer(const TextureTargetType tt_type); OpenGLRenderer(const TextureTargetType tt_type);
skipping to change at line 267 skipping to change at line 336
//! container type used to hold Textures we create. //! container type used to hold Textures we create.
typedef std::vector<OpenGLTexture*> TextureList; typedef std::vector<OpenGLTexture*> TextureList;
//! Container used to track textures. //! Container used to track textures.
TextureList d_textures; TextureList d_textures;
//! What the renderer thinks the max texture size is. //! What the renderer thinks the max texture size is.
uint d_maxTextureSize; uint d_maxTextureSize;
//! option of whether to initialise extra states that may not be at def ault //! option of whether to initialise extra states that may not be at def ault
bool d_initExtraStates; bool d_initExtraStates;
//! pointer to a helper that creates TextureTargets supported by the sy stem. //! pointer to a helper that creates TextureTargets supported by the sy stem.
OGLTextureTargetFactory* d_textureTargetFactory; OGLTextureTargetFactory* d_textureTargetFactory;
//! What blend mode we think is active.
BlendMode d_activeBlendMode;
}; };
} // End of CEGUI namespace section } // End of CEGUI namespace section
#if defined(_MSC_VER) #if defined(_MSC_VER)
# pragma warning(pop) # pragma warning(pop)
#endif #endif
#endif // end of guard _CEGUIOpenGLRenderer_h_ #endif // end of guard _CEGUIOpenGLRenderer_h_
 End of changes. 4 change blocks. 
1 lines changed or deleted 82 lines changed or added


 CEGUIProgressBar.h   CEGUIProgressBar.h 
skipping to change at line 58 skipping to change at line 58
*/ */
class CEGUIEXPORT ProgressBar : public Window class CEGUIEXPORT ProgressBar : public Window
{ {
public: public:
static const String EventNamespace; //!< Namespace for global events static const String EventNamespace; //!< Namespace for global events
static const String WidgetTypeName; //!< Window factory nam e static const String WidgetTypeName; //!< Window factory nam e
/******************************************************************* ****** /******************************************************************* ******
Event name constants Event name constants
******************************************************************** *****/ ******************************************************************** *****/
static const String EventProgressChanged; //!< Event f /** Event fired whenever the progress value is changed.
ired whenever the progress value changes. * Handlers are passed a const WindowEventArgs reference with
static const String EventProgressDone; //!< Event fired whe * WindowEventArgs::window set to the ProgressBar whose value has been
n the progress bar reaches 100%. * changed.
*/
static const String EventProgressChanged;
/** Event fired when the progress bar's value reaches 100%.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the ProgressBar whose progress value
* has reached 100%.
*/
static const String EventProgressDone;
/******************************************************************* ***** /******************************************************************* *****
Accessor Functions Accessor Functions
******************************************************************** ****/ ******************************************************************** ****/
/*! /*!
\brief \brief
return the current progress value return the current progress value
*/ */
float getProgress(void) const {return d_progress;} float getProgress(void) const {return d_progress;}
 End of changes. 1 change blocks. 
4 lines changed or deleted 12 lines changed or added


 CEGUIPropertyHelper.h   CEGUIPropertyHelper.h 
skipping to change at line 59 skipping to change at line 59
static Size stringToSize(const String& str); static Size stringToSize(const String& str);
static Point stringToPoint(const String& str); static Point stringToPoint(const String& str);
static Vector3 stringToVector3(const String& str); static Vector3 stringToVector3(const String& str);
static Rect stringToRect(const String& str); static Rect stringToRect(const String& str);
static const Image* stringToImage(const String& str); static const Image* stringToImage(const String& str);
static colour stringToColour(const String& str); static colour stringToColour(const String& str);
static ColourRect stringToColourRect(const String& str); static ColourRect stringToColourRect(const String& str);
static UDim stringToUDim(const String& str); static UDim stringToUDim(const String& str);
static UVector2 stringToUVector2(const String& str); static UVector2 stringToUVector2(const String& str);
static URect stringToURect(const String& str); static URect stringToURect(const String& str);
static UBox stringToUBox(const String& str);
static String floatToString(float val); static String floatToString(float val);
static String uintToString(uint val); static String uintToString(uint val);
static String intToString(int val); static String intToString(int val);
static String boolToString(bool val); static String boolToString(bool val);
static String sizeToString(const Size& val); static String sizeToString(const Size& val);
static String pointToString(const Point& val); static String pointToString(const Point& val);
static String vector3ToString(const Vector3& val); static String vector3ToString(const Vector3& val);
static String rectToString(const Rect& val); static String rectToString(const Rect& val);
static String imageToString(const Image* const val); static String imageToString(const Image* const val);
static String colourToString(const colour& val); static String colourToString(const colour& val);
static String colourRectToString(const ColourRect& val); static String colourRectToString(const ColourRect& val);
static String udimToString(const UDim& val); static String udimToString(const UDim& val);
static String uvector2ToString(const UVector2& val); static String uvector2ToString(const UVector2& val);
static String urectToString(const URect& val); static String urectToString(const URect& val);
static String uboxToString(const UBox& val);
}; };
} // End of CEGUI namespace section } // End of CEGUI namespace section
#endif // end of guard _CEGUIPropertyHelper_h_ #endif // end of guard _CEGUIPropertyHelper_h_
 End of changes. 2 change blocks. 
0 lines changed or deleted 2 lines changed or added


 CEGUIPushButton.h   CEGUIPushButton.h 
skipping to change at line 58 skipping to change at line 58
class CEGUIEXPORT PushButton : public ButtonBase class CEGUIEXPORT PushButton : public ButtonBase
{ {
public: public:
static const String EventNamespace; //!< Namespace for global events static const String EventNamespace; //!< Namespace for global events
static const String WidgetTypeName; //!< Window factory nam e static const String WidgetTypeName; //!< Window factory nam e
/******************************************************************* ****** /******************************************************************* ******
Event name constants Event name constants
******************************************************************** *****/ ******************************************************************** *****/
// generated internally by Window // generated internally by Window
static const String EventClicked; /** Event fired when the button is clicked.
//!< The button was clicked. * Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the PushButton that was clicked.
*/
static const String EventClicked;
/******************************************************************* ****** /******************************************************************* ******
Construction and Destruction Construction and Destruction
******************************************************************** *****/ ******************************************************************** *****/
/*! /*!
\brief \brief
Constructor for base PushButton class Constructor for base PushButton class
*/ */
PushButton(const String& type, const String& name); PushButton(const String& type, const String& name);
 End of changes. 1 change blocks. 
2 lines changed or deleted 5 lines changed or added


 CEGUIRadioButton.h   CEGUIRadioButton.h 
skipping to change at line 60 skipping to change at line 60
class CEGUIEXPORT RadioButton : public ButtonBase class CEGUIEXPORT RadioButton : public ButtonBase
{ {
public: public:
static const String EventNamespace; //!< Namespace for global events static const String EventNamespace; //!< Namespace for global events
static const String WidgetTypeName; //!< Window factory nam e static const String WidgetTypeName; //!< Window factory nam e
/******************************************************************* ****** /******************************************************************* ******
Event name constants Event name constants
******************************************************************** *****/ ******************************************************************** *****/
// generated internally by Window // generated internally by Window
static const String EventSelectStateChanged; //!< /** Event fired when the selected state of the radio button changes.
The selected state of the widget has changed. * Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the RadioButton whose selected state
has
* changed.
*/
static const String EventSelectStateChanged;
/******************************************************************* ****** /******************************************************************* ******
Accessor Functions Accessor Functions
******************************************************************** *****/ ******************************************************************** *****/
/*! /*!
\brief \brief
return true if the radio button is selected (has the checkma rk) return true if the radio button is selected (has the checkma rk)
\return \return
true if this widget is selected, false if the widget is not selected. true if this widget is selected, false if the widget is not selected.
 End of changes. 1 change blocks. 
2 lines changed or deleted 7 lines changed or added


 CEGUIRect.h   CEGUIRect.h 
skipping to change at line 193 skipping to change at line 193
return ((d_left == rhs.d_left) && (d_right == rhs.d_right) & & (d_top == rhs.d_top) && (d_bottom == rhs.d_bottom)); return ((d_left == rhs.d_left) && (d_right == rhs.d_right) & & (d_top == rhs.d_top) && (d_bottom == rhs.d_bottom));
} }
bool operator!=(const Rect& rhs) const {return !ope rator==(rhs);} bool operator!=(const Rect& rhs) const {return !ope rator==(rhs);}
Rect& operator=(const Rect& rhs); Rect& operator=(const Rect& rhs);
Rect operator*(float scalar) const { return Rect(d_left * scalar, d_top * scalar, d_right * scalar, d_bottom * scalar); } Rect operator*(float scalar) const { return Rect(d_left * scalar, d_top * scalar, d_right * scalar, d_bottom * scalar); }
const Rect& operator*=(float scalar) { d_left *= scalar; d_top *= sc alar; d_right *= scalar; d_bottom *= scalar; return *this; } const Rect& operator*=(float scalar) { d_left *= scalar; d_top *= sc alar; d_right *= scalar; d_bottom *= scalar; return *this; }
Rect operator+(const Rect& r) const { return Rect(d_left
+ r.d_left, d_top + r.d_top, d_right + r.d_right, d_bottom + r.d_bottom);
}
/******************************************************************* ****** /******************************************************************* ******
Data Fields Data Fields
******************************************************************** *****/ ******************************************************************** *****/
float d_top, d_bottom, d_left, d_right; float d_left, d_top, d_right, d_bottom;
}; };
} // End of CEGUI namespace section } // End of CEGUI namespace section
#endif // end of guard _CEGUIRect_h_ #endif // end of guard _CEGUIRect_h_
 End of changes. 2 change blocks. 
1 lines changed or deleted 5 lines changed or added


 CEGUIRefCounted.h   CEGUIRefCounted.h 
skipping to change at line 40 skipping to change at line 40
// Start of CEGUI namespace section // Start of CEGUI namespace section
namespace CEGUI namespace CEGUI
{ {
/*! /*!
\brief \brief
Simple, generic, reference counted pointer class. This is primarily he re Simple, generic, reference counted pointer class. This is primarily he re
for use by the Events system to track when to delete slot bindings. for use by the Events system to track when to delete slot bindings.
*/ */
template<typename T> template<typename T>
class CEGUIEXPORT RefCounted class RefCounted
{ {
public: public:
/*! /*!
\brief \brief
Default constructor. Default constructor.
*/ */
RefCounted() : RefCounted() :
d_object(0), d_object(0),
d_count(0) d_count(0)
{ {
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 CEGUIRenderer.h   CEGUIRenderer.h 
skipping to change at line 56 skipping to change at line 56
//! Diagonal split goes from top-left to bottom-right //! Diagonal split goes from top-left to bottom-right
TopLeftToBottomRight, TopLeftToBottomRight,
//! Diagonal split goes from bottom-left to top-right //! Diagonal split goes from bottom-left to top-right
BottomLeftToTopRight BottomLeftToTopRight
}; };
//------------------------------------------------------------------------- ---// //------------------------------------------------------------------------- ---//
/*! /*!
\brief \brief
Enumerated type that contains the valid options that specify the type o
f
blending that is to be performed for subsequent rendering operations.
*/
enum BlendMode
{
//! Invalid mode indicator.
BM_INVALID,
//! Use normal blending mode.
BM_NORMAL,
//! Use blending mode suitable for textures with premultiplied colours.
BM_RTT_PREMULTIPLIED
};
//-------------------------------------------------------------------------
---//
/*!
\brief
Abstract class defining the basic required interface for Renderer objec ts. Abstract class defining the basic required interface for Renderer objec ts.
Objects derived from Renderer are the means by which the GUI system Objects derived from Renderer are the means by which the GUI system
interfaces with specific rendering technologies. To use a rendering sy stem interfaces with specific rendering technologies. To use a rendering sy stem
or API to draw CEGUI imagery requires that an appropriate Renderer obje ct be or API to draw CEGUI imagery requires that an appropriate Renderer obje ct be
available. available.
*/ */
class CEGUIEXPORT Renderer class CEGUIEXPORT Renderer
{ {
public: public:
 End of changes. 1 change blocks. 
0 lines changed or deleted 19 lines changed or added


 CEGUIRenderingSurface.h   CEGUIRenderingSurface.h 
skipping to change at line 113 skipping to change at line 113
\note \note
For performance reasons, events are only fired for queues that are in u se; For performance reasons, events are only fired for queues that are in u se;
these are queues that have had some interaction - such as clearing or a dding these are queues that have had some interaction - such as clearing or a dding
geometry. geometry.
*/ */
class CEGUIEXPORT RenderingSurface : public EventSet class CEGUIEXPORT RenderingSurface : public EventSet
{ {
public: public:
//! Namespace for global events from RenderingSurface objects. //! Namespace for global events from RenderingSurface objects.
static const String EventNamespace; static const String EventNamespace;
//! Event that signals the start of rendering for a queue. /** Event fired when rendering of a RenderQueue begins for the
* RenderingSurface.
* Handlers are passed a const RenderQueueEventArgs reference with
* RenderQueueEventArgs::queueID set to one of the ::RenderQueueID
* enumerated values indicating the queue that is about to start
* rendering.
*/
static const String EventRenderQueueStarted; static const String EventRenderQueueStarted;
//! Event that signals the end of rendering for a queue. /** Event fired when rendering of a RenderQueue completes for the
* RenderingSurface.
* Handlers are passed a const RenderQueueEventArgs reference with
* RenderQueueEventArgs::queueID set to one of the ::RenderQueueID
* enumerated values indicating the queue that has completed rendering.
*/
static const String EventRenderQueueEnded; static const String EventRenderQueueEnded;
/*! /*!
\brief \brief
Constructor for RenderingSurface objects. Constructor for RenderingSurface objects.
\param target \param target
RenderTarget object that will receive rendered output from the RenderTarget object that will receive rendered output from the
RenderingSurface being created. RenderingSurface being created.
 End of changes. 2 change blocks. 
2 lines changed or deleted 13 lines changed or added


 CEGUIRenderingWindow.h   CEGUIRenderingWindow.h 
skipping to change at line 247 skipping to change at line 247
\note \note
In normal usage you should never have to call this directly. There may In normal usage you should never have to call this directly. There may
be certain cases where it might be useful to call this when using t he be certain cases where it might be useful to call this when using t he
RenderEffect system. RenderEffect system.
*/ */
void realiseGeometry(); void realiseGeometry();
/*! /*!
\brief \brief
Mark the geometry used when rendering the RenderingWindow back to i
t's
owning RenderingSurface as invalid so that it gets regenerated on t
he
next rendering pass.
This is separate from the main invalidate() function because in mos
t
cases invalidating the cached imagery will not require the potentia
lly
expensive regeneration of the geometry for the RenderingWindow itse
lf.
*/
void invalidateGeometry();
/*!
\brief
Return the RenderingSurface that owns the RenderingWindow. This is Return the RenderingSurface that owns the RenderingWindow. This is
also the RenderingSurface that will be used when the RenderingWindo w also the RenderingSurface that will be used when the RenderingWindo w
renders back it's cached imagery content. renders back it's cached imagery content.
\return \return
RenderingSurface object that owns, and is targetted by, the RenderingSurface object that owns, and is targetted by, the
RenderingWindow. RenderingWindow.
*/ */
const RenderingSurface& getOwner() const; const RenderingSurface& getOwner() const;
RenderingSurface& getOwner(); RenderingSurface& getOwner();
 End of changes. 1 change blocks. 
0 lines changed or deleted 17 lines changed or added


 CEGUIScheme.h   CEGUIScheme.h 
skipping to change at line 330 skipping to change at line 330
String aliasName; String aliasName;
String targetName; String targetName;
}; };
struct FalagardMapping struct FalagardMapping
{ {
String windowName; String windowName;
String targetName; String targetName;
String rendererName; String rendererName;
String lookName; String lookName;
String effectName;
}; };
/******************************************************************* ****** /******************************************************************* ******
Implementation Data Implementation Data
******************************************************************** *****/ ******************************************************************** *****/
String d_name; //!< the name of this scheme. String d_name; //!< the name of this scheme.
std::vector<LoadableUIElement> d_imagesets; std::vector<LoadableUIElement> d_imagesets;
std::vector<LoadableUIElement> d_imagesetsFromImages; std::vector<LoadableUIElement> d_imagesetsFromImages;
std::vector<LoadableUIElement> d_fonts; std::vector<LoadableUIElement> d_fonts;
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 CEGUIScheme_xmlHandler.h   CEGUIScheme_xmlHandler.h 
skipping to change at line 100 skipping to change at line 100
//! Attribute specifying the base type of a falagard mapped window type . //! Attribute specifying the base type of a falagard mapped window type .
static const String TargetTypeAttribute; static const String TargetTypeAttribute;
//! Attribute specifying the name of a LookNFeel for a falagard mapping . //! Attribute specifying the name of a LookNFeel for a falagard mapping .
static const String LookNFeelAttribute; static const String LookNFeelAttribute;
//! Element specifying a module and set of WindowRendererFactory elemen ts. //! Element specifying a module and set of WindowRendererFactory elemen ts.
static const String WindowRendererSetElement; static const String WindowRendererSetElement;
//! Element specifying a WindowRendererFactory type. //! Element specifying a WindowRendererFactory type.
static const String WindowRendererFactoryElement; static const String WindowRendererFactoryElement;
//! Attribute specifying the type name of a window renderer. //! Attribute specifying the type name of a window renderer.
static const String WindowRendererAttribute; static const String WindowRendererAttribute;
//! Attribute specifying the name of a registered RenderEffect.
static const String RenderEffectAttribute;
//! Function that handles the opening GUIScheme XML element. //! Function that handles the opening GUIScheme XML element.
void elementGUISchemeStart(const XMLAttributes& attributes); void elementGUISchemeStart(const XMLAttributes& attributes);
//! Function that handles the Imageset XML element. //! Function that handles the Imageset XML element.
void elementImagesetStart(const XMLAttributes& attributes); void elementImagesetStart(const XMLAttributes& attributes);
//! Function that handles the ImagesetFromImage XML element. //! Function that handles the ImagesetFromImage XML element.
void elementImagesetFromImageStart(const XMLAttributes& attributes); void elementImagesetFromImageStart(const XMLAttributes& attributes);
//! Function that handles the Font XML element. //! Function that handles the Font XML element.
void elementFontStart(const XMLAttributes& attributes); void elementFontStart(const XMLAttributes& attributes);
//! Function that handles the WindowSet XML element. //! Function that handles the WindowSet XML element.
 End of changes. 1 change blocks. 
0 lines changed or deleted 2 lines changed or added


 CEGUIScrollablePane.h   CEGUIScrollablePane.h 
skipping to change at line 76 skipping to change at line 76
area larger than the ScrollablePane itself and these child windows can be area larger than the ScrollablePane itself and these child windows can be
scrolled into view using the scrollbars of the scrollable pane. scrolled into view using the scrollbars of the scrollable pane.
*/ */
class CEGUIEXPORT ScrollablePane : public Window class CEGUIEXPORT ScrollablePane : public Window
{ {
public: public:
//! Window factory name //! Window factory name
static const String WidgetTypeName; static const String WidgetTypeName;
//! Namespace for global events //! Namespace for global events
static const String EventNamespace; static const String EventNamespace;
//! Event fired when an area on the content pane has been updated. /** Event fired when an area on the content pane has been updated.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the ScrollablePane whose content pane
* has been updated.
*/
static const String EventContentPaneChanged; static const String EventContentPaneChanged;
//! Event triggered when the vertical scroll bar 'force' setting change /** Event fired when the vertical scroll bar 'force' setting is changed
s. .
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the ScrollablePane whose vertical scr
oll
* bar mode has been changed.
*/
static const String EventVertScrollbarModeChanged; static const String EventVertScrollbarModeChanged;
//! Event triggered when the horizontal scroll bar 'force' setting chan /** Event fired when the horizontal scroll bar 'force' setting is chang
ges. ed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the ScrollablePane whose horizontal s
croll
* bar mode has been changed.
*/
static const String EventHorzScrollbarModeChanged; static const String EventHorzScrollbarModeChanged;
//! Event fired when the auto size setting changes. /** Event fired when the auto size setting for the pane is changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the ScrollablePane whose auto size
* setting has been changed.
*/
static const String EventAutoSizeSettingChanged; static const String EventAutoSizeSettingChanged;
//! Event fired when the pane gets scrolled. /** Event fired when the pane gets scrolled.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the ScrollablePane that has been scro
lled.
*/
static const String EventContentPaneScrolled; static const String EventContentPaneScrolled;
//! Widget name suffix for the vertical scrollbar component. //! Widget name suffix for the vertical scrollbar component.
static const String VertScrollbarNameSuffix; static const String VertScrollbarNameSuffix;
//! Widget name suffix for the horizontal scrollbar component. //! Widget name suffix for the horizontal scrollbar component.
static const String HorzScrollbarNameSuffix; static const String HorzScrollbarNameSuffix;
//! Widget name suffix for the scrolled container component. //! Widget name suffix for the scrolled container component.
static const String ScrolledContainerNameSuffix; static const String ScrolledContainerNameSuffix;
//! Constructor for the ScrollablePane base class. //! Constructor for the ScrollablePane base class.
ScrollablePane(const String& type, const String& name); ScrollablePane(const String& type, const String& name);
 End of changes. 5 change blocks. 
7 lines changed or deleted 29 lines changed or added


 CEGUIScrollbar.h   CEGUIScrollbar.h 
/*********************************************************************** /***********************************************************************
filename: CEGUIScrollbar.h filename: CEGUIScrollbar.h
created: 13/4/2004 created: 13/4/2004
author: Paul D Turner author: Paul D Turner
purpose: Interface to base class for Scrollbar widget
*************************************************************************/ *************************************************************************/
/************************************************************************** * /************************************************************************** *
* Copyright (C) 2004 - 2006 Paul D Turner & The CEGUI Development Team * Copyright (C) 2004 - 2010 Paul D Turner & The CEGUI Development Team
* *
* Permission is hereby granted, free of charge, to any person obtaining * Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the * a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including * "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish, * without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to * distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to * permit persons to whom the Software is furnished to do so, subject to
* the following conditions: * the following conditions:
* *
* The above copyright notice and this permission notice shall be * The above copyright notice and this permission notice shall be
skipping to change at line 38 skipping to change at line 36
* OTHER DEALINGS IN THE SOFTWARE. * OTHER DEALINGS IN THE SOFTWARE.
************************************************************************** */ ************************************************************************** */
#ifndef _CEGUIScrollbar_h_ #ifndef _CEGUIScrollbar_h_
#define _CEGUIScrollbar_h_ #define _CEGUIScrollbar_h_
#include "../CEGUIBase.h" #include "../CEGUIBase.h"
#include "../CEGUIWindow.h" #include "../CEGUIWindow.h"
#include "CEGUIScrollbarProperties.h" #include "CEGUIScrollbarProperties.h"
#if defined(_MSC_VER) #if defined(_MSC_VER)
# pragma warning(push) # pragma warning(push)
# pragma warning(disable : 4251) # pragma warning(disable : 4251)
#endif #endif
// Start of CEGUI namespace section // Start of CEGUI namespace section
namespace CEGUI namespace CEGUI
{ {
/*! /*!
\brief \brief
Base class for ItemEntry window renderer objects. Base class for Scrollbar window renderer objects.
*/ */
class CEGUIEXPORT ScrollbarWindowRenderer : public WindowRenderer class CEGUIEXPORT ScrollbarWindowRenderer : public WindowRenderer
{ {
public: public:
/*! /*!
\brief \brief
Constructor Constructor
*/ */
ScrollbarWindowRenderer(const String& name); ScrollbarWindowRenderer(const String& name);
/*! /*!
\brief \brief
update the size and location of the thumb to properly represent the update the size and location of the thumb to properly represent the
current state of the scroll bar current state of the scroll bar
*/ */
virtual void updateThumb(void) = 0; virtual void updateThumb(void) = 0;
/*! /*!
\brief \brief
return value that best represents current scroll bar position given return value that best represents current scroll bar position given
the current location of the thumb. the
current location of the thumb.
\return \return
float value that, given the thumb widget position, best represents float value that, given the thumb widget position, best represents
the current position for the scroll bar. the
current position for the scroll bar.
*/ */
virtual float getValueFromThumb(void) const = 0; virtual float getValueFromThumb(void) const = 0;
/*! /*!
\brief \brief
Given window location \a pt, return a value indicating what change Given window location \a pt, return a value indicating what change
should be should be made to the scroll bar.
made to the scroll bar.
\param pt \param pt
Point object describing a pixel position in window space. Point object describing a pixel position in window space.
\return \return
- -1 to indicate scroll bar position should be moved to a lower val ue. - -1 to indicate scroll bar position should be moved to a lower val ue.
- 0 to indicate scroll bar position should not be changed. - 0 to indicate scroll bar position should not be changed.
- +1 to indicate scroll bar position should be moved to a higher va lue. - +1 to indicate scroll bar position should be moved to a higher va lue.
*/ */
virtual float getAdjustDirectionFromPoint(const Point& pt) const = 0 ; virtual float getAdjustDirectionFromPoint(const Point& pt) const = 0;
}; };
/*! /*!
\brief \brief
Base scroll bar class. Base scroll bar class.
This base class for scroll bars does not have any idea of direction This base class for scroll bars does not have any idea of direction - a
- a derived class would derived class would add whatever meaning is appropriate according to wh
add whatever meaning is appropriate according to what that derived c at
lass that derived class represents to the user.
represents to the user.
*/ */
class CEGUIEXPORT Scrollbar : public Window class CEGUIEXPORT Scrollbar : public Window
{ {
public: public:
static const String EventNamespace; //!< //! Namespace for global events
Namespace for global events static const String EventNamespace;
static const String WidgetTypeName; //!< Window factory nam //! Window factory name
e static const String WidgetTypeName;
/******************************************************************* /**********************************************************************
****** ***
Event name constants Event name constants
******************************************************************** ***********************************************************************
*****/ **/
static const String EventScrollPositionChanged; //!< Name of /** Event fired when the scroll bar position value changes.
the event fired when the scroll bar position value changes * Handlers are passed a const WindowEventArgs reference with
static const String EventThumbTrackStarted; //!< * WindowEventArgs::window set to the Scrollbar whose position value ha
Name of the event fired when the user begins dragging the thumb. d
static const String EventThumbTrackEnded; * changed.
//!< Name of the event fired when the user releases the thumb. */
static const String EventScrollConfigChanged; //!< static const String EventScrollPositionChanged;
Name of the event fired when the scroll bar configuration data changes. /** Event fired when the user begins dragging the scrollbar thumb.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Scrollbar whose thumb is being
* dragged.
*/
static const String EventThumbTrackStarted;
/** Event fired when the user releases the scrollbar thumb.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Scrollbar whose thumb has been
* released.
*/
static const String EventThumbTrackEnded;
/** Event fired when the scroll bar configuration data is changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Scrollbar whose configuration
* has been changed.
*/
static const String EventScrollConfigChanged;
/********************************************************************** *** /********************************************************************** ***
Child Widget name suffix constants Child Widget name suffix constants
*********************************************************************** **/ *********************************************************************** **/
static const String ThumbNameSuffix; //!< Widget name suffix //! Widget name suffix for the thumb component.
for the thumb component. static const String ThumbNameSuffix;
static const String IncreaseButtonNameSuffix; //!< Widget name suffix //! Widget name suffix for the increase button component.
for the increase button component. static const String IncreaseButtonNameSuffix;
static const String DecreaseButtonNameSuffix; //!< Widget name suffix //! Widget name suffix for the decrease button component.
for the decrease button component. static const String DecreaseButtonNameSuffix;
/******************************************************************* /**********************************************************************
****** ***
Accessor functions Accessor functions
******************************************************************** ***********************************************************************
*****/ **/
/*! /*!
\brief \brief
Return the size of the document or data. Return the size of the document or data.
The document size should be thought of as the total size of The document size should be thought of as the total size of the dat
the data that a
is being scrolled through (the number of lines in a text fil that is being scrolled through (the number of lines in a text file
e for example). for
example).
\note \note
The returned value has no meaning within the Gui system, it The returned value has no meaning within the Gui system, it is left
is left up to the up
application to assign appropriate values for the application to the application to assign appropriate values for the application
specific use of specific use of the scroll bar.
the scroll bar.
\return \return
float value specifying the currently set document size. float value specifying the currently set document size.
*/ */
float getDocumentSize(void) const {return d_do float getDocumentSize(void) const
cumentSize;} {
return d_documentSize;
}
/*! /*!
\brief \brief
Return the page size for this scroll bar. Return the page size for this scroll bar.
The page size is typically the amount of data that can be di The page size is typically the amount of data that can be displayed
splayed at one at
time. This value is also used when calculating the amount t one time. This value is also used when calculating the amount the
he position will position will change when you click either side of the scroll bar
change when you click either side of the scroll bar thumb - thumb, the amount the position changes will is (pageSize - overlapS
the amount the ize).
position changes will is (pageSize - overlapSize).
\note \note
The returned value has no meaning within the Gui system, it The returned value has no meaning within the Gui system, it is left
is left up to the up
application to assign appropriate values for the application to the application to assign appropriate values for the application
specific use of specific use of the scroll bar.
the scroll bar.
\return \return
float value specifying the currently set page size. float value specifying the currently set page size.
*/ */
float getPageSize(void) const {return d_pa float getPageSize(void) const
geSize;} {
return d_pageSize;
}
/*! /*!
\brief \brief
Return the step size for this scroll bar. Return the step size for this scroll bar.
The step size is typically a single unit of data that can be The step size is typically a single unit of data that can be displa
displayed, this is the yed,
amount the position will change when you click either of the this is the amount the position will change when you click either o
arrow buttons on the f
scroll bar. (this could be 1 for a single line of text, for the arrow buttons on the scroll bar. (this could be 1 for a single
example). line of text, for example).
\note \note
The returned value has no meaning within the Gui system, it The returned value has no meaning within the Gui system, it is left
is left up to the up
application to assign appropriate values for the application to the application to assign appropriate values for the application
specific use of specific use of the scroll bar.
the scroll bar.
\return \return
float value specifying the currently set step size. float value specifying the currently set step size.
*/ */
float getStepSize(void) const {return d_st float getStepSize(void) const
epSize;} {
return d_stepSize;
}
/*! /*!
\brief \brief
Return the overlap size for this scroll bar. Return the overlap size for this scroll bar.
The overlap size is the amount of data from the end of a 'pa The overlap size is the amount of data from the end of a 'page' tha
ge' that will t
remain visible when the position is moved by a page. This i will remain visible when the position is moved by a page. This is
s usually used usually used so that the user keeps some context of where they were
so that the user keeps some context of where they were withi within the document's data when jumping a page at a time.
n the document's
data when jumping a page at a time.
\note \note
The returned value has no meaning within the Gui system, it The returned value has no meaning within the Gui system, it is left
is left up to the up
application to assign appropriate values for the application to the application to assign appropriate values for the application
specific use of specific use of the scroll bar.
the scroll bar.
\return \return
float value specifying the currently set overlap size. float value specifying the currently set overlap size.
*/ */
float getOverlapSize(void) const {return d_ov float getOverlapSize(void) const
erlapSize;} {
return d_overlapSize;
}
/*! /*!
\brief \brief
Return the current position of scroll bar within the documen Return the current position of scroll bar within the document.
t.
The range of the scroll bar is from 0 to the size of the doc The range of the scroll bar is from 0 to the size of the document m
ument minus the inus
size of a page (0 <= position <= (documentSize - pageSize)). the size of a page (0 <= position <= (documentSize - pageSize)).
\note \note
The returned value has no meaning within the Gui system, it The returned value has no meaning within the Gui system, it is left
is left up to the up
application to assign appropriate values for the application to the application to assign appropriate values for the application
specific use of specific use of the scroll bar.
the scroll bar.
\return \return
float value specifying the current position of the scroll ba float value specifying the current position of the scroll bar withi
r within its n its
document. document.
*/ */
float getScrollPosition(void) const {return d_position;} float getScrollPosition(void) const
{
return d_position;
}
/*! /*!
\brief \brief
Return a pointer to the 'increase' PushButtoncomponent widget for t his Return a pointer to the 'increase' PushButtoncomponent widget for t his
Scrollbar. Scrollbar.
\return \return
Pointer to a PushButton object. Pointer to a PushButton object.
\exception UnknownObjectException \exception UnknownObjectException
skipping to change at line 250 skipping to change at line 293
Return a pointer to the Thumb component widget for this Scrollbar. Return a pointer to the Thumb component widget for this Scrollbar.
\return \return
Pointer to a Thumb object. Pointer to a Thumb object.
\exception UnknownObjectException \exception UnknownObjectException
Thrown if the Thumb component does not exist. Thrown if the Thumb component does not exist.
*/ */
Thumb* getThumb() const; Thumb* getThumb() const;
/******************************************************************* /**********************************************************************
****** ***
Manipulator Commands Manipulator Commands
******************************************************************** ***********************************************************************
*****/ **/
/*! /*!
\brief \brief
Initialises the Scrollbar object ready for use. Initialises the Scrollbar object ready for use.
\note \note
This must be called for every window created. Normally this This must be called for every window created. Normally this is han
is handled automatically by the WindowFactory for each Window type. dled
automatically by the WindowFactory for each Window type.
\return \return
Nothing Nothing
*/ */
virtual void initialiseComponents(void); virtual void initialiseComponents(void);
/*! /*!
\brief \brief
Set the size of the document or data. Set the size of the document or data.
The document size should be thought of as the total size of The document size should be thought of as the total size of the dat
the data that a
is being scrolled through (the number of lines in a text fil that is being scrolled through (the number of lines in a text file
e for example). for
example).
\note \note
The value set has no meaning within the Gui system, it is le The value set has no meaning within the Gui system, it is left up t
ft up to the o
application to assign appropriate values for the application the application to assign appropriate values for the application
specific use of specific use of the scroll bar.
the scroll bar.
\param document_size \param document_size
float value specifying the document size. float value specifying the document size.
\return \return
Nothing. Nothing.
*/ */
void setDocumentSize(float document_size); void setDocumentSize(float document_size);
/*! /*!
\brief \brief
Set the page size for this scroll bar. Set the page size for this scroll bar.
The page size is typically the amount of data that can be di The page size is typically the amount of data that can be displayed
splayed at one at
time. This value is also used when calculating the amount t one time. This value is also used when calculating the amount the
he position will position will change when you click either side of the scroll bar
change when you click either side of the scroll bar thumb - thumb, the amount the position changes will is (pageSize - overlapS
the amount the ize).
position changes will is (pageSize - overlapSize).
\note \note
The value set has no meaning within the Gui system, it is le The value set has no meaning within the Gui system, it is left up t
ft up to the o the
application to assign appropriate values for the application application to assign appropriate values for the application specif
specific use of ic
the scroll bar. use of the scroll bar.
\param page_size \param page_size
float value specifying the page size. float value specifying the page size.
\return \return
Nothing. Nothing.
*/ */
void setPageSize(float page_size); void setPageSize(float page_size);
/*! /*!
\brief \brief
Set the step size for this scroll bar. Set the step size for this scroll bar.
The step size is typically a single unit of data that can be The step size is typically a single unit of data that can be displa
displayed, this is the yed,
amount the position will change when you click either of the this is the amount the position will change when you click either o
arrow buttons on the f the
scroll bar. (this could be 1 for a single line of text, for arrow buttons on the scroll bar. (this could be 1 for a single lin
example). e of
text, for example).
\note \note
The value set has no meaning within the Gui system, it is le The value set has no meaning within the Gui system, it is left up t
ft up to the o the
application to assign appropriate values for the application application to assign appropriate values for the application specif
specific use of ic
the scroll bar. use of the scroll bar.
\param step_size \param step_size
float value specifying the step size. float value specifying the step size.
\return \return
Nothing. Nothing.
*/ */
void setStepSize(float step_size); void setStepSize(float step_size);
/*! /*!
\brief \brief
Set the overlap size for this scroll bar. Set the overlap size for this scroll bar.
The overlap size is the amount of data from the end of a 'pa The overlap size is the amount of data from the end of a 'page' tha
ge' that will t
remain visible when the position is moved by a page. This i will remain visible when the position is moved by a page. This is
s usually used usually used so that the user keeps some context of where they were
so that the user keeps some context of where they were withi within the document's data when jumping a page at a time.
n the document's
data when jumping a page at a time.
\note \note
The value set has no meaning within the Gui system, it is le The value set has no meaning within the Gui system, it is left up t
ft up to the o the
application to assign appropriate values for the application application to assign appropriate values for the application specif
specific use of ic
the scroll bar. use of the scroll bar.
\param overlap_size \param overlap_size
float value specifying the overlap size. float value specifying the overlap size.
\return \return
Nothing. Nothing.
*/ */
void setOverlapSize(float overlap_size); void setOverlapSize(float overlap_size);
/*! /*!
\brief \brief
Set the current position of scroll bar within the document. Set the current position of scroll bar within the document.
The range of the scroll bar is from 0 to the size of the doc The range of the scroll bar is from 0 to the size of the document m
ument minus the inus
size of a page (0 <= position <= (documentSize - pageSize)), the size of a page (0 <= position <= (documentSize - pageSize)), an
any attempt to y
set the position outside this range will be adjusted so that attempt to set the position outside this range will be adjusted so
it falls within that
the legal range. it falls within the legal range.
\note \note
The returned value has no meaning within the Gui system, it The returned value has no meaning within the Gui system, it is left
is left up to the up
application to assign appropriate values for the application to the application to assign appropriate values for the application
specific use of specific use of the scroll bar.
the scroll bar.
\param position \param position
float value specifying the position of the scroll bar within float value specifying the position of the scroll bar within its
its document.
document.
\return \return
Nothing. Nothing.
*/ */
void setScrollPosition(float position); void setScrollPosition(float position);
/******************************************************************* /*!
****** \brief
Construction / Destruction Sets multiple scrollbar configuration parameters simultaneously.
********************************************************************
*****/
/*!
\brief
Constructor for Scrollbar objects
*/
Scrollbar(const String& type, const String& name);
/*! This function is provided in order to be able to minimise the numbe
\brief r
Destructor for Scrollbar objects of internal state updates that occur when modifying the scrollbar
*/ parameters.
virtual ~Scrollbar(void);
protected: \param document_size
/******************************************************************* Pointer to a float value holding the new value to be used for the
****** scroll bar document size. If this is 0 the document size is left
Implementation Methods unchanged.
********************************************************************
*****/
/*!
\brief
update the size and location of the thumb to properly repres
ent the current state of the scroll bar
*/
void updateThumb(void);
/*! \param page_size
\brief Pointer to a float value holding the new value to be used for the s
return value that best represents current scroll bar positio croll
n given the current location of the thumb. bar page size. If this is 0 the page size is left unchanged.
\return \param step_size
float value that, given the thumb widget position, best repr Pointer to a float value holding the new value to be used for the s
esents the current position for the scroll bar. croll
*/ bar step size. If this is 0 the step size is left unchanged.
float getValueFromThumb(void) const;
/*! \param overlap_size
\brief Pointer to a float value holding the new value to be used for the s
Given window location \a pt, return a value indicating what croll
change should be bar overlap size. If this is 0 then overlap size is left unchanged
made to the scroll bar. .
\param pt \param position
Point object describing a pixel position in window space. Pointer to a float value holding the new value to be used for the s
croll
bar current scroll position. If this is 0 then the current positio
n is
left unchanged.
\return \note
- -1 to indicate scroll bar position should be moved to a lo Even if \a position is 0, the scrollbar position may still change
wer value. depending on how the other changes affect the scrollbar.
- 0 to indicate scroll bar position should not be changed. */
- +1 to indicate scroll bar position should be moved to a hi void setConfig(const float* const document_size,
gher value. const float* const page_size,
*/ const float* const step_size,
float getAdjustDirectionFromPoint(const Point& pt) const; const float* const overlap_size,
const float* const position);
/*! /*!
\brief \brief
update the size and location of the thumb to properly represent the Enable or disable the 'end lock' mode for the scrollbar.
current state of the scroll bar
When enabled and the current position of the scrollbar is at the en
d of
it's travel, the end lock mode of the scrollbar will automatically
update the position when the document and/or page size change in or
der
that the scroll position will remain at the end of it's travel. Th
is
can be used to implement auto-scrolling in certain other widget typ
es.
\param enabled
- true to indicate that end lock mode should be enabled.
- false to indicate that end lock mode should be disabled.
*/ */
//virtual void updateThumb_impl(void) = 0; void setEndLockEnabled(const bool enabled);
/*! /*!
\brief \brief
return value that best represents current scroll bar position given Returns whether the 'end lock'mode for the scrollbar is enabled.
the current location of the thumb.
When enabled, and the current position of the scrollbar is at the e
nd of
it's travel, the end lock mode of the scrollbar will automatically
update the scrollbar position when the document and/or page size ch
ange
in order that the scroll position will remain at the end of it's tr
avel.
This can be used to implement auto-scrolling in certain other widge
t
types.
\return \return
float value that, given the thumb widget position, best represents - true to indicate that the end lock mode is enabled.
the current position for the scroll bar. - false to indicate that the end lock mode is disabled.
*/ */
//virtual float getValueFromThumb_impl(void) const = 0; bool isEndLockEnabled() const;
//! Constructor for Scrollbar objects
Scrollbar(const String& type, const String& name);
//! Destructor for Scrollbar objects
virtual ~Scrollbar(void);
protected:
/*!
\brief
update the size and location of the thumb to properly represent the
current state of the scroll bar
*/
void updateThumb(void);
/*! /*!
\brief \brief
Given window location \a pt, return a value indicating what change return value that best represents current scroll bar position given
should be the
made to the scroll bar. current location of the thumb.
\return
float value that, given the thumb widget position, best represents
the
current position for the scroll bar.
*/
float getValueFromThumb(void) const;
/*!
\brief
Given window location \a pt, return a value indicating what change
should be made to the scroll bar.
\param pt \param pt
Point object describing a pixel position in window space. Point object describing a pixel position in window space.
\return \return
- -1 to indicate scroll bar position should be moved to a lower val ue. - -1 to indicate scroll bar position should be moved to a lower val ue.
- 0 to indicate scroll bar position should not be changed. - 0 to indicate scroll bar position should not be changed.
- +1 to indicate scroll bar position should be moved to a higher va lue. - +1 to indicate scroll bar position should be moved to a higher va lue.
*/ */
//virtual float getAdjustDirectionFromPoint_impl(const Point& pt) con st = 0; float getAdjustDirectionFromPoint(const Point& pt) const;
/*! /** implementation func that updates scroll position value, returns tru
\brief e if
handler function for when thumb moves. * value was changed. NB: Fires no events and does no other updates.
*/ */
bool handleThumbMoved(const EventArgs& e); bool setScrollPosition_impl(const float position);
/*! //! return whether the current scroll position is at the end of the ran
\brief ge.
handler function for when the increase button is clicked. bool isAtEnd() const;
*/
bool handleIncreaseClicked(const EventArgs& e);
/*! //! return the max allowable scroll position value
\brief float getMaxScrollPosition() const;
handler function for when the decrease button is clicked.
*/
bool handleDecreaseClicked(const EventArgs& e);
/*! //! handler function for when thumb moves.
\brief bool handleThumbMoved(const EventArgs& e);
handler function for when thumb tracking begins
*/
bool handleThumbTrackStarted(const EventArgs& e);
/*! //! handler function for when the increase button is clicked.
\brief bool handleIncreaseClicked(const EventArgs& e);
handler function for when thumb tracking begins
*/
bool handleThumbTrackEnded(const EventArgs& e);
/*! //! handler function for when the decrease button is clicked.
\brief bool handleDecreaseClicked(const EventArgs& e);
Return whether this window was inherited from the given clas
s name at some point in the inheritance hierarchy.
\param class_name //! handler function for when thumb tracking begins
The class name that is to be checked. bool handleThumbTrackStarted(const EventArgs& e);
\return //! handler function for when thumb tracking begins
true if this window was inherited from \a class_name. false bool handleThumbTrackEnded(const EventArgs& e);
if not.
*/
virtual bool testClassName_impl(const String& class_name) const
{
if (class_name=="Scrollbar") return true;
return Window::testClassName_impl(class_name);
}
// validate window renderer /*!
\brief
Return whether this window was inherited from the given class name
at
some point in the inheritance hierarchy.
\param class_name
The class name that is to be checked.
\return
true if this window was inherited from \a class_name. false if not.
*/
virtual bool testClassName_impl(const String& class_name) const
{
if (class_name == "Scrollbar") return true;
return Window::testClassName_impl(class_name);
}
//! validate window renderer
virtual bool validateWindowRenderer(const String& name) const virtual bool validateWindowRenderer(const String& name) const
{ {
return (name == "Scrollbar"); return (name == "Scrollbar");
} }
/******************************************************************* // New event handlers for slider widget
****** //! Handler triggered when the scroll position changes
New event handlers for slider widget virtual void onScrollPositionChanged(WindowEventArgs& e);
********************************************************************
*****/
/*!
\brief
Handler triggered when the scroll position changes
*/
virtual void onScrollPositionChanged(WindowEventArgs& e);
/*! //! Handler triggered when the user begins to drag the scroll bar thumb
\brief .
Handler triggered when the user begins to drag the scroll ba virtual void onThumbTrackStarted(WindowEventArgs& e);
r thumb.
*/
virtual void onThumbTrackStarted(WindowEventArgs& e);
/*! //! Handler triggered when the scroll bar thumb is released
\brief virtual void onThumbTrackEnded(WindowEventArgs& e);
Handler triggered when the scroll bar thumb is released
*/
virtual void onThumbTrackEnded(WindowEventArgs& e);
/*! //! Handler triggered when the scroll bar data configuration changes
\brief virtual void onScrollConfigChanged(WindowEventArgs& e);
Handler triggered when the scroll bar data configuration cha
nges
*/
virtual void onScrollConfigChanged(WindowEventArgs& e);
/******************************************************************* // Overridden event handlers
****** virtual void onMouseButtonDown(MouseEventArgs& e);
Overridden event handlers virtual void onMouseWheel(MouseEventArgs& e);
********************************************************************
*****/
virtual void onMouseButtonDown(MouseEventArgs& e);
virtual void onMouseWheel(MouseEventArgs& e);
/******************************************************************* // Implementation Data
****** //! The size of the document / data being scrolled thorugh.
Implementation Data float d_documentSize;
******************************************************************** //! The size of a single 'page' of data.
*****/ float d_pageSize;
float d_documentSize; //!< The size of the document / data //! Step size used for increase / decrease button clicks.
being scrolled thorugh. float d_stepSize;
float d_pageSize; //!< The size of a single 'p //! Amount of overlap when jumping by a page.
age' of data. float d_overlapSize;
float d_stepSize; //!< Step size used for incr //! Current scroll position.
ease / decrease button clicks. float d_position;
float d_overlapSize; //!< Amount of overlap when jumping //! whether 'end lock' mode is enabled.
by a page. bool d_endLockPosition;
float d_position; //!< Current scroll position
.
private: private:
/******************************************************************* // Static Properties for this class
****** static ScrollbarProperties::DocumentSize d_documentSizeProperty;
Static Properties for this class static ScrollbarProperties::PageSize d_pageSizeProperty;
******************************************************************** static ScrollbarProperties::StepSize d_stepSizeProperty;
*****/ static ScrollbarProperties::OverlapSize d_overlapSizeProperty;
static ScrollbarProperties::DocumentSize d_documentSizeProper static ScrollbarProperties::ScrollPosition d_scrollPositionProperty;
ty; static ScrollbarProperties::EndLockEnabled d_endLockEnabledProperty;
static ScrollbarProperties::PageSize d_pageSizeProperty;
static ScrollbarProperties::StepSize d_stepSizeProperty;
static ScrollbarProperties::OverlapSize d_overlapSizePropert
y;
static ScrollbarProperties::ScrollPosition d_scrollPositionProp
erty;
/******************************************************************* //! Adds scrollbar specific properties.
****** void addScrollbarProperties(void);
Private methods
********************************************************************
*****/
void addScrollbarProperties(void);
}; };
} // End of CEGUI namespace section } // End of CEGUI namespace section
#if defined(_MSC_VER) #if defined(_MSC_VER)
# pragma warning(pop) # pragma warning(pop)
#endif #endif
#endif // end of guard _CEGUIScrollbar_h_ #endif // end of guard _CEGUIScrollbar_h_
 End of changes. 98 change blocks. 
450 lines changed or deleted 468 lines changed or added


 CEGUIScrollbarProperties.h   CEGUIScrollbarProperties.h 
skipping to change at line 166 skipping to change at line 166
ScrollPosition() : Property( ScrollPosition() : Property(
"ScrollPosition", "ScrollPosition",
"Property to get/set the scroll position of the Scrollbar. Value is a float.", "Property to get/set the scroll position of the Scrollbar. Value is a float.",
"0.000000") "0.000000")
{} {}
String get(const PropertyReceiver* receiver) const; String get(const PropertyReceiver* receiver) const;
void set(PropertyReceiver* receiver, const String& value); void set(PropertyReceiver* receiver, const String& value);
}; };
/*!
\brief
Property to access the end lock mode setting for the Scrollbar.
\par Usage:
- Name: EndLockEnabled
- Format: "[text]".
\par Where [Text] is:
- "True" to indicate end lock mode is enabled.
- "False" to indicate end lock mode is disabled.
*/
class EndLockEnabled : public Property
{
public:
EndLockEnabled() : Property(
"EndLockEnabled",
"Property to get/set the 'end lock' mode setting for the Scrollbar.
"
"Value is either \"True\" or \"False\".",
"False")
{}
String get(const PropertyReceiver* receiver) const;
void set(PropertyReceiver* receiver, const String& value);
};
} // End of ScrollbarProperties namespace section } // End of ScrollbarProperties namespace section
} // End of CEGUI namespace section } // End of CEGUI namespace section
#endif // end of guard _CEGUIScrollbarProperties_h_ #endif // end of guard _CEGUIScrollbarProperties_h_
 End of changes. 1 change blocks. 
0 lines changed or deleted 27 lines changed or added


 CEGUIScrolledContainer.h   CEGUIScrolledContainer.h 
skipping to change at line 56 skipping to change at line 56
Helper container window class which is used in the implementation of th e Helper container window class which is used in the implementation of th e
ScrollablePane widget class. ScrollablePane widget class.
*/ */
class CEGUIEXPORT ScrolledContainer : public Window class CEGUIEXPORT ScrolledContainer : public Window
{ {
public: public:
//! Type name for ScrolledContainer. //! Type name for ScrolledContainer.
static const String WidgetTypeName; static const String WidgetTypeName;
//! Namespace for global events //! Namespace for global events
static const String EventNamespace; static const String EventNamespace;
//! Event fired whenever some child changes. /** Event fired whenever some child changes.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the ScrolledContainer for which a chi
ld
* window has changed.
*/
static const String EventContentChanged; static const String EventContentChanged;
//! Event fired when the autosize setting changes. /** Event fired when the autosize setting changes.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the ScrolledContainer whose auto size
* setting has been changed.
*/
static const String EventAutoSizeSettingChanged; static const String EventAutoSizeSettingChanged;
//! Constructor for ScrolledContainer objects. //! Constructor for ScrolledContainer objects.
ScrolledContainer(const String& type, const String& name); ScrolledContainer(const String& type, const String& name);
//! Destructor for ScrolledContainer objects. //! Destructor for ScrolledContainer objects.
~ScrolledContainer(void); ~ScrolledContainer(void);
/*! /*!
\brief \brief
skipping to change at line 186 skipping to change at line 194
virtual void onAutoSizeSettingChanged(WindowEventArgs& e); virtual void onAutoSizeSettingChanged(WindowEventArgs& e);
//! handles notifications about child windows being moved. //! handles notifications about child windows being moved.
bool handleChildSized(const EventArgs& e); bool handleChildSized(const EventArgs& e);
//! handles notifications about child windows being sized. //! handles notifications about child windows being sized.
bool handleChildMoved(const EventArgs& e); bool handleChildMoved(const EventArgs& e);
// overridden from Window. // overridden from Window.
void drawSelf(const RenderingContext&) {}; void drawSelf(const RenderingContext&) {};
Rect getInnerRectClipper_impl() const; Rect getInnerRectClipper_impl() const;
Rect getNonClientChildWindowContentArea_impl() const;
Rect getClientChildWindowContentArea_impl() const;
Rect getHitTestRect_impl() const; Rect getHitTestRect_impl() const;
void onChildAdded(WindowEventArgs& e); void onChildAdded(WindowEventArgs& e);
void onChildRemoved(WindowEventArgs& e); void onChildRemoved(WindowEventArgs& e);
void onParentSized(WindowEventArgs& e); void onParentSized(WindowEventArgs& e);
//! type definition for collection used to track event connections. //! type definition for collection used to track event connections.
typedef std::multimap<Window*, Event::Connection> ConnectionTracker; typedef std::multimap<Window*, Event::Connection> ConnectionTracker;
//! Tracks event connections we make. //! Tracks event connections we make.
ConnectionTracker d_eventConnections; ConnectionTracker d_eventConnections;
//! Holds extents of the content pane. //! Holds extents of the content pane.
 End of changes. 3 change blocks. 
2 lines changed or deleted 14 lines changed or added


 CEGUIScrolledItemListBase.h   CEGUIScrolledItemListBase.h 
skipping to change at line 59 skipping to change at line 59
public: public:
static const String EventNamespace; //!< Namespace for global events static const String EventNamespace; //!< Namespace for global events
/********************************************************************** ** /********************************************************************** **
Constants Constants
*********************************************************************** **/ *********************************************************************** **/
static const String VertScrollbarNameSuffix; //!< Name suffix for verti cal scrollbar component static const String VertScrollbarNameSuffix; //!< Name suffix for verti cal scrollbar component
static const String HorzScrollbarNameSuffix; //!< Name suffix for horiz ontal scrollbar component static const String HorzScrollbarNameSuffix; //!< Name suffix for horiz ontal scrollbar component
static const String ContentPaneNameSuffix; //!< Name suffix for the c ontent pane component static const String ContentPaneNameSuffix; //!< Name suffix for the c ontent pane component
static const String EventVertScrollbarModeChanged; //!< Event fired whe /** Event fired when the vertical scroll bar mode changes.
n the vertical scroll bar mode changes. * Handlers are passed a const WindowEventArgs reference with
static const String EventHorzScrollbarModeChanged; //!< Event fired whe * WindowEventArgs::window set to the ScrolledItemListBase whose vertic
n the horizontal scroll bar mode change. al
* scroll bar mode has been changed.
*/
static const String EventVertScrollbarModeChanged;
/** Event fired when the horizontal scroll bar mode change.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the ScrolledItemListBase whose horizo
ntal
* scroll bar mode has been changed.
*/
static const String EventHorzScrollbarModeChanged;
/********************************************************************** ** /********************************************************************** **
Accessors Accessors
*********************************************************************** **/ *********************************************************************** **/
/*! /*!
\brief \brief
Returns whether the vertical scrollbar is being forced visible. Des pite content size. Returns whether the vertical scrollbar is being forced visible. Des pite content size.
*/ */
bool isVertScrollbarAlwaysShown(void) const {return d_forceVScroll;} bool isVertScrollbarAlwaysShown(void) const {return d_forceVScroll;}
 End of changes. 1 change blocks. 
4 lines changed or deleted 14 lines changed or added


 CEGUISize.h   CEGUISize.h 
skipping to change at line 48 skipping to change at line 48
/*! /*!
\brief \brief
Class that holds the size (width & height) of something. Class that holds the size (width & height) of something.
*/ */
class CEGUIEXPORT Size class CEGUIEXPORT Size
{ {
public: public:
Size(void) {} Size(void) {}
Size(float width, float height) : d_width(width), d_height(height) { } Size(float width, float height) : d_width(width), d_height(height) { }
Size(const Size& v): d_width(v.d_width), d_height(v.d_height) {}
bool operator==(const Size& other) const; bool operator==(const Size& other) const;
bool operator!=(const Size& other) const; bool operator!=(const Size& other) const;
float d_width, d_height; float d_width, d_height;
Size operator*(float c) const
{
return Size(d_width * c, d_height * c);
}
Size operator+(const Size& s) const
{
return Size(d_width + s.d_width, d_height + s.d_height);
}
}; };
} // End of CEGUI namespace section } // End of CEGUI namespace section
#endif // end of guard _CEGUISize_h_ #endif // end of guard _CEGUISize_h_
 End of changes. 2 change blocks. 
0 lines changed or deleted 11 lines changed or added


 CEGUISlider.h   CEGUISlider.h 
skipping to change at line 106 skipping to change at line 106
*/ */
class CEGUIEXPORT Slider : public Window class CEGUIEXPORT Slider : public Window
{ {
public: public:
static const String EventNamespace; //!< Namespace for global events static const String EventNamespace; //!< Namespace for global events
static const String WidgetTypeName; //!< Window factory nam e static const String WidgetTypeName; //!< Window factory nam e
/******************************************************************* ****** /******************************************************************* ******
Event name constants Event name constants
******************************************************************** *****/ ******************************************************************** *****/
static const String EventValueChanged; //!< Event fired whe /** Event fired when the slider value changes.
n the slider value changes. * Handlers are passed a const WindowEventArgs reference with
static const String EventThumbTrackStarted; //!< Name of the eve * WindowEventArgs::window set to the Slider whose value has changed.
nt fired when the user begins dragging the thumb. */
static const String EventThumbTrackEnded; //!< Name of static const String EventValueChanged;
the event fired when the user releases the thumb. /** Event fired when the user begins dragging the thumb.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Slider whose thumb has started to
* be dragged.
*/
static const String EventThumbTrackStarted;
/** Event fired when the user releases the thumb.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Slider whose thumb has been relea
sed.
*/
static const String EventThumbTrackEnded;
/********************************************************************** *** /********************************************************************** ***
Child Widget name suffix constants Child Widget name suffix constants
*********************************************************************** **/ *********************************************************************** **/
static const String ThumbNameSuffix; //!< Widget name suffix for the thumb component. static const String ThumbNameSuffix; //!< Widget name suffix for the thumb component.
/******************************************************************* ****** /******************************************************************* ******
Accessors Accessors
******************************************************************** *****/ ******************************************************************** *****/
/*! /*!
 End of changes. 1 change blocks. 
6 lines changed or deleted 17 lines changed or added


 CEGUISpinner.h   CEGUISpinner.h 
skipping to change at line 71 skipping to change at line 71
Integer, //!< Integer decimal. Integer, //!< Integer decimal.
Hexadecimal, //!< Hexadecimal. Hexadecimal, //!< Hexadecimal.
Octal //!< Octal Octal //!< Octal
}; };
/****************************************************************** ******* /****************************************************************** *******
Events system constants Events system constants
******************************************************************* ******/ ******************************************************************* ******/
static const String WidgetTypeName; //!< Window fac tory name static const String WidgetTypeName; //!< Window fac tory name
static const String EventNamespace; //!< Namespace for global events static const String EventNamespace; //!< Namespace for global events
static const String EventValueChanged; //!< Event fire /** Event fired when the spinner current value changes.
d when the spinner value changes. * Handlers are passed a const WindowEventArgs reference with
static const String EventStepChanged; //!< Event fire * WindowEventArgs::window set to the Spinner whose current value h
d when the step value changes. as
static const String EventMaximumValueChanged; //!< Event fire * changed.
d when the maximum spinner value changes. */
static const String EventMinimumValueChanged; //!< Event fire static const String EventValueChanged;
d when the minimum spinner value changes. /** Event fired when the spinner step value is changed.
static const String EventTextInputModeChanged; //!< Event fire * Handlers area passed a const WindowEventArgs reference with
d when the input/display mode is changed. * WindowEventArgs::window set to the Spinner whose step value has
* changed.
*/
static const String EventStepChanged;
/** Event fired when the maximum spinner value is changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Spinner whose maximum value h
as
* been changed.
*/
static const String EventMaximumValueChanged;
/** Event fired when the minimum spinner value is changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::windows set to the Spinner whose minimum value
has
* been changed.
*/
static const String EventMinimumValueChanged;
/** Event fired when the spinner text input & display mode is chang
ed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Spinner whose text mode has b
een
* changed.
*/
static const String EventTextInputModeChanged;
/****************************************************************** ******* /****************************************************************** *******
Component widget name suffix strings Component widget name suffix strings
******************************************************************* ******/ ******************************************************************* ******/
static const String EditboxNameSuffix; //!< Widget name su ffix for the editbox thumb component. static const String EditboxNameSuffix; //!< Widget name su ffix for the editbox thumb component.
static const String IncreaseButtonNameSuffix; //!< Widget name su ffix for the increase button component. static const String IncreaseButtonNameSuffix; //!< Widget name su ffix for the increase button component.
static const String DecreaseButtonNameSuffix; //!< Widget name su ffix for the decrease button component. static const String DecreaseButtonNameSuffix; //!< Widget name su ffix for the decrease button component.
/****************************************************************** ******* /****************************************************************** *******
Object Construction and Destruction Object Construction and Destruction
 End of changes. 1 change blocks. 
10 lines changed or deleted 35 lines changed or added


 CEGUIString.h   CEGUIString.h 
skipping to change at line 298 skipping to change at line 298
iterator& operator+=(difference_type offset) iterator& operator+=(difference_type offset)
{ {
this->d_ptr += offset; this->d_ptr += offset;
return *this; return *this;
} }
iterator operator+(difference_type offset) const iterator operator+(difference_type offset) const
{ {
iterator temp = *this; iterator temp = *this;
return temp + offset; return temp += offset;
} }
iterator& operator-=(difference_type offset) iterator& operator-=(difference_type offset)
{ {
return *this += -offset; return *this += -offset;
} }
iterator operator-(difference_type offset) const iterator operator-(difference_type offset) const
{ {
iterator temp = *this; iterator temp = *this;
skipping to change at line 777 skipping to change at line 777
\return \return
- 0 if the specified sub-strings are equal - 0 if the specified sub-strings are equal
- <0 if specified sub-strings are lexicographically smaller than \a str - <0 if specified sub-strings are lexicographically smaller than \a str
- >0 if specified sub-strings are lexicographically greater than \a str - >0 if specified sub-strings are lexicographically greater than \a str
\exception std::out_of_range Thrown if either \a idx or \a str_id x are invalid. \exception std::out_of_range Thrown if either \a idx or \a str_id x are invalid.
*/ */
int compare(size_type idx, size_type len, const String& str, size_type str_idx = 0, size_type str_len = npos) const int compare(size_type idx, size_type len, const String& str, size_type str_idx = 0, size_type str_len = npos) const
{ {
if ((d_cplength < idx) || (str.d_cplength < str_idx)) if ((d_cplength < idx) || (str.d_cplength < str_idx))
throw std::out_of_range("Index is out of range for C EGUI::String"); CEGUI_THROW(std::out_of_range("Index is out of range for CEGUI::String"));
if ((len == npos) || (idx + len > d_cplength)) if ((len == npos) || (idx + len > d_cplength))
len = d_cplength - idx; len = d_cplength - idx;
if ((str_len == npos) || (str_idx + str_len > str.d_cplength )) if ((str_len == npos) || (str_idx + str_len > str.d_cplength ))
str_len = str.d_cplength - str_idx; str_len = str.d_cplength - str_idx;
int val = (len == 0) ? 0 : utf32_comp_utf32(&ptr()[idx], &st r.ptr()[str_idx], (len < str_len) ? len : str_len); int val = (len == 0) ? 0 : utf32_comp_utf32(&ptr()[idx], &st r.ptr()[str_idx], (len < str_len) ? len : str_len);
return (val != 0) ? ((val < 0) ? -1 : 1) : (len < str_len) ? -1 : (len == str_len) ? 0 : 1; return (val != 0) ? ((val < 0) ? -1 : 1) : (len < str_len) ? -1 : (len == str_len) ? 0 : 1;
skipping to change at line 850 skipping to change at line 850
\return \return
- 0 if the specified sub-strings are equal - 0 if the specified sub-strings are equal
- <0 if specified sub-strings are lexicographically smaller than \a std_str - <0 if specified sub-strings are lexicographically smaller than \a std_str
- >0 if specified sub-strings are lexicographically greater than \a std_str - >0 if specified sub-strings are lexicographically greater than \a std_str
\exception std::out_of_range Thrown if either \a idx or \a str_id x are invalid. \exception std::out_of_range Thrown if either \a idx or \a str_id x are invalid.
*/ */
int compare(size_type idx, size_type len, const std::str ing& std_str, size_type str_idx = 0, size_type str_len = npos) const int compare(size_type idx, size_type len, const std::str ing& std_str, size_type str_idx = 0, size_type str_len = npos) const
{ {
if (d_cplength < idx) if (d_cplength < idx)
throw std::out_of_range("Index is out of range for C EGUI::String"); CEGUI_THROW(std::out_of_range("Index is out of range for CEGUI::String"));
if (std_str.size() < str_idx) if (std_str.size() < str_idx)
throw std::out_of_range("Index is out of range for s td::string"); CEGUI_THROW(std::out_of_range("Index is out of range for std::string"));
if ((len == npos) || (idx + len > d_cplength)) if ((len == npos) || (idx + len > d_cplength))
len = d_cplength - idx; len = d_cplength - idx;
if ((str_len == npos) || (str_idx + str_len > std_str.size() )) if ((str_len == npos) || (str_idx + str_len > std_str.size() ))
str_len = (size_type)std_str.size() - str_idx; str_len = (size_type)std_str.size() - str_idx;
int val = (len == 0) ? 0 : utf32_comp_char(&ptr()[idx], &std _str.c_str()[str_idx], (len < str_len) ? len : str_len); int val = (len == 0) ? 0 : utf32_comp_char(&ptr()[idx], &std _str.c_str()[str_idx], (len < str_len) ? len : str_len);
return (val != 0) ? ((val < 0) ? -1 : 1) : (len < str_len) ? -1 : (len == str_len) ? 0 : 1; return (val != 0) ? ((val < 0) ? -1 : 1) : (len < str_len) ? -1 : (len == str_len) ? 0 : 1;
skipping to change at line 962 skipping to change at line 962
- 0 if the specified sub-strings are equal - 0 if the specified sub-strings are equal
- <0 if specified sub-strings are lexicographically smaller than \a utf8_str - <0 if specified sub-strings are lexicographically smaller than \a utf8_str
- >0 if specified sub-strings are lexicographically greater than \a utf8_str - >0 if specified sub-strings are lexicographically greater than \a utf8_str
\exception std::out_of_range Thrown if \a idx is invalid. \exception std::out_of_range Thrown if \a idx is invalid.
\exception std::length_error Thrown if \a str_cplen is set to npo s. \exception std::length_error Thrown if \a str_cplen is set to npo s.
*/ */
int compare(size_type idx, size_type len, const utf8* ut f8_str, size_type str_cplen) const int compare(size_type idx, size_type len, const utf8* ut f8_str, size_type str_cplen) const
{ {
if (d_cplength < idx) if (d_cplength < idx)
throw std::out_of_range("Index is out of range for C EGUI::String"); CEGUI_THROW(std::out_of_range("Index is out of range for CEGUI::String"));
if (str_cplen == npos) if (str_cplen == npos)
throw std::length_error("Length for utf8 encoded str ing can not be 'npos'"); CEGUI_THROW(std::length_error("Length for utf8 encod ed string can not be 'npos'"));
if ((len == npos) || (idx + len > d_cplength)) if ((len == npos) || (idx + len > d_cplength))
len = d_cplength - idx; len = d_cplength - idx;
int val = (len == 0) ? 0 : utf32_comp_utf8(&ptr()[idx], utf8 _str, (len < str_cplen) ? len : str_cplen); int val = (len == 0) ? 0 : utf32_comp_utf8(&ptr()[idx], utf8 _str, (len < str_cplen) ? len : str_cplen);
return (val != 0) ? ((val < 0) ? -1 : 1) : (len < str_cplen) ? -1 : (len == str_cplen) ? 0 : 1; return (val != 0) ? ((val < 0) ? -1 : 1) : (len < str_cplen) ? -1 : (len == str_cplen) ? 0 : 1;
} }
/*! /*!
skipping to change at line 1053 skipping to change at line 1053
- 0 if the specified sub-strings are equal - 0 if the specified sub-strings are equal
- <0 if specified sub-strings are lexicographically smaller than \a chars - <0 if specified sub-strings are lexicographically smaller than \a chars
- >0 if specified sub-strings are lexicographically greater than \a chars - >0 if specified sub-strings are lexicographically greater than \a chars
\exception std::out_of_range Thrown if \a idx is invalid. \exception std::out_of_range Thrown if \a idx is invalid.
\exception std::length_error Thrown if \a chars_len is set to npo s. \exception std::length_error Thrown if \a chars_len is set to npo s.
*/ */
int compare(size_type idx, size_type len, const char* ch ars, size_type chars_len) const int compare(size_type idx, size_type len, const char* ch ars, size_type chars_len) const
{ {
if (d_cplength < idx) if (d_cplength < idx)
throw std::out_of_range("Index is out of range for C EGUI::String"); CEGUI_THROW(std::out_of_range("Index is out of range for CEGUI::String"));
if (chars_len == npos) if (chars_len == npos)
throw std::length_error("Length for char array can n ot be 'npos'"); CEGUI_THROW(std::length_error("Length for char array can not be 'npos'"));
if ((len == npos) || (idx + len > d_cplength)) if ((len == npos) || (idx + len > d_cplength))
len = d_cplength - idx; len = d_cplength - idx;
int val = (len == 0) ? 0 : utf32_comp_char(&ptr()[idx], char s, (len < chars_len) ? len : chars_len); int val = (len == 0) ? 0 : utf32_comp_char(&ptr()[idx], char s, (len < chars_len) ? len : chars_len);
return (val != 0) ? ((val < 0) ? -1 : 1) : (len < chars_len) ? -1 : (len == chars_len) ? 0 : 1; return (val != 0) ? ((val < 0) ? -1 : 1) : (len < chars_len) ? -1 : (len == chars_len) ? 0 : 1;
} }
//////////////////////////////////////////////////////////////////// ////// //////////////////////////////////////////////////////////////////// //////
skipping to change at line 1122 skipping to change at line 1122
Zero based index of the code point to be returned. Zero based index of the code point to be returned.
\return \return
The utf32 code point at the given index within the String. The utf32 code point at the given index within the String.
\exception std::out_of_range Thrown if \a idx is >= length(). \exception std::out_of_range Thrown if \a idx is >= length().
*/ */
reference at(size_type idx) reference at(size_type idx)
{ {
if (d_cplength <= idx) if (d_cplength <= idx)
throw std::out_of_range("Index is out of range for C EGUI::String"); CEGUI_THROW(std::out_of_range("Index is out of range for CEGUI::String"));
return ptr()[idx]; return ptr()[idx];
} }
/*! /*!
\brief \brief
Returns the code point at the given index. Returns the code point at the given index.
\param idx \param idx
Zero based index of the code point to be returned. Zero based index of the code point to be returned.
\return \return
The utf32 code point at the given index within the String. The utf32 code point at the given index within the String.
\exception std::out_of_range Thrown if \a idx is >= length(). \exception std::out_of_range Thrown if \a idx is >= length().
*/ */
const_reference at(size_type idx) const const_reference at(size_type idx) const
{ {
if (d_cplength <= idx) if (d_cplength <= idx)
throw std::out_of_range("Index is out of range for C EGUI::String"); CEGUI_THROW(std::out_of_range("Index is out of range for CEGUI::String"));
return ptr()[idx]; return ptr()[idx];
} }
//////////////////////////////////////////////////////////////////// ////// //////////////////////////////////////////////////////////////////// //////
// C-Strings and arrays // C-Strings and arrays
//////////////////////////////////////////////////////////////////// ////// //////////////////////////////////////////////////////////////////// //////
/*! /*!
\brief \brief
Returns contents of the String as a null terminated string o f utf8 encoded data. Returns contents of the String as a null terminated string o f utf8 encoded data.
skipping to change at line 1229 skipping to change at line 1229
\return \return
The number of utf8 encoded code units transferred to the buf fer. The number of utf8 encoded code units transferred to the buf fer.
\note A code unit does not equal a code point. A utf32 code point, when encoded as utf8, can occupy between 1 and 4 code units. \note A code unit does not equal a code point. A utf32 code point, when encoded as utf8, can occupy between 1 and 4 code units.
\exception std::out_of_range Thrown if \a idx was invalid for thi s String. \exception std::out_of_range Thrown if \a idx was invalid for thi s String.
*/ */
size_type copy(utf8* buf, size_type len = npos, size_type idx = 0) const size_type copy(utf8* buf, size_type len = npos, size_type idx = 0) const
{ {
if (d_cplength < idx) if (d_cplength < idx)
throw std::out_of_range("Index is out of range for C EGUI::String"); CEGUI_THROW(std::out_of_range("Index is out of range for CEGUI::String"));
if (len == npos) if (len == npos)
len = d_cplength; len = d_cplength;
return encode(&ptr()[idx], buf, npos, len); return encode(&ptr()[idx], buf, npos, len);
} }
//////////////////////////////////////////////////////////////////// ////// //////////////////////////////////////////////////////////////////// //////
// UTF8 Encoding length information // UTF8 Encoding length information
//////////////////////////////////////////////////////////////////// ////// //////////////////////////////////////////////////////////////////// //////
skipping to change at line 1261 skipping to change at line 1261
\return \return
The number of utf8 code units (bytes) required to hold the s pecified sub-string when encoded as utf8 data. The number of utf8 code units (bytes) required to hold the s pecified sub-string when encoded as utf8 data.
\exception std::out_of_range Thrown if \a idx was invalid for thi s String. \exception std::out_of_range Thrown if \a idx was invalid for thi s String.
*/ */
size_type utf8_stream_len(size_type num = npos, size_type idx = 0) const size_type utf8_stream_len(size_type num = npos, size_type idx = 0) const
{ {
using namespace std; using namespace std;
if (d_cplength < idx) if (d_cplength < idx)
throw out_of_range("Index was out of range for CEGUI ::String object"); CEGUI_THROW(out_of_range("Index was out of range for CEGUI::String object"));
size_type maxlen = d_cplength - idx; size_type maxlen = d_cplength - idx;
return encoded_size(&ptr()[idx], ceguimin(num, maxlen)); return encoded_size(&ptr()[idx], ceguimin(num, maxlen));
} }
//////////////////////////////////////////////////////////////////// ////// //////////////////////////////////////////////////////////////////// //////
// Assignment Functions // Assignment Functions
//////////////////////////////////////////////////////////////////// ////// //////////////////////////////////////////////////////////////////// //////
/*! /*!
skipping to change at line 1307 skipping to change at line 1307
Maximum number of code points from \a str that are be be ass igned Maximum number of code points from \a str that are be be ass igned
\return \return
This String after the assignment has happened This String after the assignment has happened
\exception std::out_of_range Thrown if str_idx is invalid for \a str \exception std::out_of_range Thrown if str_idx is invalid for \a str
*/ */
String& assign(const String& str, size_type str_idx = 0, size_type s tr_num = npos) String& assign(const String& str, size_type str_idx = 0, size_type s tr_num = npos)
{ {
if (str.d_cplength < str_idx) if (str.d_cplength < str_idx)
throw std::out_of_range("Index was out of range for CEGUI::String object"); CEGUI_THROW(std::out_of_range("Index was out of rang e for CEGUI::String object"));
if ((str_num == npos) || (str_num > str.d_cplength - str_idx )) if ((str_num == npos) || (str_num > str.d_cplength - str_idx ))
str_num = str.d_cplength - str_idx; str_num = str.d_cplength - str_idx;
grow(str_num); grow(str_num);
setlen(str_num); setlen(str_num);
memcpy(ptr(), &str.ptr()[str_idx], str_num * sizeof(utf32)); memcpy(ptr(), &str.ptr()[str_idx], str_num * sizeof(utf32));
return *this; return *this;
} }
skipping to change at line 1366 skipping to change at line 1366
\return \return
This String after the assignment has happened This String after the assignment has happened
\exception std::out_of_range Thrown if \a str_idx is invalid for \a std_str \exception std::out_of_range Thrown if \a str_idx is invalid for \a std_str
\exception std::length_error Thrown if the resulting String would have been too large. \exception std::length_error Thrown if the resulting String would have been too large.
*/ */
String& assign(const std::string& std_str, size_type str_idx = 0, si ze_type str_num = npos) String& assign(const std::string& std_str, size_type str_idx = 0, si ze_type str_num = npos)
{ {
if (std_str.size() < str_idx) if (std_str.size() < str_idx)
throw std::out_of_range("Index was out of range for std::string object"); CEGUI_THROW(std::out_of_range("Index was out of rang e for std::string object"));
if ((str_num == npos) || (str_num > (size_type)std_str.size( ) - str_idx)) if ((str_num == npos) || (str_num > (size_type)std_str.size( ) - str_idx))
str_num = (size_type)std_str.size() - str_idx; str_num = (size_type)std_str.size() - str_idx;
grow(str_num); grow(str_num);
setlen(str_num); setlen(str_num);
while(str_num--) while(str_num--)
{ {
((*this)[str_num]) = static_cast<utf32>(static_cast< unsigned char>(std_str[str_num + str_idx])); ((*this)[str_num]) = static_cast<utf32>(static_cast< unsigned char>(std_str[str_num + str_idx]));
skipping to change at line 1452 skipping to change at line 1452
Number of code units (not code points) in the buffer pointed to by \a utf8_str Number of code units (not code points) in the buffer pointed to by \a utf8_str
\return \return
This String after the assignment has happened This String after the assignment has happened
\exception std::length_error Thrown if the resulting String would have been too large, or if str_num is 'npos'. \exception std::length_error Thrown if the resulting String would have been too large, or if str_num is 'npos'.
*/ */
String& assign(const utf8* utf8_str, size_type str_num) String& assign(const utf8* utf8_str, size_type str_num)
{ {
if (str_num == npos) if (str_num == npos)
throw std::length_error("Length for utf8 encoded str ing can not be 'npos'"); CEGUI_THROW(std::length_error("Length for utf8 encod ed string can not be 'npos'"));
size_type enc_sze = encoded_size(utf8_str, str_num); size_type enc_sze = encoded_size(utf8_str, str_num);
grow(enc_sze); grow(enc_sze);
encode(utf8_str, ptr(), d_reserve, str_num); encode(utf8_str, ptr(), d_reserve, str_num);
setlen(enc_sze); setlen(enc_sze);
return *this; return *this;
} }
/*! /*!
skipping to change at line 1495 skipping to change at line 1495
Valid utf32 Unicode code point to be assigned to the string Valid utf32 Unicode code point to be assigned to the string
\return \return
This String after assignment. This String after assignment.
\exception std::length_error Thrown if \a num was 'npos' \exception std::length_error Thrown if \a num was 'npos'
*/ */
String& assign(size_type num, utf32 code_point) String& assign(size_type num, utf32 code_point)
{ {
if (num == npos) if (num == npos)
throw std::length_error("Code point count can not be 'npos'"); CEGUI_THROW(std::length_error("Code point count can not be 'npos'"));
grow(num); grow(num);
setlen(num); setlen(num);
utf32* p = ptr(); utf32* p = ptr();
while(num--) while(num--)
*p++ = code_point; *p++ = code_point;
return *this; return *this;
} }
skipping to change at line 1648 skipping to change at line 1648
\return \return
This String after the append operation This String after the append operation
\exception std::out_of_range Thrown if \a str_idx is invalid for \a str. \exception std::out_of_range Thrown if \a str_idx is invalid for \a str.
\exception std::length_error Thrown if resulting String would be too large. \exception std::length_error Thrown if resulting String would be too large.
*/ */
String& append(const String& str, size_type str_idx = 0, size_type s tr_num = npos) String& append(const String& str, size_type str_idx = 0, size_type s tr_num = npos)
{ {
if (str.d_cplength < str_idx) if (str.d_cplength < str_idx)
throw std::out_of_range("Index is out of range for C EGUI::String"); CEGUI_THROW(std::out_of_range("Index is out of range for CEGUI::String"));
if ((str_num == npos) || (str_num > str.d_cplength - str_idx )) if ((str_num == npos) || (str_num > str.d_cplength - str_idx ))
str_num = str.d_cplength - str_idx; str_num = str.d_cplength - str_idx;
grow(d_cplength + str_num); grow(d_cplength + str_num);
memcpy(&ptr()[d_cplength], &str.ptr()[str_idx], str_num * si zeof(utf32)); memcpy(&ptr()[d_cplength], &str.ptr()[str_idx], str_num * si zeof(utf32));
setlen(d_cplength + str_num); setlen(d_cplength + str_num);
return *this; return *this;
} }
skipping to change at line 1706 skipping to change at line 1706
\return \return
This String after the append operation This String after the append operation
\exception std::out_of_range Thrown if \a str_idx is invalid for \a std_str. \exception std::out_of_range Thrown if \a str_idx is invalid for \a std_str.
\exception std::length_error Thrown if resulting String would be too large. \exception std::length_error Thrown if resulting String would be too large.
*/ */
String& append(const std::string& std_str, size_type str_idx = 0, si ze_type str_num = npos) String& append(const std::string& std_str, size_type str_idx = 0, si ze_type str_num = npos)
{ {
if (std_str.size() < str_idx) if (std_str.size() < str_idx)
throw std::out_of_range("Index is out of range for s td::string"); CEGUI_THROW(std::out_of_range("Index is out of range for std::string"));
if ((str_num == npos) || (str_num > (size_type)std_str.size( ) - str_idx)) if ((str_num == npos) || (str_num > (size_type)std_str.size( ) - str_idx))
str_num = (size_type)std_str.size() - str_idx; str_num = (size_type)std_str.size() - str_idx;
size_type newsze = d_cplength + str_num; size_type newsze = d_cplength + str_num;
grow(newsze); grow(newsze);
utf32* pt = &ptr()[newsze-1]; utf32* pt = &ptr()[newsze-1];
while(str_num--) while(str_num--)
skipping to change at line 1793 skipping to change at line 1793
Number of code units (not code points) in the buffer to be a ppended Number of code units (not code points) in the buffer to be a ppended
\return \return
This String after the append operation This String after the append operation
\exception std::length_error Thrown if resulting String would be too large, or if \a len was 'npos' \exception std::length_error Thrown if resulting String would be too large, or if \a len was 'npos'
*/ */
String& append(const utf8* utf8_str, size_type len) String& append(const utf8* utf8_str, size_type len)
{ {
if (len == npos) if (len == npos)
throw std::length_error("Length for utf8 encoded str ing can not be 'npos'"); CEGUI_THROW(std::length_error("Length for utf8 encod ed string can not be 'npos'"));
size_type encsz = encoded_size(utf8_str, len); size_type encsz = encoded_size(utf8_str, len);
size_type newsz = d_cplength + encsz; size_type newsz = d_cplength + encsz;
grow(newsz); grow(newsz);
encode(utf8_str, &ptr()[d_cplength], encsz, len); encode(utf8_str, &ptr()[d_cplength], encsz, len);
setlen(newsz); setlen(newsz);
return *this; return *this;
} }
skipping to change at line 1840 skipping to change at line 1840
utf32 Unicode code point that is to be appended utf32 Unicode code point that is to be appended
\return \return
This String after the append operation This String after the append operation
\exception std::length_error Thrown if resulting String would be too long, or if \a num was 'npos'. \exception std::length_error Thrown if resulting String would be too long, or if \a num was 'npos'.
*/ */
String& append(size_type num, utf32 code_point) String& append(size_type num, utf32 code_point)
{ {
if (num == npos) if (num == npos)
throw std::length_error("Code point count can not be 'npos'"); CEGUI_THROW(std::length_error("Code point count can not be 'npos'"));
size_type newsz = d_cplength + num; size_type newsz = d_cplength + num;
grow(newsz); grow(newsz);
utf32* p = &ptr()[d_cplength]; utf32* p = &ptr()[d_cplength];
while(num--) while(num--)
*p++ = code_point; *p++ = code_point;
setlen(newsz); setlen(newsz);
skipping to change at line 1944 skipping to change at line 1944
Number of chars to be appended Number of chars to be appended
\return \return
This String after the append operation This String after the append operation
\exception std::length_error Thrown if resulting String would be too large, or if \a chars_len was 'npos' \exception std::length_error Thrown if resulting String would be too large, or if \a chars_len was 'npos'
*/ */
String& append(const char* chars, size_type chars_len) String& append(const char* chars, size_type chars_len)
{ {
if (chars_len == npos) if (chars_len == npos)
throw std::length_error("Length for char array can n ot be 'npos'"); CEGUI_THROW(std::length_error("Length for char array can not be 'npos'"));
size_type newsz = d_cplength + chars_len; size_type newsz = d_cplength + chars_len;
grow(newsz); grow(newsz);
utf32* pt = &ptr()[newsz-1]; utf32* pt = &ptr()[newsz-1];
while(chars_len--) while(chars_len--)
*pt-- = static_cast<utf32>(static_cast<unsigned char >(chars[chars_len])); *pt-- = static_cast<utf32>(static_cast<unsigned char >(chars[chars_len]));
skipping to change at line 2009 skipping to change at line 2009
\return \return
This String after the insert. This String after the insert.
\exception std::out_of_range Thrown if \a idx or \a str_idx are o ut of range. \exception std::out_of_range Thrown if \a idx or \a str_idx are o ut of range.
\exception std::length_error Thrown if resulting String would be too large. \exception std::length_error Thrown if resulting String would be too large.
*/ */
String& insert(size_type idx, const String& str, size_type str_idx, size_type str_num) String& insert(size_type idx, const String& str, size_type str_idx, size_type str_num)
{ {
if ((d_cplength < idx) || (str.d_cplength < str_idx)) if ((d_cplength < idx) || (str.d_cplength < str_idx))
throw std::out_of_range("Index is out of range for C EGUI::String"); CEGUI_THROW(std::out_of_range("Index is out of range for CEGUI::String"));
if ((str_num == npos) || (str_num > str.d_cplength - str_idx )) if ((str_num == npos) || (str_num > str.d_cplength - str_idx ))
str_num = str.d_cplength - str_idx; str_num = str.d_cplength - str_idx;
size_type newsz = d_cplength + str_num; size_type newsz = d_cplength + str_num;
grow(newsz); grow(newsz);
memmove(&ptr()[idx + str_num], &ptr()[idx], (d_cplength - id x) * sizeof(utf32)); memmove(&ptr()[idx + str_num], &ptr()[idx], (d_cplength - id x) * sizeof(utf32));
memcpy(&ptr()[idx], &str.ptr()[str_idx], str_num * sizeof(ut f32)); memcpy(&ptr()[idx], &str.ptr()[str_idx], str_num * sizeof(ut f32));
setlen(newsz); setlen(newsz);
skipping to change at line 2077 skipping to change at line 2077
\return \return
This String after the insert. This String after the insert.
\exception std::out_of_range Thrown if \a idx or \a str_idx are o ut of range. \exception std::out_of_range Thrown if \a idx or \a str_idx are o ut of range.
\exception std::length_error Thrown if resulting String would be too large. \exception std::length_error Thrown if resulting String would be too large.
*/ */
String& insert(size_type idx, const std::string& std_str, size_type str_idx, size_type str_num) String& insert(size_type idx, const std::string& std_str, size_type str_idx, size_type str_num)
{ {
if (d_cplength < idx) if (d_cplength < idx)
throw std::out_of_range("Index is out of range for C EGUI::String"); CEGUI_THROW(std::out_of_range("Index is out of range for CEGUI::String"));
if (std_str.size() < str_idx) if (std_str.size() < str_idx)
throw std::out_of_range("Index is out of range for s td::string"); CEGUI_THROW(std::out_of_range("Index is out of range for std::string"));
if ((str_num == npos) || (str_num > (size_type)std_str.size( ) - str_idx)) if ((str_num == npos) || (str_num > (size_type)std_str.size( ) - str_idx))
str_num = (size_type)std_str.size() - str_idx; str_num = (size_type)std_str.size() - str_idx;
size_type newsz = d_cplength + str_num; size_type newsz = d_cplength + str_num;
grow(newsz); grow(newsz);
memmove(&ptr()[idx + str_num], &ptr()[idx], (d_cplength - id x) * sizeof(utf32)); memmove(&ptr()[idx + str_num], &ptr()[idx], (d_cplength - id x) * sizeof(utf32));
utf32* pt = &ptr()[idx + str_num - 1]; utf32* pt = &ptr()[idx + str_num - 1];
skipping to change at line 2155 skipping to change at line 2155
\return \return
This String after the insert. This String after the insert.
\exception std::out_of_range Thrown if \a idx is invalid for this String. \exception std::out_of_range Thrown if \a idx is invalid for this String.
\exception std::length_error Thrown if resulting String would be too large, or if \a len is 'npos' \exception std::length_error Thrown if resulting String would be too large, or if \a len is 'npos'
*/ */
String& insert(size_type idx, const utf8* utf8_str, size_type len) String& insert(size_type idx, const utf8* utf8_str, size_type len)
{ {
if (d_cplength < idx) if (d_cplength < idx)
throw std::out_of_range("Index is out of range for C EGUI::String"); CEGUI_THROW(std::out_of_range("Index is out of range for CEGUI::String"));
if (len == npos) if (len == npos)
throw std::length_error("Length of utf8 encoded stri ng can not be 'npos'"); CEGUI_THROW(std::length_error("Length of utf8 encode d string can not be 'npos'"));
size_type encsz = encoded_size(utf8_str, len); size_type encsz = encoded_size(utf8_str, len);
size_type newsz = d_cplength + encsz; size_type newsz = d_cplength + encsz;
grow(newsz); grow(newsz);
memmove(&ptr()[idx + encsz], &ptr()[idx], (d_cplength - idx) * sizeof(utf32)); memmove(&ptr()[idx + encsz], &ptr()[idx], (d_cplength - idx) * sizeof(utf32));
encode(utf8_str, &ptr()[idx], encsz, len); encode(utf8_str, &ptr()[idx], encsz, len);
setlen(newsz); setlen(newsz);
return *this; return *this;
skipping to change at line 2193 skipping to change at line 2193
\return \return
This String after the insertion. This String after the insertion.
\exception std::out_of_range Thrown if \a idx is invalid for this String. \exception std::out_of_range Thrown if \a idx is invalid for this String.
\exception std::length_error Thrown if resulting String would be too large, or if \a num is 'npos' \exception std::length_error Thrown if resulting String would be too large, or if \a num is 'npos'
*/ */
String& insert(size_type idx, size_type num, utf32 code_point) String& insert(size_type idx, size_type num, utf32 code_point)
{ {
if (d_cplength < idx) if (d_cplength < idx)
throw std::out_of_range("Index is out of range for C EGUI::String"); CEGUI_THROW(std::out_of_range("Index is out of range for CEGUI::String"));
if (num == npos) if (num == npos)
throw std::length_error("Code point count can not be 'npos'"); CEGUI_THROW(std::length_error("Code point count can not be 'npos'"));
size_type newsz = d_cplength + num; size_type newsz = d_cplength + num;
grow(newsz); grow(newsz);
memmove(&ptr()[idx + num], &ptr()[idx], (d_cplength - idx) * sizeof(utf32)); memmove(&ptr()[idx + num], &ptr()[idx], (d_cplength - idx) * sizeof(utf32));
utf32* pt = &ptr()[idx + num - 1]; utf32* pt = &ptr()[idx + num - 1];
while(num--) while(num--)
*pt-- = code_point; *pt-- = code_point;
skipping to change at line 2323 skipping to change at line 2323
\return \return
This String after the insert. This String after the insert.
\exception std::out_of_range Thrown if \a idx is invalid for this String. \exception std::out_of_range Thrown if \a idx is invalid for this String.
\exception std::length_error Thrown if resulting String would be too large, or if \a chars_len is 'npos' \exception std::length_error Thrown if resulting String would be too large, or if \a chars_len is 'npos'
*/ */
String& insert(size_type idx, const char* chars, size_type chars_len ) String& insert(size_type idx, const char* chars, size_type chars_len )
{ {
if (d_cplength < idx) if (d_cplength < idx)
throw std::out_of_range("Index is out of range for C EGUI::String"); CEGUI_THROW(std::out_of_range("Index is out of range for CEGUI::String"));
if (chars_len == npos) if (chars_len == npos)
throw std::length_error("Length of char array can no t be 'npos'"); CEGUI_THROW(std::length_error("Length of char array can not be 'npos'"));
size_type newsz = d_cplength + chars_len; size_type newsz = d_cplength + chars_len;
grow(newsz); grow(newsz);
memmove(&ptr()[idx + chars_len], &ptr()[idx], (d_cplength - idx) * sizeof(utf32)); memmove(&ptr()[idx + chars_len], &ptr()[idx], (d_cplength - idx) * sizeof(utf32));
utf32* pt = &ptr()[idx + chars_len - 1]; utf32* pt = &ptr()[idx + chars_len - 1];
while(chars_len--) while(chars_len--)
*pt-- = static_cast<utf32>(static_cast<unsigned char >(chars[chars_len])); *pt-- = static_cast<utf32>(static_cast<unsigned char >(chars[chars_len]));
skipping to change at line 2406 skipping to change at line 2406
\param len \param len
Maximum number of code points to be removed. Maximum number of code points to be removed.
\return \return
This String after the erase operation. This String after the erase operation.
\exception std::out_of_range Thrown if \a idx is invalid for this String. \exception std::out_of_range Thrown if \a idx is invalid for this String.
*/ */
String& erase(size_type idx, size_type len = npos) String& erase(size_type idx, size_type len = npos)
{ {
if (d_cplength < idx) // cover the no-op case.
throw std::out_of_range("Index is out of range foe C if (len == 0)
EGUI::String"); return *this;
if (d_cplength <= idx)
CEGUI_THROW(std::out_of_range("Index is out of range
for CEGUI::String"));
if (len == npos) if (len == npos)
len = d_cplength - idx; len = d_cplength - idx;
size_type newsz = d_cplength - len; size_type newsz = d_cplength - len;
memmove(&ptr()[idx], &ptr()[idx + len], (d_cplength - idx - len) * sizeof(utf32)); memmove(&ptr()[idx], &ptr()[idx + len], (d_cplength - idx - len) * sizeof(utf32));
setlen(newsz); setlen(newsz);
return *this; return *this;
} }
skipping to change at line 2581 skipping to change at line 2585
\return \return
This String after the replace operation This String after the replace operation
\exception std::out_of_range Thrown if either \a idx, or \a str_i dx are invalid \exception std::out_of_range Thrown if either \a idx, or \a str_i dx are invalid
\exception std::length_error Thrown if the resulting String would have been too large. \exception std::length_error Thrown if the resulting String would have been too large.
*/ */
String& replace(size_type idx, size_type len, const String& str, siz e_type str_idx, size_type str_num) String& replace(size_type idx, size_type len, const String& str, siz e_type str_idx, size_type str_num)
{ {
if ((d_cplength < idx) || (str.d_cplength < str_idx)) if ((d_cplength < idx) || (str.d_cplength < str_idx))
throw std::out_of_range("Index is out of range for C EGUI::String"); CEGUI_THROW(std::out_of_range("Index is out of range for CEGUI::String"));
if (((str_idx + str_num) > str.d_cplength) || (str_num == np os)) if (((str_idx + str_num) > str.d_cplength) || (str_num == np os))
str_num = str.d_cplength - str_idx; str_num = str.d_cplength - str_idx;
if (((len + idx) > d_cplength) || (len == npos)) if (((len + idx) > d_cplength) || (len == npos))
len = d_cplength - idx; len = d_cplength - idx;
size_type newsz = d_cplength + str_num - len; size_type newsz = d_cplength + str_num - len;
grow(newsz); grow(newsz);
skipping to change at line 2692 skipping to change at line 2696
\return \return
This String after the replace operation This String after the replace operation
\exception std::out_of_range Thrown if either \a idx, or \a str_i dx are invalid \exception std::out_of_range Thrown if either \a idx, or \a str_i dx are invalid
\exception std::length_error Thrown if the resulting String would have been too large. \exception std::length_error Thrown if the resulting String would have been too large.
*/ */
String& replace(size_type idx, size_type len, const std::string& std _str, size_type str_idx, size_type str_num) String& replace(size_type idx, size_type len, const std::string& std _str, size_type str_idx, size_type str_num)
{ {
if (d_cplength < idx) if (d_cplength < idx)
throw std::out_of_range("Index is out of range for C EGUI::String"); CEGUI_THROW(std::out_of_range("Index is out of range for CEGUI::String"));
if (std_str.size() < str_idx) if (std_str.size() < str_idx)
throw std::out_of_range("Index is out of range for s td::string"); CEGUI_THROW(std::out_of_range("Index is out of range for std::string"));
if (((str_idx + str_num) > std_str.size()) || (str_num == np os)) if (((str_idx + str_num) > std_str.size()) || (str_num == np os))
str_num = (size_type)std_str.size() - str_idx; str_num = (size_type)std_str.size() - str_idx;
if (((len + idx) > d_cplength) || (len == npos)) if (((len + idx) > d_cplength) || (len == npos))
len = d_cplength - idx; len = d_cplength - idx;
size_type newsz = d_cplength + str_num - len; size_type newsz = d_cplength + str_num - len;
grow(newsz); grow(newsz);
skipping to change at line 2813 skipping to change at line 2817
\return \return
This String after the replace operation This String after the replace operation
\exception std::out_of_range Thrown if \a idx is invalid for this String \exception std::out_of_range Thrown if \a idx is invalid for this String
\exception std::length_error Thrown if the resulting String would be too large, or if \a str_len was 'npos'. \exception std::length_error Thrown if the resulting String would be too large, or if \a str_len was 'npos'.
*/ */
String& replace(size_type idx, size_type len, const utf8* utf8_str, size_type str_len) String& replace(size_type idx, size_type len, const utf8* utf8_str, size_type str_len)
{ {
if (d_cplength < idx) if (d_cplength < idx)
throw std::out_of_range("Index is out of range for C EGUI::String"); CEGUI_THROW(std::out_of_range("Index is out of range for CEGUI::String"));
if (str_len == npos) if (str_len == npos)
throw std::length_error("Length for utf8 encoded str ing can not be 'npos'"); CEGUI_THROW(std::length_error("Length for utf8 encod ed string can not be 'npos'"));
if (((len + idx) > d_cplength) || (len == npos)) if (((len + idx) > d_cplength) || (len == npos))
len = d_cplength - idx; len = d_cplength - idx;
size_type encsz = encoded_size(utf8_str, str_len); size_type encsz = encoded_size(utf8_str, str_len);
size_type newsz = d_cplength + encsz - len; size_type newsz = d_cplength + encsz - len;
grow(newsz); grow(newsz);
if ((idx + len) < d_cplength) if ((idx + len) < d_cplength)
skipping to change at line 2895 skipping to change at line 2899
\return \return
This String after the replace operation. This String after the replace operation.
\exception std::out_of_range Thrown if \a idx is invalid for this String \exception std::out_of_range Thrown if \a idx is invalid for this String
\exception std::length_error Thrown if resulting String would hav e been too long, or if \a num was 'npos'. \exception std::length_error Thrown if resulting String would hav e been too long, or if \a num was 'npos'.
*/ */
String& replace(size_type idx, size_type len, size_type num, utf32 c ode_point) String& replace(size_type idx, size_type len, size_type num, utf32 c ode_point)
{ {
if (d_cplength < idx) if (d_cplength < idx)
throw std::out_of_range("Index is out of range for C EGUI::String"); CEGUI_THROW(std::out_of_range("Index is out of range for CEGUI::String"));
if (num == npos) if (num == npos)
throw std::length_error("Code point count can not be 'npos'"); CEGUI_THROW(std::length_error("Code point count can not be 'npos'"));
if (((len + idx) > d_cplength) || (len == npos)) if (((len + idx) > d_cplength) || (len == npos))
len = d_cplength - idx; len = d_cplength - idx;
size_type newsz = d_cplength + num - len; size_type newsz = d_cplength + num - len;
grow(newsz); grow(newsz);
if ((idx + len) < d_cplength) if ((idx + len) < d_cplength)
memmove(&ptr()[idx + num], &ptr()[len + idx], (d_cpl ength - idx - len) * sizeof(utf32)); memmove(&ptr()[idx + num], &ptr()[len + idx], (d_cpl ength - idx - len) * sizeof(utf32));
skipping to change at line 2975 skipping to change at line 2979
\param newEnd \param newEnd
Iterator describing the (exclusive) end of the range to inse rt. Iterator describing the (exclusive) end of the range to inse rt.
\return \return
This String after the insert operation. This String after the insert operation.
\exception std::length_error Thrown if the resulting string would be too long. \exception std::length_error Thrown if the resulting string would be too long.
*/ */
String& replace(iterator iter_beg, iterator iter_end, const_iterator iter_newBeg, const_iterator iter_newEnd) String& replace(iterator iter_beg, iterator iter_end, const_iterator iter_newBeg, const_iterator iter_newEnd)
{ {
if (iter_beg == iter_end) if (iter_newBeg == iter_newEnd)
{ {
erase(safe_iter_dif(iter_beg, begin()), safe_iter_di f(iter_end, iter_beg)); erase(safe_iter_dif(iter_beg, begin()), safe_iter_di f(iter_end, iter_beg));
} }
else else
{ {
size_type str_len = safe_iter_dif(iter_newEnd, iter_ newBeg); size_type str_len = safe_iter_dif(iter_newEnd, iter_ newBeg);
size_type idx = safe_iter_dif(iter_beg, begin()); size_type idx = safe_iter_dif(iter_beg, begin());
size_type len = safe_iter_dif(iter_end, iter_beg); size_type len = safe_iter_dif(iter_end, iter_beg);
if ((len + idx) > d_cplength) if ((len + idx) > d_cplength)
skipping to change at line 3077 skipping to change at line 3081
\return \return
This String after the replace operation This String after the replace operation
\exception std::out_of_range Thrown if \a idx is invalid for this String \exception std::out_of_range Thrown if \a idx is invalid for this String
\exception std::length_error Thrown if the resulting String would be too large, or if \a chars_len was 'npos'. \exception std::length_error Thrown if the resulting String would be too large, or if \a chars_len was 'npos'.
*/ */
String& replace(size_type idx, size_type len, const char* chars, siz e_type chars_len) String& replace(size_type idx, size_type len, const char* chars, siz e_type chars_len)
{ {
if (d_cplength < idx) if (d_cplength < idx)
throw std::out_of_range("Index is out of range for C EGUI::String"); CEGUI_THROW(std::out_of_range("Index is out of range for CEGUI::String"));
if (chars_len == npos) if (chars_len == npos)
throw std::length_error("Length for the char array c an not be 'npos'"); CEGUI_THROW(std::length_error("Length for the char a rray can not be 'npos'"));
if (((len + idx) > d_cplength) || (len == npos)) if (((len + idx) > d_cplength) || (len == npos))
len = d_cplength - idx; len = d_cplength - idx;
size_type newsz = d_cplength + chars_len - len; size_type newsz = d_cplength + chars_len - len;
grow(newsz); grow(newsz);
if ((idx + len) < d_cplength) if ((idx + len) < d_cplength)
memmove(&ptr()[idx + chars_len], &ptr()[len + idx], (d_cplength - idx - len) * sizeof(utf32)); memmove(&ptr()[idx + chars_len], &ptr()[len + idx], (d_cplength - idx - len) * sizeof(utf32));
skipping to change at line 3440 skipping to change at line 3444
\return \return
- Index of the first occurrence of sub-string \a utf8_str tr avelling forwards from \a idx. - Index of the first occurrence of sub-string \a utf8_str tr avelling forwards from \a idx.
- npos if the sub-string could not be found - npos if the sub-string could not be found
\exception std::length_error Thrown if \a str_len is 'npos' \exception std::length_error Thrown if \a str_len is 'npos'
*/ */
size_type find(const utf8* utf8_str, size_type idx, size_type str_len) const size_type find(const utf8* utf8_str, size_type idx, size_type str_len) const
{ {
if (str_len == npos) if (str_len == npos)
throw std::length_error("Length for utf8 encoded str ing can not be 'npos'"); CEGUI_THROW(std::length_error("Length for utf8 encod ed string can not be 'npos'"));
size_type sze = encoded_size(utf8_str, str_len); size_type sze = encoded_size(utf8_str, str_len);
if ((sze == 0) && (idx < d_cplength)) if ((sze == 0) && (idx < d_cplength))
return idx; return idx;
if (idx < d_cplength) if (idx < d_cplength)
{ {
// loop while search string could fit in to search a rea // loop while search string could fit in to search a rea
while (d_cplength - idx >= sze) while (d_cplength - idx >= sze)
skipping to change at line 3491 skipping to change at line 3495
\return \return
- Index of the first occurrence of sub-string \a utf8_str tr avelling backwards from \a idx. - Index of the first occurrence of sub-string \a utf8_str tr avelling backwards from \a idx.
- npos if the sub-string could not be found - npos if the sub-string could not be found
\exception std::length_error Thrown if \a str_len is 'npos' \exception std::length_error Thrown if \a str_len is 'npos'
*/ */
size_type rfind(const utf8* utf8_str, size_type idx, size_type str_len) const size_type rfind(const utf8* utf8_str, size_type idx, size_type str_len) const
{ {
if (str_len == npos) if (str_len == npos)
throw std::length_error("Length for utf8 encoded str ing can not be 'npos'"); CEGUI_THROW(std::length_error("Length for utf8 encod ed string can not be 'npos'"));
size_type sze = encoded_size(utf8_str, str_len); size_type sze = encoded_size(utf8_str, str_len);
if (sze == 0) if (sze == 0)
return (idx < d_cplength) ? idx : d_cplength; return (idx < d_cplength) ? idx : d_cplength;
if (sze <= d_cplength) if (sze <= d_cplength)
{ {
if (idx > (d_cplength - sze)) if (idx > (d_cplength - sze))
idx = d_cplength - sze; idx = d_cplength - sze;
skipping to change at line 3579 skipping to change at line 3583
\return \return
- Index of the first occurrence of sub-string \a chars trave lling forwards from \a idx. - Index of the first occurrence of sub-string \a chars trave lling forwards from \a idx.
- npos if the sub-string could not be found - npos if the sub-string could not be found
\exception std::length_error Thrown if \a chars_len is 'npos' \exception std::length_error Thrown if \a chars_len is 'npos'
*/ */
size_type find(const char* chars, size_type idx, size_type cha rs_len) const size_type find(const char* chars, size_type idx, size_type cha rs_len) const
{ {
if (chars_len == npos) if (chars_len == npos)
throw std::length_error("Length for char array can n ot be 'npos'"); CEGUI_THROW(std::length_error("Length for char array can not be 'npos'"));
if ((chars_len == 0) && (idx < d_cplength)) if ((chars_len == 0) && (idx < d_cplength))
return idx; return idx;
if (idx < d_cplength) if (idx < d_cplength)
{ {
// loop while search string could fit in to search a rea // loop while search string could fit in to search a rea
while (d_cplength - idx >= chars_len) while (d_cplength - idx >= chars_len)
{ {
if (0 == compare(idx, chars_len, chars, char s_len)) if (0 == compare(idx, chars_len, chars, char s_len))
skipping to change at line 3622 skipping to change at line 3626
\return \return
- Index of the first occurrence of sub-string \a chars trave lling backwards from \a idx. - Index of the first occurrence of sub-string \a chars trave lling backwards from \a idx.
- npos if the sub-string could not be found - npos if the sub-string could not be found
\exception std::length_error Thrown if \a chars_len is 'npos' \exception std::length_error Thrown if \a chars_len is 'npos'
*/ */
size_type rfind(const char* chars, size_type idx, size_type ch ars_len) const size_type rfind(const char* chars, size_type idx, size_type ch ars_len) const
{ {
if (chars_len == npos) if (chars_len == npos)
throw std::length_error("Length for char array can n ot be 'npos'"); CEGUI_THROW(std::length_error("Length for char array can not be 'npos'"));
if (chars_len == 0) if (chars_len == 0)
return (idx < d_cplength) ? idx : d_cplength; return (idx < d_cplength) ? idx : d_cplength;
if (chars_len <= d_cplength) if (chars_len <= d_cplength)
{ {
if (idx > (d_cplength - chars_len)) if (idx > (d_cplength - chars_len))
idx = d_cplength - chars_len; idx = d_cplength - chars_len;
do do
skipping to change at line 3865 skipping to change at line 3869
\return \return
- Index of the first occurrence of any one of the code point s in \a utf8_str starting from from \a idx. - Index of the first occurrence of any one of the code point s in \a utf8_str starting from from \a idx.
- npos if none of the code points in \a utf8_str were found. - npos if none of the code points in \a utf8_str were found.
\exception std::length_error Thrown if \a str_len was 'npos'. \exception std::length_error Thrown if \a str_len was 'npos'.
*/ */
size_type find_first_of(const utf8* utf8_str, size_type idx, s ize_type str_len) const size_type find_first_of(const utf8* utf8_str, size_type idx, s ize_type str_len) const
{ {
if (str_len == npos) if (str_len == npos)
throw std::length_error("Length for utf8 encoded str ing can not be 'npos'"); CEGUI_THROW(std::length_error("Length for utf8 encod ed string can not be 'npos'"));
if (idx < d_cplength) if (idx < d_cplength)
{ {
size_type encsze = encoded_size(utf8_str, str_len); size_type encsze = encoded_size(utf8_str, str_len);
const utf32* pt = &ptr()[idx]; const utf32* pt = &ptr()[idx];
do do
{ {
if (npos != find_codepoint(utf8_str, encsze, *pt++)) if (npos != find_codepoint(utf8_str, encsze, *pt++))
skipping to change at line 3913 skipping to change at line 3917
\return \return
- Index of the first code point that does not match any one of the code points in \a utf8_str starting from from \a idx. - Index of the first code point that does not match any one of the code points in \a utf8_str starting from from \a idx.
- npos if all code points matched one of the code points in \a utf8_str. - npos if all code points matched one of the code points in \a utf8_str.
\exception std::length_error Thrown if \a str_len was 'npos'. \exception std::length_error Thrown if \a str_len was 'npos'.
*/ */
size_type find_first_not_of(const utf8* utf8_str, size_type id x, size_type str_len) const size_type find_first_not_of(const utf8* utf8_str, size_type id x, size_type str_len) const
{ {
if (str_len == npos) if (str_len == npos)
throw std::length_error("Length for utf8 encoded str ing can not be 'npos'"); CEGUI_THROW(std::length_error("Length for utf8 encod ed string can not be 'npos'"));
if (idx < d_cplength) if (idx < d_cplength)
{ {
size_type encsze = encoded_size(utf8_str, str_len); size_type encsze = encoded_size(utf8_str, str_len);
const utf32* pt = &ptr()[idx]; const utf32* pt = &ptr()[idx];
do do
{ {
if (npos == find_codepoint(utf8_str, encsze, *pt++)) if (npos == find_codepoint(utf8_str, encsze, *pt++))
skipping to change at line 4048 skipping to change at line 4052
\return \return
- Index of the first occurrence of any one of the chars in \ a chars starting from from \a idx. - Index of the first occurrence of any one of the chars in \ a chars starting from from \a idx.
- npos if none of the chars in \a chars were found. - npos if none of the chars in \a chars were found.
\exception std::length_error Thrown if \a chars_len was 'npos'. \exception std::length_error Thrown if \a chars_len was 'npos'.
*/ */
size_type find_first_of(const char* chars, size_type idx, size _type chars_len) const size_type find_first_of(const char* chars, size_type idx, size _type chars_len) const
{ {
if (chars_len == npos) if (chars_len == npos)
throw std::length_error("Length for char array can n ot be 'npos'"); CEGUI_THROW(std::length_error("Length for char array can not be 'npos'"));
if (idx < d_cplength) if (idx < d_cplength)
{ {
const utf32* pt = &ptr()[idx]; const utf32* pt = &ptr()[idx];
do do
{ {
if (npos != find_codepoint(chars, chars_len, *pt++)) if (npos != find_codepoint(chars, chars_len, *pt++))
return idx; return idx;
skipping to change at line 4088 skipping to change at line 4092
\return \return
- Index of the first code point that does not match any one of the chars in \a chars starting from from \a idx. - Index of the first code point that does not match any one of the chars in \a chars starting from from \a idx.
- npos if all code points matched any of the chars in \a cha rs. - npos if all code points matched any of the chars in \a cha rs.
\exception std::length_error Thrown if \a chars_len was 'npos'. \exception std::length_error Thrown if \a chars_len was 'npos'.
*/ */
size_type find_first_not_of(const char* chars, size_type idx, size_type chars_len) const size_type find_first_not_of(const char* chars, size_type idx, size_type chars_len) const
{ {
if (chars_len == npos) if (chars_len == npos)
throw std::length_error("Length for char array can n ot be 'npos'"); CEGUI_THROW(std::length_error("Length for char array can not be 'npos'"));
if (idx < d_cplength) if (idx < d_cplength)
{ {
const utf32* pt = &ptr()[idx]; const utf32* pt = &ptr()[idx];
do do
{ {
if (npos == find_codepoint(chars, chars_len, *pt++)) if (npos == find_codepoint(chars, chars_len, *pt++))
return idx; return idx;
skipping to change at line 4339 skipping to change at line 4343
\return \return
- Index of the last occurrence of any one of the code points in \a utf8_str starting from from \a idx. - Index of the last occurrence of any one of the code points in \a utf8_str starting from from \a idx.
- npos if none of the code points in \a utf8_str were found. - npos if none of the code points in \a utf8_str were found.
\exception std::length_error Thrown if \a str_len was 'npos'. \exception std::length_error Thrown if \a str_len was 'npos'.
*/ */
size_type find_last_of(const utf8* utf8_str, size_type idx, si ze_type str_len) const size_type find_last_of(const utf8* utf8_str, size_type idx, si ze_type str_len) const
{ {
if (str_len == npos) if (str_len == npos)
throw std::length_error("Length for utf8 encoded str ing can not be 'npos'"); CEGUI_THROW(std::length_error("Length for utf8 encod ed string can not be 'npos'"));
if (d_cplength > 0) if (d_cplength > 0)
{ {
if (idx >= d_cplength) if (idx >= d_cplength)
idx = d_cplength - 1; idx = d_cplength - 1;
size_type encsze = encoded_size(utf8_str, str_len); size_type encsze = encoded_size(utf8_str, str_len);
const utf32* pt = &ptr()[idx]; const utf32* pt = &ptr()[idx];
skipping to change at line 4390 skipping to change at line 4394
\return \return
- Index of the last code point that does not match any one o f the code points in \a utf8_str starting from from \a idx. - Index of the last code point that does not match any one o f the code points in \a utf8_str starting from from \a idx.
- npos if all code points matched one of the code points in \a utf8_str. - npos if all code points matched one of the code points in \a utf8_str.
\exception std::length_error Thrown if \a str_len was 'npos'. \exception std::length_error Thrown if \a str_len was 'npos'.
*/ */
size_type find_last_not_of(const utf8* utf8_str, size_type idx , size_type str_len) const size_type find_last_not_of(const utf8* utf8_str, size_type idx , size_type str_len) const
{ {
if (str_len == npos) if (str_len == npos)
throw std::length_error("Length for utf8 encoded str ing can not be 'npos'"); CEGUI_THROW(std::length_error("Length for utf8 encod ed string can not be 'npos'"));
if (d_cplength > 0) if (d_cplength > 0)
{ {
if (idx >= d_cplength) if (idx >= d_cplength)
idx = d_cplength - 1; idx = d_cplength - 1;
size_type encsze = encoded_size(utf8_str, str_len); size_type encsze = encoded_size(utf8_str, str_len);
const utf32* pt = &ptr()[idx]; const utf32* pt = &ptr()[idx];
skipping to change at line 4529 skipping to change at line 4533
\return \return
- Index of the last occurrence of any one of the chars in \a chars, starting from from \a idx. - Index of the last occurrence of any one of the chars in \a chars, starting from from \a idx.
- npos if none of the chars in \a chars were found. - npos if none of the chars in \a chars were found.
\exception std::length_error Thrown if \a chars_len was 'npos'. \exception std::length_error Thrown if \a chars_len was 'npos'.
*/ */
size_type find_last_of(const char* chars, size_type idx, size_ type chars_len) const size_type find_last_of(const char* chars, size_type idx, size_ type chars_len) const
{ {
if (chars_len == npos) if (chars_len == npos)
throw std::length_error("Length for char array can n ot be 'npos'"); CEGUI_THROW(std::length_error("Length for char array can not be 'npos'"));
if (d_cplength > 0) if (d_cplength > 0)
{ {
if (idx >= d_cplength) if (idx >= d_cplength)
idx = d_cplength - 1; idx = d_cplength - 1;
const utf32* pt = &ptr()[idx]; const utf32* pt = &ptr()[idx];
do do
{ {
skipping to change at line 4572 skipping to change at line 4576
\return \return
- Index of the last code point that does not match any one o f the chars in \a chars, starting from from \a idx. - Index of the last code point that does not match any one o f the chars in \a chars, starting from from \a idx.
- npos if all code points matched any of the chars in \a cha rs. - npos if all code points matched any of the chars in \a cha rs.
\exception std::length_error Thrown if \a chars_len was 'npos'. \exception std::length_error Thrown if \a chars_len was 'npos'.
*/ */
size_type find_last_not_of(const char* chars, size_type idx, s ize_type chars_len) const size_type find_last_not_of(const char* chars, size_type idx, s ize_type chars_len) const
{ {
if (chars_len == npos) if (chars_len == npos)
throw std::length_error("Length for char array can n ot be 'npos'"); CEGUI_THROW(std::length_error("Length for char array can not be 'npos'"));
if (d_cplength > 0) if (d_cplength > 0)
{ {
if (idx >= d_cplength) if (idx >= d_cplength)
idx = d_cplength - 1; idx = d_cplength - 1;
const utf32* pt = &ptr()[idx]; const utf32* pt = &ptr()[idx];
do do
{ {
skipping to change at line 4614 skipping to change at line 4618
Maximum number of code points to use for the sub-string Maximum number of code points to use for the sub-string
\return \return
A String object containing the specified sub-string. A String object containing the specified sub-string.
\exception std::out_of_range Thrown if \a idx is invalid for this String. \exception std::out_of_range Thrown if \a idx is invalid for this String.
*/ */
String substr(size_type idx = 0, size_type len = npos) const String substr(size_type idx = 0, size_type len = npos) const
{ {
if (d_cplength < idx) if (d_cplength < idx)
throw std::out_of_range("Index is out of range for t his CEGUI::String"); CEGUI_THROW(std::out_of_range("Index is out of range for this CEGUI::String"));
return String(*this, idx, len); return String(*this, idx, len);
} }
//////////////////////////////////////////////////////////////////// ////// //////////////////////////////////////////////////////////////////// //////
// Iterator creation // Iterator creation
//////////////////////////////////////////////////////////////////// ////// //////////////////////////////////////////////////////////////////// //////
/*! /*!
\brief \brief
Return a forwards iterator that describes the beginning of t he String Return a forwards iterator that describes the beginning of t he String
skipping to change at line 4917 skipping to change at line 4921
// return number of utf32 code units required to re-encode given utf 8 data as utf32. len is number of code units in 'buf'. // return number of utf32 code units required to re-encode given utf 8 data as utf32. len is number of code units in 'buf'.
size_type encoded_size(const utf8* buf, size_type len) const size_type encoded_size(const utf8* buf, size_type len) const
{ {
utf8 tcp; utf8 tcp;
size_type count = 0; size_type count = 0;
while (len--) while (len--)
{ {
tcp = *buf++; tcp = *buf++;
++count; ++count;
size_type size = 0;
if (tcp < 0x80) if (tcp < 0x80)
{ {
} }
else if (tcp < 0xE0) else if (tcp < 0xE0)
{ {
--len; size = 1;
++buf; ++buf;
} }
else if (tcp < 0xF0) else if (tcp < 0xF0)
{ {
len -= 2; size = 2;
buf += 2; buf += 2;
} }
else else
{ {
len -= 2; size = 3;
buf += 3; buf += 3;
} }
if (len >= size)
len -= size;
else
break;
} }
return count; return count;
} }
// return number of code units in a null terminated string // return number of code units in a null terminated string
size_type utf_length(const utf8* utf8_str) const size_type utf_length(const utf8* utf8_str) const
{ {
size_type cnt = 0; size_type cnt = 0;
while (*utf8_str++) while (*utf8_str++)
 End of changes. 59 change blocks. 
59 lines changed or deleted 68 lines changed or added


 CEGUISystem.h   CEGUISystem.h 
skipping to change at line 74 skipping to change at line 74
static const String EventNamespace; //!< Namespace for global events static const String EventNamespace; //!< Namespace for global events
/******************************************************************* ****** /******************************************************************* ******
Constants Constants
******************************************************************** *****/ ******************************************************************** *****/
static const double DefaultSingleClickTimeout; //!< Default timeout for generation of single click events. static const double DefaultSingleClickTimeout; //!< Default timeout for generation of single click events.
static const double DefaultMultiClickTimeout; //!< Default timeout for generation of multi-click events. static const double DefaultMultiClickTimeout; //!< Default timeout for generation of multi-click events.
static const Size DefaultMultiClickAreaSize; //!< Default allowable mouse movement for multi-click event generation. static const Size DefaultMultiClickAreaSize; //!< Default allowable mouse movement for multi-click event generation.
// event names // event names
static const String EventGUISheetChanged; /** Event fired whenever the GUI sheet is changed.
//!< Name of event fired whenever the GUI sheet is changed. * Handlers are passed a const WindowEventArgs reference with
static const String EventSingleClickTimeoutChanged; //!< Name of * WindowEventArgs::window set to the @e old GUI sheet (the new one is
event fired when the single-click timeout is changed. * obtained by querying System).
static const String EventMultiClickTimeoutChanged; //!< Name of */
event fired when the multi-click timeout is changed. static const String EventGUISheetChanged;
static const String EventMultiClickAreaSizeChanged; //!< Name of /** Event fired when the single-click timeout is changed.
event fired when the size of the multi-click tolerance area is changed. * Handlers are passed a const reference to a generic EventArgs struct.
static const String EventDefaultFontChanged; //!< */
Name of event fired when the default font changes. static const String EventSingleClickTimeoutChanged;
static const String EventDefaultMouseCursorChanged; //!< Name of /** Event fired when the multi-click timeout is changed.
event fired when the default mouse cursor changes. * Handlers are passed a const reference to a generic EventArgs struct.
static const String EventMouseMoveScalingChanged; //!< */
Name of event fired when the mouse move scaling factor changes. static const String EventMultiClickTimeoutChanged;
//! Name of event fired for display size changes (as notified by client /** Event fired when the size of the multi-click tolerance area is chan
). ged.
* Handlers are passed a const reference to a generic EventArgs struct.
*/
static const String EventMultiClickAreaSizeChanged;
/** Event fired when the default font changes.
* Handlers are passed a const reference to a generic EventArgs struct.
*/
static const String EventDefaultFontChanged;
/** Event fired when the default mouse cursor changes.
* Handlers are passed a const reference to a generic EventArgs struct.
*/
static const String EventDefaultMouseCursorChanged;
/** Event fired when the mouse move scaling factor changes.
* Handlers are passed a const reference to a generic EventArgs struct.
*/
static const String EventMouseMoveScalingChanged;
/** Event fired for display size changes (as notified by client code).
* Handlers are passed a const DisplayEventArgs reference with
* DisplayEventArgs::size set to the pixel size that was notifiied to t
he
* system.
*/
static const String EventDisplaySizeChanged; static const String EventDisplaySizeChanged;
//! Name of event fired when global custom RenderedStringParser is set. /** Event fired when global custom RenderedStringParser is set.
* Handlers are passed a const reference to a generic EventArgs struct.
*/
static const String EventRenderedStringParserChanged; static const String EventRenderedStringParserChanged;
/******************************************************************* ****** /******************************************************************* ******
Construction and Destruction Construction and Destruction
******************************************************************** *****/ ******************************************************************** *****/
/*! /*!
\brief \brief
Create the System object and return a reference to it. Create the System object and return a reference to it.
\param renderer \param renderer
skipping to change at line 790 skipping to change at line 819
The set RenderedStringParser is used for all windows that have The set RenderedStringParser is used for all windows that have
parsing enabled and no custom RenderedStringParser set on the windo w parsing enabled and no custom RenderedStringParser set on the windo w
itself. itself.
If this global custom RenderedStringParser is set to 0, then all wi ndows If this global custom RenderedStringParser is set to 0, then all wi ndows
with parsing enabled and no custom RenderedStringParser set on the with parsing enabled and no custom RenderedStringParser set on the
window itself will use the systems BasicRenderedStringParser. window itself will use the systems BasicRenderedStringParser.
*/ */
void setDefaultCustomRenderedStringParser(RenderedStringParser* parser) ; void setDefaultCustomRenderedStringParser(RenderedStringParser* parser) ;
/*!
\brief
Invalidate all imagery and geometry caches for CEGUI managed elemen
ts.
This function will invalidate the caches used for both imagery and
geometry for all content that is managed by the core CEGUI manager
objects, causing a full and total redraw of that content. This
includes Window object's cached geometry, rendering surfaces and
rendering windows and the mouse pointer geometry.
*/
void invalidateAllCachedRendering();
/******************************************************************* ****** /******************************************************************* ******
Input injection interface Input injection interface
******************************************************************** *****/ ******************************************************************** *****/
/*! /*!
\brief \brief
Method that injects a mouse movement event into the system Method that injects a mouse movement event into the system
\param delta_x \param delta_x
amount the mouse moved on the x axis. amount the mouse moved on the x axis.
skipping to change at line 1146 skipping to change at line 1187
//! setup image codec //! setup image codec
void setupImageCodec(const String& codecName); void setupImageCodec(const String& codecName);
//! cleanup image codec //! cleanup image codec
void cleanupImageCodec(); void cleanupImageCodec();
//! Set the CEGUI version string that gets output to the log. //! Set the CEGUI version string that gets output to the log.
void initialiseVersionString(); void initialiseVersionString();
//! invalidate all windows and any rendering surfaces they may be using
.
void invalidateAllWindows();
//! return common ancestor of two windows.
Window* getCommonAncestor(Window* w1, Window* w2);
//! call some function for a chain of windows: (top, bottom]
void notifyMouseTransition(Window* top, Window* bottom,
void (Window::*func)(MouseEventArgs&),
MouseEventArgs& args);
/******************************************************************* ****** /******************************************************************* ******
Handlers for System events Handlers for System events
******************************************************************** *****/ ******************************************************************** *****/
/*! /*!
\brief \brief
Handler called when the main system GUI Sheet (or root windo w) is changed. Handler called when the main system GUI Sheet (or root windo w) is changed.
\a e is a WindowEventArgs with 'window' set to the old root window. \a e is a WindowEventArgs with 'window' set to the old root window.
*/ */
void onGUISheetChanged(WindowEventArgs& e); void onGUISheetChanged(WindowEventArgs& e);
 End of changes. 4 change blocks. 
17 lines changed or deleted 65 lines changed or added


 CEGUITGAImageCodec.h   CEGUITGAImageCodec.h 
skipping to change at line 68 skipping to change at line 68
This is our image structure for our targa data This is our image structure for our targa data
*/ */
struct ImageTGA struct ImageTGA
{ {
int channels; //!< The channels in the image (3 = RGB : 4 = RGBA) int channels; //!< The channels in the image (3 = RGB : 4 = RGBA)
int sizeX; //!< The width of the image in pixels int sizeX; //!< The width of the image in pixels
int sizeY; //!< The height of the image in pixels int sizeY; //!< The height of the image in pixels
unsigned char *data; //!< The image pixel data unsigned char *data; //!< The image pixel data
}; };
/*! //! vertically flip data for tImageTGA 'img'
\brief static void flipVertImageTGA(ImageTGA* img);
flips data for tImageTGA 'img' //! horizontally flip data for tImageTGA 'img'
*/ static void flipHorzImageTGA(ImageTGA* img);
static void flipImageTGA(ImageTGA* img);
/*! /*!
\brief \brief
load a TGA from a byte buffer load a TGA from a byte buffer
*/ */
static ImageTGA* loadTGA(const unsigned char* buffer, size_t buffer_siz e); static ImageTGA* loadTGA(const unsigned char* buffer, size_t buffer_siz e);
/*! /*!
\brief \brief
convert 24 bits Image to 32 bits one convert 24 bits Image to 32 bits one
*/ */
static void convertRGBToRGBA(ImageTGA* img); static void convertRGBToRGBA(ImageTGA* img);
 End of changes. 1 change blocks. 
5 lines changed or deleted 5 lines changed or added


 CEGUITabButton.h   CEGUITabButton.h 
skipping to change at line 55 skipping to change at line 55
class CEGUIEXPORT TabButton : public ButtonBase class CEGUIEXPORT TabButton : public ButtonBase
{ {
public: public:
static const String EventNamespace; //!< Namespace for global events static const String EventNamespace; //!< Namespace for global events
static const String WidgetTypeName; //!< Window factory nam e static const String WidgetTypeName; //!< Window factory nam e
/******************************************************************* ****** /******************************************************************* ******
Event name constants Event name constants
******************************************************************** *****/ ******************************************************************** *****/
// generated internally by Window // generated internally by Window
static const String EventClicked; /** Event fired when the button is clicked.
//!< The button was clicked. * Handlers are passed a const WindowEventArgs reference with
static const String EventDragged; * WindowEventArgs::window set to the TabButton that was clicked.
//!< Attempt to drag the button with middle button. */
static const String EventScrolled; static const String EventClicked;
//!< Scroll wheel activated on top of the button. /** Event fired when use user attempts to drag the button with middle m
ouse
* button.
* Handlers are passed a const MouseEventArgs reference with all fields
* valid.
*/
static const String EventDragged;
/** Event fired when the scroll wheel is used on top of the button.
* Handlers are passed a const MouseEventArgs reference with all fields
* valid.
*/
static const String EventScrolled;
/******************************************************************* ****** /******************************************************************* ******
Construction and Destruction Construction and Destruction
******************************************************************** *****/ ******************************************************************** *****/
/*! /*!
\brief \brief
Constructor for base TabButton class Constructor for base TabButton class
*/ */
TabButton(const String& type, const String& name); TabButton(const String& type, const String& name);
 End of changes. 1 change blocks. 
6 lines changed or deleted 17 lines changed or added


 CEGUITabControl.h   CEGUITabControl.h 
skipping to change at line 94 skipping to change at line 94
enum TabPanePosition enum TabPanePosition
{ {
Top, Top,
Bottom Bottom
}; };
/******************************************************************* ****** /******************************************************************* ******
Constants Constants
******************************************************************** *****/ ******************************************************************** *****/
// event names // event names
static const String EventSelectionChanged; //!< /** Event fired when a different tab is selected.
Event triggered when there is a change to the currently selected tab. * Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the TabControl that has a newly
* selected tab.
*/
static const String EventSelectionChanged;
/********************************************************************** *** /********************************************************************** ***
Child Widget name suffix constants Child Widget name suffix constants
*********************************************************************** **/ *********************************************************************** **/
static const String ContentPaneNameSuffix; //!< Widget name suffix for the tab content pane component. static const String ContentPaneNameSuffix; //!< Widget name suffix for the tab content pane component.
static const String TabButtonNameSuffix; //!< Widget name suffix for the tab button components. static const String TabButtonNameSuffix; //!< Widget name suffix for the tab button components.
static const String TabButtonPaneNameSuffix; //!< Widget name suffix fo r the tab button pane component. static const String TabButtonPaneNameSuffix; //!< Widget name suffix fo r the tab button pane component.
static const String ButtonScrollLeftSuffix;//!< Widget name suffix for the scroll tabs to right pane component. static const String ButtonScrollLeftSuffix;//!< Widget name suffix for the scroll tabs to right pane component.
static const String ButtonScrollRightSuffix; //!< Widget name suffix fo r the scroll tabs to left pane component. static const String ButtonScrollRightSuffix; //!< Widget name suffix fo r the scroll tabs to left pane component.
 End of changes. 1 change blocks. 
2 lines changed or deleted 6 lines changed or added


 CEGUIThumb.h   CEGUIThumb.h 
skipping to change at line 64 skipping to change at line 64
class CEGUIEXPORT Thumb : public PushButton class CEGUIEXPORT Thumb : public PushButton
{ {
public: public:
static const String EventNamespace; //!< Namespace for global events static const String EventNamespace; //!< Namespace for global events
static const String WidgetTypeName; //!< Window factory nam e static const String WidgetTypeName; //!< Window factory nam e
/******************************************************************* ****** /******************************************************************* ******
Event name constants Event name constants
******************************************************************** *****/ ******************************************************************** *****/
// generated internally by Window // generated internally by Window
static const String EventThumbPositionChanged; //!< The pos /** Event fired when the position of the thumb widget has changed (this
ition of the thumb widget has changed. * event is only fired when hot tracking is enabled).
static const String EventThumbTrackStarted; //!< * Handlers are passed a const WindowEventArgs reference with
Name of the event fired when the user begins dragging the thumb. * WindowEventArgs::window set to the Thumb whose position has changed.
static const String EventThumbTrackEnded; */
//!< Name of the event fired when the user releases the thumb. static const String EventThumbPositionChanged;
/** Event fired when the user begins dragging the thumb.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Thumb that has started to be drag
ged
* by the user.
*/
static const String EventThumbTrackStarted;
/** Event fired when the user releases the thumb.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Thumb that has been released.
*/
static const String EventThumbTrackEnded;
/******************************************************************* ****** /******************************************************************* ******
Accessor Functions Accessor Functions
******************************************************************** *****/ ******************************************************************** *****/
/*! /*!
\brief \brief
return whether hot-tracking is enabled or not. return whether hot-tracking is enabled or not.
\return \return
true if hot-tracking is enabled. false if hot-tracking is d isabled. true if hot-tracking is enabled. false if hot-tracking is d isabled.
 End of changes. 1 change blocks. 
6 lines changed or deleted 18 lines changed or added


 CEGUITooltip.h   CEGUITooltip.h 
skipping to change at line 89 skipping to change at line 89
properly passed to the system via System::injectTimePulse. properly passed to the system via System::injectTimePulse.
*/ */
class CEGUIEXPORT Tooltip : public Window class CEGUIEXPORT Tooltip : public Window
{ {
public: public:
/****************************************************************** ******* /****************************************************************** *******
Constants Constants
******************************************************************* ******/ ******************************************************************* ******/
static const String WidgetTypeName; //!< Window fac tory name static const String WidgetTypeName; //!< Window fac tory name
static const String EventNamespace; //!< Namespace for global events static const String EventNamespace; //!< Namespace for global events
static const String EventHoverTimeChanged; //!< Event fire /** Event fired when the hover timeout for the tool tip gets change
d when the hover timeout gets changed. d.
static const String EventDisplayTimeChanged; //!< Event fire * Handlers are passed a const WindowEventArgs reference with
d when the display timeout gets changed. * WindowEventArgs::window set to the Tooltip whose hover timeout h
static const String EventFadeTimeChanged; //!< Event fire as
d when the fade timeout gets changed. * been changed.
static const String EventTooltipActive; //!< Event fire */
d when the tooltip is about to get activated. static const String EventHoverTimeChanged;
static const String EventTooltipInactive; //!< Event fire /** Event fired when the display timeout for the tool tip gets chan
d when the tooltip has been deactivated. ged.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Tooltip whose display timeout
has
* been changed.
*/
static const String EventDisplayTimeChanged;
/** Event fired when the fade timeout for the tooltip gets changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Tooltip whose fade timeout ha
s
* been changed.
*/
static const String EventFadeTimeChanged;
/** Event fired when the tooltip is about to get activated.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Tooltip that is about to beco
me
* active.
*/
static const String EventTooltipActive;
/** Event fired when the tooltip has been deactivated.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Tooltip that has become inact
ive.
*/
static const String EventTooltipInactive;
/****************************************************************** ****** /****************************************************************** ******
Object Construction and Destruction Object Construction and Destruction
******************************************************************* *****/ ******************************************************************* *****/
/*! /*!
\brief \brief
Constructor for the Tooltip base class constructor Constructor for the Tooltip base class constructor
*/ */
Tooltip(const String& type, const String& name); Tooltip(const String& type, const String& name);
 End of changes. 1 change blocks. 
10 lines changed or deleted 36 lines changed or added


 CEGUITree.h   CEGUITree.h 
skipping to change at line 88 skipping to change at line 88
public: public:
//! Namespace for global events //! Namespace for global events
static const String EventNamespace; static const String EventNamespace;
static const String WidgetTypeName; static const String WidgetTypeName;
/********************************************************************** *** /********************************************************************** ***
Constants Constants
********************************************************************** ***/ ********************************************************************** ***/
// event names // event names
//! Event triggered when the contents of the tree is changed. /** Event fired when the content of the tree is changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Tree whose content has changed.
*/
static const String EventListContentsChanged; static const String EventListContentsChanged;
//! Event triggered when there is a change to the currently selected it /** Event fired when there is a change to the currently selected item(s
em(s). ).
* Handlers are passed a const TreeEventArgs reference with
* WindowEventArgs::window set to the Tree whose item selection has cha
nged,
* and TreeEventArgs::treeItem is set to the (last) item to be selected
, or
* 0 if none.
*/
static const String EventSelectionChanged; static const String EventSelectionChanged;
//! Event triggered when the sort mode setting changes. /** Event fired when the sort mode setting for the Tree is changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Tree whose sort mode has been
* changed.
*/
static const String EventSortModeChanged; static const String EventSortModeChanged;
//! Event triggered when the multi-select mode setting changes. /** Event fired when the multi-select mode setting for the Tree changes
.
* Handlers are passed a const TreeEventArgs reference with
* WindowEventArgs::window set to the Tree whose setting has changed.
* TreeEventArgs::treeItem is always set to 0.
*/
static const String EventMultiselectModeChanged; static const String EventMultiselectModeChanged;
//! Event triggered when the vertical scroll bar 'force' setting change /** Event fired when the mode setting that forces the display of the
s. * vertical scroll bar for the tree is changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Tree whose vertical scrollbar mod
e has
* been changed.
*/
static const String EventVertScrollbarModeChanged; static const String EventVertScrollbarModeChanged;
//! Event triggered when the horizontal scroll bar 'force' setting chan /** Event fired when the mode setting that forces the display of the
ges. * horizontal scroll bar for the tree is changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Tree whose horizontal scrollbar m
ode
* has been changed.
*/
static const String EventHorzScrollbarModeChanged; static const String EventHorzScrollbarModeChanged;
//! Event triggered when a branch of the tree is opened by the user. /** Event fired when a branch of the tree is opened by the user.
* Handlers are passed a const TreeEventArgs reference with
* WindowEventArgs::window set to the Tree containing the branch that h
as
* been opened and TreeEventArgs::treeItem set to the TreeItem at the h
ead
* of the opened branch.
*/
static const String EventBranchOpened; static const String EventBranchOpened;
//! Event triggered when a branch of the tree is closed by the user. /** Event fired when a branch of the tree is closed by the user.
* Handlers are passed a const TreeEventArgs reference with
* WindowEventArgs::window set to the Tree containing the branch that h
as
* been closed and TreeEventArgs::treeItem set to the TreeItem at the h
ead
* of the closed branch.
*/
static const String EventBranchClosed; static const String EventBranchClosed;
//Render the actual tree //Render the actual tree
void doTreeRender() void doTreeRender()
{ populateGeometryBuffer(); } { populateGeometryBuffer(); }
//UpdateScrollbars //UpdateScrollbars
void doScrollbars() void doScrollbars()
{ configureScrollbars(); } { configureScrollbars(); }
 End of changes. 8 change blocks. 
11 lines changed or deleted 54 lines changed or added


 CEGUITreeItem.h   CEGUITreeItem.h 
skipping to change at line 85 skipping to change at line 85
\brief \brief
base class constructor base class constructor
*/ */
TreeItem(const String& text, uint item_id = 0, void* item_data = 0, TreeItem(const String& text, uint item_id = 0, void* item_data = 0,
bool disabled = false, bool auto_delete = true); bool disabled = false, bool auto_delete = true);
/*! /*!
\brief \brief
base class destructor base class destructor
*/ */
virtual ~TreeItem(void) {} virtual ~TreeItem(void);
/********************************************************************** *** /********************************************************************** ***
Accessors Accessors
********************************************************************** ***/ ********************************************************************** ***/
/*! /*!
\brief \brief
Return a pointer to the font being used by this TreeItem Return a pointer to the font being used by this TreeItem
This method will try a number of places to find a font to be used. If This method will try a number of places to find a font to be used. If
no font can be found, NULL is returned. no font can be found, NULL is returned.
skipping to change at line 151 skipping to change at line 151
\brief \brief
Set the colours used for text rendering. Set the colours used for text rendering.
\param cols \param cols
ColourRect object describing the colours to be used. ColourRect object describing the colours to be used.
\return \return
Nothing. Nothing.
*/ */
void setTextColours(const ColourRect& cols) void setTextColours(const ColourRect& cols)
{ d_textCols = cols; } { d_textCols = cols; d_renderedStringValid = false; }
/*! /*!
\brief \brief
Set the colours used for text rendering. Set the colours used for text rendering.
\param top_left_colour \param top_left_colour
Colour (as ARGB value) to be applied to the top-left corner of each text Colour (as ARGB value) to be applied to the top-left corner of each text
glyph rendered. glyph rendered.
\param top_right_colour \param top_right_colour
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 CEGUIUDim.h   CEGUIUDim.h 
skipping to change at line 41 skipping to change at line 41
#include "CEGUIRect.h" #include "CEGUIRect.h"
#include "CEGUIVector.h" #include "CEGUIVector.h"
// some macros to aid in the creation of UDims // some macros to aid in the creation of UDims
#define cegui_absdim(x) CEGUI::UDim(0,(x)) #define cegui_absdim(x) CEGUI::UDim(0,(x))
#define cegui_reldim(x) CEGUI::UDim((x),0) #define cegui_reldim(x) CEGUI::UDim((x),0)
// Start of CEGUI namespace section // Start of CEGUI namespace section
namespace CEGUI namespace CEGUI
{ {
/*! /*!
\brief \brief
Class representing a unified dimension; that is a dimension that ha Class representing a unified dimension; that is a dimension that has bo
s both th
a relative 'scale' portion and and absolute 'offset' portion. a relative 'scale' portion and and absolute 'offset' portion.
*/ */
class CEGUIEXPORT UDim class CEGUIEXPORT UDim
{
public:
UDim() {}
UDim(float scale, float offset) : d_scale(scale), d_offset(offset) {}
UDim(const UDim& v): d_scale(v.d_scale), d_offset(v.d_offset) {}
~UDim() {}
float asAbsolute(float base) const
{ {
public: return PixelAligned(base * d_scale) + d_offset;
UDim() {} }
UDim(float scale, float offset) : d_scale(scale), d_offset(offset) float asRelative(float base) const
{} {
~UDim() {} return (base != 0.0f) ? d_offset / base + d_scale : 0.0f;
}
float asAbsolute(float base) const { return PixelAligned(base * UDim operator+(const UDim& other) const
d_scale) + d_offset; } {
float asRelative(float base) const { return (base != 0.0f) ? d_o return UDim(d_scale + other.d_scale, d_offset + other.d_offset);
ffset / base + d_scale : 0.0f; } }
UDim operator-(const UDim& other) const
{
return UDim(d_scale - other.d_scale, d_offset - other.d_offset);
}
UDim operator*(const UDim& other) const
{
return UDim(d_scale * other.d_scale, d_offset * other.d_offset);
}
UDim operator/(const UDim& other) const
{
// division by zero sets component to zero. Not technically correc
t
// but probably better than exceptions and/or NaN values.
return UDim(other.d_scale == 0.0f ? 0.0f : d_scale / other.d_scale,
other.d_offset == 0.0f ? 0.0f : d_offset / other.d_offs
et);
}
UDim operator+(const UDim& other) const { return UDim(d_scale + const UDim& operator+=(const UDim& other)
other.d_scale, d_offset + other.d_offset); } {
UDim operator-(const UDim& other) const { return UDim(d_scale - d_scale += other.d_scale;
other.d_scale, d_offset - other.d_offset); } d_offset += other.d_offset;
UDim operator*(const UDim& other) const { return UDim(d_scale * return *this;
other.d_scale, d_offset * other.d_offset); } }
UDim operator/(const UDim& other) const const UDim& operator-=(const UDim& other)
{ {
// division by zero sets component to zero. Not technically co d_scale -= other.d_scale;
rrect d_offset -= other.d_offset;
// but probably better than exceptions and/or NaN values. return *this;
return UDim(other.d_scale == 0.0f ? 0.0f : d_scale / other.d_sc }
ale, const UDim& operator*=(const UDim& other)
other.d_offset == 0.0f ? 0.0f : d_offset / other.d_ {
offset); d_scale *= other.d_scale;
} d_offset *= other.d_offset;
return *this;
}
const UDim& operator/=(const UDim& other)
{
// division by zero sets component to zero. Not technically correc
t
// but probably better than exceptions and/or NaN values.
d_scale = (other.d_scale == 0.0f ? 0.0f : d_scale / other.d_scale);
d_offset = (other.d_offset == 0.0f ? 0.0f : d_offset / other.d_offs
et);
return *this;
}
const UDim& operator+=(const UDim& other) { d_scale += other.d_sc bool operator==(const UDim& other) const
ale; d_offset += other.d_offset; return *this; } {
const UDim& operator-=(const UDim& other) { d_scale -= other.d_sc return d_scale == other.d_scale && d_offset == other.d_offset;
ale; d_offset -= other.d_offset; return *this; } }
const UDim& operator*=(const UDim& other) { d_scale *= other.d_sc bool operator!=(const UDim& other) const
ale; d_offset *= other.d_offset; return *this; } {
const UDim& operator/=(const UDim& other) return !operator==(other);
{ }
// division by zero sets component to zero. Not technically co
rrect
// but probably better than exceptions and/or NaN values.
d_scale = (other.d_scale == 0.0f ? 0.0f : d_scale / other.d_sca
le);
d_offset = (other.d_offset == 0.0f ? 0.0f : d_offset / other.d_
offset);
return *this;
}
bool operator==(const UDim& other) const { return d_scale == oth float d_scale, d_offset;
er.d_scale && d_offset == other.d_offset; } };
bool operator!=(const UDim& other) const { return !operator==(ot
her); }
float d_scale, d_offset; /*!
}; \brief
Two dimensional vector class built using unified dimensions (UDims).
The UVector2 class is used for representing both positions and sizes.
*/
class CEGUIEXPORT UVector2
{
public:
UVector2() {}
UVector2(const UDim& x, const UDim& y) : d_x(x), d_y(y) {}
UVector2(const UVector2& v): d_x(v.d_x), d_y(v.d_y) {}
~UVector2() {}
/*! Vector2 asAbsolute(const Size& base) const
\brief
Two dimensional vector class built using unified dimensions (UDims)
.
The UVector2 class is used for representing both positions and size
s.
*/
class CEGUIEXPORT UVector2
{ {
public: return Vector2(d_x.asAbsolute(base.d_width), d_y.asAbsolute(base.d_
UVector2() {} height));
UVector2(const UDim& x, const UDim& y) : d_x(x), d_y(y) {} }
~UVector2() {} Vector2 asRelative(const Size& base) const
{
return Vector2(d_x.asRelative(base.d_width), d_y.asRelative(base.d_
height));
}
Vector2 asAbsolute(const Size& base) const { return Vector2(d_x. UVector2 operator+(const UVector2& other) const
asAbsolute(base.d_width), d_y.asAbsolute(base.d_height)); } {
Vector2 asRelative(const Size& base) const { return Vector2(d_x. return UVector2(d_x + other.d_x, d_y + other.d_y);
asRelative(base.d_width), d_y.asRelative(base.d_height)); } }
UVector2 operator-(const UVector2& other) const
{
return UVector2(d_x - other.d_x, d_y - other.d_y);
}
UVector2 operator/(const UVector2& other) const
{
return UVector2(d_x / other.d_x, d_y / other.d_y);
}
UVector2 operator*(const UVector2& other) const
{
return UVector2(d_x * other.d_x, d_y * other.d_y);
}
UVector2 operator+(const UVector2& other) const { return UVecto const UVector2& operator+=(const UVector2& other)
r2(d_x + other.d_x, d_y + other.d_y); } {
UVector2 operator-(const UVector2& other) const { return UVecto d_x += other.d_x;
r2(d_x - other.d_x, d_y - other.d_y); } d_y += other.d_y;
UVector2 operator/(const UVector2& other) const { return UVecto return *this;
r2(d_x / other.d_x, d_y / other.d_y); } }
UVector2 operator*(const UVector2& other) const { return UVecto const UVector2& operator-=(const UVector2& other)
r2(d_x * other.d_x, d_y * other.d_y); } {
d_x -= other.d_x;
d_y -= other.d_y;
return *this;
}
const UVector2& operator/=(const UVector2& other)
{
d_x /= other.d_x;
d_y /= other.d_y;
return *this;
}
const UVector2& operator*=(const UVector2& other)
{
d_x *= other.d_x;
d_y *= other.d_y;
return *this;
}
const UVector2& operator+=(const UVector2& other) { d_x += other. UVector2 operator+(const UDim& dim) const
d_x; d_y += other.d_y; return *this; } {
const UVector2& operator-=(const UVector2& other) { d_x -= other. return UVector2(d_x + dim, d_y + dim);
d_x; d_y -= other.d_y; return *this; } }
const UVector2& operator/=(const UVector2& other) { d_x /= other. UVector2 operator-(const UDim& dim) const
d_x; d_y /= other.d_y; return *this; } {
const UVector2& operator*=(const UVector2& other) { d_x *= other. return UVector2(d_x - dim, d_y - dim);
d_x; d_y *= other.d_y; return *this; } }
UVector2 operator/(const UDim& dim) const
{
return UVector2(d_x / dim, d_y / dim);
}
UVector2 operator*(const UDim& dim) const
{
return UVector2(d_x * dim, d_y * dim);
}
UVector2 operator+(const UDim& dim) const { return UVector2(d_x const UVector2& operator+=(const UDim& dim)
+ dim, d_y + dim); } {
UVector2 operator-(const UDim& dim) const { return UVector2(d_x d_x += dim;
- dim, d_y - dim); } d_y += dim;
UVector2 operator/(const UDim& dim) const { return UVector2(d_x return *this;
/ dim, d_y / dim); } }
UVector2 operator*(const UDim& dim) const { return UVector2(d_x const UVector2& operator-=(const UDim& dim)
* dim, d_y * dim); } {
d_x -= dim;
d_y -= dim;
return *this;
}
const UVector2& operator/=(const UDim& dim)
{
d_x /= dim;
d_y /= dim;
return *this;
}
const UVector2& operator*=(const UDim& dim)
{
d_x *= dim;
d_y *= dim;
return *this;
}
const UVector2& operator+=(const UDim& dim) { d_x += dim; d_y += bool operator==(const UVector2& other) const
dim; return *this; } {
const UVector2& operator-=(const UDim& dim) { d_x -= dim; d_y -= return d_x == other.d_x && d_y == other.d_y;
dim; return *this; } }
const UVector2& operator/=(const UDim& dim) { d_x /= dim; d_y /= bool operator!=(const UVector2& other) const
dim; return *this; } {
const UVector2& operator*=(const UDim& dim) { d_x *= dim; d_y *= return !operator==(other);
dim; return *this; } }
bool operator==(const UVector2& other) const { return d_x == oth UDim d_x, d_y;
er.d_x && d_y == other.d_y; } };
bool operator!=(const UVector2& other) const { return !operator=
=(other); }
UDim d_x, d_y; /*!
}; \brief
Area rectangle class built using unified dimensions (UDims).
*/
class CEGUIEXPORT URect
{
public:
URect() {}
/*! URect(const UVector2& min, const UVector2& max) : d_min(min), d_max(max
\brief ) {}
Area rectangle class built using unified dimensions (UDims).
*/ URect(const UDim& left, const UDim& top, const UDim& right, const UDim&
class CEGUIEXPORT URect bottom)
{ {
public: d_min.d_x = left;
URect() {} d_min.d_y = top;
d_max.d_x = right;
d_max.d_y = bottom;
}
URect(const UVector2& min, const UVector2& max) : d_min(min), d_max (max) {} URect(const URect& v): d_min(v.d_min), d_max(v.d_max) {}
URect(const UDim& left, const UDim& top, const UDim& right, const U ~URect() {}
Dim& bottom)
{
d_min.d_x = left;
d_min.d_y = top;
d_max.d_x = right;
d_max.d_y = bottom;
}
~URect() {} Rect asAbsolute(const Size& base) const
{
return Rect(
d_min.d_x.asAbsolute(base.d_width),
d_min.d_y.asAbsolute(base.d_height),
d_max.d_x.asAbsolute(base.d_width),
d_max.d_y.asAbsolute(base.d_height)
);
}
Rect asAbsolute(const Size& base) const Rect asRelative(const Size& base) const
{ {
return Rect( return Rect(
d_min.d_x.asAbsolute(base.d_width), d_min.d_x.asRelative(base.d_width),
d_min.d_y.asAbsolute(base.d_height), d_min.d_y.asRelative(base.d_height),
d_max.d_x.asAbsolute(base.d_width), d_max.d_x.asRelative(base.d_width),
d_max.d_y.asAbsolute(base.d_height) d_max.d_y.asRelative(base.d_height)
); );
} }
Rect asRelative(const Size& base) const const UVector2& getPosition() const
{ {
return Rect( return d_min;
d_min.d_x.asRelative(base.d_width), }
d_min.d_y.asRelative(base.d_height), UVector2 getSize() const
d_max.d_x.asRelative(base.d_width), {
d_max.d_y.asRelative(base.d_height) return d_max - d_min;
); }
} UDim getWidth() const
{
return d_max.d_x - d_min.d_x;
}
UDim getHeight() const
{
return d_max.d_y - d_min.d_y;
}
const UVector2& getPosition() const { return d_min; } void setPosition(const UVector2& pos)
UVector2 getSize() const { return d_max - d_min; } {
UDim getWidth() const { return d_max.d_x - d_min. UVector2 sz(d_max - d_min);
d_x; } d_min = pos;
UDim getHeight() const { return d_max.d_y - d_min. d_max = d_min + sz;
d_y; } }
void setPosition(const UVector2& pos) void setSize(const UVector2& sz)
{ {
UVector2 sz(d_max - d_min); d_max = d_min + sz;
d_min = pos; }
d_max = d_min + sz;
}
void setSize(const UVector2& sz) void setWidth(const UDim& w)
{ {
d_max = d_min + sz; d_max.d_x = d_min.d_x + w;
} }
void setHeight(const UDim& h)
{
d_max.d_y = d_min.d_y + h;
}
void setWidth(const UDim& w) { d_max.d_x = d_min.d_x + w; } void offset(const UVector2& sz)
void setHeight(const UDim& h) { d_max.d_y = d_min.d_y + h; } {
d_min += sz;
d_max += sz;
}
void offset(const UVector2& sz) URect operator*(const UDim& dim) const
{ {
d_min += sz; return URect(d_min * dim, d_max * dim);
d_max += sz; }
}
UVector2 d_min, d_max; URect operator+(const URect& r) const
}; {
return URect(d_min + r.d_min, d_max + r.d_max);
}
UVector2 d_min, d_max;
};
/*!
\brief
Class encapsulating the 'Unified Box' - this is usually used for margin
\par
top, left, right and bottom represent offsets on each edge
\note
Name taken from W3 'box model'
*/
class CEGUIEXPORT UBox
{
public:
UBox():
d_top(),
d_left(),
d_bottom(),
d_right()
{}
UBox(const UDim& margin):
d_top(margin),
d_left(margin),
d_bottom(margin),
d_right(margin)
{}
UBox(const UDim& top, const UDim& left, const UDim& bottom, const UDim&
right):
d_top(top),
d_left(left),
d_bottom(bottom),
d_right(right)
{}
UBox(const UBox& b):
d_top(b.d_top),
d_left(b.d_left),
d_bottom(b.d_bottom),
d_right(b.d_right)
{}
/**********************************************************************
***
Operators
***********************************************************************
**/
bool operator==(const UBox& rhs) const
{
return ((d_top == rhs.d_top) &&
(d_left == rhs.d_left) &&
(d_bottom == rhs.d_bottom) &&
(d_right == rhs.d_right));
}
bool operator!=(const UBox& rhs) const
{
return !operator==(rhs);
}
UBox& operator=(const UBox& rhs)
{
d_top = rhs.d_top;
d_left = rhs.d_left;
d_bottom = rhs.d_bottom;
d_right = rhs.d_right;
return *this;
}
UBox operator*(const UDim& dim) const
{
return UBox(
d_top * dim, d_left * dim,
d_bottom * dim, d_right * dim);
}
UBox operator+(const UBox& b) const
{
return UBox(
d_top + b.d_top, d_left + b.d_left,
d_bottom + b.d_bottom, d_right + b.d_right);
}
/**********************************************************************
***
Data Fields
***********************************************************************
**/
UDim d_top;
UDim d_left;
UDim d_bottom;
UDim d_right;
};
} // End of CEGUI namespace section } // End of CEGUI namespace section
#endif // end of guard _CEGUIUDim_h_ #endif // end of guard _CEGUIUDim_h_
 End of changes. 29 change blocks. 
169 lines changed or deleted 374 lines changed or added


 CEGUIVector.h   CEGUIVector.h 
skipping to change at line 49 skipping to change at line 49
/*! /*!
\brief \brief
Class used as a two dimensional vector (aka a Point) Class used as a two dimensional vector (aka a Point)
*/ */
class CEGUIEXPORT Vector2 class CEGUIEXPORT Vector2
{ {
public: public:
Vector2(void) {} Vector2(void) {}
Vector2(float x, float y) : d_x(x), d_y(y) {} Vector2(float x, float y) : d_x(x), d_y(y) {}
Vector2(const Vector2& v) : d_x(v.d_x), d_y(v.d_y) {}
Vector2& operator*=(const Vector2& vec) Vector2& operator*=(const Vector2& vec)
{ {
d_x *= vec.d_x; d_x *= vec.d_x;
d_y *= vec.d_y; d_y *= vec.d_y;
return *this; return *this;
} }
Vector2& operator/=(const Vector2& vec) Vector2& operator/=(const Vector2& vec)
skipping to change at line 97 skipping to change at line 98
Vector2 operator-(const Vector2& vec) const Vector2 operator-(const Vector2& vec) const
{ {
return Vector2(d_x - vec.d_x, d_y - vec.d_y); return Vector2(d_x - vec.d_x, d_y - vec.d_y);
} }
Vector2 operator*(const Vector2& vec) const Vector2 operator*(const Vector2& vec) const
{ {
return Vector2(d_x * vec.d_x, d_y * vec.d_y); return Vector2(d_x * vec.d_x, d_y * vec.d_y);
} }
Vector2 operator*(float c) const
{
return Vector2(d_x * c, d_y * c);
}
bool operator==(const Vector2& vec) const bool operator==(const Vector2& vec) const
{ {
return ((d_x == vec.d_x) && (d_y == vec.d_y)); return ((d_x == vec.d_x) && (d_y == vec.d_y));
} }
bool operator!=(const Vector2& vec) const bool operator!=(const Vector2& vec) const
{ {
return !(operator==(vec)); return !(operator==(vec));
} }
skipping to change at line 127 skipping to change at line 133
/*! /*!
\brief \brief
Class used as a three dimensional vector Class used as a three dimensional vector
*/ */
class CEGUIEXPORT Vector3 class CEGUIEXPORT Vector3
{ {
public: public:
Vector3(void) {} Vector3(void) {}
Vector3(float x, float y, float z) : d_x(x), d_y(y), d_z(z) {} Vector3(float x, float y, float z) : d_x(x), d_y(y), d_z(z) {}
Vector3(const Vector3& v) : d_x(v.d_x), d_y(v.d_y), d_z(v.d_z) {}
bool operator==(const Vector3& vec) const bool operator==(const Vector3& vec) const
{ {
return ((d_x == vec.d_x) && (d_y == vec.d_y) && (d_z == vec.d_z)); return ((d_x == vec.d_x) && (d_y == vec.d_y) && (d_z == vec.d_z));
} }
bool operator!=(const Vector3& vec) const bool operator!=(const Vector3& vec) const
{ {
return !(operator==(vec)); return !(operator==(vec));
} }
Vector3 operator*(float c) const
{
return Vector3(d_x * c, d_y * c, d_z * c);
}
Vector3 operator+(const Vector3& v) const
{
return Vector3(d_x + v.d_x, d_y + v.d_y, d_z + v.d_z);
}
float d_x, d_y, d_z; float d_x, d_y, d_z;
}; };
} // End of CEGUI namespace section } // End of CEGUI namespace section
#endif // end of guard _CEGUIVector_h_ #endif // end of guard _CEGUIVector_h_
 End of changes. 4 change blocks. 
0 lines changed or deleted 17 lines changed or added


 CEGUIVersion.h   CEGUIVersion.h 
skipping to change at line 42 skipping to change at line 42
*************************************************************************/ *************************************************************************/
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
#ifndef _CEGUIVersion_h_ #ifndef _CEGUIVersion_h_
#define _CEGUIVersion_h_ #define _CEGUIVersion_h_
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// Define CEGUI version // Define CEGUI version
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
#define CEGUI_VERSION_MAJOR 0 #define CEGUI_VERSION_MAJOR 0
#define CEGUI_VERSION_MINOR 7 #define CEGUI_VERSION_MINOR 7
#define CEGUI_VERSION_PATCH 1 #define CEGUI_VERSION_PATCH 2
#endif // end of guard _CEGUIVersion_h_ #endif // end of guard _CEGUIVersion_h_
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 CEGUIWidgetModule.h   CEGUIWidgetModule.h 
skipping to change at line 95 skipping to change at line 95
while (entry->d_name)\ while (entry->d_name)\
{\ {\
if (entry->d_name == type_name)\ if (entry->d_name == type_name)\
{\ {\
doSafeFactoryRegistration(entry->d_factory);\ doSafeFactoryRegistration(entry->d_factory);\
return;\ return;\
}\ }\
++entry;\ ++entry;\
}\ }\
\ \
throw CEGUI::UnknownObjectException("::registerFactory - The window fac tory for type '" + type_name + "' is not known in this module.");\ CEGUI_THROW(CEGUI::UnknownObjectException("::registerFactory - The wind ow factory for type '" + type_name + "' is not known in this module."));\
}\ }\
\ \
extern "C" CEGUI::uint registerAllFactories(void)\ extern "C" CEGUI::uint registerAllFactories(void)\
{\ {\
CEGUI::uint count = 0;\ CEGUI::uint count = 0;\
module ## MapEntry* entry = module ## FactoriesMap;\ module ## MapEntry* entry = module ## FactoriesMap;\
while (entry->d_name)\ while (entry->d_name)\
{\ {\
doSafeFactoryRegistration(entry->d_factory);\ doSafeFactoryRegistration(entry->d_factory);\
++entry;\ ++entry;\
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 CEGUIWindow.h   CEGUIWindow.h 
skipping to change at line 107 skipping to change at line 107
HA_CENTRE, HA_CENTRE,
/** /**
* Window's position specifies an offset of it's right edge from the ri ght * Window's position specifies an offset of it's right edge from the ri ght
* edge of it's parent. * edge of it's parent.
*/ */
HA_RIGHT HA_RIGHT
}; };
/*! /*!
\brief \brief
Enumerated type used for specifying Window::update mode to be used. No
te
that the setting specified will also have an effect on child window
content; for WUM_NEVER and WUM_VISIBLE, if the parent's update function
is
not called, then no child window will have it's update function called
either - even if it specifies WUM_ALWAYS as it's WindowUpdateMode.
*/
enum WindowUpdateMode
{
//! Always call the Window::update function for this window.
WUM_ALWAYS,
//! Never call the Window::update function for this window.
WUM_NEVER,
//! Only call the Window::update function for this window if it is visi
ble.
WUM_VISIBLE
};
/*!
\brief
An abstract base class providing common functionality and specifying th e An abstract base class providing common functionality and specifying th e
required interface for derived classes. required interface for derived classes.
The Window base class is core UI object class that the the system knows The Window base class is core UI object class that the the system knows
about; for this reason, every other window, widget, or similar item wit hin about; for this reason, every other window, widget, or similar item wit hin
the system must be derived from Window. the system must be derived from Window.
The base class provides the common functionality required by all UI obj ects, The base class provides the common functionality required by all UI obj ects,
and specifies the minimal interface required to be implemented by deriv ed and specifies the minimal interface required to be implemented by deriv ed
classes. classes.
skipping to change at line 128 skipping to change at line 146
class CEGUIEXPORT Window : public PropertySet, public EventSet class CEGUIEXPORT Window : public PropertySet, public EventSet
{ {
public: public:
/********************************************************************** *** /********************************************************************** ***
Event name constants Event name constants
*********************************************************************** **/ *********************************************************************** **/
//! Namespace for global events //! Namespace for global events
static const String EventNamespace; static const String EventNamespace;
// generated internally by Window // generated internally by Window
//! Signal the time based update of window. /** Event fired as part of the time based update of the window.
* Handlers are passed a const UpdateEventArgs reference.
*/
static const String EventWindowUpdated; static const String EventWindowUpdated;
//! Parent of this Window has been re-sized. /** Event fired when the parent of this Window has been re-sized.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window pointing to the <em>parent window</em> that
* was resized, not the window whose parent was resized.
*/
static const String EventParentSized; static const String EventParentSized;
//! Window size has changed /** Event fired when the Window size has changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Window whose size was changed.
*/
static const String EventSized; static const String EventSized;
//! Window position has changed /** Event fired when the Window position has changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Window whose position was changed
.
*/
static const String EventMoved; static const String EventMoved;
//! Text string for the Window has changed /** Event fired when the text string for the Window has changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Window whose text was changed.
*/
static const String EventTextChanged; static const String EventTextChanged;
//!Font object for the Window has been changed /** Event fired when the Font object for the Window has been changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Window whose font was changed.
*/
static const String EventFontChanged; static const String EventFontChanged;
//! Alpha blend value for the Window has changed /** Event fired when the Alpha blend value for the Window has changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Window whose alpha value was chan
ged.
*/
static const String EventAlphaChanged; static const String EventAlphaChanged;
//! Client assigned ID code for the Window has changed /** Event fired when the client assigned ID for the Window has changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Window whose ID was changed.
*/
static const String EventIDChanged; static const String EventIDChanged;
//! Window has been activated (has input focus) /** Event fired when the Window has been activated and has input focus.
* Handlers are passed a const ActivationEventArgs reference with
* WindowEventArgs::window set to the Window that is gaining activation
and
* ActivationEventArgs::otherWindow set to the Window that is losing
* activation (may be 0).
*/
static const String EventActivated; static const String EventActivated;
//! Window has been deactivated (loses input focus) /** Event fired when the Window has been deactivated, losing input focu
s.
* Handlers are passed a const ActivationEventArgs reference with
* WindowEventArgs::window set to the Window that is losing activation
and
* ActivationEventArgs::otherWindow set to the Window that is gaining
* activation (may be 0).
*/
static const String EventDeactivated; static const String EventDeactivated;
//! Window has been made visible /** Event fired when the Window is shown (made visible).
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Window that was shown.
*/
static const String EventShown; static const String EventShown;
//! Window has been hidden from view /** Event fired when the Window is made hidden.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Window that was hidden.
*/
static const String EventHidden; static const String EventHidden;
//! Window has been enabled (interaction is possible) /** Event fired when the Window is enabled so interaction is possible.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Window that was enabled.
*/
static const String EventEnabled; static const String EventEnabled;
//! Window has been disabled (interaction is no longer possible) /** Event fired when the Window is disabled and interaction is no longe
r
* possible.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Window that was disabled.
*/
static const String EventDisabled; static const String EventDisabled;
//! Clipping by parent mode has been modified /** Event fired when the Window clipping mode is modified.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Window whose clipping mode was
* changed.
*/
static const String EventClippedByParentChanged; static const String EventClippedByParentChanged;
//! Destruction by parent mode has been modified /** Event fired when the Window destruction mode is modified.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Window whose destruction mode was
* changed.
*/
static const String EventDestroyedByParentChanged; static const String EventDestroyedByParentChanged;
//! Alpha inherited from parent mode has been modified. /** Event fired when the Window mode controlling inherited alpha is cha
nged.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Window whose alpha inheritence mo
de
* was changed.
*/
static const String EventInheritsAlphaChanged; static const String EventInheritsAlphaChanged;
//! Always on top mode has been modified /** Event fired when the always on top setting for the Window is change
d.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Window whose always on top settin
g
* was changed.
*/
static const String EventAlwaysOnTopChanged; static const String EventAlwaysOnTopChanged;
//! Window has captured all inputs /** Event fired when the Window gains capture of mouse inputs.
* Handlers are passed a cont WindowEventArgs reference with
* WindowEventArgs::window set to the Window that has captured mouse in
puts.
*/
static const String EventInputCaptureGained; static const String EventInputCaptureGained;
//! Window has lost it's capture on inputs /** Event fired when the Window loses capture of mouse inputs.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to either:
* - the Window that has lost capture of mouse inputs if that event was
* caused by the window itself releasing the capture.
* - the Window that is @gaining capture of mouse inputs if that is the
* cause of the previous window with capture losing that capture.
*/
static const String EventInputCaptureLost; static const String EventInputCaptureLost;
//! Rendering of the Window has started /** Event fired when rendering of the Window has started. In this cont
ext
* 'rendering' is the population of the GeometryBuffer with geometry fo
r the
* window, not the actual rendering of that GeometryBuffer content to t
he
* display.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Window whose rendering has starte
d.
*/
static const String EventRenderingStarted; static const String EventRenderingStarted;
//! Rendering for the Window has finished /** Event fired when rendering of the Window has ended. In this contex
t
* 'rendering' is the population of the GeometryBuffer with geometry fo
r the
* window, not the actual rendering of that GeometryBuffer content to t
he
* display.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Window whose rendering has ended.
*/
static const String EventRenderingEnded; static const String EventRenderingEnded;
//! A child Window has been added /** Event fired when a child Window has been added.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the child window that was added.
*/
static const String EventChildAdded; static const String EventChildAdded;
//! A child window has been removed /** Event fired when a child window has been removed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the child window that was removed.
*/
static const String EventChildRemoved; static const String EventChildRemoved;
//! Destruction of the Window is about to begin. /** Event fired when destruction of the Window is about to begin.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Window that is about to be destro
yed.
*/
static const String EventDestructionStarted; static const String EventDestructionStarted;
//! The z-order of the window has changed /** Event fired when the z-order of the window has changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Window whose z order position has
* changed.
*/
static const String EventZOrderChanged; static const String EventZOrderChanged;
//! A DragContainer has been dragged over this window. /** Event fired when a DragContainer is dragged in to the window's area
.
* Handlers are passed a const DragDropEventArgs reference with
* WindowEventArgs::window set to the window over which a DragContainer
has
* been dragged (the receiving window) and DragDropEventArgs::dragDropI
tem
* set to the DragContainer that was dragged in to the receiving window
's
* area.
*/
static const String EventDragDropItemEnters; static const String EventDragDropItemEnters;
//! A DragContainer has left this window. /** Event fired when a DragContainer is dragged out of the window's are
a.
* Handlers are passed a const DragDropEventArgs reference with
* WindowEventArgs::window set to the window over which a DragContainer
has
* been dragged out of (the receiving window) and
* DragDropEventArgs::dragDropItem set to the DragContainer that was dr
agged
* out of the receiving window's area.
*/
static const String EventDragDropItemLeaves; static const String EventDragDropItemLeaves;
//! A DragContainer was dropped on this Window. /** Event fired when a DragContainer is dropped within the window's are
a.
* Handlers are passed a const DragDropEventArgs reference with
* WindowEventArgs::window set to the window over which a DragContainer
was
* dropped (the receiving window) and DragDropEventArgs::dragDropItem s
et to
* the DragContainer that was dropped within the receiving window's are
a.
*/
static const String EventDragDropItemDropped; static const String EventDragDropItemDropped;
//! The vertical alignment of the window has changed. /** Event fired when the vertical alignment for the window is changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the window whose vertical alignment
* setting was changed.
*/
static const String EventVerticalAlignmentChanged; static const String EventVerticalAlignmentChanged;
//! The vertical alignment of the window has changed. /** Event fired when the horizontal alignment for the window is changed
.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the window whose horizontal alignment
* setting was changed.
*/
static const String EventHorizontalAlignmentChanged; static const String EventHorizontalAlignmentChanged;
//! The a new window renderer was attached. /** Event fired when a WindowRenderer object is attached to the window.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the window that had the WindowRendere
r
* attached to it.
*/
static const String EventWindowRendererAttached; static const String EventWindowRendererAttached;
//! The currently assigned window renderer was detached. /** Event fired when a WindowRenderer object is detached from the windo
w.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the window that had the WindowRendere
r
* detached from it.
*/
static const String EventWindowRendererDetached; static const String EventWindowRendererDetached;
//! Window rotation factor(s) changed /** Event fired whrn the rotation factor(s) for the window are changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Window whose rotation was changed
.
*/
static const String EventRotated; static const String EventRotated;
//! Window non-client setting was changed /** Event fired when the non-client setting for the Window is changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Window whose non-client setting w
as
* changed.
*/
static const String EventNonClientChanged; static const String EventNonClientChanged;
//! Window text parsing setting was changed /** Event fired when the Window's setting controlling parsing of it's t
ext
* string is changed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Window whose text parsing setting
was
* changed.
*/
static const String EventTextParsingChanged; static const String EventTextParsingChanged;
/** Event fired when the Window's margin has changed (any of the four m
argins)
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Window whose margin was
* changed.
*/
static const String EventMarginChanged;
// generated externally (inputs) // generated externally (inputs)
//! Mouse cursor has entered the Window. /** Event fired when the mouse cursor has entered the Window's area.
* Handlers are passed a const MouseEventArgs reference with all fields
* valid.
*/
static const String EventMouseEntersArea;
/** Event fired when themouse cursor has left the Window's area.
* Handlers are passed a const MouseEventArgs reference with all fields
* valid.
*/
static const String EventMouseLeavesArea;
/** Event fired when the mouse cursor enters the Window's area.
* Handlers are passed a const MouseEventArgs reference with all fields
* valid.
*\note This event is fired if - and only if - the mouse cursor is actu
ally
* over some part of this Window's surface area, and will not fire for
* example if the location of the mouse is over some child window (even
* though the mouse is technically also within the area of this Window)
.
* For an alternative version of this event see the
* Window::EventMouseEntersArea event.
*/
static const String EventMouseEnters; static const String EventMouseEnters;
//! Mouse cursor has left the Window. /** Event fired when the mouse cursor is no longer over the Window's su
rface
* area.
* Handlers are passed a const MouseEventArgs reference with all fields
* valid.
*\note This event will fire whenever the mouse is no longer actually o
ver
* some part of this Window's surface area, for example if the mouse is
* moved over some child window (even though technically the mouse has
not
* actually 'left' this Window's area). For an alternative version of
this
* event see the Window::EventMouseLeavesArea event.
*/
static const String EventMouseLeaves; static const String EventMouseLeaves;
//! Mouse cursor was moved within the area of the Window. /** Event fired when the mouse cursor moves within the area of the Wind
ow.
* Handlers are passed a const MouseEventArgs reference with all fields
* valid.
*/
static const String EventMouseMove; static const String EventMouseMove;
//! Mouse wheel was scrolled within the Window. /** Event fired when the mouse wheel is scrolled when the mouse cursor
is
* within the Window's area.
* Handlers are passed a const MouseEventArgs reference with all fields
* valid.
*/
static const String EventMouseWheel; static const String EventMouseWheel;
//! A mouse button was pressed down within the Window. /** Event fired when a mouse button is pressed down within the Window.
* Handlers are passed a const MouseEventArgs reference with all fields
* valid.
*/
static const String EventMouseButtonDown; static const String EventMouseButtonDown;
//! A mouse button was released within the Window. /** Event fired when a mouse button is released within the Window.
* Handlers are passed a const MouseEventArgs reference with all fields
* valid.
*/
static const String EventMouseButtonUp; static const String EventMouseButtonUp;
//! A mouse button was clicked (down then up) within the Window. /** Event fired when a mouse button is clicked - that is, pressed down
and
* released within a specific time interval - while the mouse cursor is
* within the Window's area.
* Handlers are passed a const MouseEventArgs reference with all fields
* valid.
*/
static const String EventMouseClick; static const String EventMouseClick;
//! A mouse button was double-clicked within the Window. /** Event fired when a mouse button is double-clicked while the mouse c
ursor
* is within the Window's area.
* Handlers are passed a const MouseEventArgs reference with all fields
* valid.
*/
static const String EventMouseDoubleClick; static const String EventMouseDoubleClick;
//! A mouse button was triple-clicked within the Window. /** Event fired when a mouse button is triple-clicked while the mouse c
ursor
* is within the Window's area.
* Handlers are passed a const MouseEventArgs reference with all fields
* valid.
*/
static const String EventMouseTripleClick; static const String EventMouseTripleClick;
//! A key on the keyboard was pressed. /** Event fired when a key on the keyboard was pressed down while the w
indow
* had input focus.
* Handlers are passed a const KeyEventArgs reference with
* WindowEventArgs::window set to the Window receiving the key press,
* KeyEventArgs::scancode set to the Key::Scan value of the key that wa
s
* pressed, and KeyEventArgs::sysKeys set to the combination of ::Syste
mKey
* values active when the key was pressed.
*/
static const String EventKeyDown; static const String EventKeyDown;
//! A key on the keyboard was released. /** Event fired when a key on the keyboard was released while the windo
w
* had input focus.
* Handlers are passed a const KeyEventArgs reference with
* WindowEventArgs::window set to the Window receiving the key release,
* KeyEventArgs::scancode set to the Key::Scan value of the key that wa
s
* released, and KeyEventArgs::sysKeys set to the combination of ::Syst
emKey
* values active when the key was released.
*/
static const String EventKeyUp; static const String EventKeyUp;
//! A text character was typed on the keyboard. /** Event fired when the Window receives a character key input event.
* Handlers are passed a const KeyEventArgs reference with
* WindowEventArgs::window set to the Window receiving the character in
put,
* KeyEventArgs::codepoint set to the Unicode UTF32 / UCS-4 value for t
he
* input, and KeyEventArgs::sysKeys set to the combination of ::SystemK
ey
* values active when the character input was received.
*/
static const String EventCharacterKey; static const String EventCharacterKey;
/********************************************************************** *** /********************************************************************** ***
Child Widget name suffix constants Child Widget name suffix constants
*********************************************************************** **/ *********************************************************************** **/
//! Widget name suffix for automatically created tooltip widgets. //! Widget name suffix for automatically created tooltip widgets.
static const String TooltipNameSuffix; static const String TooltipNameSuffix;
//! Something that all generated widgets will have in their names. //! Something that all generated widgets will have in their names.
static const String AutoWidgetNameSuffix; static const String AutoWidgetNameSuffix;
skipping to change at line 763 skipping to change at line 1004
The area returned by this function may also be useful for certain The area returned by this function may also be useful for certain
calculations that require the clipped Window area as seen on the di splay calculations that require the clipped Window area as seen on the di splay
as opposed to what is used for rendering (since the actual renderin g as opposed to what is used for rendering (since the actual renderin g
clipper rects should not to be used if reliable results are desired ). clipper rects should not to be used if reliable results are desired ).
*/ */
Rect getHitTestRect() const; Rect getHitTestRect() const;
/*! /*!
\brief \brief
Return a Rect that describes the area that is used to position
and - for scale values - size child content attached to this Window
.
By and large the area returned here will be the same as the unclipp
ed
inner rect (for client content) or the unclipped outer rect (for no
n
client content), although certain advanced uses will require
alternative Rects to be returned.
\note
The behaviour of this function is modified by overriding the
protected Window::getClientChildWindowContentArea_impl and/or
Window::getNonClientChildWindowContentArea_impl functions.
\param non_client
- true to return the non-client child content area.
- false to return the client child content area (default).
*/
Rect getChildWindowContentArea(const bool non_client = false) const;
/*!
\brief
Return a Rect object that describes, unclipped, the inner rectangle for Return a Rect object that describes, unclipped, the inner rectangle for
this window. The inner rectangle is typically an area that exclude s this window. The inner rectangle is typically an area that exclude s
some frame or other rendering that should not be touched by subsequ ent some frame or other rendering that should not be touched by subsequ ent
rendering. rendering.
\return \return
Rect object that describes, in unclipped screen pixel co-ordinates, the Rect object that describes, in unclipped screen pixel co-ordinates, the
window object's inner rect area. window object's inner rect area.
\note \note
skipping to change at line 946 skipping to change at line 1208
bool restoresOldCapture(void) const {return d_restoreOldCapture;} bool restoresOldCapture(void) const {return d_restoreOldCapture;}
/*! /*!
\brief \brief
Return whether z-order changes are enabled or disabled for this Win dow. Return whether z-order changes are enabled or disabled for this Win dow.
\note \note
This is distinguished from the is/setRiseOnClickEnabled setting in that This is distinguished from the is/setRiseOnClickEnabled setting in that
if rise on click is disabled it only affects the users ability to a ffect if rise on click is disabled it only affects the users ability to a ffect
the z order of the Window by clicking the mouse; is still possible to the z order of the Window by clicking the mouse; is still possible to
programatically alter the Window z-order by calling the moveToFront programatically alter the Window z-order by calling the moveToFront
or ,
moveToBack member functions. Whereas if z ordering is disabled the moveToBack, moveInFront and moveBehind member functions. Whereas i
functions moveToFront and moveToBack are also precluded from affect f z
ing ordering is disabled those functions are also precluded from affect
ing
the Window z position. the Window z position.
\return \return
- true if z-order changes are enabled for this window. - true if z-order changes are enabled for this window.
moveToFront/moveToBack work normally as expected. moveToFront, moveToBack, moveInFront and moveBehind work normally .
- false: z-order changes are disabled for this window. - false: z-order changes are disabled for this window.
moveToFront/moveToBack are ignored for this window. moveToFront, moveToBack, moveInFront and moveBehind are ignored.
*/ */
bool isZOrderingEnabled(void) const; bool isZOrderingEnabled(void) const;
/*! /*!
\brief \brief
Return whether this window will receive multi-click events or multi ple Return whether this window will receive multi-click events or multi ple
'down' events instead. 'down' events instead.
\return \return
- true if the Window will receive double-click and triple-click eve nts. - true if the Window will receive double-click and triple-click eve nts.
skipping to change at line 1079 skipping to change at line 1341
/*! /*!
\brief \brief
Return whether this window will rise to the top of the z-order when Return whether this window will rise to the top of the z-order when
clicked with the left mouse button. clicked with the left mouse button.
\note \note
This is distinguished from the is/setZOrderingEnabled setting in th at This is distinguished from the is/setZOrderingEnabled setting in th at
if rise on click is disabled it only affects the users ability to a ffect if rise on click is disabled it only affects the users ability to a ffect
the z order of the Window by clicking the mouse; is still possible to the z order of the Window by clicking the mouse; is still possible to
programatically alter the Window z-order by calling the moveToFront programatically alter the Window z-order by calling the moveToFront
or ,
moveToBack member functions. Whereas if z ordering is disabled the moveToBack, moveInFront and moveBehind member functions. Whereas i
functions moveToFront and moveToBack are also precluded from affect f z
ing ordering is disabled those functions are also precluded from affect
ing
the Window z position. the Window z position.
\return \return
- true if the window will come to the top of other windows when the left - true if the window will come to the top of other windows when the left
mouse button is pushed within its area. mouse button is pushed within its area.
- false if the window does not change z-order position when the lef t - false if the window does not change z-order position when the lef t
mouse button is pushed within its area. mouse button is pushed within its area.
*/ */
bool isRiseOnClickEnabled(void) const { return d_riseOnClick; } bool isRiseOnClickEnabled(void) const { return d_riseOnClick; }
skipping to change at line 1748 skipping to change at line 2010
all sibling always-on-top windows and the process repeated for al l all sibling always-on-top windows and the process repeated for al l
ancestors. ancestors.
\return \return
Nothing Nothing
*/ */
void moveToBack(); void moveToBack();
/*! /*!
\brief \brief
Move this window immediately above it's sibling \a window in the z
order.
No action will be taken under the following conditions:
- \a window is 0.
- \a window is not a sibling of this window.
- \a window and this window have different AlwaysOnTop settings.
- z ordering is disabled for this window.
\param window
The sibling window that this window will be moved in front of.
*/
void moveInFront(const Window* const window);
/*!
\brief
Move this window immediately behind it's sibling \a window in the z
order.
No action will be taken under the following conditions:
- \a window is 0.
- \a window is not a sibling of this window.
- \a window and this window have different AlwaysOnTop settings.
- z ordering is disabled for this window.
\param window
The sibling window that this window will be moved behind.
*/
void moveBehind(const Window* const window);
/*!
\brief
Captures input to this window Captures input to this window
\return \return
- true if input was successfully captured to this window. - true if input was successfully captured to this window.
- false if input could not be captured to this window - false if input could not be captured to this window
(maybe because the window is not active). (maybe because the window is not active).
*/ */
bool captureInput(void); bool captureInput(void);
/*! /*!
skipping to change at line 1923 skipping to change at line 2216
void setUserData(void* user_data) {d_userData = user_data;} void setUserData(void* user_data) {d_userData = user_data;}
/*! /*!
\brief \brief
Set whether z-order changes are enabled or disabled for this Window . Set whether z-order changes are enabled or disabled for this Window .
\note \note
This is distinguished from the is/setRiseOnClickEnabled setting in that This is distinguished from the is/setRiseOnClickEnabled setting in that
if rise on click is disabled it only affects the users ability to a ffect if rise on click is disabled it only affects the users ability to a ffect
the z order of the Window by clicking the mouse; is still possible to the z order of the Window by clicking the mouse; is still possible to
programatically alter the Window z-order by calling the moveToFront programatically alter the Window z-order by calling the moveToFront
or ,
moveToBack member functions. Whereas if z ordering is disabled the moveToBack, moveInFront and moveBehind member functions. Whereas i
functions moveToFront and moveToBack are also precluded from affect f z
ing ordering is disabled those functions are also precluded from affect
ing
the Window z position. the Window z position.
\param setting \param setting
- true if z-order changes are enabled for this window. - true if z-order changes are enabled for this window.
moveToFront/moveToBack work normally as expected. moveToFront, moveToBack, moveInFront and moveBehind work normally .
- false: z-order changes are disabled for this window. - false: z-order changes are disabled for this window.
moveToFront/moveToBack are ignored for this window. moveToFront, moveToBack, moveInFront and moveBehind are ignored.
\return \return
Nothing. Nothing.
*/ */
void setZOrderingEnabled(bool setting); void setZOrderingEnabled(bool setting);
/*! /*!
\brief \brief
Set whether this window will receive multi-click events or multiple Set whether this window will receive multi-click events or multiple
'down' events instead. 'down' events instead.
skipping to change at line 2117 skipping to change at line 2410
/*! /*!
\brief \brief
Set whether this window will rise to the top of the z-order when cl icked Set whether this window will rise to the top of the z-order when cl icked
with the left mouse button. with the left mouse button.
\note \note
This is distinguished from the is/setZOrderingEnabled setting in th at This is distinguished from the is/setZOrderingEnabled setting in th at
if rise on click is disabled it only affects the users ability to a ffect if rise on click is disabled it only affects the users ability to a ffect
the z order of the Window by clicking the mouse; is still possible to the z order of the Window by clicking the mouse; is still possible to
programatically alter the Window z-order by calling the moveToFront programatically alter the Window z-order by calling the moveToFront
or ,
moveToBack member functions. Whereas if z ordering is disabled the moveToBack, moveInFront and moveBehind member functions. Whereas i
functions moveToFront and moveToBack are also precluded from affect f z
ing ordering is disabled those functions are also precluded from affect
ing
the Window z position. the Window z position.
\param setting \param setting
- true if the window should come to the top of other windows when t he - true if the window should come to the top of other windows when t he
left mouse button is pushed within its area. left mouse button is pushed within its area.
- false if the window should not change z-order position when the l eft - false if the window should not change z-order position when the l eft
mouse button is pushed within its area. mouse button is pushed within its area.
\return \return
Nothing. Nothing.
skipping to change at line 2849 skipping to change at line 3142
RenderedStringParser* getCustomRenderedStringParser() const; RenderedStringParser* getCustomRenderedStringParser() const;
//! Set a custom RenderedStringParser, or 0 to remove an existing one. //! Set a custom RenderedStringParser, or 0 to remove an existing one.
void setCustomRenderedStringParser(RenderedStringParser* parser); void setCustomRenderedStringParser(RenderedStringParser* parser);
//! return the active RenderedStringParser to be used //! return the active RenderedStringParser to be used
virtual RenderedStringParser& getRenderedStringParser() const; virtual RenderedStringParser& getRenderedStringParser() const;
//! return whether text parsing is enabled for this window. //! return whether text parsing is enabled for this window.
bool isTextParsingEnabled() const; bool isTextParsingEnabled() const;
//! set whether text parsing is enabled for this window. //! set whether text parsing is enabled for this window.
void setTextParsingEnabled(const bool setting); void setTextParsingEnabled(const bool setting);
//! set margin
virtual void setMargin(const UBox& margin);
//! retrieves currently set margin
const UBox& getMargin() const;
//! return Vector2 \a pos after being fully unprojected for this Window . //! return Vector2 \a pos after being fully unprojected for this Window .
Vector2 getUnprojectedPosition(const Vector2& pos) const; Vector2 getUnprojectedPosition(const Vector2& pos) const;
//! return the pointer to the BiDiVisualMapping for this window, if any . //! return the pointer to the BiDiVisualMapping for this window, if any .
const BiDiVisualMapping* getBiDiVisualMapping() const const BiDiVisualMapping* getBiDiVisualMapping() const
{return d_bidiVisualMapping;} {return d_bidiVisualMapping;}
//! Add the named property to the XML ban list for this window.
void banPropertyFromXML(const String& property_name);
//! Remove the named property from the XML ban list for this window.
void unbanPropertyFromXML(const String& property_name);
//! Return whether the named property is banned from XML
bool isPropertyBannedFromXML(const String& property_name) const;
//! Add the given property to the XML ban list for this window.
void banPropertyFromXML(const Property* property);
//! Remove the given property from the XML ban list for this window.
void unbanPropertyFromXML(const Property* property);
//! Return whether the given property is banned from XML
bool isPropertyBannedFromXML(const Property* property) const;
/*!
\brief
Set the window update mode. This mode controls the behaviour of th
e
Window::update member function such that updates are processed for
this window (and therefore it's child content) according to the set
mode.
\note
Disabling updates can have negative effects on the behaviour of CEG
UI
windows and widgets; updates should be disabled selectively and
cautiously - if you are unsure of what you are doing, leave the mod
e
set to WUM_ALWAYS.
\param mode
One of the WindowUpdateMode enumerated values indicating the mode t
o
set for this Window.
*/
void setUpdateMode(const WindowUpdateMode mode);
/*!
\brief
Return the current window update mode that is set for this Window.
This mode controls the behaviour of the Window::update member funct
ion
such that updates are processed for this window (and therefore it's
child content) according to the set mode.
\note
Disabling updates can have negative effects on the behaviour of CEG
UI
windows and widgets; updates should be disabled selectively and
cautiously - if you are unsure of what you are doing, leave the mod
e
set to WUM_ALWAYS.
\return
One of the WindowUpdateMode enumerated values indicating the curren
t
mode set for this Window.
*/
WindowUpdateMode getUpdateMode() const;
/*!
\brief
Set whether mouse input that is not directly handled by this Window
(including it's event subscribers) should be propagated back to the
Window's parent.
\param enabled
- true if unhandled mouse input should be propagated to the parent.
- false if unhandled mouse input should not be propagated.
*/
void setMouseInputPropagationEnabled(const bool enabled);
/*!
\brief
Return whether mouse input that is not directly handled by this Win
dow
(including it's event subscribers) should be propagated back to the
Window's parent.
\return
- true if unhandled mouse input will be propagated to the parent.
- false if unhandled mouse input will not be propagated.
*/
bool isMouseInputPropagationEnabled() const;
protected: protected:
// friend classes for construction / initialisation purposes (for now) // friend classes for construction / initialisation purposes (for now)
friend class System; friend class System;
friend class WindowManager; friend class WindowManager;
/********************************************************************** *** /********************************************************************** ***
Event trigger methods Event trigger methods
*********************************************************************** **/ *********************************************************************** **/
/*! /*!
\brief \brief
skipping to change at line 3148 skipping to change at line 3526
*/ */
virtual void onChildRemoved(WindowEventArgs& e); virtual void onChildRemoved(WindowEventArgs& e);
/*! /*!
\brief \brief
Handler called when the mouse cursor has entered this window's area . Handler called when the mouse cursor has entered this window's area .
\param e \param e
MouseEventArgs object. All fields are valid. MouseEventArgs object. All fields are valid.
*/ */
virtual void onMouseEnters(MouseEventArgs& e); virtual void onMouseEntersArea(MouseEventArgs& e);
/*! /*!
\brief \brief
Handler called when the mouse cursor has left this window's area. Handler called when the mouse cursor has left this window's area.
\param e \param e
MouseEventArgs object. All fields are valid. MouseEventArgs object. All fields are valid.
*/ */
virtual void onMouseLeavesArea(MouseEventArgs& e);
/*!
\brief
Handler called when the mouse cursor has entered this window's area
and
is actually over some part of this windows surface and not, for
instance over a child window - even though technically in those cas
es
the mouse is also within this Window's area, the handler will not b
e
called.
\param e
MouseEventArgs object. All fields are valid.
\see
Window::onMouseEntersArea
*/
virtual void onMouseEnters(MouseEventArgs& e);
/*!
\brief
Handler called when the mouse cursor is no longer over this window'
s
surface area. This will be called when the mouse is not over a par
t
of this Window's actual surface - even though technically the mouse
is
still within the Window's area, for example if the mouse moves over
a
child window.
\param e
MouseEventArgs object. All fields are valid.
\see
Window::onMouseLeavesArea
*/
virtual void onMouseLeaves(MouseEventArgs& e); virtual void onMouseLeaves(MouseEventArgs& e);
/*! /*!
\brief \brief
Handler called when the mouse cursor has been moved within this win dow's Handler called when the mouse cursor has been moved within this win dow's
area. area.
\param e \param e
MouseEventArgs object. All fields are valid. MouseEventArgs object. All fields are valid.
*/ */
skipping to change at line 3385 skipping to change at line 3795
Handler called when the window's setting for whether text parsing i s Handler called when the window's setting for whether text parsing i s
enabled is changed. enabled is changed.
\param e \param e
WindowEventArgs object whose 'window' pointer field is set to the w indow WindowEventArgs object whose 'window' pointer field is set to the w indow
that triggered the event. For this event the trigger window is alw ays that triggered the event. For this event the trigger window is alw ays
'this'. 'this'.
*/ */
virtual void onTextParsingChanged(WindowEventArgs& e); virtual void onTextParsingChanged(WindowEventArgs& e);
virtual void onMarginChanged(WindowEventArgs& e);
/********************************************************************** *** /********************************************************************** ***
Implementation Functions Implementation Functions
*********************************************************************** **/ *********************************************************************** **/
/*! /*!
\brief \brief
Perform actual update processing for this Window. Perform actual update processing for this Window.
\param elapsed \param elapsed
float value indicating the number of seconds elapsed since the last float value indicating the number of seconds elapsed since the last
update call. update call.
skipping to change at line 3496 skipping to change at line 3908
Function used in checking if a WindowRenderer is valid for this win dow. Function used in checking if a WindowRenderer is valid for this win dow.
\return \return
Returns true if the given WindowRenderer class name is valid for th is window. Returns true if the given WindowRenderer class name is valid for th is window.
False if not. False if not.
*/ */
virtual bool validateWindowRenderer(const String& name) const; virtual bool validateWindowRenderer(const String& name) const;
/*! /*!
\brief \brief
Adds a property to the XML ban list
*/
void banPropertyFromXML(const Property* property);
/*!
\brief
Returns whether a property is banned from XML
*/
bool isPropertyBannedFromXML(const Property* property) const;
/*!
\brief
Returns whether a property is at it's default value. Returns whether a property is at it's default value.
This function is different from Property::isDefatult as it takes th e assigned look'n'feel This function is different from Property::isDefatult as it takes th e assigned look'n'feel
(if the is one) into account. (if the is one) into account.
*/ */
bool isPropertyAtDefault(const Property* property) const; bool isPropertyAtDefault(const Property* property) const;
/*! /*!
\brief \brief
Recursively inform all children that the clipping has changed and s creen rects Recursively inform all children that the clipping has changed and s creen rects
needs to be recached. needs to be recached.
skipping to change at line 3677 skipping to change at line 4077
bool isInnerRectSizeChanged() const; bool isInnerRectSizeChanged() const;
//! Default implementation of function to return Window outer rect area . //! Default implementation of function to return Window outer rect area .
virtual Rect getUnclippedOuterRect_impl() const; virtual Rect getUnclippedOuterRect_impl() const;
//! Default implementation of function to return Window outer clipper a rea. //! Default implementation of function to return Window outer clipper a rea.
virtual Rect getOuterRectClipper_impl() const; virtual Rect getOuterRectClipper_impl() const;
//! Default implementation of function to return Window inner clipper a rea. //! Default implementation of function to return Window inner clipper a rea.
virtual Rect getInnerRectClipper_impl() const; virtual Rect getInnerRectClipper_impl() const;
//! Default implementation of function to return Window hit-test area. //! Default implementation of function to return Window hit-test area.
virtual Rect getHitTestRect_impl() const; virtual Rect getHitTestRect_impl() const;
//! Default implementation of function to return non-client content are
a
virtual Rect getNonClientChildWindowContentArea_impl() const;
//! Default implementation of function to return client content area
virtual Rect getClientChildWindowContentArea_impl() const;
virtual int writePropertiesXML(XMLSerializer& xml_stream) const; virtual int writePropertiesXML(XMLSerializer& xml_stream) const;
virtual int writeChildWindowsXML(XMLSerializer& xml_stream) const; virtual int writeChildWindowsXML(XMLSerializer& xml_stream) const;
virtual bool writeAutoChildWindowXML(XMLSerializer& xml_stream) const; virtual bool writeAutoChildWindowXML(XMLSerializer& xml_stream) const;
// constrain given UVector2 to window's min size, return if size change
d.
bool constrainUVector2ToMinSize(const Size& base_sz, UVector2& sz);
// constrain given UVector2 to window's max size, return if size change
d.
bool constrainUVector2ToMaxSize(const Size& base_sz, UVector2& sz);
/********************************************************************** *** /********************************************************************** ***
Properties for Window base class Properties for Window base class
*********************************************************************** **/ *********************************************************************** **/
static WindowProperties::Alpha d_alphaProperty; static WindowProperties::Alpha d_alphaProperty;
static WindowProperties::AlwaysOnTop d_alwaysOnTopProperty; static WindowProperties::AlwaysOnTop d_alwaysOnTopProperty;
static WindowProperties::ClippedByParent d_clippedByParentProperty; static WindowProperties::ClippedByParent d_clippedByParentProperty;
static WindowProperties::DestroyedByParent d_destroyedByParentProperty ; static WindowProperties::DestroyedByParent d_destroyedByParentProperty ;
static WindowProperties::Disabled d_disabledProperty; static WindowProperties::Disabled d_disabledProperty;
static WindowProperties::Font d_fontProperty; static WindowProperties::Font d_fontProperty;
static WindowProperties::ID d_IDProperty; static WindowProperties::ID d_IDProperty;
skipping to change at line 3729 skipping to change at line 4138
static WindowProperties::WindowRenderer d_windowRendererProperty; static WindowProperties::WindowRenderer d_windowRendererProperty;
static WindowProperties::LookNFeel d_lookNFeelProperty; static WindowProperties::LookNFeel d_lookNFeelProperty;
static WindowProperties::DragDropTarget d_dragDropTargetProperty; static WindowProperties::DragDropTarget d_dragDropTargetProperty;
static WindowProperties::AutoRenderingSurface d_autoRenderingSurfacePr operty; static WindowProperties::AutoRenderingSurface d_autoRenderingSurfacePr operty;
static WindowProperties::Rotation d_rotationProperty; static WindowProperties::Rotation d_rotationProperty;
static WindowProperties::XRotation d_xRotationProperty; static WindowProperties::XRotation d_xRotationProperty;
static WindowProperties::YRotation d_yRotationProperty; static WindowProperties::YRotation d_yRotationProperty;
static WindowProperties::ZRotation d_zRotationProperty; static WindowProperties::ZRotation d_zRotationProperty;
static WindowProperties::NonClient d_nonClientProperty; static WindowProperties::NonClient d_nonClientProperty;
static WindowProperties::TextParsingEnabled d_textParsingEnabledProper ty; static WindowProperties::TextParsingEnabled d_textParsingEnabledProper ty;
static WindowProperties::Margin d_marginProperty;
static WindowProperties::UpdateMode d_updateModeProperty;
static WindowProperties::MouseInputPropagationEnabled d_mouseInputProp
agationProperty;
/********************************************************************** *** /********************************************************************** ***
Implementation Data Implementation Data
*********************************************************************** **/ *********************************************************************** **/
//! definition of type used for the list of attached child windows. //! definition of type used for the list of attached child windows.
typedef std::vector<Window*> ChildList; typedef std::vector<Window*> ChildList;
//! definition of type used for the UserString dictionary. //! definition of type used for the UserString dictionary.
typedef std::map<String, String, String::FastLessCompare> UserStringMap ; typedef std::map<String, String, String::FastLessCompare> UserStringMap ;
//! definition of type used to track properties banned from writing XML . //! definition of type used to track properties banned from writing XML .
typedef std::set<String, String::FastLessCompare> BannedXMLPropertySet; typedef std::set<String, String::FastLessCompare> BannedXMLPropertySet;
skipping to change at line 3825 skipping to change at line 4237
mutable bool d_renderedStringValid; mutable bool d_renderedStringValid;
//! Shared instance of a parser to be used in most instances. //! Shared instance of a parser to be used in most instances.
static BasicRenderedStringParser d_basicStringParser; static BasicRenderedStringParser d_basicStringParser;
//! Shared instance of a parser to be used when rendering text verbatim . //! Shared instance of a parser to be used when rendering text verbatim .
static DefaultRenderedStringParser d_defaultStringParser; static DefaultRenderedStringParser d_defaultStringParser;
//! Pointer to a custom (user assigned) RenderedStringParser object. //! Pointer to a custom (user assigned) RenderedStringParser object.
RenderedStringParser* d_customStringParser; RenderedStringParser* d_customStringParser;
//! true if use of parser other than d_defaultStringParser is enabled //! true if use of parser other than d_defaultStringParser is enabled
bool d_textParsingEnabled; bool d_textParsingEnabled;
//! Margin, only used when the Window is inside LayoutContainer clas
s
UBox d_margin;
//! User ID assigned to this Window //! User ID assigned to this Window
uint d_ID; uint d_ID;
//! Holds pointer to some user assigned data. //! Holds pointer to some user assigned data.
void* d_userData; void* d_userData;
//! Holds a collection of named user string values. //! Holds a collection of named user string values.
UserStringMap d_userStrings; UserStringMap d_userStrings;
//! true if Window will be drawn on top of all other Windows //! true if Window will be drawn on top of all other Windows
bool d_alwaysOnTop; bool d_alwaysOnTop;
//! whether window should rise in the z order when left clicked. //! whether window should rise in the z order when left clicked.
skipping to change at line 3905 skipping to change at line 4320
mutable Rect d_innerRectClipper; mutable Rect d_innerRectClipper;
//! area rect used for hit-testing agains this window //! area rect used for hit-testing agains this window
mutable Rect d_hitTestRect; mutable Rect d_hitTestRect;
mutable bool d_outerUnclippedRectValid; mutable bool d_outerUnclippedRectValid;
mutable bool d_innerUnclippedRectValid; mutable bool d_innerUnclippedRectValid;
mutable bool d_outerRectClipperValid; mutable bool d_outerRectClipperValid;
mutable bool d_innerRectClipperValid; mutable bool d_innerRectClipperValid;
mutable bool d_hitTestRectValid; mutable bool d_hitTestRectValid;
//! The mode to use for calling Window::update
WindowUpdateMode d_updateMode;
//! specifies whether mouse inputs should be propagated to parent(s)
bool d_propagateMouseInputs;
private: private:
/********************************************************************** *** /********************************************************************** ***
May not copy or assign Window objects May not copy or assign Window objects
*********************************************************************** **/ *********************************************************************** **/
Window(const Window&) : PropertySet(), EventSet() {} Window(const Window&) : PropertySet(), EventSet() {}
Window& operator=(const Window&) {return *this;} Window& operator=(const Window&) {return *this;}
}; };
} // End of CEGUI namespace section } // End of CEGUI namespace section
 End of changes. 71 change blocks. 
85 lines changed or deleted 596 lines changed or added


 CEGUIWindowFactoryManager.h   CEGUIWindowFactoryManager.h 
skipping to change at line 72 skipping to change at line 72
/*! /*!
\brief \brief
struct used to hold mapping information required to create a falaga rd based window. struct used to hold mapping information required to create a falaga rd based window.
*/ */
struct CEGUIEXPORT FalagardWindowMapping struct CEGUIEXPORT FalagardWindowMapping
{ {
String d_windowType; String d_windowType;
String d_lookName; String d_lookName;
String d_baseType; String d_baseType;
String d_rendererType; String d_rendererType;
String d_effectName;
}; };
/*! /*!
\brief \brief
Class used to track active alias targets for Window factory types. Class used to track active alias targets for Window factory types.
*/ */
class CEGUIEXPORT AliasTargetStack class CEGUIEXPORT AliasTargetStack
{ {
public: public:
/*! /*!
skipping to change at line 312 skipping to change at line 313
\param targetType \param targetType
The base window type. The base window type.
\param lookName \param lookName
The name of the 'look' that will be used by windows of this type. The name of the 'look' that will be used by windows of this type.
\param renderer \param renderer
The type of window renderer to assign for windows of this type. The type of window renderer to assign for windows of this type.
\param effectName
The identifier of the RenderEffect to attempt to set up for windows
of this type.
\return \return
Nothing. Nothing.
*/ */
void addFalagardWindowMapping(const String& newType, const String& targ void addFalagardWindowMapping(const String& newType,
etType, const String& lookName, const String& renderer); const String& targetType,
const String& lookName,
const String& renderer,
const String& effectName = String(""));
/*! /*!
\brief \brief
Remove the specified falagard type mapping if it exists. Remove the specified falagard type mapping if it exists.
\return \return
Nothing. Nothing.
*/ */
void removeFalagardWindowMapping(const String& type); void removeFalagardWindowMapping(const String& type);
skipping to change at line 458 skipping to change at line 466
// create the factory object // create the factory object
WindowFactory* factory = new T; WindowFactory* factory = new T;
// only do the actual add now if our singleton has already been created // only do the actual add now if our singleton has already been created
if (WindowFactoryManager::getSingletonPtr()) if (WindowFactoryManager::getSingletonPtr())
{ {
Logger::getSingleton().logEvent("Created WindowFactory for '" + Logger::getSingleton().logEvent("Created WindowFactory for '" +
factory->getTypeName() + factory->getTypeName() +
"' windows."); "' windows.");
// add the factory we just created // add the factory we just created
try CEGUI_TRY
{ {
WindowFactoryManager::getSingleton().addFactory(factory); WindowFactoryManager::getSingleton().addFactory(factory);
} }
catch (Exception&) CEGUI_CATCH (Exception&)
{ {
Logger::getSingleton().logEvent("Deleted WindowFactory for '" + Logger::getSingleton().logEvent("Deleted WindowFactory for '" +
factory->getTypeName() + factory->getTypeName() +
"' windows."); "' windows.");
// delete the factory object // delete the factory object
delete factory; delete factory;
throw; CEGUI_RETHROW;
} }
} }
d_ownedFactories.push_back(factory); d_ownedFactories.push_back(factory);
} }
} // End of CEGUI namespace section } // End of CEGUI namespace section
#if defined(_MSC_VER) #if defined(_MSC_VER)
# pragma warning(pop) # pragma warning(pop)
 End of changes. 6 change blocks. 
5 lines changed or deleted 13 lines changed or added


 CEGUIWindowManager.h   CEGUIWindowManager.h 
skipping to change at line 70 skipping to change at line 70
class CEGUIEXPORT WindowManager : public Singleton <WindowManager>, class CEGUIEXPORT WindowManager : public Singleton <WindowManager>,
public EventSet public EventSet
{ {
public: public:
/********************************************************************** *** /********************************************************************** ***
Public static data Public static data
*********************************************************************** **/ *********************************************************************** **/
static const String GeneratedWindowNameBase; //!< Base name to use for generated window names. static const String GeneratedWindowNameBase; //!< Base name to use for generated window names.
//! Namespace for global events. //! Namespace for global events.
static const String EventNamespace; static const String EventNamespace;
//! Event fired when a new Window object is created. /** Event fired when a new Window object is created.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Window that has just been created
.
*/
static const String EventWindowCreated; static const String EventWindowCreated;
//! Event fired when a Window object is destroyed. /** Event fired when a Window object is destroyed.
* Handlers are passed a const WindowEventArgs reference with
* WindowEventArgs::window set to the Window that has been destroyed.
*/
static const String EventWindowDestroyed; static const String EventWindowDestroyed;
/*! /*!
\brief \brief
Function type that is used as a callback when loading layout s from XML; the function is called Function type that is used as a callback when loading layout s from XML; the function is called
for each Property element encountered. for each Property element encountered.
\param window \param window
Window object that the property is to be applied to. Window object that the property is to be applied to.
skipping to change at line 305 skipping to change at line 311
If the starting window has a parent window, specifies whether to wr ite the parent name into If the starting window has a parent window, specifies whether to wr ite the parent name into
the Parent attribute of the GUILayout XML element. the Parent attribute of the GUILayout XML element.
\return \return
Nothing. Nothing.
*/ */
void writeWindowLayoutToStream(const String& window, OutStream& out_str eam, bool writeParent = false) const; void writeWindowLayoutToStream(const String& window, OutStream& out_str eam, bool writeParent = false) const;
/*! /*!
\brief \brief
Save a full XML window layout, starting at the given Window, to a f
ile
with the given file name.
\param window
String holding the name of the Window object to become the root of
the
layout.
\param filename
The name of the file to which the XML will be written. Note that t
his
does not use any part of the ResourceProvider system, but rather wi
ll
write directly to disk. If this is not desirable, you should prefe
r the
OutStream based writeWindowLayoutToStream functions.
\param writeParent
If the starting window has a parent window, specifies whether to wr
ite
the parent name into the Parent attribute of the GUILayout XML elem
ent.
*/
void saveWindowLayout(const String& window, const String& filename, con
st bool writeParent = false) const;
/*!
\brief
Save a full XML window layout, starting at the given Window, to a f
ile
with the given file name.
\param window
Window object to become the root of the layout.
\param filename
The name of the file to which the XML will be written. Note that t
his
does not use any part of the ResourceProvider system, but rather wi
ll
write directly to disk. If this is not desirable, you should prefe
r the
OutStream based writeWindowLayoutToStream functions.
\param writeParent
If the starting window has a parent window, specifies whether to wr
ite
the parent name into the Parent attribute of the GUILayout XML elem
ent.
*/
void saveWindowLayout(const Window& window, const String& filename, con
st bool writeParent = false) const;
/*!
\brief
Rename a window. Rename a window.
\param window \param window
String holding the current name of the window to be renamed. String holding the current name of the window to be renamed.
\param new_name \param new_name
String holding the new name for the window String holding the new name for the window
\exception UnknownObjectException \exception UnknownObjectException
thrown if \a window is not known in the system. thrown if \a window is not known in the system.
skipping to change at line 418 skipping to change at line 465
private: private:
/********************************************************************** *** /********************************************************************** ***
Implementation Methods Implementation Methods
*********************************************************************** **/ *********************************************************************** **/
/*! /*!
\brief \brief
Implementation method to generate a unique name to use for a window . Implementation method to generate a unique name to use for a window .
*/ */
String generateUniqueWindowName(); String generateUniqueWindowName();
//! function to set up RenderEffect on a window
void initialiseRenderEffect(Window* wnd, const String& effect) const;
/******************************************************************* ****** /******************************************************************* ******
Implementation Constants Implementation Constants
******************************************************************** *****/ ******************************************************************** *****/
static const char GUILayoutSchemaName[]; //!< Filename of the XML schema used for validating GUILayout files. static const char GUILayoutSchemaName[]; //!< Filename of the XML schema used for validating GUILayout files.
/******************************************************************* ****** /******************************************************************* ******
Implementation Data Implementation Data
******************************************************************** *****/ ******************************************************************** *****/
typedef std::map<String, Window*, String::FastLessCompare> WindowRegistry; //!< Type used to imple ment registry of Window objects typedef std::map<String, Window*, String::FastLessCompare> WindowRegistry; //!< Type used to imple ment registry of Window objects
typedef std::vector<Window*> WindowVector; //!< Type to use for a collection of Window pointers. typedef std::vector<Window*> WindowVector; //!< Type to use for a collection of Window pointers.
 End of changes. 4 change blocks. 
2 lines changed or deleted 68 lines changed or added


 CEGUIWindowProperties.h   CEGUIWindowProperties.h 
skipping to change at line 1227 skipping to change at line 1227
"TextParsingEnabled", "TextParsingEnabled",
"Property to get/set the text parsing setting for the Window. " "Property to get/set the text parsing setting for the Window. "
"Value is either \"True\" or \"False\".", "Value is either \"True\" or \"False\".",
"True") "True")
{} {}
String get(const PropertyReceiver* receiver) const; String get(const PropertyReceiver* receiver) const;
void set(PropertyReceiver* receiver, const String& value); void set(PropertyReceiver* receiver, const String& value);
}; };
/*!
\brief
Property to access window margin.
This property offers access to the margin property. This property contr
ols
the margins of the window when it's inserted into a layout container
.
When the window isn't in a layout container, margin doesn't have any
effect.
\par Usage:
- Name: Margin
- Format: "{top:{[tops],[topo]},left:{[lefts],[lefto]},bottom:{[bot
toms],[bottomo]},right:{[rights],[righto]}}".
\par Where [Text] is:
- [tops] is top scale
- [topo] is top offset
- [lefts] is left scale
- [lefto] is left offset
- [bottoms] is bottom scale
- [bottomo] is bottom offset
- [rights] is right scale
- [righto] is right offset
*/
class Margin : public Property
{
public:
Margin() : Property(
"Margin",
"Property to get/set margin for the Window. Value format:"
"{top:{[tops],[topo]},left:{[lefts],[lefto]},bottom:{[bottoms],[bot
tomo]},right:{[rights],[righto]}}.",
"{top:{0,0},left:{0,0},bottom:{0,0},right:{0,0}}")
{}
String get(const PropertyReceiver* receiver) const;
void set(PropertyReceiver* receiver, const String& value);
};
/*!
\brief
Property to access the update mode setting for the window.
\par Usage:
- Name: UpdateMode
- Format: "[text]".
\par Where [Text] is:
- "Always" to indicate the update function should always be called.
- "Never" to indicate the update function should never be called.
- "Visible" to indicate the update function should only be called w
hen
the window is visible (i.e. State of Visible property set to True
).
*/
class UpdateMode : public Property
{
public:
UpdateMode() : Property(
"UpdateMode",
"Property to get/set the window update mode setting. "
"Value is one of \"Always\", \"Never\" or \"Visible\".",
"Visible")
{}
String get(const PropertyReceiver* receiver) const;
void set(PropertyReceiver* receiver, const String& value);
};
/*!
\brief
Property to access the setting that controls whether mouse input not ha
ndled
directly by the window will be propagated back to the parent window.
\par Usage:
- Name: MouseInputPropagationEnabled
- Format: "[text]".
\par Where [Text] is:
- "True" to indicate that unhandled mouse input should be propagate
d to
the Window's parent.
- "False" to indicate that unhandled mouse input should not be
propagated to the window's parent.
*/
class MouseInputPropagationEnabled : public Property
{
public:
MouseInputPropagationEnabled() : Property(
"MouseInputPropagationEnabled",
"Property to get/set whether unhandled mouse inputs should be "
"propagated back to the Window's parent. "
"Value is either \"True\" or \"False\".",
"False")
{}
String get(const PropertyReceiver* receiver) const;
void set(PropertyReceiver* receiver, const String& value);
};
} // End of WindowProperties namespace section } // End of WindowProperties namespace section
} // End of CEGUI namespace section } // End of CEGUI namespace section
#endif // end of guard _CEGUIWindowProperties_h_ #endif // end of guard _CEGUIWindowProperties_h_
 End of changes. 1 change blocks. 
0 lines changed or deleted 103 lines changed or added


 CEGUIWindowRenderer.h   CEGUIWindowRenderer.h 
skipping to change at line 36 skipping to change at line 36
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE. * OTHER DEALINGS IN THE SOFTWARE.
************************************************************************** */ ************************************************************************** */
#ifndef _CEGUIWindowRenderer_h_ #ifndef _CEGUIWindowRenderer_h_
#define _CEGUIWindowRenderer_h_ #define _CEGUIWindowRenderer_h_
#include "CEGUIWindow.h" #include "CEGUIWindow.h"
#include "CEGUIProperty.h" #include "CEGUIProperty.h"
#include <vector> #include <vector>
#include <utility>
#if defined(_MSC_VER) #if defined(_MSC_VER)
# pragma warning(push) # pragma warning(push)
# pragma warning(disable : 4251) # pragma warning(disable : 4251)
#endif #endif
// Start of CEGUI namespace section // Start of CEGUI namespace section
namespace CEGUI namespace CEGUI
{ {
/*! /*!
skipping to change at line 147 skipping to change at line 148
Implementation methods Implementation methods
*********************************************************************** ***/ *********************************************************************** ***/
/*! /*!
\brief \brief
Register a property class that will be properly managed by this win dow Register a property class that will be properly managed by this win dow
renderer. renderer.
\param property \param property
Pointer to a static Property object that will be added to the targe t Pointer to a static Property object that will be added to the targe t
window. window.
\param ban_from_xml
- true if this property should be added to the 'ban' list so that i
t is
not written in XML output.
- false if this property is not banned and should appear in XML out
put.
*/
void registerProperty(Property* property, const bool ban_from_xml);
/*!
\brief
Register a property class that will be properly managed by this win
dow
renderer.
\param property
Pointer to a static Property object that will be added to the targe
t
window.
*/ */
void registerProperty(Property* property); void registerProperty(Property* property);
/*! /*!
\brief \brief
Handler called when this windowrenderer is attached to a window Handler called when this windowrenderer is attached to a window
*/ */
virtual void onAttach(); virtual void onAttach();
/*! /*!
skipping to change at line 183 skipping to change at line 200
void operator=(const WindowRenderer&) {} void operator=(const WindowRenderer&) {}
/********************************************************************** *** /********************************************************************** ***
Implementation data Implementation data
*********************************************************************** ***/ *********************************************************************** ***/
Window* d_window; //!< Pointer to the window this windowrenderer is assigned to. Window* d_window; //!< Pointer to the window this windowrenderer is assigned to.
const String d_name; //!< Name of the factory type used to create th is window renderer. const String d_name; //!< Name of the factory type used to create th is window renderer.
const String d_class; //!< Name of the widget class that is the "mini mum" requirement. const String d_class; //!< Name of the widget class that is the "mini mum" requirement.
typedef std::vector<Property*> PropertyList; //! type used for entries in the PropertyList.
typedef std::pair<Property*, bool> PropertyEntry;
//! type to use for the property list.
typedef std::vector<PropertyEntry> PropertyList;
PropertyList d_properties; //!< The list of properties that this windo wrenderer will be handling. PropertyList d_properties; //!< The list of properties that this windo wrenderer will be handling.
// Window is friend so it can manipulate our 'd_window' member directly . // Window is friend so it can manipulate our 'd_window' member directly .
// We don't want users fiddling with this so no public interface. // We don't want users fiddling with this so no public interface.
friend class Window; friend class Window;
}; };
/*! /*!
\brief \brief
Base-class for WindowRendererFactory Base-class for WindowRendererFactory
 End of changes. 3 change blocks. 
1 lines changed or deleted 25 lines changed or added


 CEGUIWindowRendererManager.h   CEGUIWindowRendererManager.h 
skipping to change at line 127 skipping to change at line 127
// create the factory object // create the factory object
WindowRendererFactory* factory = new T; WindowRendererFactory* factory = new T;
// only do the actual add now if our singleton has already been created // only do the actual add now if our singleton has already been created
if (WindowRendererManager::getSingletonPtr()) if (WindowRendererManager::getSingletonPtr())
{ {
Logger::getSingleton().logEvent("Created WindowRendererFactory for '" + Logger::getSingleton().logEvent("Created WindowRendererFactory for '" +
factory->getName() + factory->getName() +
"' WindowRenderers."); "' WindowRenderers.");
// add the factory we just created // add the factory we just created
try CEGUI_TRY
{ {
WindowRendererManager::getSingleton().addFactory(factory); WindowRendererManager::getSingleton().addFactory(factory);
} }
catch (Exception&) CEGUI_CATCH (Exception&)
{ {
Logger::getSingleton().logEvent("Deleted WindowRendererFactory for " Logger::getSingleton().logEvent("Deleted WindowRendererFactory for "
"'" + factory->getName() + "'" + factory->getName() +
"' WindowRenderers."); "' WindowRenderers.");
// delete the factory object // delete the factory object
delete factory; delete factory;
throw; CEGUI_RETHROW;
} }
} }
d_ownedFactories.push_back(factory); d_ownedFactories.push_back(factory);
} }
//------------------------------------------------------------------------- ---// //------------------------------------------------------------------------- ---//
} // End of CEGUI namespace } // End of CEGUI namespace
 End of changes. 3 change blocks. 
3 lines changed or deleted 3 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/