/*!
@file
@author Albert Semenov
@date 11/2007
*/
/*
This file is part of MyGUI.
MyGUI is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
MyGUI is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with MyGUI. If not, see
+---+---+---+ | 0 | 1 | 2 | +---+---+---+ | 3 | 4 | 5 | +---+---+---+*/ void setImageIndex(size_t _index); /** Get current tile index */ size_t getImageIndex() const; //------------------------------------------------------------------------------// // The expanded interface //------------------------------------------------------------------------------// //! Get number of items size_t getItemCount() const; //! Select specified _index void setItemSelect(size_t _index); //! Get index of selected item (ITEM_NONE if none selected) size_t getItemSelect() const; //! Reset item selection void resetItemSelect(); //! Insert an item into a list at a specified position void insertItem(size_t _index, const IntCoord& _item); //! Add an item to the end of a list void addItem(const IntCoord& _item); //! Replace an item at a specified position void setItem(size_t _index, const IntCoord& _item); //! Delete item at a specified position void deleteItem(size_t _index); //! Delete all items void deleteAllItems(); // работа с фреймами анимированных индексов /** Add frame @param _index Image item index @param _item Frame coordinates at image texture */ void addItemFrame(size_t _index, const IntCoord& _item); /** Insert frame @param _index Image item index @param _indexFrame Frame index where we insert frame @param _item Frame coordinates at image texture */ void insertItemFrame(size_t _index, size_t _indexFrame, const IntCoord& _item); /** Add copy of frame (similar to ImageBox::addItemFrame but we copy frame coordinates) @param _index Image item index @param _indexSourceFrame Frame index of frame that we copying */ void addItemFrameDublicate(size_t _index, size_t _indexSourceFrame); /** Insert copy of frame (similar to ImageBox::insertItemFrame but we copy frame coordinates) @param _index Image item index @param _indexFrame Frame index where we insert frame @param _indexSourceFrame Frame index of frame that we copying */ void insertItemFrameDublicate(size_t _index, size_t _indexFrame, size_t _indexSourceFrame); /** Change frame @param _index Image item index @param _indexFrame Frame index to change @param _item Frame coordinates at image texture */ void setItemFrame(size_t _index, size_t _indexFrame, const IntCoord& _item); /** Delete frame @param _index Image item index @param _indexFrame Frame index that we delete */ void deleteItemFrame(size_t _index, size_t _indexFrame); /** Delete all frames @param _index Image item index */ void deleteAllItemFrames(size_t _index); /** Set item frame rate @param _index Image item index @param _rate Duration of one frame in seconds */ void setItemFrameRate(size_t _index, float _rate); /** Get item frame rate @param _index Image item index */ float getItemFrameRate(size_t _index); //------------------------------------------------------------------------------// // The interface with support of resources //------------------------------------------------------------------------------// /** Select current items resource used in ImageBox @param _name Resource name @return false if resource with such name not exist */ bool setItemResource(const std::string& _name); /** Select current item group */ void setItemGroup(const std::string& _value); /** Select current item mane */ void setItemName(const std::string& _value); /** Select current items resource used in ImageBox @param _resource Resource pointer */ void setItemResourcePtr(ResourceImageSetPtr _resource); /** Set current item */ void setItemResourceInfo(const ImageIndexInfo& _info); /** Get current items resource used in ImageBox */ ResourceImageSetPtr getItemResource() const; /** Select current item resource, group and name */ void setItemResourceInfo(ResourceImageSetPtr _resource, const std::string& _group, const std::string& _name); protected: virtual void shutdownOverride(); virtual void setPropertyOverride(const std::string& _key, const std::string& _value); private: void frameEntered(float _frame); void recalcIndexes(); void updateSelectIndex(size_t _index); void frameAdvise(bool _advise); void _setUVSet(const FloatRect& _rect); private: // кусок в текстуре наших картинок IntRect mRectImage; // размер одной картинки IntSize mSizeTile; // размер текстуры IntSize mSizeTexture; // текущая картинка size_t mIndexSelect; VectorImages mItems; bool mFrameAdvise; float mCurrentTime; size_t mCurrentFrame; ResourceImageSetPtr mResource; std::string mItemName; std::string mItemGroup; std::string mCurrentTextureName; }; } // namespace MyGUI #endif // __MYGUI_IMAGE_BOX_H__