source: OGRE/trunk/ogre_dependencies/Dependencies/include/CEGUI/elements/CEGUITextItem.h @ 692

Revision 692, 7.4 KB checked in by mattausch, 19 years ago (diff)

adding ogre 1.2 and dependencies

Line 
1/************************************************************************
2        filename:       CEGUITextItem.h
3        created:        31/3/2005
4        author:         Tomas Lindquist Olsen (based on code by Paul D Turner)
5       
6        purpose:        Interface to base class for TextItem widget
7*************************************************************************/
8/*************************************************************************
9    Crazy Eddie's GUI System (http://www.cegui.org.uk)
10    Copyright (C)2004 - 2005 Paul D Turner (paul@cegui.org.uk)
11
12    This library is free software; you can redistribute it and/or
13    modify it under the terms of the GNU Lesser General Public
14    License as published by the Free Software Foundation; either
15    version 2.1 of the License, or (at your option) any later version.
16
17    This library is distributed in the hope that it will be useful,
18    but WITHOUT ANY WARRANTY; without even the implied warranty of
19    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
20    Lesser General Public License for more details.
21
22    You should have received a copy of the GNU Lesser General Public
23    License along with this library; if not, write to the Free Software
24    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
25*************************************************************************/
26#ifndef _CEGUITextItem_h_
27#define _CEGUITextItem_h_
28
29#include "CEGUIBase.h"
30#include "CEGUIWindow.h"
31#include "elements/CEGUIItemEntry.h"
32#include "elements/CEGUITextItemProperties.h"
33#include "CEGUIFont.h"
34
35
36#if defined(_MSC_VER)
37#       pragma warning(push)
38#       pragma warning(disable : 4251)
39#endif
40
41
42// Start of CEGUI namespace section
43namespace CEGUI
44{
45
46/*!
47\brief
48        Base class for all the TextItem widgets.
49*/
50class CEGUIEXPORT TextItem : public ItemEntry
51{
52public:
53        /*************************************************************************
54                Constants
55        *************************************************************************/
56        static const colour             DefaultTextColour;              //!< Default colour used when rendering text.
57
58
59        /*************************************************************************
60                Accessors
61        *************************************************************************/
62        /*!
63        \brief
64                Return the TextFormatting currently used for rendering the text.
65
66        \return
67                TextFormatting value describing the currently used text formatting option.
68        */
69        TextFormatting getTextFormatting() const                {return d_textFormatting;}
70
71
72        /*!
73    \brief
74        get the offset that is used to shift of the text in the x-direction
75        this is useful if the button-images are not symmetrical and the
76        text shouldn't be completely centered
77
78    \return
79        the offset in pixels
80    */
81    float   getTextXOffset(void) const                          {return d_textXOffset;}
82
83
84        /*!
85    \brief
86        Get the current text colour of the item.
87
88    \return
89        The current text colour.
90    */
91        colour getTextColour(void) const                        {return d_textColour;}
92
93
94        /*************************************************************************
95                Manipulators
96        *************************************************************************/
97        /*!
98        \brief
99                Set the TextFormatting to be used when rendering the text.
100        */
101        void setTextFormatting(TextFormatting format)   {d_textFormatting=format;}
102
103
104        /*!
105    \brief
106        Set the current text colour of the item.
107
108    \param col
109        The colour to set as the current text colour.
110    */
111        void setTextColour(const colour& col)                   {d_textColour=col;}
112
113
114        /*!
115    \brief
116        Set the offset to use for a shift of the text in the x-direction
117        this is useful if the button-images are not symmetrical and the
118        text shouldn't be completely centered
119
120    \param offset
121        The offset to use - in pixels.
122
123    \return
124        Nothing.
125    */
126    void   setTextXOffset(float offset)                         {d_textXOffset=offset;}
127
128
129        /*************************************************************************
130                Pure functions from ItemEntry
131        *************************************************************************/
132        /*!
133        \brief
134                Return the "optimal" size for the item
135       
136        \return
137                Size describing the size in pixel that this TextItem's content requires
138                for non-clipped rendering
139        */
140        virtual Size getItemPixelSize(void);
141
142
143        /*************************************************************************
144                Construction and Destruction
145        *************************************************************************/
146        /*!
147        \brief
148                Constructor for TextItem objects
149        */
150        TextItem(const String& type, const String& name);
151
152
153        /*!
154        \brief
155                Destructor for TextItem objects
156        */
157        virtual ~TextItem(void);
158
159
160protected:
161        /*************************************************************************
162                Abstract Implementation Functions (must be provided by derived class)
163        *************************************************************************/
164
165        /*************************************************************************
166                Overridden event handlers
167        *************************************************************************/
168        /*!
169        \brief
170                Handler called when the window's text is changed.
171
172        \param e
173                WindowEventArgs object whose 'window' pointer field is set to the window that triggered the event.  For this
174                event the trigger window is always 'this'.
175        */
176        virtual void    onTextChanged(WindowEventArgs& e);
177
178
179        /*************************************************************************
180                Implementation Functions
181        *************************************************************************/
182    virtual void populateRenderCache();
183
184
185        /*!
186        \brief
187                Return whether this window was inherited from the given class name at some point in the inheritance heirarchy.
188
189        \param class_name
190                The class name that is to be checked.
191
192        \return
193                true if this window was inherited from \a class_name. false if not.
194        */
195        virtual bool    testClassName_impl(const String& class_name) const
196        {
197                if (class_name==(const utf8*)"TextItem")        return true;
198                return ItemEntry::testClassName_impl(class_name);
199        }
200
201
202        /*************************************************************************
203                Implementation Rendering Functions
204        *************************************************************************/
205
206        /*************************************************************************
207                Implementation Data
208        *************************************************************************/
209        colour d_textColour;                            //!< the current text colour
210        TextFormatting d_textFormatting;        //!< the current text formatting
211
212        //text-offset
213    float d_textXOffset;                //!< offset applied to the x co-ordinate of the text rendered.
214
215
216private:
217        /*************************************************************************
218                Static Properties for this class
219        *************************************************************************/
220        static TextItemProperties::TextColour           d_textColourProperty;
221        static TextItemProperties::TextFormatting       d_textFormattingProperty;
222        static TextItemProperties::TextXOffset          d_textXOffsetProperty;
223
224        /*************************************************************************
225                Private methods
226        *************************************************************************/
227        void    addTextItemProperties(void);
228};
229
230} // End of  CEGUI namespace section
231
232
233#if defined(_MSC_VER)
234#       pragma warning(pop)
235#endif
236
237
238#endif  // end of guard _CEGUITextItem_h_
Note: See TracBrowser for help on using the repository browser.