~ubuntu-branches/ubuntu/vivid/mygui/vivid

« back to all changes in this revision

Viewing changes to MyGUIEngine/include/MyGUI_CommonStateInfo.h

  • Committer: Package Import Robot
  • Author(s): Scott Howard, Bret Curtis, Scott Howard
  • Date: 2014-09-18 17:57:48 UTC
  • mfrom: (1.1.1)
  • Revision ID: package-import@ubuntu.com-20140918175748-dd8va78mvpw1jbes
Tags: 3.2.1-1
[ Bret Curtis ]
* Updated license for majority of files from LGPL to Expat (MIT)

[ Scott Howard ]
* New upstream release
* Updated patch to add build option for system GLEW libraries
* All patches accepted upstream except shared_libraries.patch
* Bumped SONAME due to dropped symbols, updated *.symbols and package
  names
* Updated license of debian/* to Expat with permission of all authors
* Don't install Doxygen autogenerated md5 and map files (thanks
  lintian)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*!
2
 
        @file
3
 
        @author         Albert Semenov
4
 
        @date           06/2009
5
 
*/
6
 
/*
7
 
        This file is part of MyGUI.
8
 
 
9
 
        MyGUI is free software: you can redistribute it and/or modify
10
 
        it under the terms of the GNU Lesser General Public License as published by
11
 
        the Free Software Foundation, either version 3 of the License, or
12
 
        (at your option) any later version.
13
 
 
14
 
        MyGUI is distributed in the hope that it will be useful,
15
 
        but WITHOUT ANY WARRANTY; without even the implied warranty of
16
 
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
 
        GNU Lesser General Public License for more details.
18
 
 
19
 
        You should have received a copy of the GNU Lesser General Public License
20
 
        along with MyGUI.  If not, see <http://www.gnu.org/licenses/>.
21
 
*/
22
 
#ifndef __MYGUI_COMMON_STATE_INFO_H__
23
 
#define __MYGUI_COMMON_STATE_INFO_H__
24
 
 
25
 
#include "MyGUI_Prerequest.h"
26
 
#include "MyGUI_IStateInfo.h"
27
 
#include "MyGUI_CoordConverter.h"
28
 
#include "MyGUI_LanguageManager.h"
29
 
#include "MyGUI_TextureUtility.h"
30
 
 
31
 
namespace MyGUI
32
 
{
33
 
 
34
 
        class MYGUI_EXPORT SubSkinStateInfo :
35
 
                public IStateInfo
36
 
        {
37
 
                MYGUI_RTTI_DERIVED( SubSkinStateInfo )
38
 
 
39
 
        public:
40
 
                virtual ~SubSkinStateInfo() { }
41
 
 
42
 
                const FloatRect& getRect() const
43
 
                {
44
 
                        return mRect;
45
 
                }
46
 
 
47
 
        private:
48
 
                virtual void deserialization(xml::ElementPtr _node, Version _version)
49
 
                {
50
 
                        std::string texture = _node->getParent()->getParent()->findAttribute("texture");
51
 
 
52
 
                        // поддержка замены тегов в скинах
53
 
                        if (_version >= Version(1, 1))
54
 
                        {
55
 
                                texture = LanguageManager::getInstance().replaceTags(texture);
56
 
                        }
57
 
 
58
 
                        const IntSize& size = texture_utility::getTextureSize(texture);
59
 
                        const IntCoord& coord = IntCoord::parse(_node->findAttribute("offset"));
60
 
                        mRect = CoordConverter::convertTextureCoord(coord, size);
61
 
                }
62
 
 
63
 
        private:
64
 
                FloatRect mRect;
65
 
        };
66
 
 
67
 
        class MYGUI_EXPORT TileRectStateInfo :
68
 
                public IStateInfo
69
 
        {
70
 
                MYGUI_RTTI_DERIVED( TileRectStateInfo )
71
 
 
72
 
        public:
73
 
                TileRectStateInfo() :
74
 
                        mTileH(true),
75
 
                        mTileV(true)
76
 
                {
77
 
                }
78
 
 
79
 
                virtual ~TileRectStateInfo() { }
80
 
 
81
 
                const FloatRect& getRect() const
82
 
                {
83
 
                        return mRect;
84
 
                }
85
 
 
86
 
                const IntSize& getTileSize() const
87
 
                {
88
 
                        return mTileSize;
89
 
                }
90
 
 
91
 
                bool getTileH() const
92
 
                {
93
 
                        return mTileH;
94
 
                }
95
 
 
96
 
                bool getTileV() const
97
 
                {
98
 
                        return mTileV;
99
 
                }
100
 
 
101
 
        private:
102
 
                virtual void deserialization(xml::ElementPtr _node, Version _version)
103
 
                {
104
 
                        std::string texture = _node->getParent()->getParent()->findAttribute("texture");
105
 
 
106
 
                        // поддержка замены тегов в скинах
107
 
                        if (_version >= Version(1, 1))
108
 
                        {
109
 
                                texture = LanguageManager::getInstance().replaceTags(texture);
110
 
                        }
111
 
 
112
 
                        const IntSize& size = texture_utility::getTextureSize(texture);
113
 
                        const IntCoord& coord = IntCoord::parse(_node->findAttribute("offset"));
114
 
                        mRect = CoordConverter::convertTextureCoord(coord, size);
115
 
 
116
 
                        xml::ElementEnumerator prop = _node->getElementEnumerator();
117
 
                        while (prop.next("Property"))
118
 
                        {
119
 
                                const std::string& key = prop->findAttribute("key");
120
 
                                const std::string& value = prop->findAttribute("value");
121
 
                                if (key == "TileH") mTileH = utility::parseBool(value);
122
 
                                else if (key == "TileV") mTileV = utility::parseBool(value);
123
 
                                else if (key == "TileSize") mTileSize = IntSize::parse(value);
124
 
                        }
125
 
                }
126
 
 
127
 
        private:
128
 
                FloatRect mRect;
129
 
                IntSize mTileSize;
130
 
                bool mTileH;
131
 
                bool mTileV;
132
 
        };
133
 
 
134
 
        class MYGUI_EXPORT EditTextStateInfo :
135
 
                public IStateInfo
136
 
        {
137
 
                MYGUI_RTTI_DERIVED( EditTextStateInfo )
138
 
 
139
 
        public:
140
 
                EditTextStateInfo() :
141
 
                        mColour(Colour::White),
142
 
                        mShift(false)
143
 
                {
144
 
                }
145
 
 
146
 
                virtual ~EditTextStateInfo() { }
147
 
 
148
 
                const Colour& getColour() const
149
 
                {
150
 
                        return mColour;
151
 
                }
152
 
 
153
 
                bool getShift() const
154
 
                {
155
 
                        return mShift;
156
 
                }
157
 
 
158
 
        private:
159
 
                virtual void deserialization(xml::ElementPtr _node, Version _version)
160
 
                {
161
 
                        mShift = utility::parseBool(_node->findAttribute("shift"));
162
 
 
163
 
                        std::string colour = _node->findAttribute("colour");
164
 
                        if (_version >= Version(1, 1))
165
 
                        {
166
 
                                colour = LanguageManager::getInstance().replaceTags(colour);
167
 
                        }
168
 
 
169
 
                        mColour = Colour::parse(colour);
170
 
                }
171
 
 
172
 
        private:
173
 
                Colour mColour;
174
 
                bool mShift;
175
 
        };
176
 
 
177
 
} // namespace MyGUI
178
 
 
179
 
#endif // __MYGUI_COMMON_STATE_INFO_H__
 
1
/*
 
2
 * This source file is part of MyGUI. For the latest info, see http://mygui.info/
 
3
 * Distributed under the MIT License
 
4
 * (See accompanying file COPYING.MIT or copy at http://opensource.org/licenses/MIT)
 
5
 */
 
6
 
 
7
#ifndef __MYGUI_COMMON_STATE_INFO_H__
 
8
#define __MYGUI_COMMON_STATE_INFO_H__
 
9
 
 
10
#include "MyGUI_Prerequest.h"
 
11
#include "MyGUI_IStateInfo.h"
 
12
#include "MyGUI_CoordConverter.h"
 
13
#include "MyGUI_LanguageManager.h"
 
14
#include "MyGUI_TextureUtility.h"
 
15
 
 
16
namespace MyGUI
 
17
{
 
18
 
 
19
        class MYGUI_EXPORT SubSkinStateInfo :
 
20
                public IStateInfo
 
21
        {
 
22
                MYGUI_RTTI_DERIVED( SubSkinStateInfo )
 
23
 
 
24
        public:
 
25
                virtual ~SubSkinStateInfo() { }
 
26
 
 
27
                const FloatRect& getRect() const
 
28
                {
 
29
                        return mRect;
 
30
                }
 
31
 
 
32
        private:
 
33
                virtual void deserialization(xml::ElementPtr _node, Version _version)
 
34
                {
 
35
                        std::string texture = _node->getParent()->getParent()->findAttribute("texture");
 
36
 
 
37
                        // tags replacement support for Skins
 
38
                        if (_version >= Version(1, 1))
 
39
                        {
 
40
                                texture = LanguageManager::getInstance().replaceTags(texture);
 
41
                        }
 
42
 
 
43
                        const IntSize& size = texture_utility::getTextureSize(texture);
 
44
                        const IntCoord& coord = IntCoord::parse(_node->findAttribute("offset"));
 
45
                        mRect = CoordConverter::convertTextureCoord(coord, size);
 
46
                }
 
47
 
 
48
        private:
 
49
                FloatRect mRect;
 
50
        };
 
51
 
 
52
        class MYGUI_EXPORT TileRectStateInfo :
 
53
                public IStateInfo
 
54
        {
 
55
                MYGUI_RTTI_DERIVED( TileRectStateInfo )
 
56
 
 
57
        public:
 
58
                TileRectStateInfo() :
 
59
                        mTileH(true),
 
60
                        mTileV(true)
 
61
                {
 
62
                }
 
63
 
 
64
                virtual ~TileRectStateInfo() { }
 
65
 
 
66
                const FloatRect& getRect() const
 
67
                {
 
68
                        return mRect;
 
69
                }
 
70
 
 
71
                const IntSize& getTileSize() const
 
72
                {
 
73
                        return mTileSize;
 
74
                }
 
75
 
 
76
                bool getTileH() const
 
77
                {
 
78
                        return mTileH;
 
79
                }
 
80
 
 
81
                bool getTileV() const
 
82
                {
 
83
                        return mTileV;
 
84
                }
 
85
 
 
86
        private:
 
87
                virtual void deserialization(xml::ElementPtr _node, Version _version)
 
88
                {
 
89
                        std::string texture = _node->getParent()->getParent()->findAttribute("texture");
 
90
 
 
91
                        // tags replacement support for Skins
 
92
                        if (_version >= Version(1, 1))
 
93
                        {
 
94
                                texture = LanguageManager::getInstance().replaceTags(texture);
 
95
                        }
 
96
 
 
97
                        const IntSize& size = texture_utility::getTextureSize(texture);
 
98
                        const IntCoord& coord = IntCoord::parse(_node->findAttribute("offset"));
 
99
                        mRect = CoordConverter::convertTextureCoord(coord, size);
 
100
 
 
101
                        xml::ElementEnumerator prop = _node->getElementEnumerator();
 
102
                        while (prop.next("Property"))
 
103
                        {
 
104
                                const std::string& key = prop->findAttribute("key");
 
105
                                const std::string& value = prop->findAttribute("value");
 
106
                                if (key == "TileH") mTileH = utility::parseBool(value);
 
107
                                else if (key == "TileV") mTileV = utility::parseBool(value);
 
108
                                else if (key == "TileSize") mTileSize = IntSize::parse(value);
 
109
                        }
 
110
                }
 
111
 
 
112
        private:
 
113
                FloatRect mRect;
 
114
                IntSize mTileSize;
 
115
                bool mTileH;
 
116
                bool mTileV;
 
117
        };
 
118
 
 
119
        class MYGUI_EXPORT RotatingSkinStateInfo :
 
120
                public IStateInfo
 
121
        {
 
122
                MYGUI_RTTI_DERIVED( RotatingSkinStateInfo )
 
123
 
 
124
        public:
 
125
                RotatingSkinStateInfo() :
 
126
                        mAngle(0),
 
127
                        mCenter(0,0)
 
128
                {
 
129
                }
 
130
 
 
131
                virtual ~RotatingSkinStateInfo() { }
 
132
 
 
133
                float getAngle() const
 
134
                {
 
135
                        return mAngle;
 
136
                }
 
137
 
 
138
                const IntPoint& getCenter() const
 
139
                {
 
140
                        return mCenter;
 
141
                }
 
142
 
 
143
                const FloatRect& getRect() const
 
144
                {
 
145
                        return mRect;
 
146
                }
 
147
 
 
148
        private:
 
149
                virtual void deserialization(xml::ElementPtr _node, Version _version)
 
150
                {
 
151
                        xml::ElementEnumerator prop = _node->getElementEnumerator();
 
152
                        while (prop.next("Property"))
 
153
                        {
 
154
                                const std::string& key = prop->findAttribute("key");
 
155
                                const std::string& value = prop->findAttribute("value");
 
156
                                if (key == "Angle") mAngle = utility::parseFloat(value);
 
157
                                if (key == "Center") mCenter = IntPoint::parse(value);
 
158
                        }
 
159
 
 
160
                        std::string texture = _node->getParent()->getParent()->findAttribute("texture");
 
161
 
 
162
                        // tags replacement support for Skins
 
163
                        if (_version >= Version(1, 1))
 
164
                        {
 
165
                                texture = LanguageManager::getInstance().replaceTags(texture);
 
166
                        }
 
167
 
 
168
                        const IntSize& size = texture_utility::getTextureSize(texture);
 
169
                        const IntCoord& coord = IntCoord::parse(_node->findAttribute("offset"));
 
170
                        mRect = CoordConverter::convertTextureCoord(coord, size);
 
171
                }
 
172
 
 
173
        private:
 
174
                FloatRect mRect;
 
175
                IntPoint mCenter;
 
176
                float mAngle; // Angle in radians
 
177
        };
 
178
 
 
179
 
 
180
        class MYGUI_EXPORT EditTextStateInfo :
 
181
                public IStateInfo
 
182
        {
 
183
                MYGUI_RTTI_DERIVED( EditTextStateInfo )
 
184
 
 
185
        public:
 
186
                EditTextStateInfo() :
 
187
                        mColour(Colour::White),
 
188
                        mShift(false)
 
189
                {
 
190
                }
 
191
 
 
192
                virtual ~EditTextStateInfo() { }
 
193
 
 
194
                const Colour& getColour() const
 
195
                {
 
196
                        return mColour;
 
197
                }
 
198
 
 
199
                bool getShift() const
 
200
                {
 
201
                        return mShift;
 
202
                }
 
203
 
 
204
        private:
 
205
                virtual void deserialization(xml::ElementPtr _node, Version _version)
 
206
                {
 
207
                        mShift = utility::parseBool(_node->findAttribute("shift"));
 
208
 
 
209
                        std::string colour = _node->findAttribute("colour");
 
210
                        if (_version >= Version(1, 1))
 
211
                        {
 
212
                                colour = LanguageManager::getInstance().replaceTags(colour);
 
213
                        }
 
214
 
 
215
                        mColour = Colour::parse(colour);
 
216
                }
 
217
 
 
218
        private:
 
219
                Colour mColour;
 
220
                bool mShift;
 
221
        };
 
222
 
 
223
} // namespace MyGUI
 
224
 
 
225
#endif // __MYGUI_COMMON_STATE_INFO_H__