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 "CEGUIBase.h" #include "CEGUIBasicRenderedStringParser.h"
#include "CEGUIString.h" #include "CEGUIBiDiVisualMapping.h"
#include "CEGUIRect.h" #include "CEGUICentredRenderedString.h"
#include "CEGUIcolour.h"
#include "CEGUIColourRect.h"
#include "CEGUICoordConverter.h"
#include "CEGUIDataContainer.h"
#include "CEGUIDefaultLogger.h"
#include "CEGUIDefaultRenderedStringParser.h"
#include "CEGUIDefaultResourceProvider.h"
#include "CEGUIDynamicModule.h"
#include "CEGUIExceptions.h" #include "CEGUIExceptions.h"
#include "CEGUITexture.h" #include "CEGUIFactoryModule.h"
#include "CEGUIRenderer.h"
#include "CEGUIImageset.h"
#include "CEGUIImagesetManager.h"
#include "CEGUILogger.h"
#include "CEGUIMouseCursor.h"
#include "CEGUIFont.h"
#include "CEGUIFontManager.h" #include "CEGUIFontManager.h"
#include "CEGUIEventArgs.h" #include "CEGUIGeometryBuffer.h"
#include "CEGUIEvent.h"
#include "CEGUIEventSet.h"
#include "CEGUIGlobalEventSet.h" #include "CEGUIGlobalEventSet.h"
#include "CEGUIProperty.h" #include "CEGUIImageCodec.h"
#include "CEGUIImagesetManager.h"
#include "CEGUIInputEvent.h"
#include "CEGUIJustifiedRenderedString.h"
#include "CEGUILeftAlignedRenderedString.h"
#include "CEGUIMouseCursor.h"
#include "CEGUIPropertyHelper.h"
#include "CEGUIPropertySet.h" #include "CEGUIPropertySet.h"
#include "CEGUIWindow.h" #include "CEGUIRect.h"
#include "CEGUIRegexMatcher.h"
#include "CEGUIRenderedString.h"
#include "CEGUIRenderedStringImageComponent.h"
#include "CEGUIRenderedStringParser.h"
#include "CEGUIRenderedStringTextComponent.h"
#include "CEGUIRenderedStringWidgetComponent.h"
#include "CEGUIRenderedStringWordWrapper.h"
#include "CEGUIRenderEffect.h"
#include "CEGUIRenderer.h"
#include "CEGUIRenderingContext.h"
#include "CEGUIRenderingRoot.h"
#include "CEGUIRenderingSurface.h"
#include "CEGUIRenderingWindow.h"
#include "CEGUIRenderQueue.h"
#include "CEGUIRenderTarget.h"
#include "CEGUIRightAlignedRenderedString.h"
#include "CEGUISchemeManager.h"
#include "CEGUIScriptModule.h"
#include "CEGUISize.h"
#include "CEGUISystem.h"
#include "CEGUITexture.h"
#include "CEGUITextureTarget.h"
#include "CEGUITextUtils.h"
#include "CEGUITplWindowFactory.h"
#include "CEGUITplWindowRendererFactory.h"
#include "CEGUITplWRFactoryRegisterer.h"
#include "CEGUIVector.h"
#include "CEGUIVersion.h"
#include "CEGUIVertex.h"
#include "CEGUIWidgetModule.h"
#include "CEGUIWindowFactory.h" #include "CEGUIWindowFactory.h"
#include "CEGUIWindowFactoryManager.h" #include "CEGUIWindowFactoryManager.h"
#include "CEGUIWindow.h"
#include "CEGUIWindowManager.h" #include "CEGUIWindowManager.h"
#include "CEGUIWindowRenderer.h"
#include "CEGUIWindowRendererManager.h" #include "CEGUIWindowRendererManager.h"
#include "CEGUIScheme.h" #include "CEGUIWindowRendererModule.h"
#include "CEGUISchemeManager.h" #include "CEGUIWRFactoryRegisterer.h"
#include "CEGUIScriptWindowHelper.h" #include "CEGUIXMLAttributes.h"
#include "CEGUISystem.h" #include "CEGUIXMLHandler.h"
#include "CEGUIScriptModule.h" #include "CEGUIXMLParser.h"
#include "CEGUICoordConverter.h" #include "CEGUIXMLSerializer.h"
#include "CEGUIPropertyHelper.h"
// Falagard core system include // Falagard core system include
#include "falagard/CEGUIFalWidgetLookManager.h" #include "falagard/CEGUIFalWidgetLookManager.h"
// gui elements // gui elements
#include "elements/CEGUIButtonBase.h" #include "elements/CEGUIAll.h"
#include "elements/CEGUIPushButton.h"
#include "elements/CEGUICheckbox.h"
#include "elements/CEGUIRadioButton.h"
#include "elements/CEGUITitlebar.h"
#include "elements/CEGUIFrameWindow.h"
#include "elements/CEGUIProgressBar.h"
#include "elements/CEGUIEditbox.h"
#include "elements/CEGUIThumb.h"
#include "elements/CEGUISlider.h"
#include "elements/CEGUIScrollbar.h"
#include "elements/CEGUIListbox.h"
#include "elements/CEGUICombobox.h"
#include "elements/CEGUIListHeader.h"
#include "elements/CEGUIMultiColumnList.h"
#include "elements/CEGUIGUISheet.h"
#include "elements/CEGUIListboxTextItem.h"
#include "elements/CEGUIComboDropList.h"
#include "elements/CEGUIMultiLineEditbox.h"
#include "elements/CEGUITabButton.h"
#include "elements/CEGUITabControl.h"
#include "elements/CEGUISpinner.h"
#include "elements/CEGUIDragContainer.h"
#include "elements/CEGUIScrolledContainer.h"
#include "elements/CEGUIScrollablePane.h"
#include "elements/CEGUITooltip.h"
#include "elements/CEGUIItemEntry.h"
#include "elements/CEGUIMenuItem.h"
#include "elements/CEGUIItemListBase.h"
#include "elements/CEGUIMenuBase.h"
#include "elements/CEGUIMenubar.h"
#include "elements/CEGUIPopupMenu.h"
#include "elements/CEGUIScrolledItemListBase.h"
#include "elements/CEGUIItemListbox.h"
#include "elements/CEGUITree.h"
#include "elements/CEGUITreeItem.h"
#include "elements/CEGUIGroupBox.h"
#endif // end of guard _CEGUI_h_ #endif // end of guard _CEGUI_h_
 End of changes. 9 change blocks. 
60 lines changed or deleted 59 lines changed or added


 CEGUIBoundSlot.h   CEGUIBoundSlot.h 
skipping to change at line 37 skipping to change at line 37
************************************************************************** */ ************************************************************************** */
#ifndef _CEGUIBoundSlot_h_ #ifndef _CEGUIBoundSlot_h_
#define _CEGUIBoundSlot_h_ #define _CEGUIBoundSlot_h_
#include "CEGUIBase.h" #include "CEGUIBase.h"
#include "CEGUISubscriberSlot.h" #include "CEGUISubscriberSlot.h"
// Start of CEGUI namespace section // Start of CEGUI namespace section
namespace CEGUI namespace CEGUI
{ {
// forward references
class Event;
/*! /*!
\brief \brief
Class that tracks a SubscriberSlot, its group, and the Event to which i t was Class that tracks a SubscriberSlot, its group, and the Event to which i t was
subscribed. This is effectively what gets returned from the calls to t he subscribed. This is effectively what gets returned from the calls to t he
Event::subscribe members, though BoundSlot is always wrapped in a Event::subscribe members, though BoundSlot is always wrapped in a
reference counted pointer. When a BoundSlot is deleted, the connection is reference counted pointer. When a BoundSlot is deleted, the connection is
unsubscribed and the SubscriberSlot is deleted. unsubscribed and the SubscriberSlot is deleted.
*/ */
class CEGUIEXPORT BoundSlot class CEGUIEXPORT BoundSlot
{ {
 End of changes. 1 change blocks. 
3 lines changed or deleted 0 lines changed or added


 CEGUIButtonBase.h   CEGUIButtonBase.h 
skipping to change at line 33 skipping to change at line 33
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* 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 _CEGUIButtonBase_h_ #ifndef _CEGUIButtonBase_h_
#define _CEGUIButtonBase_h_ #define _CEGUIButtonBase_h_
#include "CEGUIBase.h" #include "../CEGUIBase.h"
#include "CEGUIWindow.h" #include "../CEGUIWindow.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
{ {
 End of changes. 1 change blocks. 
2 lines changed or deleted 2 lines changed or added


 CEGUICheckbox.h   CEGUICheckbox.h 
skipping to change at line 33 skipping to change at line 33
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* 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 _CEGUICheckbox_h_ #ifndef _CEGUICheckbox_h_
#define _CEGUICheckbox_h_ #define _CEGUICheckbox_h_
#include "CEGUIBase.h" #include "../CEGUIBase.h"
#include "elements/CEGUIButtonBase.h" #include "CEGUIButtonBase.h"
#include "elements/CEGUICheckboxProperties.h" #include "CEGUICheckboxProperties.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
{ {
 End of changes. 1 change blocks. 
3 lines changed or deleted 3 lines changed or added


 CEGUICheckboxProperties.h   CEGUICheckboxProperties.h 
skipping to change at line 33 skipping to change at line 33
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* 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 _CEGUICheckboxProperties_h_ #ifndef _CEGUICheckboxProperties_h_
#define _CEGUICheckboxProperties_h_ #define _CEGUICheckboxProperties_h_
#include "CEGUIProperty.h" #include "../CEGUIProperty.h"
// Start of CEGUI namespace section // Start of CEGUI namespace section
namespace CEGUI namespace CEGUI
{ {
// Start of CheckboxProperties namespace section // Start of CheckboxProperties namespace section
/*! /*!
\brief \brief
Namespace containing all classes that make up the properties interfa ce for the Checkbox class Namespace containing all classes that make up the properties interfa ce for the Checkbox class
*/ */
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 CEGUIClippedContainer.h   CEGUIClippedContainer.h 
skipping to change at line 31 skipping to change at line 31
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* 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 _CEGUIClippedContainer_h_ #ifndef _CEGUIClippedContainer_h_
#define _CEGUIClippedContainer_h_ #define _CEGUIClippedContainer_h_
#include "CEGUIWindow.h" #include "../CEGUIWindow.h"
#include "CEGUIWindowFactory.h" #include "../CEGUIWindowFactory.h"
// Start of CEGUI namespace section // Start of CEGUI namespace section
namespace CEGUI namespace CEGUI
{ {
/*! /*!
\brief \brief
Helper container window that has configurable clipping. Helper container window that has configurable clipping.
Used by the ItemListbox widget. Used by the ItemListbox widget.
\deprecated
This class is deprecated and is scheduled for removal. The function th
is
class used to provide was broken when the inner-rect (aka client area)
support got fixed. The good news is that fixing inner-rect support
effectively negated the need for this class anyway - clipping areas can
now be established in the looknfeel and extracted via the WindowRendere
r.
*/ */
class CEGUIEXPORT ClippedContainer : public Window class CEGUIEXPORT ClippedContainer : public Window
{ {
public: public:
/********************************************************************** *** /********************************************************************** ***
Constants Constants
*********************************************************************** **/ *********************************************************************** **/
static const String WidgetTypeName; //!< Type name for ClippedConta iner. static const String WidgetTypeName; //!< Type name for ClippedConta iner.
static const String EventNamespace; //!< Namespace for global event s static const String EventNamespace; //!< Namespace for global event s
skipping to change at line 126 skipping to change at line 133
*/ */
virtual bool testClassName_impl(const String& class_name) const virtual bool testClassName_impl(const String& class_name) const
{ {
if (class_name=="ClippedContainer") return true; if (class_name=="ClippedContainer") return true;
return Window::testClassName_impl(class_name); return Window::testClassName_impl(class_name);
} }
/********************************************************************** *** /********************************************************************** ***
Overridden from Window. Overridden from Window.
*********************************************************************** **/ *********************************************************************** **/
virtual void drawSelf(float) {} virtual void drawSelf(const RenderingContext&) {}
/********************************************************************** *** /********************************************************************** ***
Data fields Data fields
*********************************************************************** **/ *********************************************************************** **/
//! the pixel rect to be used for clipping relative to either a window or the screen. //! the pixel rect to be used for clipping relative to either a window or the screen.
Rect d_clipArea; Rect d_clipArea;
//! the base window which the clipping rect is relative to. //! the base window which the clipping rect is relative to.
Window* d_clipperWindow; Window* d_clipperWindow;
}; };
 End of changes. 3 change blocks. 
3 lines changed or deleted 12 lines changed or added


 CEGUIComboDropList.h   CEGUIComboDropList.h 
skipping to change at line 33 skipping to change at line 33
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* 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 _CEGUIComboDropList_h_ #ifndef _CEGUIComboDropList_h_
#define _CEGUIComboDropList_h_ #define _CEGUIComboDropList_h_
#include "elements/CEGUIListbox.h" #include "CEGUIListbox.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
{ {
/*! /*!
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 CEGUICombobox.h   CEGUICombobox.h 
skipping to change at line 33 skipping to change at line 33
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* 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 _CEGUICombobox_h_ #ifndef _CEGUICombobox_h_
#define _CEGUICombobox_h_ #define _CEGUICombobox_h_
#include "CEGUIBase.h" #include "../CEGUIBase.h"
#include "CEGUIWindow.h" #include "../CEGUIWindow.h"
#include "elements/CEGUIComboboxProperties.h" #include "CEGUIComboboxProperties.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
{ {
skipping to change at line 89 skipping to change at line 89
static const String EventDropListRemoved; //!< Event triggered when the drop-down list is removed / hidden. static const String EventDropListRemoved; //!< Event triggered when the drop-down list is removed / hidden.
static const String EventListSelectionAccepted; //!< Event t riggered when the user accepts a selection from the drop-down list static const String EventListSelectionAccepted; //!< Event t riggered when the user accepts a selection from the drop-down list
/********************************************************************** *** /********************************************************************** ***
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
\brief bool isHit(const Vector2& position,
check if the given position would hit this window. const bool allow_disabled = false) const;
\param position
Point object describing the position to check in screen pixe
ls
\return
true if \a position 'hits' this Window, else false.
*/
virtual bool isHit(const Point& position) const {ret
urn false;}
/*! /*!
\brief \brief
returns the mode of operation for the combo box. returns the mode of operation for the combo box.
\return \return
- true if the user can show the list and select an item with a single mouse click. - true if the user can show the list and select an item with a single mouse click.
- false if the user must click to show the list and then cli ck again to select an item. - false if the user must click to show the list and then cli ck again to select an item.
*/ */
bool getSingleClickEnabled(void) const; bool getSingleClickEnabled(void) const;
skipping to change at line 733 skipping to change at line 725
\return \return
true if this window was inherited from \a class_name. false if not. true if this window was inherited from \a class_name. false if not.
*/ */
virtual bool testClassName_impl(const String& class_name) const virtual bool testClassName_impl(const String& class_name) const
{ {
if (class_name=="Combobox") return true; if (class_name=="Combobox") return true;
return Window::testClassName_impl(class_name); return Window::testClassName_impl(class_name);
} }
/*!
\brief
Update the Combobox text to reflect programmatically made changes t
o
selected list item.
*/
void itemSelectChangeTextUpdate(const ListboxItem* const item,
bool new_state, bool old_state);
/******************************************************************* ****** /******************************************************************* ******
Handlers to relay child widget events so they appear to come from us Handlers to relay child widget events so they appear to come from us
******************************************************************** *****/ ******************************************************************** *****/
bool editbox_ReadOnlyChangedHandler(const EventArgs& e); bool editbox_ReadOnlyChangedHandler(const EventArgs& e);
bool editbox_ValidationStringChangedHandler(const EventArgs& e); bool editbox_ValidationStringChangedHandler(const EventArgs& e);
bool editbox_MaximumTextLengthChangedHandler(const EventArgs& e); bool editbox_MaximumTextLengthChangedHandler(const EventArgs& e);
bool editbox_TextInvalidatedEventHandler(const EventArgs& e); bool editbox_TextInvalidatedEventHandler(const EventArgs& e);
bool editbox_InvalidEntryAttemptedHandler(const EventArgs& e); bool editbox_InvalidEntryAttemptedHandler(const EventArgs& e);
bool editbox_CaratMovedHandler(const EventArgs& e); bool editbox_CaratMovedHandler(const EventArgs& e);
bool editbox_TextSelectionChangedHandler(const EventArgs& e); bool editbox_TextSelectionChangedHandler(const EventArgs& e);
 End of changes. 3 change blocks. 
16 lines changed or deleted 15 lines changed or added


 CEGUIComboboxProperties.h   CEGUIComboboxProperties.h 
skipping to change at line 33 skipping to change at line 33
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* 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 _CEGUIComboboxProperties_h_ #ifndef _CEGUIComboboxProperties_h_
#define _CEGUIComboboxProperties_h_ #define _CEGUIComboboxProperties_h_
#include "CEGUIProperty.h" #include "../CEGUIProperty.h"
// Start of CEGUI namespace section // Start of CEGUI namespace section
namespace CEGUI namespace CEGUI
{ {
// Start of ComboboxProperties namespace section // Start of ComboboxProperties namespace section
/*! /*!
\brief \brief
Namespace containing all classes that make up the properties interfa ce for the Combobox class Namespace containing all classes that make up the properties interfa ce for the Combobox class
*/ */
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 CEGUIConfig.h   CEGUIConfig.h 
skipping to change at line 86 skipping to change at line 86
#ifndef CEGUI_TINYXML_H #ifndef CEGUI_TINYXML_H
# define CEGUI_TINYXML_H "ceguitinyxml/tinyxml.h" # define CEGUI_TINYXML_H "ceguitinyxml/tinyxml.h"
#endif #endif
// Namespace that contains TinyXML. // Namespace that contains TinyXML.
#ifndef CEGUI_TINYXML_NAMESPACE #ifndef CEGUI_TINYXML_NAMESPACE
# define CEGUI_TINYXML_NAMESPACE CEGUITinyXML # define CEGUI_TINYXML_NAMESPACE CEGUITinyXML
#endif #endif
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// The following controls the version of Lua that is going to be used. // The following controls the version of Lua that is going to be used.
// 50 is for Lua 5.0.x versions // Note that from 0.7.0 and up, Lua 5.0 is no longer supported.
// 51 is for Lua 5.1.x versions (and above?) // 51 is for Lua 5.1.x versions (and above?)
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
#ifndef CEGUI_LUA_VER #ifndef CEGUI_LUA_VER
# define CEGUI_LUA_VER 51 # define CEGUI_LUA_VER 51
#endif #endif
//////////////////////////////////////////////////////////////////////////
// The following controls whether freetype based font support will be
// compiled in (default). If you want to build CEGUI /without/ freetype
// support, comment the following line.
//////////////////////////////////////////////////////////////////////////
#define CEGUI_HAS_FREETYPE
//////////////////////////////////////////////////////////////////////////
// PCRE library
// CEGUI uses the pcre library for it's regular expression based string
// validation as used in the Editbox (and derived classes, such as Spinner)
.
// To disable the use of PCRE (and therefore the validation factilities),
// comment the following line. (Attempts to set validation string will thr
ow).
//////////////////////////////////////////////////////////////////////////
#define CEGUI_HAS_PCRE_REGEX
//////////////////////////////////////////////////////////////////////////
// The following controls whether the default logger be (possibly) used.
// If you want to build CEGUI so that it does not use the default logger,
// comment the following line.
//
// Note: If you disable the default logger you MUST provide an alternative
// CEGUI::Logger based class and instantiate it before creating the main
// CEGUI::System object.
//////////////////////////////////////////////////////////////////////////
#define CEGUI_HAS_DEFAULT_LOGGER
//////////////////////////////////////////////////////////////////////////
// The following defines control bidirectional text support.
//
// Uncomment the CEGUI_BIDI_SUPPORT definition to enable bidirectional
// text in CEGUI.
//
// With bidirectional text support enabled, you must then choose to uncomme
nt
// either the CEGUI_USE_MINIBIDI or CEGUI_USE_FRIBIDI definitions (but you
// should not uncomment both!)
//
// Uncommenting CEGUI_USE_MINIBIDI uses an integrated copy of minibidi to
// provide the bidirectional support.
//
// Uncommenting CEGUI_USE_FRIBIDI uses an external copy of fribidi to
// provide the bidirectional support (not supplied).
//////////////////////////////////////////////////////////////////////////
//#define CEGUI_BIDI_SUPPORT
// Uncomment this to use the embedded minibidi library.
//#define CEGUI_USE_MINIBIDI
// - or -
// Uncomment this to use an external fribidi library.
//#define CEGUI_USE_FRIBIDI
#endif // defined(__APPLE__) #endif // defined(__APPLE__)
#endif // end of guard _CEGUIConfig_h_ #endif // end of guard _CEGUIConfig_h_
 End of changes. 2 change blocks. 
1 lines changed or deleted 55 lines changed or added


 CEGUIConfig_xmlHandler.h   CEGUIConfig_xmlHandler.h 
/*********************************************************************** /***********************************************************************
filename: CEGUIConfig_xmlHandler.h filename: CEGUIConfig_xmlHandler.h
created: 17/7/2004 created: Sat Jul 25 2009
author: Paul D Turner author: Paul D Turner <paul@cegui.org.uk>
purpose: Interface to configuration file parser
*************************************************************************/ *************************************************************************/
/************************************************************************** * /************************************************************************** *
* Copyright (C) 2004 - 2006 Paul D Turner & The CEGUI Development Team * Copyright (C) 2004 - 2009 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 37 skipping to change at line 35
* 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 _CEGUIConfig_xmlHandler_h_ #ifndef _CEGUIConfig_xmlHandler_h_
#define _CEGUIConfig_xmlHandler_h_ #define _CEGUIConfig_xmlHandler_h_
#include "CEGUIBase.h" #include "CEGUIBase.h"
#include "CEGUIString.h" #include "CEGUIString.h"
#include "CEGUILogger.h" #include "CEGUILogger.h"
#include "CEGUIXMLHandler.h" #include "CEGUIXMLHandler.h"
#include <vector> #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
{ {
/*! //! Handler class used to parse the Configuration XML file.
\brief
Handler class used to parse the Configuration XML file.
*/
class Config_xmlHandler : public XMLHandler class Config_xmlHandler : public XMLHandler
{ {
public: public:
/******************************************************************* //! Name of xsd schema file used for validation.
****** static const String CEGUIConfigSchemaName;
Construction & Destruction // xml tag names
******************************************************************** static const String CEGUIConfigElement;
*****/ static const String LoggingElement;
/*! static const String AutoLoadElement;
\brief static const String ResourceDirectoryElement;
Constructor for GUILayout_xmlHandler objects static const String DefaultResourceGroupElement;
*/ static const String ScriptingElement;
Config_xmlHandler(void) {} static const String XMLParserElement;
static const String ImageCodecElement;
/*! static const String DefaultFontElement;
\brief static const String DefaultMouseCursorElement;
Destructor for GUILayout_xmlHandler objects static const String DefaultTooltipElement;
*/ static const String DefaultGUISheetElement;
virtual ~Config_xmlHandler(void) {} // xml attribute names
static const String FilenameAttribute;
static const String LevelAttribute;
static const String TypeAttribute;
static const String GroupAttribute;
static const String PatternAttribute;
static const String DirectoryAttribute;
static const String InitScriptAttribute;
static const String TerminateScriptAttribute;
static const String ImagesetAttribute;
static const String ImageAttribute;
static const String NameAttribute;
/******************************************************************* //! Constructor.
****** Config_xmlHandler();
SAX2 Handler overrides
********************************************************************
*****/
/*!
\brief
document processing (only care about elements, schema valida
tes format)
*/
virtual void elementStart(const String& element, const XMLAttributes& a
ttributes);
/******************************************************************* //! Destructor.
****** ~Config_xmlHandler();
Functions used by our implementation
********************************************************************
*****/
/*!
\brief
Return log filename
*/
const String& getLogFilename(void) const
{return d_logFilename;}
/*! //! Initialise the CEGUI XMLParser according to info parsed from config
\brief .
Return initial scheme filename to load void initialiseXMLParser() const;
*/ //! Initialise the CEGUI ImageCodec according to info parsed from confi
const String& getSchemeFilename(void) const {ret g.
urn d_schemeFilename;} void initialiseImageCodec() const;
//! Initialise the CEGUI Logger according to info parsed from config.
void initialiseLogger(const String& default_filename) const;
//! Set resource group dirs read from the config. (DefaultResourceProvi
der only).
void initialiseResourceGroupDirectories() const;
//! Set default resource groups according to those in the config.
void initialiseDefaultResourceGroups() const;
//! Auto-load all resources specified in the config.
void loadAutoResources() const;
//! initialise the system default font according to the config.
void initialiseDefaultFont() const;
//! initialise the system default mouse cursor image according to the c
onfig.
void initialiseDefaultMouseCursor() const;
//! initialise the system default tooltip according to the config.
void initialiseDefaulTooltip() const;
//! initialise the initial / default GUI Sheet according to the config.
void initialiseDefaultGUISheet() const;
//! execute the init script as specified in the config.
void executeInitScript() const;
//! return the name of the terminate script from the config (hacky!)
const String& getTerminateScriptName() const;
/*! // XMLHandler overrides
\brief void elementStart(const String& element, const XMLAttributes& attribute
Return initial layout filename to load and set as the GUI sh s);
eet. void elementEnd(const String& element);
*/
const String& getLayoutFilename(void) const {ret
urn d_layoutFilename;}
/*! private:
\brief //! enumeration of resource types.
Return the name of the initialisation script to run enum ResourceType
*/ {
const String& getInitScriptFilename(void) const {ret RT_IMAGESET,
urn d_initScriptFilename;} RT_FONT,
RT_SCHEME,
RT_LOOKNFEEL,
RT_LAYOUT,
RT_SCRIPT,
RT_XMLSCHEMA,
RT_DEFAULT
};
/*! //! struct to track a resource group directory specification.
\brief struct ResourceDirectory
Return the name of the termination script to run {
*/ String group;
const String& getTermScriptFilename(void) const {ret String directory;
urn d_termScriptFilename;} };
/*! //! struct to track a default resource group specification.
\brief struct DefaultResourceGroup
Return name of font to use as default. {
*/ ResourceType type;
const String& getDefaultFontName(void) const {return d_de String group;
faultFontName;} };
/*! //! struct to track a set of resources to be auto-loaded.
\brief struct AutoLoadResource
Return name of default resource group. {
*/ String type_string;
const String& getDefaultResourceGroup(void) const {ret ResourceType type;
urn d_defaultResourceGroup;} String group;
String pattern;
};
/*! // functions to handle the various elements
\brief void handleCEGUIConfigElement(const XMLAttributes& attr);
Return logging level which was read from the config file. void handleLoggingElement(const XMLAttributes& attr);
*/ void handleAutoLoadElement(const XMLAttributes& attr);
LoggingLevel getLoggingLevel(void) const {return d_logLevel;} void handleResourceDirectoryElement(const XMLAttributes& attr);
void handleDefaultResourceGroupElement(const XMLAttributes& attr);
void handleScriptingElement(const XMLAttributes& attr);
void handleXMLParserElement(const XMLAttributes& attr);
void handleImageCodecElement(const XMLAttributes& attr);
void handleDefaultTooltipElement(const XMLAttributes& attr);
void handleDefaultGUISheetElement(const XMLAttributes& attr);
void handleDefaultFontElement(const XMLAttributes& attr);
void handleDefaultMouseCursorElement(const XMLAttributes& attr);
private: //! helper to convert resource type string to something more useful.
/******************************************************************* ResourceType stringToResourceType(const String& type) const;
****** //! helper to auto-load layouts
Implementation Constants void autoLoadLayouts(const String& pattern, const String& group) const;
******************************************************************** //! helper to auto-load looknfeels
*****/ void autoLoadLookNFeels(const String& pattern, const String& group) con
static const String CEGUIConfigElement; //!< st;
Tag name for CEGUIConfig elements.
static const char ConfigLogfileAttribute[];
//!< Attribute name that stores the filename to use for the log.
static const char ConfigSchemeAttribute[];
//!< Attribute name that stores the filename of a scheme to load.
static const char ConfigLayoutAttribute[];
//!< Attribute name that stores the filename of a layout to load.
static const char ConfigDefaultFontAttribute[]; //!<
Attribute name that stores the name of the default font to set (as loaded
by scheme)
static const char ConfigInitScriptAttribute[]; //!<
Attribute name that stores the filename of an initialisation script to run
.
static const char ConfigTerminateScriptAttribute[]; //!<
Attribute name that stores the filename of a termination script to run.
static const char ConfigDefaultResourceGroupAttribute[]; //!< Attribu
te name that stores the default resource group (also used when loading conf
ig resources).
static const char ConfigLoggingLevelAttribute[]; //!< Attribute
name that stores the logging level to be used.
/******************************************************************* //! type of collection holding resource group directory specifications.
****** typedef std::vector<ResourceDirectory> ResourceDirVector;
Implementation Data //! type of collection holding default resource group specifications.
******************************************************************** typedef std::vector<DefaultResourceGroup> DefaultGroupVector;
*****/ //! type of collection holding specifications of resources to auto-load
String d_logFilename; //!< filename for th .
e log. typedef std::vector<AutoLoadResource> AutoResourceVector;
String d_schemeFilename; //!< filename for th //! The name to use for the CEGUI log file.
e scheme to auto-load. String d_logFileName;
String d_layoutFilename; //!< filename for th //! The logging level to be set.
e layout to auto-load. LoggingLevel d_logLevel;
String d_initScriptFilename; //!< filename for the script //! The name of the XML parser module to initialise.
to run after system init. String d_xmlParserName;
String d_termScriptFilename; //!< filename for the script //! The name of the image codec module to initialise.
to run before system shutdown. String d_imageCodecName;
String d_defaultFontName; //!< Holds name of d //! The name of the default font to be set.
efault font to set. String d_defaultFont;
String d_defaultResourceGroup; //!< Holds default resource group n //! The name of the imageset holding the default mouse cursor image.
ame. String d_defaultMouseImageset;
LoggingLevel d_logLevel; //!< Holds the logging level read f //! The name of the default mouse cursor image to use.
rom the config. String d_defaultMouseImage;
//! The name of the default tooltip window type.
String d_defaultTooltipType;
//! The name of Window to use as the default GUI layout / sheet
String d_defaultGUISheet;
//! name of the initialisation script.
String d_scriptingInitScript;
//! name of the termination script.
String d_scriptingTerminateScript;
//! Collection of resouce group directories to be set.
ResourceDirVector d_resourceDirectories;
//! Collection of default resource groups to be set.
DefaultGroupVector d_defaultResourceGroups;
//! Collection of resource specifications to be auto-loaded.
AutoResourceVector d_autoLoadResources;
}; };
} // End of CEGUI namespace section } // End of CEGUI namespace section
#endif // end of guard _CEGUIConfig_xmlHandler_h_ #if defined (_MSC_VER)
# pragma warning(pop)
#endif
#endif // end of guard _CEGUIConfig_xmlHandler_h_
 End of changes. 18 change blocks. 
140 lines changed or deleted 161 lines changed or added


 CEGUIDefaultResourceProvider.h   CEGUIDefaultResourceProvider.h 
skipping to change at line 104 skipping to change at line 104
identifier. identifier.
\param resourceGroup \param resourceGroup
The resource group identifier for which the associated directory is to The resource group identifier for which the associated directory is to
be cleared. be cleared.
*/ */
void clearResourceGroupDirectory(const String& resourceGroup); void clearResourceGroupDirectory(const String& resourceGroup);
void loadRawDataContainer(const String& filename, RawDataContainer& out put, const String& resourceGroup); void loadRawDataContainer(const String& filename, RawDataContainer& out put, const String& resourceGroup);
void unloadRawDataContainer(RawDataContainer& data); void unloadRawDataContainer(RawDataContainer& data);
size_t getResourceGroupFileNames(std::vector<String>& out_vec,
const String& file_pattern,
const String& resource_group);
protected: protected:
/*! /*!
\brief \brief
Return the final path and filename, taking into account the given Return the final path and filename, taking into account the given
resource group identifier that should be used when attempting to resource group identifier that should be used when attempting to
load the data. load the data.
*/ */
String getFinalFilename(const String& filename, const String& resourceG roup) const; String getFinalFilename(const String& filename, const String& resourceG roup) const;
 End of changes. 1 change blocks. 
0 lines changed or deleted 3 lines changed or added


 CEGUIDragContainer.h   CEGUIDragContainer.h 
skipping to change at line 31 skipping to change at line 31
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* 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 _CEGUIDragContainer_h_ #ifndef _CEGUIDragContainer_h_
#define _CEGUIDragContainer_h_ #define _CEGUIDragContainer_h_
#include "CEGUIWindow.h" #include "../CEGUIWindow.h"
#include "CEGUIWindowFactory.h" #include "../CEGUIWindowFactory.h"
#include "elements/CEGUIDragContainerProperties.h" #include "CEGUIDragContainerProperties.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
{ {
/*! /*!
skipping to change at line 248 skipping to change at line 248
The drop target for a DragContainer is basically the Window tha t the DragContainer The drop target for a DragContainer is basically the Window tha t the DragContainer
is within while being dragged. The drop target may be 0 to ind icate no target. is within while being dragged. The drop target may be 0 to ind icate no target.
\return \return
Pointer to a Window object that contains the DragContainer whil st being dragged, or Pointer to a Window object that contains the DragContainer whil st being dragged, or
0 to indicate no current target. 0 to indicate no current target.
*/ */
Window* getCurrentDropTarget(void) const; Window* getCurrentDropTarget(void) const;
/*!
\brief
Return whether sticky mode is enable or disabled.
\return
- true if sticky mode is enabled.
- false if sticky mode is disabled.
*/
bool isStickyModeEnabled() const;
/*!
\brief
Enable or disable sticky mode.
\param setting
- true to enable sticky mode.
- false to disable sticky mode.
*/
void setStickyModeEnabled(bool setting);
// Window class overrides.
void getRenderingContext_impl(RenderingContext& ctx) const;
protected: protected:
/****************************************************************** ******* /****************************************************************** *******
Protected Implementation Methods Protected Implementation Methods
******************************************************************* ******/ ******************************************************************* ******/
/*! /*!
\brief \brief
Return whether the required minimum movement threshold before i nitiating dragging Return whether the required minimum movement threshold before i nitiating dragging
has been exceeded. has been exceeded.
\param local_mouse \param local_mouse
skipping to change at line 435 skipping to change at line 458
bool d_dragging; //!< true when being dragged. bool d_dragging; //!< true when being dragged.
UVector2 d_dragPoint; //!< point we are being dragged at. UVector2 d_dragPoint; //!< point we are being dragged at.
UVector2 d_startPosition; //!< position prior to dragging. UVector2 d_startPosition; //!< position prior to dragging.
float d_dragThreshold; //!< Pixels mouse must move before drag ging commences. float d_dragThreshold; //!< Pixels mouse must move before drag ging commences.
float d_dragAlpha; //!< Alpha value to set when dragging. float d_dragAlpha; //!< Alpha value to set when dragging.
float d_storedAlpha; //!< Alpha value to re-set when draggin g ends. float d_storedAlpha; //!< Alpha value to re-set when draggin g ends.
bool d_storedClipState; //!< Parent clip state to re-set. bool d_storedClipState; //!< Parent clip state to re-set.
Window* d_dropTarget; //!< Target window for possible drop op eration. Window* d_dropTarget; //!< Target window for possible drop op eration.
const Image* d_dragCursorImage; //!< Image to use for mouse cursor when dragging. const Image* d_dragCursorImage; //!< Image to use for mouse cursor when dragging.
bool d_dropflag; //!< True when we're being dropped bool d_dropflag; //!< True when we're being dropped
//! true when we're in 'sticky' mode.
bool d_stickyMode;
//! true after been picked-up / dragged via sticky mode
bool d_pickedUp;
private: private:
/****************************************************************** ******* /****************************************************************** *******
Static properties for the Spinner widget Static properties for the Spinner widget
******************************************************************* ******/ ******************************************************************* ******/
static DragContainerProperties::DragAlpha d_dragAlphaProperty ; static DragContainerProperties::DragAlpha d_dragAlphaProperty ;
static DragContainerProperties::DragCursorImage d_dragCursorImagePr operty; static DragContainerProperties::DragCursorImage d_dragCursorImagePr operty;
static DragContainerProperties::DraggingEnabled d_dragEnabledProper ty; static DragContainerProperties::DraggingEnabled d_dragEnabledProper ty;
static DragContainerProperties::DragThreshold d_dragThresholdProp erty; static DragContainerProperties::DragThreshold d_dragThresholdProp erty;
static DragContainerProperties::StickyMode d_stickyModePropert y;
/****************************************************************** ******* /****************************************************************** *******
Implementation methods Implementation methods
******************************************************************* ******/ ******************************************************************* ******/
/*! /*!
\brief \brief
Adds properties specific to the DragContainer base class. Adds properties specific to the DragContainer base class.
\return \return
Nothing. Nothing.
 End of changes. 4 change blocks. 
3 lines changed or deleted 31 lines changed or added


 CEGUIDragContainerProperties.h   CEGUIDragContainerProperties.h 
skipping to change at line 31 skipping to change at line 31
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* 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 _CEGUIDragContainerProperties_h_ #ifndef _CEGUIDragContainerProperties_h_
#define _CEGUIDragContainerProperties_h_ #define _CEGUIDragContainerProperties_h_
#include "CEGUIProperty.h" #include "../CEGUIProperty.h"
// Start of CEGUI namespace section // Start of CEGUI namespace section
namespace CEGUI namespace CEGUI
{ {
// Start of DragContainerProperties namespace section // Start of DragContainerProperties namespace section
namespace DragContainerProperties namespace DragContainerProperties
{ {
/*! /*!
\brief \brief
Property to access the state of the dragging enabled setting. Property to access the state of the dragging enabled setting.
skipping to change at line 139 skipping to change at line 139
DragCursorImage() : Property( DragCursorImage() : Property(
"DragCursorImage", "DragCursorImage",
"Property to get/set the mouse cursor image used when dr agging. Value should be \"set:<imageset name> image:<image name>\".", "Property to get/set the mouse cursor image used when dr agging. Value should be \"set:<imageset name> image:<image name>\".",
"") "")
{} {}
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 state of the sticky mode setting.
\par Usage:
- Name: StickyMode
- Format: "[text]".
\par Where [Text] is:
- "True" to indicate that sticky mode is enabled.
- "False" to indicate that sticky mode is disabled.
*/
class StickyMode : public Property
{
public:
StickyMode() : Property(
"StickyMode",
"Property to get/set the state of the sticky mode setting for t
he "
"DragContainer. Value is either \"True\" or \"False\".",
"True")
{}
String get(const PropertyReceiver* receiver) const;
void set(PropertyReceiver* receiver, const String& value);
};
} // End of DragContainerProperties namespace section } // End of DragContainerProperties namespace section
} // End of CEGUI namespace section } // End of CEGUI namespace section
#endif // end of guard _CEGUIDragContainerProperties_h_ #endif // end of guard _CEGUIDragContainerProperties_h_
 End of changes. 2 change blocks. 
1 lines changed or deleted 28 lines changed or added


 CEGUIDynamicModule.h   CEGUIDynamicModule.h 
skipping to change at line 38 skipping to change at line 38
#ifndef _CEGUIDynamicModule_h_ #ifndef _CEGUIDynamicModule_h_
#define _CEGUIDynamicModule_h_ #define _CEGUIDynamicModule_h_
#include "CEGUIString.h" #include "CEGUIString.h"
/************************************************************************* /*************************************************************************
The following is basically taken from DynLib.h, which is part of The following is basically taken from DynLib.h, which is part of
the Ogre project (http://www.ogre3d.org/) the Ogre project (http://www.ogre3d.org/)
*************************************************************************/ *************************************************************************/
#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__) #elif defined(__linux__) || defined(__FreeBSD__)
# 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. 2 change blocks. 
5 lines changed or deleted 6 lines changed or added


 CEGUIEditbox.h   CEGUIEditbox.h 
/*********************************************************************** /***********************************************************************
filename: CEGUIEditbox.h filename: CEGUIEditbox.h
created: 13/4/2004 created: 13/4/2004
author: Paul D Turner author: Paul D Turner
purpose: Interface to base class for Editbox widget purpose: Interface to base class for Editbox widget
*************************************************************************/ *************************************************************************/
/************************************************************************** * /************************************************************************** *
* Copyright (C) 2004 - 2006 Paul D Turner & The CEGUI Development Team * Copyright (C) 2004 - 2009 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 33 skipping to change at line 33
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* 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 _CEGUIEditbox_h_ #ifndef _CEGUIEditbox_h_
#define _CEGUIEditbox_h_ #define _CEGUIEditbox_h_
#include "CEGUIBase.h" #include "../CEGUIBase.h"
#include "CEGUIWindow.h" #include "../CEGUIWindow.h"
#include "elements/CEGUIEditboxProperties.h" #include "CEGUIEditboxProperties.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
{ {
// forward declare implementation data type //! Base class for the EditboxWindowRenderer class
struct RegexValidator;
/*!
\brief
Base class for the EditboxWindowRenderer class
*/
class CEGUIEXPORT EditboxWindowRenderer : public WindowRenderer class CEGUIEXPORT EditboxWindowRenderer : public WindowRenderer
{ {
public: public:
/*! //! Constructor
\brief
Constructor
*/
EditboxWindowRenderer(const String& name); EditboxWindowRenderer(const String& name);
/*! /*!
\brief \brief
Return the text code point index that is rendered closest to screen Return the text code point index that is rendered closest to screen
position \a pt. position \a pt.
\param pt \param pt
Point object describing a position on the screen in pixels. Point object describing a position on the screen in pixels.
\return \return
Code point index into the text that is rendered closest to screen p Code point index into the text that is rendered closest to screen
osition \a pt. position \a pt.
*/ */
virtual size_t getTextIndexFromPosition(const Point& pt) const = 0; virtual size_t getTextIndexFromPosition(const Point& pt) const = 0;
}; };
/*! //-------------------------------------------------------------------------
\brief ---//
Base class for an Editbox widget
*/ //! Base class for an Editbox widget
class CEGUIEXPORT Editbox : public Window class CEGUIEXPORT Editbox : 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;
//! The read-only mode for the edit box has been changed.
/******************************************************************* static const String EventReadOnlyModeChanged;
****** //! The masked rendering mode (password mode) has been changed.
Event name constants static const String EventMaskedRenderingModeChanged;
******************************************************************** //! The code point (character) to use for masked text has been changed.
*****/ static const String EventMaskCodePointChanged;
static const String EventReadOnlyModeChanged; //!< //! The validation string has been changed.
The read-only mode for the edit box has been changed. static const String EventValidationStringChanged;
static const String EventMaskedRenderingModeChanged; //!< The mas //! The maximum allowable string length has been changed.
ked rendering mode (password mode) has been changed. static const String EventMaximumTextLengthChanged;
static const String EventMaskCodePointChanged; //!< The cod //! The current text has become invalid as regards to the validation st
e point (character) to use for masked text has been changed. ring.
static const String EventValidationStringChanged; //!< static const String EventTextInvalidated;
The validation string has been changed. //! The user attempted to chage the text in a way that was invalid.
static const String EventMaximumTextLengthChanged; //!< The max static const String EventInvalidEntryAttempted;
imum allowable string length has been changed. //! The text carat (insert point) has changed.
static const String EventTextInvalidated; static const String EventCaratMoved;
//!< Some operation has made the current text invalid with regards to t //! The current text selection has changed.
he validation string. static const String EventTextSelectionChanged;
static const String EventInvalidEntryAttempted; //!< The use //! The number of characters in the edit box reached the current maximu
r attempted to modify the text in a way that would have made it invalid. m.
static const String EventCaratMoved; static const String EventEditboxFull;
//!< The text carat (insert point) has changed. //! The user accepted the current text by pressing Return, Enter, or Ta
static const String EventTextSelectionChanged; //!< The cur b.
rent text selection has changed. static const String EventTextAccepted;
static const String EventEditboxFull;
//!< The number of characters in the edit box has reached the current m
aximum.
static const String EventTextAccepted; //!<
The user has accepted the current text by pressing Return, Enter, or Tab.
/******************************************************************* /*!
****** \brief
Accessor Functions return true if the Editbox has input focus.
********************************************************************
*****/
/*!
\brief
return true if the Editbox has input focus.
\return \return
true if the Editbox has keyboard input focus, false if the E - true if the Editbox has keyboard input focus.
ditbox does not have keyboard input focus. - false if the Editbox does not have keyboard input focus.
*/ */
bool hasInputFocus(void) const; bool hasInputFocus(void) const;
/*! /*!
\brief \brief
return true if the Editbox is read-only. return true if the Editbox is read-only.
\return \return
true if the Editbox is read only and can't be edited by the true if the Editbox is read only and can't be edited by the user, f
user, false if the Editbox is not alse
read only and may be edited by the user. if the Editbox is not read only and may be edited by the user.
*/ */
bool isReadOnly(void) const {return d_readOnly;} bool isReadOnly(void) const
{return d_readOnly;}
/*! /*!
\brief \brief
return true if the text for the Editbox will be rendered mas return true if the text for the Editbox will be rendered masked.
ked.
\return \return
true if the Editbox text will be rendered masked using the c true if the Editbox text will be rendered masked using the currentl
urrently set mask code point, false if the Editbox y set
text will be rendered as plain text. mask code point, false if the Editbox text will be rendered as ordi
*/ nary
bool isTextMasked(void) const {return d_maskText;} text.
*/
bool isTextMasked(void) const
{return d_maskText;}
/*! /*!
\brief \brief
return true if the Editbox text is valid given the currently return true if the Editbox text is valid given the currently set
set validation string. validation string.
\note \note
It is possible to programmatically set 'invalid' text for th It is possible to programmatically set 'invalid' text for the Editb
e Editbox by calling setText. This has certain ox by
implications since if invalid text is set, whatever the user calling setText. This has certain implications since if invalid te
types into the box will be rejected when the input xt is
is validated. set, whatever the user types into the box will be rejected when the
input is validated.
\note \note
Validation is performed by means of a regular expression. I Validation is performed by means of a regular expression. If the t
f the text matches the regex, the text is said to have passed ext
validation. If the text does not match with the regex then matches the regex, the text is said to have passed validation. If
the text fails validation. the
text does not match with the regex then the text fails validation.
\return \return
true if the current Editbox text passes validation, false if - true if the current Editbox text passes validation.
the text does not pass validation. - false if the text does not pass validation.
*/ */
bool isTextValid(void) const; bool isTextValid(void) const;
/*! /*!
\brief \brief
return the currently set validation string return the currently set validation string
\note \note
Validation is performed by means of a regular expression. I Validation is performed by means of a regular expression. If the t
f the text matches the regex, the text is said to have passed ext
validation. If the text does not match with the regex then matches the regex, the text is said to have passed validation. If
the text fails validation. the
text does not match with the regex then the text fails validation.
\return \return
String object containing the current validation regex data String object containing the current validation regex data
*/ */
const String& getValidationString(void) const {return d_va const String& getValidationString(void) const
lidationString;} {return d_validationString;}
/*! /*!
\brief \brief
return the current position of the carat. return the current position of the carat.
\return \return
Index of the insert carat relative to the start of the text. Index of the insert carat relative to the start of the text.
*/ */
size_t getCaratIndex(void) const {return d_caratPos;} size_t getCaratIndex(void) const;
/*! /*!
\brief \brief
return the current selection start point. return the current selection start point.
\return \return
Index of the selection start point relative to the start of Index of the selection start point relative to the start of the tex
the text. If no selection is defined this function returns t.
the position of the carat. If no selection is defined this function returns the position of th
*/ e
size_t getSelectionStartIndex(void) const; carat.
*/
size_t getSelectionStartIndex(void) const;
/*! /*!
\brief \brief
return the current selection end point. return the current selection end point.
\return \return
Index of the selection end point relative to the start of th Index of the selection end point relative to the start of the text.
e text. If no selection is defined this function returns If
the position of the carat. no selection is defined this function returns the position of the c
*/ arat.
size_t getSelectionEndIndex(void) const; */
size_t getSelectionEndIndex(void) const;
/*! /*!
\brief \brief
return the length of the current selection (in code points / return the length of the current selection (in code points /
characters). characters).
\return \return
Number of code points (or characters) contained within the c Number of code points (or characters) contained within the currentl
urrently defined selection. y
*/ defined selection.
size_t getSelectionLength(void) const; */
size_t getSelectionLength(void) const;
/*! /*!
\brief \brief
return the utf32 code point used when rendering masked text. return the utf32 code point used when rendering masked text.
\return \return
utf32 code point value representing the Unicode code point t utf32 code point value representing the Unicode code point that wil
hat will be rendered instead of the Editbox text l be
when rendering in masked mode. rendered instead of the Editbox text when rendering in masked mode.
*/ */
utf32 getMaskCodePoint(void) const {return d_maskCodePo utf32 getMaskCodePoint(void) const
int;} {return d_maskCodePoint;}
/*! /*!
\brief \brief
return the maximum text length set for this Editbox. return the maximum text length set for this Editbox.
\return \return
The maximum number of code points (characters) that can be e The maximum number of code points (characters) that can be entered
ntered into this Editbox. into
this Editbox.
\note \note
Depending on the validation string set, the actual length of Depending on the validation string set, the actual length of text t
text that can be entered may be less than the value hat
returned here (it will never be more). can be entered may be less than the value returned here
*/ (it will never be more).
size_t getMaxTextLength(void) const {return d_maxTextLen */
;} size_t getMaxTextLength(void) const
{return d_maxTextLen;}
/******************************************************************* /*!
****** \brief
Manipulators Specify whether the Editbox is read-only.
********************************************************************
*****/
/*!
\brief
Specify whether the Editbox is read-only.
\param setting \param setting
true if the Editbox is read only and can't be edited by the true if the Editbox is read only and can't be edited by the user, f
user, false if the Editbox is not alse
read only and may be edited by the user. if the Editbox is not read only and may be edited by the user.
\return \return
Nothing. Nothing.
*/ */
void setReadOnly(bool setting); void setReadOnly(bool setting);
/*! /*!
\brief \brief
Specify whether the text for the Editbox will be rendered ma Specify whether the text for the Editbox will be rendered masked.
sked.
\param setting \param setting
true if the Editbox text should be rendered masked using the - true if the Editbox text should be rendered masked using the curr
currently set mask code point, false if the Editbox ently
text should be rendered as plain text. set mask code point.
- false if the Editbox text should be rendered as ordinary text.
\return \return
Nothing. Nothing.
*/ */
void setTextMasked(bool setting); void setTextMasked(bool setting);
/*! /*!
\brief \brief
Set the text validation string. Set the text validation string.
\note \note
Validation is performed by means of a regular expression. I Validation is performed by means of a regular expression. If the t
f the text matches the regex, the text is said to have passed ext
validation. If the text does not match with the regex then matches the regex, the text is said to have passed validation. If
the text fails validation. the
text does not match with the regex then the text fails validation.
\param validation_string \param validation_string
String object containing the validation regex data to be use String object containing the validation regex data to be used.
d.
\return \return
Nothing. Nothing.
*/ */
void setValidationString(const String& validation_string); void setValidationString(const String& validation_string);
/*! /*!
\brief \brief
Set the current position of the carat. Set the current position of the carat.
\param carat_pos \param carat_pos
New index for the insert carat relative to the start of the New index for the insert carat relative to the start of the text.
text. If the value specified is greater than the If
number of characters in the Editbox, the carat is positioned the value specified is greater than the number of characters in the
at the end of the text. Editbox, the carat is positioned at the end of the text.
\return \return
Nothing. Nothing.
*/ */
void setCaratIndex(size_t carat_pos); void setCaratIndex(size_t carat_pos);
/*! /*!
\brief \brief
Define the current selection for the Editbox Define the current selection for the Editbox
\param start_pos \param start_pos
Index of the starting point for the selection. If this valu Index of the starting point for the selection. If this value is gr
e is greater than the number of characters in the Editbox, the eater
selection start will be set to the end of the text. than the number of characters in the Editbox, the selection start w
ill
be set to the end of the text.
\param end_pos \param end_pos
Index of the ending point for the selection. If this value Index of the ending point for the selection. If this value is grea
is greater than the number of characters in the Editbox, the ter
selection end will be set to the end of the text. than the number of characters in the Editbox, the selection end wil
l be
set to the end of the text.
\return \return
Nothing. Nothing.
*/ */
void setSelection(size_t start_pos, size_t end_pos); void setSelection(size_t start_pos, size_t end_pos);
/*! /*!
\brief \brief
set the utf32 code point used when rendering masked text. set the utf32 code point used when rendering masked text.
\param code_point \param code_point
utf32 code point value representing the Unicode code point t utf32 code point value representing the Unicode code point that sho
hat should be rendered instead of the Editbox text uld
when rendering in masked mode. be rendered instead of the Editbox text when rendering in masked mo
de.
\return \return
Nothing. Nothing.
*/ */
void setMaskCodePoint(utf32 code_point); void setMaskCodePoint(utf32 code_point);
/*! /*!
\brief \brief
set the maximum text length for this Editbox. set the maximum text length for this Editbox.
\param max_len \param max_len
The maximum number of code points (characters) that can be e The maximum number of code points (characters) that can be entered
ntered into this Editbox. into
this Editbox.
\note \note
Depending on the validation string set, the actual length of Depending on the validation string set, the actual length of text t
text that can be entered may be less than the value hat
set here (it will never be more). can be entered may be less than the value set here
(it will never be more).
\return \return
Nothing. Nothing.
*/ */
void setMaxTextLength(size_t max_len); void setMaxTextLength(size_t max_len);
/******************************************************************* //! Constructor for Editbox class.
****** Editbox(const String& type, const String& name);
Construction / Destruction
********************************************************************
*****/
/*!
\brief
Constructor for Editbox class.
*/
Editbox(const String& type, const String& name);
/*! //! Destructor for Editbox class.
\brief virtual ~Editbox(void);
Destructor for Editbox class.
*/
virtual ~Editbox(void);
protected: protected:
/*******************************************************************
******
Implementation functions
********************************************************************
*****/
/*!
\brief
Return the text code point index that is rendered closest to
screen position \a pt.
\param pt
Point object describing a position on the screen in pixels.
\return
Code point index into the text that is rendered closest to s
creen position \a pt.
*/
size_t getTextIndexFromPosition(const Point& pt) const;
/*! /*!
\brief \brief
Return the text code point index that is rendered closest to screen Return the text code point index that is rendered closest to screen
position \a pt. position \a pt.
\param pt \param pt
Point object describing a position on the screen in pixels. Point object describing a position on the screen in pixels.
\return \return
Code point index into the text that is rendered closest to screen p Code point index into the text that is rendered closest to screen
osition \a pt. position \a pt.
*/ */
//virtual size_t getTextIndexFromPosition_impl(const Point& pt) const = 0; size_t getTextIndexFromPosition(const Point& pt) const;
/*! //! Clear the currently defined selection (just the region, not the tex
\brief t).
Clear the current selection setting void clearSelection(void);
*/
void clearSelection(void);
/*! /*!
\brief \brief
Erase the currently selected text. Erase the currently selected text.
\param modify_text \param modify_text
when true, the actual text will be modified. When false, ev when true, the actual text will be modified. When false, everythin
erything is done except erasing the characters. g is
*/ done except erasing the characters.
void eraseSelectedText(bool modify_text = true); */
void eraseSelectedText(bool modify_text = true);
/*! /*!
\brief \brief
return true if the given string matches the validation regul return true if the given string matches the validation regular
ar expression. expression.
*/ */
bool isStringValid(const String& str) const; bool isStringValid(const String& str) const;
/*! //! Processing for backspace key
\brief void handleBackspace(void);
Processing for backspace key
*/
void handleBackspace(void);
/*! //! Processing for Delete key
\brief void handleDelete(void);
Processing for Delete key
*/
void handleDelete(void);
/*! //! Processing to move carat one character left
\brief void handleCharLeft(uint sysKeys);
Processing to move carat one character left
*/
void handleCharLeft(uint sysKeys);
/*! //! Processing to move carat one word left
\brief void handleWordLeft(uint sysKeys);
Processing to move carat one word left
*/
void handleWordLeft(uint sysKeys);
/*! //! Processing to move carat one character right
\brief void handleCharRight(uint sysKeys);
Processing to move carat one character right
*/
void handleCharRight(uint sysKeys);
/*! //! Processing to move carat one word right
\brief void handleWordRight(uint sysKeys);
Processing to move carat one word right
*/
void handleWordRight(uint sysKeys);
/*! //! Processing to move carat to the start of the text.
\brief void handleHome(uint sysKeys);
Processing to move carat to the start of the text.
*/
void handleHome(uint sysKeys);
/*! //! Processing to move carat to the end of the text
\brief void handleEnd(uint sysKeys);
Processing to move carat to the end of the text
*/
void handleEnd(uint sysKeys);
/*! /*!
\brief \brief
Return whether this window was inherited from the given clas Return whether this window was inherited from the given class name
s name at some point in the inheritance hierarchy. at
some point in the inheritance hierarchy.
\param class_name \param class_name
The class name that is to be checked. The class name that is to be checked.
\return \return
true if this window was inherited from \a class_name. false - true if this window was inherited from \a class_name.
if not. - false if not.
*/ */
virtual bool testClassName_impl(const String& class_name) const virtual bool testClassName_impl(const String& class_name) const
{ {
if (class_name=="Editbox") return true; if (class_name=="Editbox") return true;
return Window::testClassName_impl(class_name); return Window::testClassName_impl(class_name);
} }
// validate window renderer //! validate window renderer
virtual bool validateWindowRenderer(const String& name) const virtual bool validateWindowRenderer(const String& name) const
{ {
return (name == "Editbox"); return (name == "Editbox");
} }
/******************************************************************* /*!
****** \brief
New event handlers Handler called when the read only state of the Editbox has been cha
******************************************************************** nged.
*****/ */
/*! virtual void onReadOnlyChanged(WindowEventArgs& e);
\brief
Event fired internally when the read only state of the Editb
ox has been changed
*/
virtual void onReadOnlyChanged(WindowEventArgs& e);
/*! /*!
\brief \brief
Event fired internally when the masked rendering mode (passw Handler called when the masked rendering mode (password mode) has b
ord mode) has been changed een
*/ changed.
virtual void onMaskedRenderingModeChanged(WindowEventArgs& e); */
virtual void onMaskedRenderingModeChanged(WindowEventArgs& e);
/*! /*!
\brief \brief
Event fired internally when the code point to use for masked Handler called when the code point to use for masked rendering has
rendering has been changed. been
*/ changed.
virtual void onMaskCodePointChanged(WindowEventArgs& e); */
virtual void onMaskCodePointChanged(WindowEventArgs& e);
/*! /*!
\brief \brief
Event fired internally when the validation string is changed Event fired internally when the validation string is changed.
. */
*/ virtual void onValidationStringChanged(WindowEventArgs& e);
virtual void onValidationStringChanged(WindowEventArgs& e);
/*! /*!
\brief \brief
Event fired internally when the maximum text length for the Handler called when the maximum text length for the edit box is cha
edit box is changed. nged.
*/ */
virtual void onMaximumTextLengthChanged(WindowEventArgs& e); virtual void onMaximumTextLengthChanged(WindowEventArgs& e);
/*! /*!
\brief \brief
Event fired internally when something has caused the current Handler called when something has caused the current text to now fa
text to now fail validation il
validation.
This can be caused by changing the validation string or sett This can be caused by changing the validation string or setting a
ing a maximum length that causes the maximum length that causes the current text to be truncated.
current text to be truncated. */
*/ virtual void onTextInvalidatedEvent(WindowEventArgs& e);
virtual void onTextInvalidatedEvent(WindowEventArgs& e);
/*! /*!
\brief \brief
Event fired internally when the user attempted to make a cha Handler called when the user attempted to make a change to the edit
nge to the edit box that would box
have caused it to fail validation. that would have caused it to fail validation.
*/ */
virtual void onInvalidEntryAttempted(WindowEventArgs& e); virtual void onInvalidEntryAttempted(WindowEventArgs& e);
/*! /*!
\brief \brief
Event fired internally when the carat (insert point) positio Handler called when the carat (insert point) position changes.
n changes. */
*/ virtual void onCaratMoved(WindowEventArgs& e);
virtual void onCaratMoved(WindowEventArgs& e);
/*! /*!
\brief \brief
Event fired internally when the current text selection chang Handler called when the current text selection changes.
es. */
*/ virtual void onTextSelectionChanged(WindowEventArgs& e);
virtual void onTextSelectionChanged(WindowEventArgs& e);
/*! /*!
\brief \brief
Event fired internally when the edit box text has reached th Handler called when the edit box text has reached the set maximum
e set maximum length. length.
*/ */
virtual void onEditboxFullEvent(WindowEventArgs& e); virtual void onEditboxFullEvent(WindowEventArgs& e);
/*! /*!
\brief \brief
Event fired internally when the user accepts the edit box te Handler called when the user accepts the edit box text by pressing
xt by pressing Return, Enter, or Tab. Return, Enter, or Tab.
*/ */
virtual void onTextAcceptedEvent(WindowEventArgs& e); virtual void onTextAcceptedEvent(WindowEventArgs& e);
/******************************************************************* // Overridden event handlers
****** void onMouseButtonDown(MouseEventArgs& e);
Overridden event handlers void onMouseButtonUp(MouseEventArgs& e);
******************************************************************** void onMouseDoubleClicked(MouseEventArgs& e);
*****/ void onMouseTripleClicked(MouseEventArgs& e);
virtual void onMouseButtonDown(MouseEventArgs& e); void onMouseMove(MouseEventArgs& e);
virtual void onMouseButtonUp(MouseEventArgs& e); void onCaptureLost(WindowEventArgs& e);
virtual void onMouseDoubleClicked(MouseEventArgs& e); void onCharacter(KeyEventArgs& e);
virtual void onMouseTripleClicked(MouseEventArgs& e); void onKeyDown(KeyEventArgs& e);
virtual void onMouseMove(MouseEventArgs& e); void onTextChanged(WindowEventArgs& e);
virtual void onCaptureLost(WindowEventArgs& e);
virtual void onCharacter(KeyEventArgs& e);
virtual void onKeyDown(KeyEventArgs& e);
virtual void onTextChanged(WindowEventArgs& e);
/******************************************************************* //! True if the editbox is in read-only mode
****** bool d_readOnly;
Implementation data //! True if the editbox text should be rendered masked.
******************************************************************** bool d_maskText;
*****/ //! Code point to use when rendering masked text.
bool d_readOnly; //!< True if the editbox is utf32 d_maskCodePoint;
in read-only mode //! Maximum number of characters for this Editbox.
bool d_maskText; //!< True if the editbox tex size_t d_maxTextLen;
t should be rendered masked. //! Position of the carat / insert-point.
utf32 d_maskCodePoint; //!< Code point to use when renderin size_t d_caratPos;
g masked text. //! Start of selection area.
size_t d_maxTextLen; //!< Maximum number of characters fo size_t d_selectionStart;
r this Editbox. //! End of selection area.
size_t d_caratPos; //!< Position of the carat / size_t d_selectionEnd;
insert-point. //! Copy of validation reg-ex string.
size_t d_selectionStart; //!< Start of selection area. String d_validationString;
size_t d_selectionEnd; //!< End of selection area. //! Pointer to class used for validation of text.
String d_validationString; //!< Copy of validation reg-ex strin RegexMatcher* d_validator;
g. //! true when a selection is being dragged.
RegexValidator* d_validator; //!< RegEx String used for v bool d_dragging;
alidation of text. //! Selection index for drag selection anchor point.
bool d_dragging; //!< true when a selection i size_t d_dragAnchorIdx;
s being dragged.
size_t d_dragAnchorIdx; //!< Selection index for drag select
ion anchor point.
private: private:
/******************************************************************* static EditboxProperties::ReadOnly d_readOnlyProperty;
****** static EditboxProperties::MaskText d_maskTextProperty;
Static Properties for this class static EditboxProperties::MaskCodepoint d_maskCodepointProperty;
******************************************************************** static EditboxProperties::ValidationString d_validationStringProperty;
*****/ static EditboxProperties::CaratIndex d_caratIndexProperty;
static EditboxProperties::ReadOnly static EditboxProperties::SelectionStart d_selectionStartProperty;
d_readOnlyProperty; static EditboxProperties::SelectionLength d_selectionLengthProperty;
static EditboxProperties::MaskText static EditboxProperties::MaxTextLength d_maxTextLengthProperty;
d_maskTextProperty;
static EditboxProperties::MaskCodepoint d_ma
skCodepointProperty;
static EditboxProperties::ValidationString d_va
lidationStringProperty;
static EditboxProperties::CaratIndex d_ca
ratIndexProperty;
static EditboxProperties::SelectionStart d_se
lectionStartProperty;
static EditboxProperties::SelectionLength d_se
lectionLengthProperty;
static EditboxProperties::MaxTextLength d_ma
xTextLengthProperty;
/******************************************************************* void addEditboxProperties(void);
******
Private methods
********************************************************************
*****/
void addEditboxProperties(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 _CEGUIEditbox_h_ #endif // end of guard _CEGUIEditbox_h_
 End of changes. 101 change blocks. 
537 lines changed or deleted 447 lines changed or added


 CEGUIEditboxProperties.h   CEGUIEditboxProperties.h 
skipping to change at line 33 skipping to change at line 33
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* 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 _CEGUIEditboxProperties_h_ #ifndef _CEGUIEditboxProperties_h_
#define _CEGUIEditboxProperties_h_ #define _CEGUIEditboxProperties_h_
#include "CEGUIProperty.h" #include "../CEGUIProperty.h"
// Start of CEGUI namespace section // Start of CEGUI namespace section
namespace CEGUI namespace CEGUI
{ {
// Start of EditboxProperties namespace section // Start of EditboxProperties namespace section
/*! /*!
\brief \brief
Namespace containing all classes that make up the properties interfa ce for the Editbox class Namespace containing all classes that make up the properties interfa ce for the Editbox class
*/ */
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 CEGUIEvent.h   CEGUIEvent.h 
skipping to change at line 209 skipping to change at line 209
slots attached to this Event, thus 'unsubscribing' it. slots attached to this Event, thus 'unsubscribing' it.
\note \note
This is an implementation member, and is not available to client co de. This is an implementation member, and is not available to client co de.
In order to detach / unsubscribe from an Event you should be using the In order to detach / unsubscribe from an Event you should be using the
Connection object(s) returned when you initially subscribed. Connection object(s) returned when you initially subscribed.
*/ */
void unsubscribe(const BoundSlot& slot); void unsubscribe(const BoundSlot& slot);
// Copy constructor and assignment are not allowed for events // Copy constructor and assignment are not allowed for events
Event(const Event& other) {} Event(const Event&) {}
Event& operator=(const Event& other) {return *this;} Event& operator=(const Event&) {return *this;}
typedef std::multimap<Group, Connection> SlotContainer; typedef std::multimap<Group, Connection> SlotContainer;
SlotContainer d_slots; //!< Collection holding ref-counted bound slots SlotContainer d_slots; //!< Collection holding ref-counted bound slots
const String d_name; //!< Name of this event const String d_name; //!< Name of this event
}; };
} // 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. 1 change blocks. 
2 lines changed or deleted 2 lines changed or added


 CEGUIEventArgs.h   CEGUIEventArgs.h 
skipping to change at line 57 skipping to change at line 57
The \a handled field is used to signal whether an event was actually handled or not. While The \a handled field is used to signal whether an event was actually handled or not. While
the event system does not look at this value, code at a higher level can use it to determine the event system does not look at this value, code at a higher level can use it to determine
how far to propagate an event. how far to propagate an event.
*/ */
class CEGUIEXPORT EventArgs class CEGUIEXPORT EventArgs
{ {
public: public:
/******************************************************************* ****** /******************************************************************* ******
Construction Construction
******************************************************************** *****/ ******************************************************************** *****/
EventArgs(void) : handled(false), d_hasWindow(false) {} EventArgs(void) : handled(0) {}
virtual ~EventArgs(void) {} virtual ~EventArgs(void) {}
/******************************************************************* ****** /******************************************************************* ******
Data members Data members
******************************************************************** *****/ ******************************************************************** *****/
bool handled; //!< handlers should set this to tru //! handlers should increment this if they handled the event.
e if they handled the event, or false otherwise. uint handled;
bool d_hasWindow; //!< Indicates if this event set has a parent w
indow.
}; };
} // End of CEGUI namespace section } // End of CEGUI namespace section
#endif // end of guard _CEGUIEventArgs_h_ #endif // end of guard _CEGUIEventArgs_h_
 End of changes. 2 change blocks. 
5 lines changed or deleted 3 lines changed or added


 CEGUIEventSet.h   CEGUIEventSet.h 
skipping to change at line 275 skipping to change at line 275
*/ */
Event* getEventObject(const String& name, bool autoAdd = false); Event* getEventObject(const String& name, bool autoAdd = false);
/*! /*!
\brief \brief
Implementation event firing member Implementation event firing member
*/ */
void fireEvent_impl(const String& name, EventArgs& args); void fireEvent_impl(const String& name, EventArgs& args);
// Do not allow copying, assignment, or any other usage than simple creation. // Do not allow copying, assignment, or any other usage than simple creation.
EventSet(EventSet& e) {} EventSet(EventSet&) {}
EventSet& operator=(EventSet& e) {return *this;} EventSet& operator=(EventSet&) {return *this;}
typedef std::map<String, Event*, String::FastLessCompare> Even tMap; typedef std::map<String, Event*, String::FastLessCompare> Even tMap;
EventMap d_events; EventMap d_events;
bool d_muted; //!< true if events for this EventSet have b een muted. bool d_muted; //!< true if events for this EventSet have b een muted.
public: public:
/******************************************************************* ****** /******************************************************************* ******
Iterator stuff Iterator stuff
******************************************************************** *****/ ******************************************************************** *****/
 End of changes. 1 change blocks. 
2 lines changed or deleted 2 lines changed or added


 CEGUIExceptions.h   CEGUIExceptions.h 
/*********************************************************************** /***********************************************************************
filename: CEGUIExceptions.h filename: CEGUIExceptions.h
created: 20/2/2004 created: 20/2/2004
author: Paul D Turner, Frederico Jeronimo (fjeronimo) author: Paul D Turner, Frederico Jeronimo (fjeronimo)
purpose: Defines exceptions used within the system purpose: Defines exceptions used within the system
*************************************************************************/ *************************************************************************/
/************************************************************************** * /************************************************************************** *
* Copyright (C) 2004 - 2007 Paul D Turner & The CEGUI Development Team * Copyright (C) 2004 - 2009 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 33 skipping to change at line 33
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* 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 _CEGUIExceptions_h_ #ifndef _CEGUIExceptions_h_
#define _CEGUIExceptions_h_ #define _CEGUIExceptions_h_
//////////////////////////////////////////////////////////////////////////
// INCLUDES
//////////////////////////////////////////////////////////////////////////
#include "CEGUIBase.h" #include "CEGUIBase.h"
#include "CEGUIString.h" #include "CEGUIString.h"
#include <exception>
//////////////////////////////////////////////////////////////////////////
// CEGUI NAMESPACE
//////////////////////////////////////////////////////////////////////////
// Start of CEGUI namespace section // Start of CEGUI namespace section
namespace CEGUI namespace CEGUI
{ {
/////////////////////////////////////////////////////////////////////// //! Root exception class used within the GUI system.
/// class CEGUIEXPORT Exception : public std::exception
// EXCEPTION {
/////////////////////////////////////////////////////////////////////// public:
/// //! Virtual destructor.
virtual ~Exception(void) throw();
/*! /*!
\brief \brief
Root exception class used within the GUI system. Return a reference to the String object describing the reason for t
*/ he
class CEGUIEXPORT Exception exception being thrown.
{
public:
/******************************************************************
*****
* DESTRUCTOR
******************************************************************
****/
/*!
\brief
Virtual destructor.
*/
virtual ~Exception(void);
/******************************************************************
*****
* PUBLIC FUNCTIONS
******************************************************************
****/
/*!
\brief
Return a reference to the String object describing the reason for t
he exception being thrown.
\return \return
String object containing a message describing the reason for the ex String object containing a message describing the reason for the
ception. exception.
*/ */
const String& getMessage(void) const {return d_message;} const String& getMessage(void) const
{ return d_message; }
/*! /*!
\brief \brief
Return a reference to the String object containing the exception na Return a reference to the String object containing the exception na
me (i.e. class type). me
(i.e. class type).
\return \return
String object containing the exception name. String object containing the exception name.
*/ */
const String& getName() const { return d_name; } const String& getName() const
{ return d_name; }
/*! /*!
\brief \brief
Return a reference to the String object containing the name of the Return a reference to the String object containing the name of the
file where the exception occurred. file
where the exception occurred.
\return \return
String object containing the name of the file where the exception o String object containing the name of the file where the exception
ccurred. occurred.
*/ */
const String& getFileName(void) const {return d_filename;} const String& getFileName(void) const
{ return d_filename; }
/*! /*!
\brief \brief
Return the line number where the exception occurred. Return the line number where the exception occurred.
\Return \Return
Integer representing the line number where the exception occurred. Integer representing the line number where the exception occurred.
*/ */
const int getLine(void) const {return d_line;} int getLine(void) const
{ return d_line; }
protected:
/****************************************************************** // override from std::exception.
***** const char* what() const throw();
* CONSTRUCTORS
******************************************************************
****/
/*! protected:
\brief /*!
Protected constructor that prevents instantiations (users should em \brief
ploy derived Protected constructor that prevents instantiations (users should em
exception classes instead) and that is responsible for logging the ploy
exception. derived exception classes instead) and that is responsible for logg
ing
the exception.
\param message \param message
String object describing the reason for the exception being thrown. String object describing the reason for the exception being thrown.
\param name \param name
String object describing the exception class name (e.g. CEGUI::Unkn String object describing the exception class name
ownObjectException) (e.g. CEGUI::UnknownObjectException)
\param filename \param filename
String object containing the name of the file where the exception o String object containing the name of the file where the exception
ccurred. occurred.
\param line \param line
Integer representing the line number where the exception occurred. Integer representing the line number where the exception occurred.
*/ */
Exception(const String& message = "", const String& name ="CEGUI::E Exception(const String& message = "",
xception", const String& filename = "", int line = 0); const String& name = "CEGUI::Exception",
const String& filename = "",
/****************************************************************** int line = 0);
*****
* PROTECTED VARIABLES
******************************************************************
****/
/*!
\brief
Holds the reason for the exception being thrown.
*/
String d_message;
/*!
\brief
Holds the name of the file where the exception occurred.
*/
String d_filename;
/*!
\brief
Holds the class name of the exception (e.g. CEGUI::ObjectInUseExcep
tion)
*/
String d_name;
/*! //! Holds the reason for the exception being thrown.
\brief String d_message;
Holds the line number where the exception occurred. //! Holds the name of the file where the exception occurred.
*/ String d_filename;
int d_line; //! Holds the class name of the exception (e.g. CEGUI::ObjectInUseExcep
}; tion)
String d_name;
//! Holds the line number where the exception occurred.
int d_line;
//! Holds the default error message.
String d_what;
};
/////////////////////////////////////////////////////////////////////// //-------------------------------------------------------------------------
/// ---//
// GENERIC EXCEPTION
///////////////////////////////////////////////////////////////////////
///
//! Exception class used when none of the other classes are applicable
class CEGUIEXPORT GenericException : public Exception
{
public:
/*! /*!
\brief \brief
Exception class used when none of the other classes are applicable Constructor that is responsible for logging the generic exception b
*/ y
class CEGUIEXPORT GenericException : public Exception calling the base class.
{
public:
/******************************************************************
*****
* CONSTRUCTORS/DESTRUCTORS
******************************************************************
****/
/*!
\brief
Constructor that is responsible for logging the generic exception b
y calling
the base class.
\param message \param message
String object describing the reason for the generic exception being String object describing the reason for the generic exception being
thrown. thrown.
\param filename \param filename
String object containing the name of the file where the generic exc String object containing the name of the file where the generic
eption occurred. exception occurred.
\param line \param line
Integer representing the line number where the generic exception oc Integer representing the line number where the generic exception
curred. occurred.
\remarks \remarks
The generic exception name is automatically passed to the base clas s as The generic exception name is automatically passed to the base clas s as
"CEGUI::GenericException". "CEGUI::GenericException".
*/ */
GenericException(const String& message, const String& file = "unkno GenericException(const String& message,
wn", int line = 0) const String& file = "unknown", int line = 0) :
: Exception(message, "CEGUI::GenericException", file, line) {} Exception(message, "CEGUI::GenericException", file, line)
}; {}
};
/*! /*!
\brief \brief
This helper macro ensures the correct filename and line number where th This helper macro ensures the correct filename and line number where th
e generic e
exception occurred are passed to the exception itself. generic exception occurred are passed to the exception itself.
\remarks \remarks
There's a bug in Visual Studio 7.1 (see http://support.microsoft.com/kb There's a bug in Visual Studio 7.1
/199057/en) (see http://support.microsoft.com/kb/199057/en) and lower which leads t
and lower which leads to incorrect __LINE__ macro expansion if used ins o
ide a incorrect __LINE__ macro expansion if used inside a function and compil
function and compiled with "Program Database for Edit & Continue" (/ZI) ed
where with "Program Database for Edit & Continue" (/ZI) where instead of a
instead of a constant expressing line number you'll get the constant expressing line number you'll get the following:
following: (__LINE__Var+constant). The workaround consists in using com (__LINE__Var+constant). The workaround consists in using compiler opti
piler on
option "Program Database" (/Zi) instead "Program Database" (/Zi) instead --> Project Properties\C/C++\General\D
--> Project Properties\C/C++\General\Debug Information Format\Program D ebug
atabase (/Zi). Information Format\Program Database (/Zi). Visual Studio 2005 corrects
Visual Studio 2005 corrects the problem. Premake files were the
modified to contemplate this for VS2002 and VS2003. problem. Premake files were modified to contemplate this for VS2002 and
*/ VS2003.
#define GenericException(message) \ */
GenericException(message, __FILE__, __LINE__) #define GenericException(message) \
GenericException(message, __FILE__, __LINE__)
/////////////////////////////////////////////////////////////////////// //-------------------------------------------------------------------------
/// ---//
// UNKNOWN OBJECT EXCEPTION
///////////////////////////////////////////////////////////////////////
///
//! Exception class used when a request was made for an unknown object
class CEGUIEXPORT UnknownObjectException : public Exception
{
public:
/*! /*!
\brief \brief
Exception class used when a request was made using a name of an unknown Constructor that is responsible for logging the unknown object exce
object ption
*/ by calling the base class.
class CEGUIEXPORT UnknownObjectException : public Exception
{
public:
/******************************************************************
*****
* CONSTRUCTORS/DESTRUCTORS
******************************************************************
****/
/*!
\brief
Constructor that is responsible for logging the unknown object exce
ption by calling
the base class.
\param message
String object describing the reason for the unknown object exceptio
n being thrown.
\param filename
String object containing the name of the file where the unknown obj
ect exception occurred.
\param line \param message
Integer representing the line number where the unknown object excep String object describing the reason for the unknown object exceptio
tion occurred. n
being thrown.
\remarks \param filename
The unknown object exception name is automatically passed to the ba String object containing the name of the file where the unknown obj
se class as ect
"CEGUI::UnknownObjectException". exception occurred.
*/
UnknownObjectException(const String& message, const String& file =
"unknown", int line = 0)
: Exception(message, "CEGUI::UnknownObjectException", file, lin
e) {}
};
/*! \param line
\brief Integer representing the line number where the unknown object excep
This helper macro ensures the correct filename and line number where th tion
e unknown object occurred.
exception occurred are passed to the exception itself.
\remarks \remarks
There's a bug in Visual Studio 7.1 (see http://support.microsoft.com/kb The unknown object exception name is automatically passed to the ba
/199057/en) se
and lower which leads to incorrect __LINE__ macro expansion if used ins class as "CEGUI::UnknownObjectException".
ide a
function and compiled with "Program Database for Edit & Continue" (/ZI)
where
instead of a constant expressing line number you'll get the
following: (__LINE__Var+constant). The workaround consists in using com
piler
option "Program Database" (/Zi) instead
--> Project Properties\C/C++\General\Debug Information Format\Program D
atabase (/Zi).
Visual Studio 2005 corrects the problem. Premake files were
modified to contemplate this for VS2002 and VS2003.
*/
#define UnknownObjectException(message) \
UnknownObjectException(message, __FILE__, __LINE__)
///////////////////////////////////////////////////////////////////////
///
// INVALID REQUEST EXCEPTION
///////////////////////////////////////////////////////////////////////
///
/*!
\brief
Exception class used when some impossible request was made for the curr
ent system state
*/ */
class CEGUIEXPORT InvalidRequestException : public Exception UnknownObjectException(const String& message,
{ const String& file = "unknown", int line = 0) :
public: Exception(message, "CEGUI::UnknownObjectException", file, line)
{}
};
/****************************************************************** /*!
***** \brief
* CONSTRUCTORS/DESTRUCTORS This helper macro ensures the correct filename and line number where th
****************************************************************** e
****/ unknown object exception occurred are passed to the exception itself.
/*! \remarks
\brief There's a bug in Visual Studio 7.1
Constructor that is responsible for logging the invalid request exc (see http://support.microsoft.com/kb/199057/en) and lower which leads t
eption by calling o
the base class. incorrect __LINE__ macro expansion if used inside a function and compil
ed
with "Program Database for Edit & Continue" (/ZI) where instead of a
constant expressing line number you'll get the following:
(__LINE__Var+constant). The workaround consists in using compiler opti
on
"Program Database" (/Zi) instead --> Project Properties\C/C++\General\D
ebug
Information Format\Program Database (/Zi). Visual Studio 2005 corrects
the
problem. Premake files were modified to contemplate this for VS2002 and
VS2003.
*/
#define UnknownObjectException(message) \
UnknownObjectException(message, __FILE__, __LINE__)
\param message //-------------------------------------------------------------------------
String object describing the reason for the invalid request excepti ---//
on being thrown.
\param filename //! Exception class used when some impossible request was made of the syste
String object containing the name of the file where the invalid req m.
uest exception occurred. class CEGUIEXPORT InvalidRequestException : public Exception
{
public:
/*!
\brief
Constructor that is responsible for logging the invalid request
exception by calling the base class.
\param line \param message
Integer representing the line number where the invalid request exce String object describing the reason for the invalid request excepti
ption occurred. on
being thrown.
\remarks \param filename
The invalid request exception name is automatically passed to the b String object containing the name of the file where the invalid req
ase class as uest
"CEGUI::InvalidRequestException". exception occurred.
*/
InvalidRequestException(const String& message, const String& file =
"unknown", int line = 0)
: Exception(message, "CEGUI::InvalidRequestException", file, li
ne) {}
};
/*! \param line
\brief Integer representing the line number where the invalid request exce
This helper macro ensures the correct filename and line number where th ption
e invalid request occurred.
exception occurred are passed to the exception itself.
\remarks \remarks
There's a bug in Visual Studio 7.1 (see http://support.microsoft.com/kb The invalid request exception name is automatically passed to the b
/199057/en) ase
and lower which leads to incorrect __LINE__ macro expansion if used ins class as "CEGUI::InvalidRequestException".
ide a
function and compiled with "Program Database for Edit & Continue" (/ZI)
where
instead of a constant expressing line number you'll get the
following: (__LINE__Var+constant). The workaround consists in using com
piler
option "Program Database" (/Zi) instead
--> Project Properties\C/C++\General\Debug Information Format\Program D
atabase (/Zi).
Visual Studio 2005 corrects the problem. Premake files were
modified to contemplate this for VS2002 and VS2003.
*/ */
#define InvalidRequestException(message) \ InvalidRequestException(const String& message,
InvalidRequestException(message, __FILE__, __LINE__) const String& file = "unknown", int line = 0) :
Exception(message, "CEGUI::InvalidRequestException", file, line)
{}
};
/////////////////////////////////////////////////////////////////////// /*!
/// \brief
// FILE IO EXCEPTION This helper macro ensures the correct filename and line number where th
/////////////////////////////////////////////////////////////////////// e
/// invalid request exception occurred are passed to the exception itself.
/*! \remarks
\brief There's a bug in Visual Studio 7.1
Exception class used when a file handling problem occurs (see http://support.microsoft.com/kb/199057/en) and lower which leads t
*/ o
class CEGUIEXPORT FileIOException : public Exception incorrect __LINE__ macro expansion if used inside a function and compil
{ ed
public: with "Program Database for Edit & Continue" (/ZI) where instead of a
constant expressing line number you'll get the following:
(__LINE__Var+constant). The workaround consists in using compiler opti
on
"Program Database" (/Zi) instead --> Project Properties\C/C++\General\D
ebug
Information Format\Program Database (/Zi). Visual Studio 2005 corrects
the
problem. Premake files were modified to contemplate this for VS2002 and
VS2003.
*/
#define InvalidRequestException(message) \
InvalidRequestException(message, __FILE__, __LINE__)
/****************************************************************** //-------------------------------------------------------------------------
***** ---//
* CONSTRUCTORS/DESTRUCTORS
******************************************************************
****/
/*! //! Exception class used when a file handling problem occurs
\brief class CEGUIEXPORT FileIOException : public Exception
Constructor that is responsible for logging the file IO exception b {
y calling public:
the base class. /*!
\brief
Constructor that is responsible for logging the file IO exception b
y
calling the base class.
\param message \param message
String object describing the reason for the file IO exception being String object describing the reason for the file IO exception being
thrown. thrown.
\param filename \param filename
String object containing the name of the file where the file IO exc String object containing the name of the file where the file IO
eption occurred. exception occurred.
\param line \param line
Integer representing the line number where the file IO exception oc Integer representing the line number where the file IO exception
curred. occurred.
\remarks \remarks
The file IO exception name is automatically passed to the base clas s as The file IO exception name is automatically passed to the base clas s as
"CEGUI::FileIOException". "CEGUI::FileIOException".
*/ */
FileIOException(const String& message, const String& file = "unknow FileIOException(const String& message,
n", int line = 0) const String& file = "unknown", int line = 0) :
: Exception(message, "CEGUI::FileIOException", file, line) {} Exception(message, "CEGUI::FileIOException", file, line)
}; {}
};
/*! /*!
\brief \brief
This helper macro ensures the correct filename and line number where th This helper macro ensures the correct filename and line number where th
e file IO e
exception occurred are passed to the exception itself. file IO exception occurred are passed to the exception itself.
\remarks \remarks
There's a bug in Visual Studio 7.1 (see http://support.microsoft.com/kb There's a bug in Visual Studio 7.1
/199057/en) (see http://support.microsoft.com/kb/199057/en) and lower which leads t
and lower which leads to incorrect __LINE__ macro expansion if used ins o
ide a incorrect __LINE__ macro expansion if used inside a function and compil
function and compiled with "Program Database for Edit & Continue" (/ZI) ed
where with "Program Database for Edit & Continue" (/ZI) where instead of a
instead of a constant expressing line number you'll get the constant expressing line number you'll get the following:
following: (__LINE__Var+constant). The workaround consists in using com (__LINE__Var+constant). The workaround consists in using compiler opti
piler on
option "Program Database" (/Zi) instead "Program Database" (/Zi) instead --> Project Properties\C/C++\General\D
--> Project Properties\C/C++\General\Debug Information Format\Program D ebug
atabase (/Zi). Information Format\Program Database (/Zi). Visual Studio 2005 corrects
Visual Studio 2005 corrects the problem. Premake files were the
modified to contemplate this for VS2002 and VS2003. problem. Premake files were modified to contemplate this for VS2002 and
*/ VS2003.
#define FileIOException(message) \ */
FileIOException(message, __FILE__, __LINE__) #define FileIOException(message) \
FileIOException(message, __FILE__, __LINE__)
/////////////////////////////////////////////////////////////////////// //-------------------------------------------------------------------------
/// ---//
// RENDERER EXCEPTION
///////////////////////////////////////////////////////////////////////
///
//! Exception class used for problems in the rendering subsystem classes.
class CEGUIEXPORT RendererException : public Exception
{
public:
/*! /*!
\brief \brief
Exception class used when an problem is detected within the Renderer or Constructor that is responsible for logging the renderer exception
related objects by
*/ calling the base class.
class CEGUIEXPORT RendererException : public Exception
{
public:
/******************************************************************
*****
* CONSTRUCTORS/DESTRUCTORS
******************************************************************
****/
/*!
\brief
Constructor that is responsible for logging the renderer exception
by calling
the base class.
\param message \param message
String object describing the reason for the renderer exception bein String object describing the reason for the renderer exception bein
g thrown. g
thrown.
\param filename \param filename
String object containing the name of the file where the renderer ex String object containing the name of the file where the renderer
ception occurred. exception occurred.
\param line \param line
Integer representing the line number where the renderer exception o Integer representing the line number where the renderer exception
ccurred. occurred.
\remarks \remarks
The renderer exception name is automatically passed to the base cla ss as The renderer exception name is automatically passed to the base cla ss as
"CEGUI::RendererException". "CEGUI::RendererException".
*/ */
RendererException(const String& message, const String& file = "unkn RendererException(const String& message,
own", int line = 0) const String& file = "unknown", int line = 0) :
: Exception(message, "CEGUI::RendererException", file, line) {} Exception(message, "CEGUI::RendererException", file, line)
}; {}
};
/*! /*!
\brief \brief
This helper macro ensures the correct filename and line number where th This helper macro ensures the correct filename and line number where th
e renderer e
exception occurred are passed to the exception itself. renderer exception occurred are passed to the exception itself.
\remarks \remarks
There's a bug in Visual Studio 7.1 (see http://support.microsoft.com/kb There's a bug in Visual Studio 7.1
/199057/en) (see http://support.microsoft.com/kb/199057/en) and lower which leads t
and lower which leads to incorrect __LINE__ macro expansion if used ins o
ide a incorrect __LINE__ macro expansion if used inside a function and compil
function and compiled with "Program Database for Edit & Continue" (/ZI) ed
where with "Program Database for Edit & Continue" (/ZI) where instead of a
instead of a constant expressing line number you'll get the constant expressing line number you'll get the following:
following: (__LINE__Var+constant). The workaround consists in using com (__LINE__Var+constant). The workaround consists in using compiler opti
piler on
option "Program Database" (/Zi) instead "Program Database" (/Zi) instead --> Project Properties\C/C++\General\D
--> Project Properties\C/C++\General\Debug Information Format\Program D ebug
atabase (/Zi). Information Format\Program Database (/Zi). Visual Studio 2005 corrects
Visual Studio 2005 corrects the problem. Premake files were the
modified to contemplate this for VS2002 and VS2003. problem. Premake files were modified to contemplate this for VS2002 and
*/ VS2003.
#define RendererException(message) \ */
RendererException(message, __FILE__, __LINE__) #define RendererException(message) \
RendererException(message, __FILE__, __LINE__)
/////////////////////////////////////////////////////////////////////// //-------------------------------------------------------------------------
/// ---//
// ALREADY EXISTS EXCEPTION
///////////////////////////////////////////////////////////////////////
///
/*!
\brief
Exception class used when an attempt is made create a named object of a
particular type when an object of the same type already exists with the
same
name.
*/
class CEGUIEXPORT AlreadyExistsException : public Exception
{
public:
/*! /*!
\brief \brief
Exception class used when an attempt is made to use an object name that Constructor that is responsible for logging the already exists exce
is already in use within the system ption
*/ by calling the base class.
class CEGUIEXPORT AlreadyExistsException : public Exception
{
public:
/******************************************************************
*****
* CONSTRUCTORS/DESTRUCTORS
******************************************************************
****/
/*!
\brief
Constructor that is responsible for logging the already exists exce
ption by calling
the base class.
\param message
String object describing the reason for the already exists exceptio
n being thrown.
\param filename
String object containing the name of the file where the already exi
sts exception occurred.
\param line \param message
Integer representing the line number where the already exists excep String object describing the reason for the already exists exceptio
tion occurred. n
being thrown.
\remarks \param filename
The already exists exception name is automatically passed to the ba String object containing the name of the file where the already exi
se class as sts
"CEGUI::AlreadyExistsException". exception occurred.
*/
AlreadyExistsException(const String& message, const String& file =
"unknown", int line = 0)
: Exception(message, "CEGUI::AlreadyExistsException", file, lin
e) {}
};
/*! \param line
\brief Integer representing the line number where the already exists excep
This helper macro ensures the correct filename and line number where th tion
e already exists occurred.
exception occurred are passed to the exception itself.
\remarks \remarks
There's a bug in Visual Studio 7.1 (see http://support.microsoft.com/kb The already exists exception name is automatically passed to the ba
/199057/en) se
and lower which leads to incorrect __LINE__ macro expansion if used ins class as "CEGUI::AlreadyExistsException".
ide a
function and compiled with "Program Database for Edit & Continue" (/ZI)
where
instead of a constant expressing line number you'll get the
following: (__LINE__Var+constant). The workaround consists in using com
piler
option "Program Database" (/Zi) instead
--> Project Properties\C/C++\General\Debug Information Format\Program D
atabase (/Zi).
Visual Studio 2005 corrects the problem. Premake files were
modified to contemplate this for VS2002 and VS2003.
*/ */
#define AlreadyExistsException(message) \ AlreadyExistsException(const String& message,
AlreadyExistsException(message, __FILE__, __LINE__) const String& file = "unknown", int line = 0) :
Exception(message, "CEGUI::AlreadyExistsException", file, line)
{}
};
/////////////////////////////////////////////////////////////////////// /*!
/// \brief
// MEMORY EXCEPTION This helper macro ensures the correct filename and line number where th
/////////////////////////////////////////////////////////////////////// e
/// already exists exception occurred are passed to the exception itself.
/*! \remarks
\brief There's a bug in Visual Studio 7.1
Exception class used when a memory handling error is detected (see http://support.microsoft.com/kb/199057/en) and lower which leads t
*/ o
class CEGUIEXPORT MemoryException : public Exception incorrect __LINE__ macro expansion if used inside a function and compil
{ ed
public: with "Program Database for Edit & Continue" (/ZI) where instead of a
constant expressing line number you'll get the following:
(__LINE__Var+constant). The workaround consists in using compiler opti
on
"Program Database" (/Zi) instead --> Project Properties\C/C++\General\D
ebug
Information Format\Program Database (/Zi). Visual Studio 2005 corrects
the
problem. Premake files were modified to contemplate this for VS2002 and
VS2003.
*/
#define AlreadyExistsException(message) \
AlreadyExistsException(message, __FILE__, __LINE__)
/****************************************************************** //-------------------------------------------------------------------------
***** ---//
* CONSTRUCTORS/DESTRUCTORS
******************************************************************
****/
/*! //! Exception class used when a memory handling error is detected
\brief class CEGUIEXPORT MemoryException : public Exception
Constructor that is responsible for logging the memory exception by {
calling public:
the base class. /*!
\brief
Constructor that is responsible for logging the memory exception by
calling the base class.
\param message \param message
String object describing the reason for the memory exception being String object describing the reason for the memory exception being
thrown. thrown.
\param filename \param filename
String object containing the name of the file where the memory exce String object containing the name of the file where the memory exce
ption occurred. ption
occurred.
\param line \param line
Integer representing the line number where the memory exception occ Integer representing the line number where the memory exception
urred. occurred.
\remarks \remarks
The memory exception name is automatically passed to the base class as The memory exception name is automatically passed to the base class as
"CEGUI::MemoryException". "CEGUI::MemoryException".
*/ */
MemoryException(const String& message, const String& file = "unknow MemoryException(const String& message,
n", int line = 0) const String& file = "unknown", int line = 0) :
: Exception(message, "CEGUI::MemoryException", file, line) {} Exception(message, "CEGUI::MemoryException", file, line)
}; {}
};
/*! /*!
\brief \brief
This helper macro ensures the correct filename and line number where th This helper macro ensures the correct filename and line number where th
e memory e
exception occurred are passed to the exception itself. memory exception occurred are passed to the exception itself.
\remarks \remarks
There's a bug in Visual Studio 7.1 (see http://support.microsoft.com/kb There's a bug in Visual Studio 7.1
/199057/en) (see http://support.microsoft.com/kb/199057/en) and lower which leads t
and lower which leads to incorrect __LINE__ macro expansion if used ins o
ide a incorrect __LINE__ macro expansion if used inside a function and compil
function and compiled with "Program Database for Edit & Continue" (/ZI) ed
where with "Program Database for Edit & Continue" (/ZI) where instead of a
instead of a constant expressing line number you'll get the constant expressing line number you'll get the following:
following: (__LINE__Var+constant). The workaround consists in using com (__LINE__Var+constant). The workaround consists in using compiler opti
piler on
option "Program Database" (/Zi) instead "Program Database" (/Zi) instead --> Project Properties\C/C++\General\D
--> Project Properties\C/C++\General\Debug Information Format\Program D ebug
atabase (/Zi). Information Format\Program Database (/Zi). Visual Studio 2005 corrects
Visual Studio 2005 corrects the problem. Premake files were the
modified to contemplate this for VS2002 and VS2003. problem. Premake files were modified to contemplate this for VS2002 and
*/ VS2003.
#define MemoryException(message) \ */
MemoryException(message, __FILE__, __LINE__) #define MemoryException(message) \
MemoryException(message, __FILE__, __LINE__)
/////////////////////////////////////////////////////////////////////// //-------------------------------------------------------------------------
/// ---//
// NULL OBJECT EXCEPTION
///////////////////////////////////////////////////////////////////////
///
//! Exception class used when some required object or parameter is null
class CEGUIEXPORT NullObjectException : public Exception
{
public:
/*! /*!
\brief \brief
Exception class used when some required object or parameter is null Constructor that is responsible for logging the null object excepti
*/ on by
class CEGUIEXPORT NullObjectException : public Exception calling the base class.
{
public:
/******************************************************************
*****
* CONSTRUCTORS/DESTRUCTORS
******************************************************************
****/
/*!
\brief
Constructor that is responsible for logging the null object excepti
on by calling
the base class.
\param message
String object describing the reason for the null object exception b
eing thrown.
\param filename
String object containing the name of the file where the null object
exception occurred.
\param line \param message
Integer representing the line number where the null object exceptio String object describing the reason for the null object exception b
n occurred. eing
thrown.
\remarks \param filename
The null object exception name is automatically passed to the base String object containing the name of the file where the null object
class as exception occurred.
"CEGUI::NullObjectException".
*/
NullObjectException(const String& message, const String& file = "un
known", int line = 0)
: Exception(message, "CEGUI::NullObjectException", file, line)
{}
};
/*! \param line
\brief Integer representing the line number where the null object exceptio
This helper macro ensures the correct filename and line number where th n
e null object occurred.
exception occurred are passed to the exception itself.
\remarks \remarks
There's a bug in Visual Studio 7.1 (see http://support.microsoft.com/kb The null object exception name is automatically passed to the base
/199057/en) class
and lower which leads to incorrect __LINE__ macro expansion if used ins as "CEGUI::NullObjectException".
ide a
function and compiled with "Program Database for Edit & Continue" (/ZI)
where
instead of a constant expressing line number you'll get the
following: (__LINE__Var+constant). The workaround consists in using com
piler
option "Program Database" (/Zi) instead
--> Project Properties\C/C++\General\Debug Information Format\Program D
atabase (/Zi).
Visual Studio 2005 corrects the problem. Premake files were
modified to contemplate this for VS2002 and VS2003.
*/
#define NullObjectException(message) \
NullObjectException(message, __FILE__, __LINE__)
///////////////////////////////////////////////////////////////////////
///
// OBJECT IN USE EXCEPTION
///////////////////////////////////////////////////////////////////////
///
/*!
\brief
Exception class used when some attempt to delete, remove, or otherwise
invalidate some object that is still in use occurs.
*/ */
class CEGUIEXPORT ObjectInUseException : public Exception NullObjectException(const String& message,
{ const String& file = "unknown", int line = 0) :
public: Exception(message, "CEGUI::NullObjectException", file, line)
{}
};
/****************************************************************** /*!
***** \brief
* CONSTRUCTORS/DESTRUCTORS This helper macro ensures the correct filename and line number where th
****************************************************************** e
****/ null object exception occurred are passed to the exception itself.
/*! \remarks
\brief There's a bug in Visual Studio 7.1
Constructor that is responsible for logging the object in use excep (see http://support.microsoft.com/kb/199057/en) and lower which leads t
tion by calling o
the base class. incorrect __LINE__ macro expansion if used inside a function and compil
ed
with "Program Database for Edit & Continue" (/ZI) where instead of a
constant expressing line number you'll get the following:
(__LINE__Var+constant). The workaround consists in using compiler opti
on
"Program Database" (/Zi) instead --> Project Properties\C/C++\General\D
ebug
Information Format\Program Database (/Zi). Visual Studio 2005 corrects
the
problem. Premake files were modified to contemplate this for VS2002 and
VS2003.
*/
#define NullObjectException(message) \
NullObjectException(message, __FILE__, __LINE__)
\param message //-------------------------------------------------------------------------
String object describing the reason for the object in use exception ---//
being thrown.
\param filename /*!
String object containing the name of the file where the object in u \brief
se exception occurred. Exception class used when some attempt to delete, remove, or otherwise
invalidate some object that is still in use occurs.
*/
class CEGUIEXPORT ObjectInUseException : public Exception
{
public:
/*!
\brief
Constructor that is responsible for logging the object in use excep
tion
by calling the base class.
\param line \param message
Integer representing the line number where the object in use except String object describing the reason for the object in use exception
ion occurred. being thrown.
\remarks \param filename
The object in use exception name is automatically passed to the bas String object containing the name of the file where the object in u
e class as se
"CEGUI::ObjectInUseException". exception occurred.
*/
ObjectInUseException(const String& message, const String& file = "u
nknown", int line = 0)
: Exception(message, "CEGUI::ObjectInUseException", file, line)
{}
};
/*! \param line
\brief Integer representing the line number where the object in use except
This helper macro ensures the correct filename and line number where th ion
e object in use occurred.
exception occurred are passed to the exception itself.
\remarks \remarks
There's a bug in Visual Studio 7.1 (see http://support.microsoft.com/kb The object in use exception name is automatically passed to the bas
/199057/en) e
and lower which leads to incorrect __LINE__ macro expansion if used ins class as "CEGUI::ObjectInUseException".
ide a
function and compiled with "Program Database for Edit & Continue" (/ZI)
where
instead of a constant expressing line number you'll get the
following: (__LINE__Var+constant). The workaround consists in using com
piler
option "Program Database" (/Zi) instead
--> Project Properties\C/C++\General\Debug Information Format\Program D
atabase (/Zi).
Visual Studio 2005 corrects the problem. Premake files were
modified to contemplate this for VS2002 and VS2003.
*/ */
#define ObjectInUseException(message) \ ObjectInUseException(const String& message,
ObjectInUseException(message, __FILE__, __LINE__) const String& file = "unknown", int line = 0) :
Exception(message, "CEGUI::ObjectInUseException", file, line)
{}
};
/////////////////////////////////////////////////////////////////////// /*!
/// \brief
// SCRIPT EXCEPTION This helper macro ensures the correct filename and line number where th
/////////////////////////////////////////////////////////////////////// e
/// object in use exception occurred are passed to the exception itself.
/*! \remarks
\brief There's a bug in Visual Studio 7.1
Exception class used when a scripting error occurs (see http://support.microsoft.com/kb/199057/en) and lower which leads t
*/ o
class CEGUIEXPORT ScriptException : public Exception incorrect __LINE__ macro expansion if used inside a function and compil
{ ed
public: with "Program Database for Edit & Continue" (/ZI) where instead of a
constant expressing line number you'll get the following:
(__LINE__Var+constant). The workaround consists in using compiler opti
on
"Program Database" (/Zi) instead --> Project Properties\C/C++\General\D
ebug
Information Format\Program Database (/Zi). Visual Studio 2005 corrects
the
problem. Premake files were modified to contemplate this for VS2002 and
VS2003.
*/
#define ObjectInUseException(message) \
ObjectInUseException(message, __FILE__, __LINE__)
/****************************************************************** //-------------------------------------------------------------------------
***** ---//
* CONSTRUCTORS/DESTRUCTORS
******************************************************************
****/
/*! //! Exception class used for issues in scripting subsystem.
\brief class CEGUIEXPORT ScriptException : public Exception
Constructor that is responsible for logging the script exception by {
calling public:
the base class. /*!
\brief
Constructor that is responsible for logging the script exception by
calling the base class.
\param message \param message
String object describing the reason for the script exception being String object describing the reason for the script exception being
thrown. thrown.
\param filename \param filename
String object containing the name of the file where the script exce String object containing the name of the file where the script exce
ption occurred. ption
occurred.
\param line \param line
Integer representing the line number where the script exception occ Integer representing the line number where the script exception
urred. occurred.
\remarks \remarks
The script exception name is automatically passed to the base class as The script exception name is automatically passed to the base class as
"CEGUI::ScriptException". "CEGUI::ScriptException".
*/ */
ScriptException(const String& message, const String& file = "unknow ScriptException(const String& message,
n", int line = 0) const String& file = "unknown", int line = 0) :
: Exception(message, "CEGUI::ScriptException", file, line) {} Exception(message, "CEGUI::ScriptException", file, line)
}; {}
};
/*! /*!
\brief \brief
This helper macro ensures the correct filename and line number where th This helper macro ensures the correct filename and line number where th
e script e
exception occurred are passed to the exception itself. script exception occurred are passed to the exception itself.
\remarks \remarks
There's a bug in Visual Studio 7.1 (see http://support.microsoft.com/kb There's a bug in Visual Studio 7.1
/199057/en) (see http://support.microsoft.com/kb/199057/en) and lower which leads t
and lower which leads to incorrect __LINE__ macro expansion if used ins o
ide a incorrect __LINE__ macro expansion if used inside a function and compil
function and compiled with "Program Database for Edit & Continue" (/ZI) ed
where with "Program Database for Edit & Continue" (/ZI) where instead of a
instead of a constant expressing line number you'll get the constant expressing line number you'll get the following:
following: (__LINE__Var+constant). The workaround consists in using com (__LINE__Var+constant). The workaround consists in using compiler opti
piler on
option "Program Database" (/Zi) instead "Program Database" (/Zi) instead --> Project Properties\C/C++\General\D
--> Project Properties\C/C++\General\Debug Information Format\Program D ebug
atabase (/Zi). Information Format\Program Database (/Zi). Visual Studio 2005 corrects
Visual Studio 2005 corrects the problem. Premake files were the
modified to contemplate this for VS2002 and VS2003. problem. Premake files were modified to contemplate this for VS2002 and
*/ VS2003.
#define ScriptException(message) \ */
ScriptException(message, __FILE__, __LINE__) #define ScriptException(message) \
ScriptException(message, __FILE__, __LINE__)
//-------------------------------------------------------------------------
---//
} // End of CEGUI namespace section } // End of CEGUI namespace section
#endif // end of guard _CEGUIExceptions_h_ #endif // end of guard _CEGUIExceptions_h_
 End of changes. 120 change blocks. 
751 lines changed or deleted 614 lines changed or added


 CEGUIExpatParser.h   CEGUIExpatParser.h 
skipping to change at line 31 skipping to change at line 31
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* 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 _CEGUIExpatParser_h_ #ifndef _CEGUIExpatParser_h_
#define _CEGUIExpatParser_h_ #define _CEGUIExpatParser_h_
#include "CEGUIXMLParser.h" #include "../../CEGUIXMLParser.h"
#if (defined( __WIN32__ ) || defined( _WIN32 )) && !defined(CEGUI_STATIC) #if (defined( __WIN32__ ) || defined( _WIN32 )) && !defined(CEGUI_STATIC)
# ifdef CEGUIEXPATPARSER_EXPORTS # ifdef CEGUIEXPATPARSER_EXPORTS
# define CEGUIEXPATPARSER_API __declspec(dllexport) # define CEGUIEXPATPARSER_API __declspec(dllexport)
# else # else
# define CEGUIEXPATPARSER_API __declspec(dllimport) # define CEGUIEXPATPARSER_API __declspec(dllimport)
# endif # endif
#else #else
# define CEGUIEXPATPARSER_API # define CEGUIEXPATPARSER_API
#endif #endif
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 CEGUIFalComponentBase.h   CEGUIFalComponentBase.h 
skipping to change at line 31 skipping to change at line 31
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* 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 _CEGUIFalComponentBase_h_ #ifndef _CEGUIFalComponentBase_h_
#define _CEGUIFalComponentBase_h_ #define _CEGUIFalComponentBase_h_
#include "falagard/CEGUIFalDimensions.h" #include "CEGUIFalDimensions.h"
#include "CEGUIWindow.h" #include "../CEGUIWindow.h"
#include "../CEGUIColourRect.h"
// Start of CEGUI namespace section // Start of CEGUI namespace section
namespace CEGUI namespace CEGUI
{ {
/*! /*!
\brief \brief
Common base class used for renderable components within an ImageryS ection. Common base class used for renderable components within an ImageryS ection.
*/ */
class CEGUIEXPORT FalagardComponentBase class CEGUIEXPORT FalagardComponentBase
{ {
skipping to change at line 63 skipping to change at line 64
*/ */
virtual ~FalagardComponentBase(); virtual ~FalagardComponentBase();
/*! /*!
\brief \brief
Render this component. More correctly, the component is cached for rendering. Render this component. More correctly, the component is cached for rendering.
\param srcWindow \param srcWindow
Window to use as the base for translating the component's Compo nentArea into pixel values. Window to use as the base for translating the component's Compo nentArea into pixel values.
\param base_z
The z value to use for rendering the component. Note that this
is not the final z value to use, but
some z offset from a currently unknown starting value.
\param modColours \param modColours
ColourRect describing colours that are to be modulated with the component's stored colour values ColourRect describing colours that are to be modulated with the component's stored colour values
to calculate a set of 'final' colour values to be used. May be 0. to calculate a set of 'final' colour values to be used. May be 0.
\return \return
Nothing. Nothing.
*/ */
void render(Window& srcWindow, float base_z, const CEGUI::ColourRec t* modColours = 0, const Rect* clipper = 0, bool clipToDisplay = false) con st; void render(Window& srcWindow, const CEGUI::ColourRect* modColours = 0, const Rect* clipper = 0, bool clipToDisplay = false) const;
/*! /*!
\brief \brief
Render this component. More correctly, the component is cached for rendering. Render this component. More correctly, the component is cached for rendering.
\param srcWindow \param srcWindow
Window to use as the base for translating the component's Compo nentArea into pixel values. Window to use as the base for translating the component's Compo nentArea into pixel values.
\param baseRect \param baseRect
Rect to use as the base for translating the component's Compone ntArea into pixel values. Rect to use as the base for translating the component's Compone ntArea into pixel values.
\param base_z
The z value to use for rendering the component. Note that this
is not the final z value to use, but
some z offset from a currently unknown starting value.
\param modColours \param modColours
ColourRect describing colours that are to be modulated with the component's stored colour values ColourRect describing colours that are to be modulated with the component's stored colour values
to calculate a set of 'final' colour values to be used. May be 0. to calculate a set of 'final' colour values to be used. May be 0.
\return \return
Nothing. Nothing.
*/ */
void render(Window& srcWindow, const Rect& baseRect, float base_z, const CEGUI::ColourRect* modColours = 0, const Rect* clipper = 0, bool clip ToDisplay = false) const; void render(Window& srcWindow, const Rect& baseRect, const CEGUI::C olourRect* modColours = 0, const Rect* clipper = 0, bool clipToDisplay = fa lse) const;
/*! /*!
\brief \brief
Return the ComponentArea of this ImageryComponent. Return the ComponentArea of this ImageryComponent.
\return \return
ComponentArea object describing the ImageryComponent's current target area. ComponentArea object describing the ImageryComponent's current target area.
*/ */
const ComponentArea& getComponentArea() const; const ComponentArea& getComponentArea() const;
skipping to change at line 203 skipping to change at line 196
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
- or the integral d_colours value. - or the integral d_colours value.
*/ */
void initColoursRect(const Window& wnd, const ColourRect* modCols, ColourRect& cr) const; void initColoursRect(const Window& wnd, const ColourRect* modCols, ColourRect& cr) const;
/*! /*!
\brief \brief
Method to do main render caching work. Method to do main render caching work.
*/ */
virtual void render_impl(Window& srcWindow, Rect& destRect, float b ase_z, const CEGUI::ColourRect* modColours, const Rect* clipper, bool clipT oDisplay) const = 0; virtual void render_impl(Window& srcWindow, Rect& destRect, const C EGUI::ColourRect* modColours, const Rect* clipper, bool clipToDisplay) cons t = 0;
/*! /*!
\brief \brief
Writes xml for the colours to a OutStream. Will prefer propert y colours before explicit. Writes xml for the colours to a OutStream. Will prefer propert y colours before explicit.
\note \note
This is intended as a helper method for sub-classes when output ting xml to a stream. This is intended as a helper method for sub-classes when output ting xml to a stream.
\return \return
- true if xml element was written. - true if xml element was written.
 End of changes. 6 change blocks. 
15 lines changed or deleted 6 lines changed or added


 CEGUIFalDimensions.h   CEGUIFalDimensions.h 
skipping to change at line 31 skipping to change at line 31
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* 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 _CEGUIFalDimensions_h_ #ifndef _CEGUIFalDimensions_h_
#define _CEGUIFalDimensions_h_ #define _CEGUIFalDimensions_h_
#include "falagard/CEGUIFalEnums.h" #include "CEGUIFalEnums.h"
#include "CEGUIString.h" #include "../CEGUIString.h"
#include "CEGUIUDim.h" #include "../CEGUIUDim.h"
#include "CEGUIXMLSerializer.h" #include "../CEGUIXMLSerializer.h"
// Start of CEGUI namespace section // Start of CEGUI namespace section
namespace CEGUI namespace CEGUI
{ {
/*! /*!
\brief \brief
Abstract interface for a generic 'dimension' class. Abstract interface for a generic 'dimension' class.
*/ */
class CEGUIEXPORT BaseDim class CEGUIEXPORT BaseDim
{ {
skipping to change at line 439 skipping to change at line 439
private: private:
String d_font; //!< Name of Font. If empty font will be taken from Window. String d_font; //!< Name of Font. If empty font will be taken from Window.
String d_text; //!< String to measure for extents, if emp ty will use window text. String d_text; //!< String to measure for extents, if emp ty will use window text.
String d_childSuffix; //!< String to hold the name suffix of the window to use for fetching missing font and/or text. String d_childSuffix; //!< String to hold the name suffix of the window to use for fetching missing font and/or text.
FontMetricType d_metric; //!< what metric we represent. FontMetricType d_metric; //!< what metric we represent.
float d_padding; //!< padding value to be added. float d_padding; //!< padding value to be added.
}; };
/*! /*!
\brief \brief
Dimension type that represents the value of a Window property. Imp Dimension type that represents the value of a Window property.
lements BaseDim interface. Implements BaseDim interface.
*/ */
class CEGUIEXPORT PropertyDim : public BaseDim class CEGUIEXPORT PropertyDim : public BaseDim
{ {
public: public:
/*! /*!
\brief \brief
Constructor. Constructor.
\param name \param name
String holding the name suffix of the window on which the prope String holding the name suffix of the window on which the prope
rty is to be accessed. rty
is to be accessed.
\param property \param property
String object holding the name of the property this PropertyDim String object holding the name of the property this PropertyDim
represents the value of. represents the value of. The property named should represent e
The property named should represent a simple float value. ither
a UDim value or a simple float value - dependning upon what \a
type
is specified as.
\param type \param type
DimensionType value indicating what dimension named property re DimensionType value indicating what dimension named property
presents. represents. The possible DimensionType values are as follows:
- DT_INVALID the property should represent a simple float value
.
- DT_WIDTH the property should represent a UDim value where the
scale is relative to the targetted Window's width.
- DT_HEIGHT the property should represent a UDim value where th
e
scale is relative to the targetted Window's height.
- All other values will cause an InvalidRequestException except
ion
to be thrown.
*/ */
PropertyDim(const String& name, const String& property, DimensionTy pe type); PropertyDim(const String& name, const String& property, DimensionTy pe type);
protected: protected:
// Implementation of the base class interface // Implementation of the base class interface
float getValue_impl(const Window& wnd) const; float getValue_impl(const Window& wnd) const;
float getValue_impl(const Window& wnd, const Rect& container) const ; float getValue_impl(const Window& wnd, const Rect& container) const ;
void writeXMLElementName_impl(XMLSerializer& xml_stream) const; void writeXMLElementName_impl(XMLSerializer& xml_stream) const;
void writeXMLElementAttributes_impl(XMLSerializer& xml_stream) cons t; void writeXMLElementAttributes_impl(XMLSerializer& xml_stream) cons t;
BaseDim* clone_impl() const; BaseDim* clone_impl() const;
 End of changes. 5 change blocks. 
13 lines changed or deleted 27 lines changed or added


 CEGUIFalFrameComponent.h   CEGUIFalFrameComponent.h 
skipping to change at line 31 skipping to change at line 31
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* 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 _CEGUIFalFrameComponent_h_ #ifndef _CEGUIFalFrameComponent_h_
#define _CEGUIFalFrameComponent_h_ #define _CEGUIFalFrameComponent_h_
#include "falagard/CEGUIFalComponentBase.h" #include "CEGUIFalComponentBase.h"
#include "CEGUIXMLSerializer.h" #include "../CEGUIXMLSerializer.h"
// Start of CEGUI namespace section // Start of CEGUI namespace section
namespace CEGUI namespace CEGUI
{ {
/*! /*!
\brief \brief
Class that encapsulates information for a frame with background (9 images in total) Class that encapsulates information for a frame with background (9 images in total)
Corner images are always drawn at their natural size, edges are str etched between the corner Corner images are always drawn at their natural size, edges are str etched between the corner
pieces for a particular edge, the background image will cover the i nner rectangle formed by pieces for a particular edge, the background image will cover the i nner rectangle formed by
skipping to change at line 155 skipping to change at line 155
\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;
protected: protected:
// implemets abstract from base // implemets abstract from base
void render_impl(Window& srcWindow, Rect& destRect, float base_z, c onst CEGUI::ColourRect* modColours, const Rect* clipper, bool clipToDisplay ) const; void render_impl(Window& srcWindow, Rect& destRect, const CEGUI::Co lourRect* modColours, const Rect* clipper, bool clipToDisplay) const;
// renders the background image (basically a clone of render_impl f rom ImageryComponent - maybe we need a helper class?) // renders the background image (basically a clone of render_impl f rom ImageryComponent - maybe we need a helper class?)
void doBackgroundRender(Window& srcWindow, Rect& destRect, float ba se_z, const ColourRect& colours, const Rect* clipper, bool clipToDisplay) c onst; void doBackgroundRender(Window& srcWindow, Rect& destRect, const Co lourRect& colours, const Rect* clipper, bool clipToDisplay) const;
// formatting options for background // formatting options for background
VerticalFormatting d_vertFormatting; //!< Vertical formatting to be applied when rendering the background for the component. VerticalFormatting d_vertFormatting; //!< Vertical formatting to be applied when rendering the background for the component.
HorizontalFormatting d_horzFormatting; //!< Horizontal formatting to be applied when rendering the background for the component. HorizontalFormatting d_horzFormatting; //!< Horizontal formatting to be applied when rendering the background for the component.
// images for the frame // images for the frame
const Image* d_frameImages[FIC_FRAME_IMAGE_COUNT]; //!< Array that holds the assigned images. const Image* d_frameImages[FIC_FRAME_IMAGE_COUNT]; //!< Array that holds the assigned images.
}; };
} // End of CEGUI namespace section } // End of CEGUI namespace section
 End of changes. 3 change blocks. 
4 lines changed or deleted 4 lines changed or added


 CEGUIFalImageryComponent.h   CEGUIFalImageryComponent.h 
skipping to change at line 31 skipping to change at line 31
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* 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 _CEGUIFalImageryComponent_h_ #ifndef _CEGUIFalImageryComponent_h_
#define _CEGUIFalImageryComponent_h_ #define _CEGUIFalImageryComponent_h_
#include "falagard/CEGUIFalComponentBase.h" #include "CEGUIFalComponentBase.h"
#include "CEGUIXMLSerializer.h" #include "../CEGUIXMLSerializer.h"
// Start of CEGUI namespace section // Start of CEGUI namespace section
namespace CEGUI namespace CEGUI
{ {
/*! /*!
\brief \brief
Class that encapsulates information for a single image component. Class that encapsulates information for a single image component.
*/ */
class CEGUIEXPORT ImageryComponent : public FalagardComponentBase class CEGUIEXPORT ImageryComponent : public FalagardComponentBase
{ {
skipping to change at line 173 skipping to change at line 173
\param property \param property
String object holding the name of a Propery. The property shou ld access a imageset & image specification. String object holding the name of a Propery. The property shou ld access a imageset & image specification.
\return \return
Nothing. Nothing.
*/ */
void setImagePropertySource(const String& property); void setImagePropertySource(const String& property);
protected: protected:
// implemets abstract from base // implemets abstract from base
void render_impl(Window& srcWindow, Rect& destRect, float base_z, c onst CEGUI::ColourRect* modColours, const Rect* clipper, bool clipToDisplay ) const; void render_impl(Window& srcWindow, Rect& destRect, const CEGUI::Co lourRect* modColours, const Rect* clipper, bool clipToDisplay) const;
const Image* d_image; //!< CEGUI::Image to be dra wn by this image component. const Image* d_image; //!< CEGUI::Image to be dra wn by this image component.
VerticalFormatting d_vertFormatting; //!< Vertical formatting to be applied when rendering the image component. VerticalFormatting d_vertFormatting; //!< Vertical formatting to be applied when rendering the image component.
HorizontalFormatting d_horzFormatting; //!< Horizontal formatting to be applied when rendering the image component. HorizontalFormatting d_horzFormatting; //!< Horizontal formatting to be applied when rendering the image component.
String d_imagePropertyName; //!< Name of the property t o access to obtain the image to be used. String d_imagePropertyName; //!< Name of the property t o access to obtain the image to be used.
}; };
} // End of CEGUI namespace section } // End of CEGUI namespace section
#endif // end of guard _CEGUIFalImageryComponent_h_ #endif // end of guard _CEGUIFalImageryComponent_h_
 End of changes. 2 change blocks. 
3 lines changed or deleted 3 lines changed or added


 CEGUIFalImagerySection.h   CEGUIFalImagerySection.h 
skipping to change at line 31 skipping to change at line 31
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* 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 _CEGUIFalImagerySection_h_ #ifndef _CEGUIFalImagerySection_h_
#define _CEGUIFalImagerySection_h_ #define _CEGUIFalImagerySection_h_
#include "falagard/CEGUIFalImageryComponent.h" #include "CEGUIFalImageryComponent.h"
#include "falagard/CEGUIFalTextComponent.h" #include "CEGUIFalTextComponent.h"
#include "falagard/CEGUIFalFrameComponent.h" #include "CEGUIFalFrameComponent.h"
#include "CEGUIXMLSerializer.h" #include "../CEGUIXMLSerializer.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
{ {
/*! /*!
skipping to change at line 73 skipping to change at line 73
*/ */
ImagerySection(const String& name); ImagerySection(const String& name);
/*! /*!
\brief \brief
Render the ImagerySection. Render the ImagerySection.
\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.
\param base_z
base z value to be used for all imagery in the section.
\param modColours \param modColours
ColourRect specifying colours to be modulated with the ImageryS ection's master colours. May be 0. ColourRect specifying colours to be modulated with the ImageryS ection's master colours. May be 0.
\return \return
Nothing. Nothing.
*/ */
void render(Window& srcWindow, float base_z, const CEGUI::ColourRec t* modColours = 0, const Rect* clipper = 0, bool clipToDisplay = false) con st; void render(Window& srcWindow, const CEGUI::ColourRect* modColours = 0, const Rect* clipper = 0, bool clipToDisplay = false) const;
/*! /*!
\brief \brief
Render the ImagerySection. Render the ImagerySection.
\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.
\param baseRect \param baseRect
Rect object to be used when calculating pixel values from BaseD im values. Rect object to be used when calculating pixel values from BaseD im values.
\param base_z
base z value to be used for all imagery in the section.
\param modColours \param modColours
ColourRect specifying colours to be modulated with the ImageryS ection's master colours. May be 0. ColourRect specifying colours to be modulated with the ImageryS ection's master colours. May be 0.
\return \return
Nothing. Nothing.
*/ */
void render(Window& srcWindow, const Rect& baseRect, float base_z, const CEGUI::ColourRect* modColours = 0, const Rect* clipper = 0, bool clip ToDisplay = false) const; void render(Window& srcWindow, const Rect& baseRect, const CEGUI::C olourRect* modColours = 0, const Rect* clipper = 0, bool clipToDisplay = fa lse) const;
/*! /*!
\brief \brief
Add an ImageryComponent to this ImagerySection. Add an ImageryComponent to this ImagerySection.
\param img \param img
ImageryComponent to be added to the section (a copy is made) ImageryComponent to be added to the section (a copy is made)
\return \return
Nothing Nothing
 End of changes. 5 change blocks. 
12 lines changed or deleted 6 lines changed or added


 CEGUIFalLayerSpecification.h   CEGUIFalLayerSpecification.h 
skipping to change at line 31 skipping to change at line 31
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* 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 _CEGUIFalLayerSpecification_h_ #ifndef _CEGUIFalLayerSpecification_h_
#define _CEGUIFalLayerSpecification_h_ #define _CEGUIFalLayerSpecification_h_
#include "falagard/CEGUIFalSectionSpecification.h" #include "CEGUIFalSectionSpecification.h"
#include "CEGUIWindow.h" #include "../CEGUIWindow.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
{ {
/*! /*!
skipping to change at line 66 skipping to change at line 66
*/ */
LayerSpecification(uint priority); LayerSpecification(uint priority);
/*! /*!
\brief \brief
Render this layer. Render this layer.
\param srcWindow \param srcWindow
Window to use when calculating pixel values from BaseDim values . Window to use when calculating pixel values from BaseDim values .
\param base_z
base level z value to use for all imagery in the layer.
\return \return
Nothing. Nothing.
*/ */
void render(Window& srcWindow, float base_z, const ColourRect* modc ols = 0, const Rect* clipper = 0, bool clipToDisplay = false) const; void render(Window& srcWindow, const ColourRect* modcols = 0, const Rect* clipper = 0, bool clipToDisplay = false) const;
/*! /*!
\brief \brief
Render this layer. Render this layer.
\param srcWindow \param srcWindow
Window to use when calculating pixel values from BaseDim values . Window to use when calculating pixel values from BaseDim values .
\param baseRect \param baseRect
Rect to use when calculating pixel values from BaseDim values. Rect to use when calculating pixel values from BaseDim values.
\param base_z
base level z value to use for all imagery in the layer.
\return \return
Nothing. Nothing.
*/ */
void render(Window& srcWindow, const Rect& baseRect, float base_z, const ColourRect* modcols = 0, const Rect* clipper = 0, bool clipToDisplay = false) const; void render(Window& srcWindow, const Rect& baseRect, const ColourRe ct* modcols = 0, const Rect* clipper = 0, bool clipToDisplay = false) const ;
/*! /*!
\brief \brief
Add a section specification to the layer. Add a section specification to the layer.
A section specification is a reference to a named ImagerySectio n within the WidgetLook. A section specification is a reference to a named ImagerySectio n within the WidgetLook.
\param section \param section
SectionSpecification object descibing the section that should b e added to this layer. SectionSpecification object descibing the section that should b e added to this layer.
 End of changes. 5 change blocks. 
10 lines changed or deleted 4 lines changed or added


 CEGUIFalNamedArea.h   CEGUIFalNamedArea.h 
skipping to change at line 31 skipping to change at line 31
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* 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 _CEGUIFalNamedArea_h_ #ifndef _CEGUIFalNamedArea_h_
#define _CEGUIFalNamedArea_h_ #define _CEGUIFalNamedArea_h_
#include "falagard/CEGUIFalDimensions.h" #include "CEGUIFalDimensions.h"
// Start of CEGUI namespace section // Start of CEGUI namespace section
namespace CEGUI namespace CEGUI
{ {
/*! /*!
\brief \brief
NamedArea defines an area for a component which may later be obtain ed NamedArea defines an area for a component which may later be obtain ed
and referenced by a name unique to the WidgetLook holding the Named Area. and referenced by a name unique to the WidgetLook holding the Named Area.
*/ */
class CEGUIEXPORT NamedArea class CEGUIEXPORT NamedArea
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 CEGUIFalPropertyDefinitionBase.h   CEGUIFalPropertyDefinitionBase.h 
skipping to change at line 31 skipping to change at line 31
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* 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 _CEGUIFalPropertyDefinitionBase_h_ #ifndef _CEGUIFalPropertyDefinitionBase_h_
#define _CEGUIFalPropertyDefinitionBase_h_ #define _CEGUIFalPropertyDefinitionBase_h_
#include "CEGUIProperty.h" #include "../CEGUIProperty.h"
// Start of CEGUI namespace section // Start of CEGUI namespace section
namespace CEGUI namespace CEGUI
{ {
/*! /*!
\brief \brief
common base class used for types representing a new property to be common base class used for types representing a new property to be
available on all widgets that use the WidgetLook that the property available on all widgets that use the WidgetLook that the property
definition is a part of. definition is a part of.
*/ */
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 CEGUIFalPropertyInitialiser.h   CEGUIFalPropertyInitialiser.h 
skipping to change at line 31 skipping to change at line 31
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* 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 _CEGUIFalPropertyInitialiser_h_ #ifndef _CEGUIFalPropertyInitialiser_h_
#define _CEGUIFalPropertyInitialiser_h_ #define _CEGUIFalPropertyInitialiser_h_
#include "CEGUIPropertySet.h" #include "../CEGUIPropertySet.h"
// Start of CEGUI namespace section // Start of CEGUI namespace section
namespace CEGUI namespace CEGUI
{ {
/*! /*!
\brief \brief
Class that holds information about a property and it's required ini tial value. Class that holds information about a property and it's required ini tial value.
*/ */
class CEGUIEXPORT PropertyInitialiser class CEGUIEXPORT PropertyInitialiser
{ {
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 CEGUIFalPropertyLinkDefinition.h   CEGUIFalPropertyLinkDefinition.h 
skipping to change at line 31 skipping to change at line 31
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* 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 "falagard/CEGUIFalPropertyDefinitionBase.h" #include "CEGUIFalPropertyDefinitionBase.h"
// 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
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 CEGUIFalSectionSpecification.h   CEGUIFalSectionSpecification.h 
skipping to change at line 31 skipping to change at line 31
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* 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 _CEGUIFalSectionSpecification_h_ #ifndef _CEGUIFalSectionSpecification_h_
#define _CEGUIFalSectionSpecification_h_ #define _CEGUIFalSectionSpecification_h_
#include "CEGUIWindow.h" #include "../CEGUIWindow.h"
#include "../CEGUIColourRect.h"
// Start of CEGUI namespace section // Start of CEGUI namespace section
namespace CEGUI namespace CEGUI
{ {
// forward refs // forward refs
class WidgetLookFeel; class WidgetLookFeel;
/*! /*!
\brief \brief
Class that represents a simple 'link' to an ImagerySection. Class that represents a simple 'link' to an ImagerySection.
skipping to change at line 91 skipping to change at line 92
*/ */
SectionSpecification(const String& owner, const String& sectionName , const String& controlPropertySource, const ColourRect& cols); SectionSpecification(const String& owner, const String& sectionName , const String& controlPropertySource, 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.
\param base_z
base z co-ordinate to use for all imagery in the linked section
.
\return \return
Nothing. Nothing.
*/ */
void render(Window& srcWindow, float base_z, const ColourRect* modc ols = 0, const Rect* clipper = 0, bool clipToDisplay = false) const; void render(Window& srcWindow, const ColourRect* modcols = 0, const Rect* clipper = 0, bool clipToDisplay = false) const;
/*! /*!
\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.
\param baseRect \param baseRect
Rect object to be used when calculating pixel values from BaseD im values. Rect object to be used when calculating pixel values from BaseD im values.
\param base_z
base z co-ordinate to use for all imagery in the linked section
.
\return \return
Nothing. Nothing.
*/ */
void render(Window& srcWindow, const Rect& baseRect, float base_z, const ColourRect* modcols = 0, const Rect* clipper = 0, bool clipToDisplay = false) const; void render(Window& srcWindow, const Rect& baseRect, const ColourRe ct* modcols = 0, const Rect* clipper = 0, bool clipToDisplay = false) const ;
/*! /*!
\brief \brief
Return the name of the WidgetLookFeel object containing the tar get section. Return the name of the WidgetLookFeel object containing the tar get section.
\return \return
String object holding the name of the WidgetLookFeel that conta ins the target ImagerySection. String object holding the name of the WidgetLookFeel that conta ins the target ImagerySection.
*/ */
const String& getOwnerWidgetLookFeel() const; const String& getOwnerWidgetLookFeel() const;
 End of changes. 5 change blocks. 
11 lines changed or deleted 4 lines changed or added


 CEGUIFalStateImagery.h   CEGUIFalStateImagery.h 
skipping to change at line 31 skipping to change at line 31
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* 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 _CEGUIFalStateImagery_h_ #ifndef _CEGUIFalStateImagery_h_
#define _CEGUIFalStateImagery_h_ #define _CEGUIFalStateImagery_h_
#include "falagard/CEGUIFalLayerSpecification.h" #include "CEGUIFalLayerSpecification.h"
#include "CEGUIWindow.h" #include "../CEGUIWindow.h"
#include <set> #include <set>
#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
{ {
 End of changes. 1 change blocks. 
2 lines changed or deleted 2 lines changed or added


 CEGUIFalTextComponent.h   CEGUIFalTextComponent.h 
skipping to change at line 31 skipping to change at line 31
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* 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 _CEGUIFalTextComponent_h_ #ifndef _CEGUIFalTextComponent_h_
#define _CEGUIFalTextComponent_h_ #define _CEGUIFalTextComponent_h_
#include "falagard/CEGUIFalComponentBase.h" #include "CEGUIFalComponentBase.h"
#include "../CEGUIRenderedString.h"
#include "../CEGUIRefCounted.h"
#include "../CEGUIFormattedRenderedString.h"
#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 that encapsulates information for a text component. Class that encapsulates information for a text component.
*/ */
class CEGUIEXPORT TextComponent : public FalagardComponentBase class CEGUIEXPORT TextComponent : public FalagardComponentBase
{ {
skipping to change at line 58 skipping to change at line 66
/*! /*!
\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.
const String& getTextVisual() const;
/*! /*!
\brief \brief
Set the text that will be rendered by this TextComponent. Set the text that will be rendered by this TextComponent.
Note that setting this to the empty string ("") will cause the text from the Note that setting this to the empty string ("") will cause the text from the
base window passed when rendering to be used instead. base window passed when rendering to be used instead.
\param text \param text
String containing text to render, or "" to render text from win dow. String containing text to render, or "" to render text from win dow.
skipping to change at line 219 skipping to change at line 230
\param property \param property
String object holding the name of a Propery. The property shou ld access a valid font name. String object holding the name of a Propery. The property shou ld access a valid font name.
\return \return
Nothing. Nothing.
*/ */
void setFontPropertySource(const String& property); void setFontPropertySource(const String& property);
protected: protected:
// implemets abstract from base // implemets abstract from base
void render_impl(Window& srcWindow, Rect& destRect, float base_z, c void render_impl(Window& srcWindow, Rect& destRect, const CEGUI::Co
onst CEGUI::ColourRect* modColours, const Rect* clipper, bool clipToDisplay lourRect* modColours, const Rect* clipper, bool clipToDisplay) const;
) const; //! helper to set up an appropriate FormattedRenderedString
void setupStringFormatter(const Window& window,
const RenderedString& rendered_string) co
nst;
private: private:
String d_text; //!< text rendered by this String d_textLogical; //!< text rendered b
component. y this component.
//! pointer to bidirection support object
BiDiVisualMapping* d_bidiVisualMapping;
//! whether bidi visual mapping has been updated since last text ch
ange.
mutable bool d_bidiDataValid;
//! RenderedString used when not using the one from the target Wind
ow.
mutable RenderedString d_renderedString;
//! FormattedRenderedString object that applies formatting to the s
tring
mutable RefCounted<FormattedRenderedString> d_formattedRenderedStri
ng;
//! Tracks last used horizontal formatting (in order to detect chan
ges)
mutable HorizontalTextFormatting d_lastHorzFormatting;
String d_font; //!< name of font to use. String d_font; //!< name of font to use.
VerticalTextFormatting d_vertFormatting; //!< Vertical formattin g to be applied when rendering the component. VerticalTextFormatting d_vertFormatting; //!< Vertical formattin g to be applied when rendering the component.
HorizontalTextFormatting d_horzFormatting; //!< Horizontal formatt ing to be applied when rendering the component. HorizontalTextFormatting d_horzFormatting; //!< Horizontal formatt ing to be applied when rendering the component.
String d_textPropertyName; //!< Name of the property t o access to obtain the text string to render. String d_textPropertyName; //!< Name of the property t o access to obtain the text string to render.
String d_fontPropertyName; //!< Name of the property t o access to obtain the font to use for rendering. String d_fontPropertyName; //!< Name of the property t o access to obtain the font to use for rendering.
}; };
} // End of CEGUI namespace section } // End of CEGUI namespace section
#if defined(_MSC_VER)
# pragma warning(pop)
#endif
#endif // end of guard _CEGUIFalTextComponent_h_ #endif // end of guard _CEGUIFalTextComponent_h_
 End of changes. 5 change blocks. 
7 lines changed or deleted 40 lines changed or added


 CEGUIFalWidgetComponent.h   CEGUIFalWidgetComponent.h 
skipping to change at line 31 skipping to change at line 31
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* 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 _CEGUIFalWidgetComponent_h_ #ifndef _CEGUIFalWidgetComponent_h_
#define _CEGUIFalWidgetComponent_h_ #define _CEGUIFalWidgetComponent_h_
#include "falagard/CEGUIFalDimensions.h" #include "CEGUIFalDimensions.h"
#include "falagard/CEGUIFalPropertyInitialiser.h" #include "CEGUIFalPropertyInitialiser.h"
#include "CEGUIWindow.h" #include "../CEGUIWindow.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
{ {
/*! /*!
 End of changes. 1 change blocks. 
3 lines changed or deleted 3 lines changed or added


 CEGUIFalWidgetLookFeel.h   CEGUIFalWidgetLookFeel.h 
skipping to change at line 31 skipping to change at line 31
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* 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 _CEGUIFalWidgetLookFeel_h_ #ifndef _CEGUIFalWidgetLookFeel_h_
#define _CEGUIFalWidgetLookFeel_h_ #define _CEGUIFalWidgetLookFeel_h_
#include "falagard/CEGUIFalStateImagery.h" #include "CEGUIFalStateImagery.h"
#include "falagard/CEGUIFalWidgetComponent.h" #include "CEGUIFalWidgetComponent.h"
#include "falagard/CEGUIFalImagerySection.h" #include "CEGUIFalImagerySection.h"
#include "falagard/CEGUIFalPropertyInitialiser.h" #include "CEGUIFalPropertyInitialiser.h"
#include "falagard/CEGUIFalPropertyDefinition.h" #include "CEGUIFalPropertyDefinition.h"
#include "falagard/CEGUIFalPropertyLinkDefinition.h" #include "CEGUIFalPropertyLinkDefinition.h"
#include "falagard/CEGUIFalNamedArea.h" #include "CEGUIFalNamedArea.h"
#include <map> #include <map>
#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
{ {
 End of changes. 1 change blocks. 
7 lines changed or deleted 7 lines changed or added


 CEGUIFalWidgetLookManager.h   CEGUIFalWidgetLookManager.h 
skipping to change at line 31 skipping to change at line 31
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* 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 _CEGUIFalWidgetLookManager_h_ #ifndef _CEGUIFalWidgetLookManager_h_
#define _CEGUIFalWidgetLookManager_h_ #define _CEGUIFalWidgetLookManager_h_
#include "CEGUISingleton.h" #include "../CEGUISingleton.h"
#include "CEGUIString.h" #include "../CEGUIString.h"
#include "CEGUIExceptions.h" #include "../CEGUIExceptions.h"
#include "falagard/CEGUIFalWidgetLookFeel.h" #include "CEGUIFalWidgetLookFeel.h"
#include <map> #include <map>
#if defined(_MSC_VER) #if defined(_MSC_VER)
# pragma warning(push) # pragma warning(push)
# pragma warning(disable : 4251) # pragma warning(disable : 4251)
# pragma warning(disable : 4275) # pragma warning(disable : 4275)
#endif #endif
// Start of CEGUI namespace section // Start of CEGUI namespace section
namespace CEGUI namespace CEGUI
 End of changes. 1 change blocks. 
4 lines changed or deleted 4 lines changed or added


 CEGUIFalXMLEnumHelper.h   CEGUIFalXMLEnumHelper.h 
skipping to change at line 31 skipping to change at line 31
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* 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 _CEGUIFalXMLEnumHelper_h_ #ifndef _CEGUIFalXMLEnumHelper_h_
#define _CEGUIFalXMLEnumHelper_h_ #define _CEGUIFalXMLEnumHelper_h_
#include "CEGUIString.h" #include "../CEGUIString.h"
#include "CEGUIWindow.h" #include "../CEGUIWindow.h"
#include "falagard/CEGUIFalEnums.h" #include "CEGUIFalEnums.h"
// Start of CEGUI namespace section // Start of CEGUI namespace section
namespace CEGUI namespace CEGUI
{ {
/*! /*!
\brief \brief
Utility helper class primarily intended for use by the falagard xml parser. Utility helper class primarily intended for use by the falagard xml parser.
*/ */
class CEGUIEXPORT FalagardXMLHelper class CEGUIEXPORT FalagardXMLHelper
{ {
 End of changes. 1 change blocks. 
3 lines changed or deleted 3 lines changed or added


 CEGUIFont.h   CEGUIFont.h 
/*********************************************************************** /***********************************************************************
filename: CEGUIFont.h filename: CEGUIFont.h
created: 21/2/2004 created: 21/2/2004
author: Paul D Turner author: Paul D Turner <paul@cegui.org.uk>
purpose: Defines interface for the Font class
*************************************************************************/ *************************************************************************/
/************************************************************************** * /************************************************************************** *
* Copyright (C) 2004 - 2006 Paul D Turner & The CEGUI Development Team * Copyright (C) 2004 - 2009 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 36 skipping to change at line 34
* 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_h_ #ifndef _CEGUIFont_h_
#define _CEGUIFont_h_ #define _CEGUIFont_h_
#include "CEGUIBase.h" #include "CEGUIBase.h"
#include "CEGUIPropertySet.h" #include "CEGUIPropertySet.h"
#include "CEGUIString.h" #include "CEGUIString.h"
#include "CEGUIRect.h"
#include "CEGUIVector.h"
#include "CEGUIColourRect.h"
#include "CEGUIXMLSerializer.h" #include "CEGUIXMLSerializer.h"
#include "CEGUIImage.h" #include "CEGUIFontGlyph.h"
#include <map> #include <map>
#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
{ {
// Forward declarations for font properties
namespace FontProperties
{
class NativeRes;
class Name;
class FileName;
class ResourceGroup;
class AutoScaled;
}
/*!
\brief
Enumerated type that contains valid formatting types that can be specif
ied when rendering text into a Rect area (the formatting Rect).
*/
enum TextFormatting
{
/// All text is printed on a single line. The left-most character is a
ligned with the left edge of the formatting Rect.
LeftAligned,
/// All text is printed on a single line. The right-most character is
aligned with the right edge of the formatting Rect.
RightAligned,
/// All text is printed on a single line. The text is centred horizont
ally in the formatting Rect.
Centred,
/// All text is printed on a single line. The left-most and right-most
characters are aligned with the edges of the formatting Rect.
Justified,
/// Text is broken into multiple lines no wider than the formatting Rec
t. The left-most character of each line is aligned with the left edge of t
he formatting Rect.
WordWrapLeftAligned,
/// Text is broken into multiple lines no wider than the formatting Rec
t. The right-most character of each line is aligned with the right edge of
the formatting Rect.
WordWrapRightAligned,
/// Text is broken into multiple lines no wider than the formatting Rec
t. Each line is centred horizontally in the formatting Rect.
WordWrapCentred,
/// Text is broken into multiple lines no wider than the formatting Rec
t. The left-most and right-most characters of each line are aligned with t
he edges of the formatting Rect.
WordWrapJustified
};
/*!
\brief
internal class representing a single font glyph.
For TrueType fonts initially all FontGlyph's are empty
(getImage() will return NULL), but they are filled by demand.
*/
class FontGlyph
{
private:
/// The image which will be rendered.
const Image* d_image;
/// Amount to advance the pen after rendering this glyph
float d_advance;
public:
/*!
\brief
construct an empty uninitialized FontGlyph
*/
FontGlyph ()
{ }
/*!
\brief
FontGlyph constructor.
*/
FontGlyph (float advance) : d_image (0), d_advance (advance)
{ }
/*!
\brief
A better :-) FontGlyph constructor.
*/
FontGlyph (float advance, const Image *image) : d_image (image), d_adva
nce (advance)
{ }
/*!
\brief
Return the CEGUI::Image object rendered for this glyph.
*/
const Image* getImage () const
{ return d_image; }
/*!
\brief
Return the parent CEGUI::Imageset object for this glyph.
*/
const Imageset* getImageset () const
{ return d_image->getImageset (); }
/*!
\brief
Return the scaled pixel size of the glyph.
*/
Size getSize (float x_scale, float y_scale) const
{ return Size (getWidth (x_scale), getHeight (y_scale)); }
/*!
\brief
Return the scaled widht of the glyph.
*/
float getWidth (float x_scale) const
{ return d_image->getWidth () * x_scale; }
/*!
\brief
Return the scaled height of the glyph.
*/
float getHeight (float y_scale) const
{ return d_image->getHeight () * y_scale; }
/*!
\brief
Return the rendered advance value for this glyph.
The rendered advance value is the total number of pixels from the
current pen position that will be occupied by this glyph when rende
red.
*/
float getRenderedAdvance (float x_scale) const
{ return (d_image->getWidth () + d_image->getOffsetX ()) * x_scale; }
/*!
\brief
Return the horizontal advance value for the glyph.
The returned value is the number of pixels the pen should move
horizontally to position itself ready to render the next glyph. Th
is
is not always the same as the glyph image width or rendererd advanc
e,
since it allows for horizontal overhangs.
*/
float getAdvance (float x_scale = 1.0) const
{ return d_advance * x_scale; }
/*!
\brief
Set the horizontal advance value for the glyph.
*/
void setAdvance (float advance)
{ d_advance = advance; }
/*!
\brief
Set the CEGUI::Image object rendered for this glyph.
*/
void setImage (const Image* image)
{ d_image = image; }
};
/*! /*!
\brief \brief
Class that encapsulates text rendering functionality for a typeface Class that encapsulates a typeface.
A Font object is created for each unique typeface required. A Font object is created for each unique typeface required.
The Font class provides methods for loading typefaces from various sour ces, The Font class provides methods for loading typefaces from various sour ces,
and then for outputting text via the Renderer object. and then for outputting text via the Renderer object.
This class is not specific to any font renderer, it just provides the This class is not specific to any font renderer, it just provides the
basic interfaces needed to manage fonts. basic interfaces needed to manage fonts.
*/ */
class CEGUIEXPORT Font : public PropertySet class CEGUIEXPORT Font : public PropertySet
{ {
protected:
/**********************************************************************
***
Friends so that only FontManager can create and destroy font object
s
***********************************************************************
**/
friend class FontManager;
friend class Font_xmlHandler;
friend class FontProperties::NativeRes;
friend class FontProperties::Name;
friend class FontProperties::FileName;
friend class FontProperties::ResourceGroup;
friend class FontProperties::AutoScaled;
/**********************************************************************
***
Implementation Data
***********************************************************************
**/
typedef std::map<utf32, FontGlyph> CodepointMap;
/// Contains mappings from code points to Image objects
CodepointMap d_cp_map;
/// Name of this font.
String d_name;
/// Holds the name of the file used to create this font (either font fi
le or imagset)
String d_fileName;
/// Holds the name of the font file's resource group
String d_resourceGroup;
/// hold default resource group for font loading.
static String d_defaultResourceGroup;
/// maximal font ascender (pixels above the baseline)
float d_ascender;
/// maximal font descender (negative pixels below the baseline)
float d_descender;
/// (ascender - descender) + linegap
float d_height;
/// true when auto-scaling is enabled.
bool d_autoScale;
/// current horizontal scaling factor.
float d_horzScaling;
/// current vertical scaling factor.
float d_vertScaling;
/// native horizontal resolution for this Imageset.
float d_nativeHorzRes;
/// native vertical resolution for this Imageset.
float d_nativeVertRes;
/// Maximal codepoint for font glyphs
utf32 d_maxCodepoint;
/*!
\brief
This bitmap holds information about loaded 'pages' of glyphs.
A glyph page is a set of 256 codepoints, starting at 256-multiples.
For example, the 1st glyph page is 0-255, fourth is 1024-1279 etc.
When a specific glyph is required for painting, the corresponding
bit is checked to see if the respective page has been rasterized.
If not, the rasterize() method is invoked, which prepares the
glyphs from the respective glyph page for being painted.
This array is big enough to hold at least max_codepoint bits.
If this member is NULL, all glyphs are considered pre-rasterized.
*/
uint *d_glyphPageLoaded;
/**********************************************************************
***
Construction & Destruction
***********************************************************************
**/
/*!
\brief
Constructs a new semi-complete Font object. It is the
responsability of the user to set up all remaining font
parameters after constructing the Font object, and finally
calling the load() method which will make font available for use.
All font parameters that are not initialized are set to sensible
default values.
\param name
The unique name that will be used to identify this Font.
\param fontname
The filename of the font file, which contains the font data.
This can be a TrueType, PostScript, bitmap font etc file.
\param resourceGroup
Resource group identifier to be passed to the resource provider
to load the font definition file.
*/
Font (const String& name, const String& fontname,
const String& resourceGroup = "");
/*!
\brief
Constructs a new Font object and instantly loads it.
The font is ready for use right after creation, there is no
need to load() it. All data required by this font is loaded
from the provided XMLAttributes object.
\param attributes
The XML attributes attached to this Font.
\exception FileIOException
thrown if there was some problem accessing or parsing the file
\a filename
\exception InvalidRequestException
thrown if an invalid filename was provided.
\exception AlreadyExistsException
thrown if a Font Imageset clashes with one already defined in the
system.
\exception GenericException
thrown if something goes wrong while accessing a true-type font
referenced in file \a filename.
\exception RendererException
thrown if the Renderer can't support a texture large enough to
hold the requested glyph imagery.
\exception MemoryException
thrown if allocation of imagery construction buffer fails.
*/
Font (const XMLAttributes& attributes);
/*!
\brief
Destroys a Font object
*/
virtual ~Font ();
/*!
\brief
Define a glyph mapping (handle a <Mapping /> XML element)
*/
virtual void defineMapping (const XMLAttributes& attributes);
/*!
\brief
Update the font as required according to the current parameters
*/
virtual void updateFont () = 0;
/*!
\brief
draws wrapped text. returns number of lines output.
*/
size_t drawWrappedText (const String& text, const Rect& draw_area, floa
t z, const Rect& clip_rect, TextFormatting fmt, const ColourRect& colours,
float x_scale = 1.0f, float y_scale = 1.0f);
/*!
\brief
helper function for renderWrappedText to get next word of a string
*/
size_t getNextWord (const String& in_string, size_t start_idx, String&
out_string) const;
/*!
\brief
Draw a line of text. No formatting is applied.
*/
void drawTextLine (const String& text, const Vector3& position, const R
ect& clip_rect, const ColourRect& colours, float x_scale = 1.0f, float y_sc
ale = 1.0f);
/*!
\brief
Draw a justified line of text.
*/
void drawTextLineJustified (const String& text, const Rect& draw_area,
const Vector3& position, const Rect& clip_rect, const ColourRect& colours,
float x_scale = 1.0f, float y_scale = 1.0f);
/*!
\brief
returns extent of widest line of wrapped text.
*/
float getWrappedTextExtent (const String& text, float wrapWidth, float
x_scale = 1.0f);
/*!
\brief
Return a pointer to the glyphDat struct for the given codepoint,
or 0 if the codepoint does not have a glyph defined.
\param codepoint
utf32 codepoint to return the glyphDat structure for.
\return
Pointer to the glyphDat struct for \a codepoint, or 0 if no glyph
is defined for \a codepoint.
*/
const FontGlyph* getGlyphData (utf32 codepoint);
/*!
\brief
Set the maximal glyph index. This reserves the respective
number of bits in the d_glyphPageLoaded array.
*/
void setMaxCodepoint (utf32 codepoint);
/*!
\brief
This function prepares a certain range of glyphs to be ready for
displaying. This means that after returning from this function
glyphs from d_cp_map[start_codepoint] to d_cp_map[end_codepoint]
should have their d_image member set. If there is an error
during rasterization of some glyph, it's okay to leave the
d_image field set to NULL, in which case such glyphs will
be skipped from display.
\param start_codepoint
The lowest codepoint that should be rasterized
\param end_codepoint
The highest codepoint that should be rasterized
*/
virtual void rasterize (utf32 start_codepoint, utf32 end_codepoint);
/*!
\brief
Writes an xml representation of this Font to \a out_stream.
\param xml_stream
Stream where xml data should be output.
\return
Nothing.
*/
void writeXMLToStream (XMLSerializer& xml_stream) const;
/*!
\brief
Same as writeXMLToStream() but called from inside writeXMLToStream(
)
so that derived classes may add their own attributes to stream.
\param xml_stream
Stream where xml data should be output.
*/
virtual void writeXMLToStream_impl (XMLSerializer& xml_stream) const =
0;
/*!
\brief
Register all properties of this class.
*/
void addFontProperties ();
public: public:
/// Colour value used whenever a colour is not specified. //! Colour value used whenever a colour is not specified.
static const argb_t DefaultColour; static const argb_t DefaultColour;
/*! //! Destructor.
\brief virtual ~Font();
Complete font loading. If you create the font from an XML file,
this method is invoked automatically after reading all the required //! Return the string holding the font name.
data from the XMLAttributes object. If you create the font manually const String& getName() const;
,
it is your responsability to call this function as soon as you //! Return the type of the font.
set up all the appropiate fields of the Font object. const String& getTypeName() const;
*/
virtual void load () = 0;
/*! /*!
\brief \brief
Return whether this Font can draw the specified code-point Return whether this Font can draw the specified code-point
\param cp \param cp
utf32 code point that is the subject of the query. utf32 code point that is the subject of the query.
\return \return
true if the font contains a mapping for code point \a cp, true if the font contains a mapping for code point \a cp,
false if it does not contain a mapping for \a cp. false if it does not contain a mapping for \a cp.
*/ */
bool isCodepointAvailable (utf32 cp) const bool isCodepointAvailable(utf32 cp) const
{ return (d_cp_map.find(cp) != d_cp_map.end()); } { return (d_cp_map.find(cp) != d_cp_map.end()); }
/**********************************************************************
***
Text drawing methods
***********************************************************************
**/
/*! /*!
\brief \brief
Draw text into a specified area of the display. Draw text into a specified area of the display.
\param text \param buffer
String object containing the text to be drawn. GeometryBuffer object where the geometry for the text be queued.
\param draw_area
Rect object describing the area of the display where the text is to
be rendered. The text is not clipped to this Rect, but is formatted
using this Rect depending upon the option specified in \a fmt.
\param z
flat value specifying the z co-ordinate for the drawn text.
\param clip_rect
Rect object describing the clipping area for the drawing. No drawi
ng will occur outside this Rect.
\param fmt
One of the TextFormatting values specifying the text formatting req
uired.
\param colours
ColourRect object describing the colours to be applied when drawing
the text. NB: The colours specified in here are applied to each glyph,
rather than the text as a whole.
\param x_scale
Scaling factor to be applied to each glyph's x axis, where 1.0f is
considered to be 'normal'.
\param y_scale
Scaling factor to be applied to each glyph's y axis, where 1.0f is
considered to be 'normal'.
\return
The number of lines output. NB: This does not consider clipping, s
o if all text was clipped, this would still return >=1.
*/
size_t drawText (const String& text, const Rect& draw_area, float z, co
nst Rect& clip_rect, TextFormatting fmt, const ColourRect& colours, float x
_scale = 1.0f, float y_scale = 1.0f);
/*!
\brief
Draw text into a specified area of the display using default colour
s.
\param text
String object containing the text to be drawn.
\param draw_area
Rect object describing the area of the display where the text is to
be rendered. The text is not clipped to this Rect, but is formatted
using this Rect depending upon the option specified in \a fmt.
\param z
flat value specifying the z co-ordinate for the drawn text.
\param clip_rect
Rect object describing the clipping area for the drawing. No drawi
ng will occur outside this Rect.
\param fmt
One of the TextFormatting values specifying the text formatting req
uired.
\param x_scale
Scaling factor to be applied to each glyph's x axis, where 1.0f is
considered to be 'normal'.
\param y_scale
Scaling factor to be applied to each glyph's y axis, where 1.0f is
considered to be 'normal'.
\return
The number of lines output. NB: This does not consider clipping, s
o if all text was clipped, this would still return >=1.
*/
size_t drawText (const String& text, const Rect& draw_area, float z, co
nst Rect& clip_rect, TextFormatting fmt, float x_scale = 1.0f, float y_scal
e = 1.0f)
{ return drawText (text, draw_area, z, clip_rect, fmt, ColourRect (Defa
ultColour, DefaultColour, DefaultColour, DefaultColour), x_scale, y_scale);
}
/*!
\brief
Draw text into a specified area of the display with default colours
and default formatting (LeftAligned).
\param text \param text
String object containing the text to be drawn. String object containing the text to be drawn.
\param draw_area \param position
Rect object describing the area of the display where the text is to Reference to a Vector2 object describing the location at which the
be rendered. The text is not clipped to this Rect, but is formatted text
using this Rect depending upon the option specified in \a fmt. is to be drawn.
\param z
flat value specifying the z co-ordinate for the drawn text.
\param clip_rect \param clip_rect
Rect object describing the clipping area for the drawing. No drawi Rect object describing the clipping area for the drawing.
ng will occur outside this Rect. No drawing will occur outside this Rect.
\param x_scale
Scaling factor to be applied to each glyph's x axis, where 1.0f is
considered to be 'normal'.
\param y_scale
Scaling factor to be applied to each glyph's y axis, where 1.0f is
considered to be 'normal'.
\return
Nothing.
*/
void drawText (const String& text, const Rect& draw_area, float z, cons
t Rect& clip_rect, float x_scale = 1.0f, float y_scale = 1.0f)
{ drawText (text, draw_area, z, clip_rect, LeftAligned, ColourRect (Def
aultColour, DefaultColour, DefaultColour, DefaultColour), x_scale, y_scale)
; }
/*!
\brief
Draw text into a specified area of the display.
\param text
String object containing the text to be drawn.
\param draw_area
Rect object describing the area of the display where the text is to
be rendered. The text is formatted using this Rect depending
upon the option specified in \a fmt. Additionally, the drawn text
is clipped to be within this Rect (applies to non-word wrapped formatting
where the text may otherwise have fallen outside this Rect).
\param z
flat value specifying the z co-ordinate for the drawn text.
\param fmt
One of the TextFormatting values specifying the text formatting req
uired.
\param colours \param colours
ColourRect object describing the colours to be applied when drawing ColourRect object describing the colours to be applied when drawing
the text. NB: The colours specified in here are applied to each glyph, the
text. NB: The colours specified in here are applied to each glyph,
rather than the text as a whole. rather than the text as a whole.
\param x_scale \param space_extra
Scaling factor to be applied to each glyph's x axis, where 1.0f is Number of additional pixels of spacing to be added to space charact
considered to be 'normal'. ers.
\param y_scale
Scaling factor to be applied to each glyph's y axis, where 1.0f is
considered to be 'normal'.
\return
The number of lines output. NB: This does not consider clipping, s
o if all text was clipped, this would still return >=1.
*/
size_t drawText (const String& text, const Rect& draw_area, float z, Te
xtFormatting fmt, const ColourRect& colours, float x_scale = 1.0f, float y_
scale = 1.0f)
{ return drawText (text, draw_area, z, draw_area, fmt, colours, x_scale
, y_scale); }
/*!
\brief
Draw text into a specified area of the display with default colours
.
\param text
String object containing the text to be drawn.
\param draw_area
Rect object describing the area of the display where the text is to
be rendered. The text is formatted using this Rect depending
upon the option specified in \a fmt. Additionally, the drawn text
is clipped to be within this Rect (applies to non-word wrapped formatting
where the text may otherwise have fallen outside this Rect).
\param z
flat value specifying the z co-ordinate for the drawn text.
\param fmt
One of the TextFormatting values specifying the text formatting req
uired.
\param x_scale \param x_scale
Scaling factor to be applied to each glyph's x axis, where 1.0f is Scaling factor to be applied to each glyph's x axis, where 1.0f is
considered to be 'normal'. considered to be 'normal'.
\param y_scale \param y_scale
Scaling factor to be applied to each glyph's y axis, where 1.0f is Scaling factor to be applied to each glyph's y axis, where 1.0f is
considered to be 'normal'. considered to be 'normal'.
\return \return
The number of lines output. NB: This does not consider clipping, s o if all text was clipped, this would still return >=1. Nothing.
*/ */
size_t drawText (const String& text, const Rect& draw_area, float z, Te void drawText(GeometryBuffer& buffer, const String& text,
xtFormatting fmt, float x_scale = 1.0f, float y_scale = 1.0f) const Vector2& position, const Rect* clip_rect,
{ return drawText (text, draw_area, z, draw_area, fmt, ColourRect (Defa const ColourRect& colours, const float space_extra = 0.0f
ultColour, DefaultColour, DefaultColour, DefaultColour), x_scale, y_scale); ,
} const float x_scale = 1.0f, const float y_scale = 1.0f);
/*! /*!
\brief \brief
Draw text into a specified area of the display with default colours Set the native resolution for this Font
and default formatting (LeftAligned).
\param text
String object containing the text to be drawn.
\param draw_area
Rect object describing the area of the display where the text is to
be rendered. The text is formatted using this Rect depending
upon the option specified in \a fmt. Additionally, the drawn text
is clipped to be within this Rect (applies to non-word wrapped formatting
where the text may otherwise have fallen outside this Rect).
\param z
flat value specifying the z co-ordinate for the drawn text.
\param x_scale
Scaling factor to be applied to each glyph's x axis, where 1.0f is
considered to be 'normal'.
\param y_scale
Scaling factor to be applied to each glyph's y axis, where 1.0f is
considered to be 'normal'.
\return \param size
Nothing. Size object describing the new native screen resolution for this Fo
nt.
*/ */
void drawText (const String& text, const Rect& draw_area, float z, floa void setNativeResolution(const Size& size);
t x_scale = 1.0f, float y_scale = 1.0f)
{ drawText (text, draw_area, z, draw_area, LeftAligned, ColourRect (Def
aultColour, DefaultColour, DefaultColour, DefaultColour), x_scale, y_scale)
; }
/*! /*!
\brief \brief
Draw text at the specified location. Return the native display size for this Font. This is only relevan
t if
\param text the Font is being auto-scaled.
String object containing the text to be drawn.
\param position
Vector3 object describing the location for the text. NB: The posit
ion specified here corresponds to the text baseline and not the
top of any glyph. The baseline spacing required can be retrieved b
y calling getBaseline().
\param clip_rect
Rect object describing the clipping area for the drawing. No drawi
ng will occur outside this Rect.
\param colours
ColourRect object describing the colours to be applied when drawing
the text. NB: The colours specified in here are applied to each glyph,
rather than the text as a whole.
\param x_scale
Scaling factor to be applied to each glyph's x axis, where 1.0f is
considered to be 'normal'.
\param y_scale
Scaling factor to be applied to each glyph's y axis, where 1.0f is
considered to be 'normal'.