00001
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef __MYGUI_STATIC_IMAGE_H__
00024 #define __MYGUI_STATIC_IMAGE_H__
00025
00026 #include "MyGUI_Prerequest.h"
00027 #include "MyGUI_Widget.h"
00028 #include "MyGUI_ResourceImageSet.h"
00029 #include "MyGUI_ImageInfo.h"
00030 #include "MyGUI_Guid.h"
00031
00032 namespace MyGUI
00033 {
00034
00035 class MYGUI_EXPORT StaticImage :
00036 public Widget
00037 {
00038 MYGUI_RTTI_DERIVED( StaticImage );
00039
00040 public:
00041 StaticImage();
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052 void setImageInfo(const std::string& _texture, const IntCoord& _coord, const IntSize& _tile);
00053
00054
00055
00056
00057 void setImageTexture(const std::string& _value);
00058
00060 void setImageRect(const IntRect& _value);
00061
00063 void setImageCoord(const IntCoord& _value);
00064
00066 void setImageTile(const IntSize& _value);
00067
00080 void setImageIndex(size_t _index);
00082 size_t getImageIndex();
00083
00085 void setImageRot(const float angle);
00086
00088 void setImageRotCenter(const IntPoint &_center);
00089
00090
00091
00092
00093
00095 size_t getItemCount() { return mItems.size(); }
00096
00098 void setItemSelect(size_t _index);
00100 size_t getItemSelect() { return mIndexSelect; }
00102 void resetItemSelect() { setItemSelect(ITEM_NONE); }
00103
00105 void insertItem(size_t _index, const IntCoord& _item);
00107 void addItem(const IntCoord& _item) { insertItem(ITEM_NONE, _item); }
00109 void setItem(size_t _index, const IntCoord& _item);
00110
00112 void deleteItem(size_t _index);
00114 void deleteAllItems();
00115
00116
00121 void addItemFrame(size_t _index, const IntCoord& _item);
00122
00128 void insertItemFrame(size_t _index, size_t _indexFrame, const IntCoord& _item);
00129
00134 void addItemFrameDublicate(size_t _index, size_t _indexSourceFrame);
00135
00141 void insertItemFrameDublicate(size_t _index, size_t _indexFrame, size_t _indexSourceFrame);
00142
00148 void setItemFrame(size_t _index, size_t _indexFrame, const IntCoord& _item);
00149
00154 void deleteItemFrame(size_t _index, size_t _indexFrame);
00155
00159 void deleteAllItemFrames(size_t _index);
00160
00165 void setItemFrameRate(size_t _index, float _rate);
00166
00170 float getItemFrameRate(size_t _index);
00171
00172
00173
00174
00175
00180 bool setItemResource(const Guid& _id);
00181
00186 bool setItemResource(const std::string& _name);
00187
00189 void setItemGroup(const std::string& _value);
00191 void setItemName(const std::string& _value);
00192
00196 void setItemResourcePtr(ResourceImageSetPtr _resource);
00198 void setItemResourceInfo(const ImageIndexInfo& _info);
00199
00201 ResourceImageSetPtr getItemResource() { return mResource; }
00203 void setItemResourceInfo(ResourceImageSetPtr _resource, const std::string& _group, const std::string& _name);
00204
00206 virtual void setProperty(const std::string& _key, const std::string& _value);
00207
00208
00209 virtual void _initialise(WidgetStyle _style, const IntCoord& _coord, Align _align, ResourceSkin* _info, WidgetPtr _parent, ICroppedRectangle * _croppedParent, IWidgetCreator * _creator, const std::string& _name);
00210
00211 protected:
00212 virtual ~StaticImage();
00213
00214 void baseChangeWidgetSkin(ResourceSkin* _info);
00215
00216 private:
00217 void initialiseWidgetSkin(ResourceSkin* _info);
00218 void shutdownWidgetSkin();
00219
00220 void frameEntered(float _frame);
00221
00222 void recalcIndexes();
00223 void updateSelectIndex(size_t _index);
00224
00225 void frameAdvise(bool _advise);
00226
00227 private:
00228
00229 IntRect mRectImage;
00230
00231 IntSize mSizeTile;
00232
00233 IntSize mSizeTexture;
00234
00235 size_t mIndexSelect;
00236
00237 VectorImages mItems;
00238
00239 bool mFrameAdvise;
00240 float mCurrentTime;
00241 size_t mCurrentFrame;
00242
00243 ResourceImageSetPtr mResource;
00244 std::string mItemName;
00245 std::string mItemGroup;
00246 std::string mCurrentTextureName;
00247
00248 };
00249
00250 }
00251
00252 #endif // __MYGUI_STATIC_IMAGE_H__