MyGUI 3.4.3
MyGUI_ImageBox.h
Go to the documentation of this file.
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_IMAGE_BOX_H_
8#define MYGUI_IMAGE_BOX_H_
9
10#include "MyGUI_Prerequest.h"
11#include "MyGUI_Widget.h"
13#include "MyGUI_ImageInfo.h"
14
15namespace MyGUI
16{
17
21 class MYGUI_EXPORT ImageBox : public Widget, public MemberObsolete<ImageBox>
22 {
24
25 public:
26 //------------------------------------------------------------------------------//
27 // The simple interface
28 //------------------------------------------------------------------------------//
29
30 /* Set texture and size of image _tile
31 @param _texture file name or texture name
32 @param _coord - part of texture where we take tiles
33 @param _tile size
34 */
35 void setImageInfo(std::string_view _texture, const IntCoord& _coord, const IntSize& _tile);
36
37 /* Set texture
38 @param _texture file name or texture name
39 */
40 void setImageTexture(std::string_view _texture);
41
43 void setImageRect(const IntRect& _rect);
44
46 void setImageCoord(const IntCoord& _coord);
47
49 void setImageTile(const IntSize& _tile);
50
63 void setImageIndex(size_t _index);
65 size_t getImageIndex() const;
66
68 IntSize getImageSize() const;
69
70 //------------------------------------------------------------------------------//
71 // The expanded interface
72 //------------------------------------------------------------------------------//
73
75 size_t getItemCount() const;
76
78 void setItemSelect(size_t _index);
80 size_t getItemSelect() const;
82 void resetItemSelect();
83
85 void insertItem(size_t _index, const IntCoord& _item);
87 void addItem(const IntCoord& _item);
89 void setItem(size_t _index, const IntCoord& _item);
90
92 void deleteItem(size_t _index);
94 void deleteAllItems();
95
96 // работа с фреймами анимированных индексов
101 void addItemFrame(size_t _index, const IntCoord& _item);
102
108 void insertItemFrame(size_t _index, size_t _indexFrame, const IntCoord& _item);
109
114 void addItemFrameDuplicate(size_t _index, size_t _indexSourceFrame);
115
121 void insertItemFrameDuplicate(size_t _index, size_t _indexFrame, size_t _indexSourceFrame);
122
128 void setItemFrame(size_t _index, size_t _indexFrame, const IntCoord& _item);
129
134 void deleteItemFrame(size_t _index, size_t _indexFrame);
135
139 void deleteAllItemFrames(size_t _index);
140
145 void setItemFrameRate(size_t _index, float _rate);
146
150 float getItemFrameRate(size_t _index) const;
151
152 //------------------------------------------------------------------------------//
153 // The interface with support of resources
154 //------------------------------------------------------------------------------//
155
160 bool setItemResource(std::string_view _name);
161
163 void setItemGroup(std::string_view _group);
165 void setItemName(std::string_view _name);
166
170 void setItemResourcePtr(ResourceImageSetPtr _resource);
172 void setItemResourceInfo(const ImageIndexInfo& _info);
173
175 ResourceImageSetPtr getItemResource() const;
177 void setItemResourceInfo(ResourceImageSetPtr _resource, std::string_view _group, std::string_view _name);
178
179 protected:
180 void shutdownOverride() override;
181
182 void setPropertyOverride(std::string_view _key, std::string_view _value) override;
183
184 private:
185 void frameEntered(float _frame);
186
187 void recalcIndexes();
188 void updateSelectIndex(size_t _index);
189
190 void frameAdvise(bool _advise);
191
192 void _setUVSet(const FloatRect& _rect);
193
194 private:
195 // кусок в текстуре наших картинок
196 IntRect mRectImage;
197 // размер одной картинки
198 IntSize mSizeTile;
199 // размер текстуры
200 IntSize mSizeTexture;
201 // текущая картинка
202 size_t mIndexSelect{ITEM_NONE};
203
204 VectorImages mItems;
205
206 bool mFrameAdvise{false};
207 float mCurrentTime{0};
208 size_t mCurrentFrame{0};
209
210 ResourceImageSetPtr mResource{nullptr};
211 std::string mItemName;
212 std::string mItemGroup;
213 std::string mCurrentTextureName;
214 };
215
216} // namespace MyGUI
217
218#endif // MYGUI_IMAGE_BOX_H_
#define MYGUI_EXPORT
#define MYGUI_RTTI_DERIVED(DerivedType)
Definition MyGUI_RTTI.h:69
widget description should be here.
widget description should be here.
ResourceImageSet * ResourceImageSetPtr
constexpr size_t ITEM_NONE
std::vector< ImageItem > VectorImages