49 updateSelectIndex(mIndexSelect);
59 if (mIndexSelect ==
ITEM_NONE) mIndexSelect = 0;
62 updateSelectIndex(mIndexSelect);
82 if (mIndexSelect ==
ITEM_NONE) mIndexSelect = 0;
85 updateSelectIndex(mIndexSelect);
102 updateSelectIndex(mIndexSelect);
106 void ImageBox::recalcIndexes()
112 if ((mSizeTile.
width <= 0) || (mSizeTile.
height <= 0))
124 int pos_h = mRectImage.
left;
125 int pos_v = mRectImage.
top;
127 for (
size_t v = 0; v < count_v; ++v)
129 for (
size_t h = 0; h < count_h; ++h)
132 pos_h += mSizeTile.
width;
134 pos_v += mSizeTile.
height;
135 pos_h = mRectImage.
left;
139 void ImageBox::updateSelectIndex(
size_t _index)
141 mIndexSelect = _index;
143 if ((_index ==
ITEM_NONE) || (_index >= mItems.size()))
153 VectorImages::iterator iter = mItems.begin() + _index;
155 if (iter->images.size() < 2)
169 if ( ! iter->images.empty())
171 _setUVSet(iter->images.front());
179 mItems.erase(mItems.begin() +
_index);
183 if (mItems.empty()) updateSelectIndex(
ITEM_NONE);
184 else if ((
_index < mIndexSelect) || (mIndexSelect == mItems.size())) updateSelectIndex(mIndexSelect--);
203 if ((mIndexSelect !=
ITEM_NONE) && (
_index <= mIndexSelect)) updateSelectIndex(mIndexSelect++);
210 VectorImages::iterator
iter = mItems.begin() +
_index;
211 iter->images.clear();
214 if (
_index == mIndexSelect) updateSelectIndex(mIndexSelect);
217 void ImageBox::frameEntered(
float _frame)
221 if (mItems.empty())
return;
222 VectorImages::iterator
iter = mItems.begin() + mIndexSelect;
223 if ((
iter->images.size() < 2) || (
iter->frame_rate == 0))
return;
227 while (mCurrentTime >=
iter->frame_rate)
229 mCurrentTime -=
iter->frame_rate;
231 if (mCurrentFrame >= (
iter->images.size())) mCurrentFrame = 0;
234 _setUVSet(iter->images[mCurrentFrame]);
240 VectorImages::iterator
iter = mItems.begin() +
_index;
241 iter->images.clear();
247 VectorImages::iterator
iter = mItems.begin() +
_index;
254 VectorImages::iterator
iter = mItems.begin() +
_index;
261 VectorImages::const_iterator
iter = mItems.begin() +
_index;
262 return iter->frame_rate;
269 VectorImages::iterator
iter = mItems.begin() +
_index;
278 VectorImages::iterator
iter = mItems.begin() +
_index;
290 VectorImages::iterator
iter = mItems.begin() +
_index;
303 VectorImages::iterator
iter = mItems.begin() +
_index;
313 VectorImages::iterator
iter = mItems.begin() +
_index;
322 mCurrentTextureName =
_info.texture;
327 if (
_info.frames.size() != 0)
329 std::vector<IntPoint>::const_iterator
iter =
_info.frames.begin();
342 updateSelectIndex(mIndexSelect);
358 if (mResource ==
nullptr &&
_resource !=
nullptr)
360 if (mItemGroup.empty())
373 else if (mItemName.empty())
391 if (!mResource || mItemGroup.empty() || mItemName.empty()) updateSelectIndex(
ITEM_NONE);
401 if (!mResource || mItemGroup.empty() || mItemName.empty()) updateSelectIndex(
ITEM_NONE);
407 if (mItemName ==
_name)
411 if (!mResource || mItemGroup.empty() || mItemName.empty()) updateSelectIndex(
ITEM_NONE);
420 if (!mResource || mItemGroup.empty() || mItemName.empty()) updateSelectIndex(
ITEM_NONE);
424 void ImageBox::frameAdvise(
bool _advise)
428 if ( ! mFrameAdvise )
439 mFrameAdvise =
false;
473 if (
_key ==
"ImageTexture")
477 else if (
_key ==
"ImageCoord")
481 else if (
_key ==
"ImageTile")
485 else if (
_key ==
"ImageIndex")
489 else if (
_key ==
"ImageResource")
493 else if (
_key ==
"ImageGroup")
497 else if (
_key ==
"ImageName")
511 return mItems.size();
#define MYGUI_ASSERT_RANGE_INSERT(index, size, owner)
#define MYGUI_ASSERT_RANGE(index, size, owner)
#define MYGUI_LOG(level, text)
static FloatRect convertTextureCoord(const IntCoord &_coord, const IntSize &_textureSize)
T::const_reference current()
static Gui & getInstance()
void setItemFrame(size_t _index, size_t _indexFrame, const IntCoord &_item)
IntSize getImageSize() const
void setItemFrameRate(size_t _index, float _rate)
void setImageInfo(const std::string &_texture, const IntCoord &_coord, const IntSize &_tile)
void insertItemFrame(size_t _index, size_t _indexFrame, const IntCoord &_item)
void shutdownOverride() override
void deleteAllItemFrames(size_t _index)
void setPropertyOverride(const std::string &_key, const std::string &_value) override
void resetItemSelect()
Reset item selection.
void setItemName(const std::string &_value)
void setItemSelect(size_t _index)
Select specified _index.
void setImageTile(const IntSize &_value)
bool setItemResource(const std::string &_name)
void setImageTexture(const std::string &_value)
void setImageIndex(size_t _index)
void setItemResourcePtr(ResourceImageSetPtr _resource)
void setItemResourceInfo(const ImageIndexInfo &_info)
ResourceImageSetPtr getItemResource() const
void setImageCoord(const IntCoord &_value)
void insertItem(size_t _index, const IntCoord &_item)
Insert an item into a list at a specified position.
void insertItemFrameDuplicate(size_t _index, size_t _indexFrame, size_t _indexSourceFrame)
void deleteItemFrame(size_t _index, size_t _indexFrame)
size_t getItemCount() const
Get number of items.
float getItemFrameRate(size_t _index) const
void addItemFrameDuplicate(size_t _index, size_t _indexSourceFrame)
void deleteAllItems()
Delete all items.
void addItemFrame(size_t _index, const IntCoord &_item)
void setItemGroup(const std::string &_value)
size_t getItemSelect() const
Get index of selected item (ITEM_NONE if none selected)
void setImageRect(const IntRect &_value)
void deleteItem(size_t _index)
Delete item at a specified position.
void addItem(const IntCoord &_item)
Add an item to the end of a list.
void setItem(size_t _index, const IntCoord &_item)
Replace an item at a specified position.
size_t getImageIndex() const
ImageIndexInfo getIndexInfo(const std::string &_group, const std::string &_index) const
static ResourceManager & getInstance()
ISubWidgetRect * getSubWidgetMain() const
const std::string & _getTextureName() const
void _setTextureName(const std::string &_texture)
const IntSize & getTextureSize(const std::string &_texture, bool _cache=true)
const size_t IMAGE_MAX_INDEX
types::TCoord< int > IntCoord
delegates::DelegateFunction< Args... > * newDelegate(void(*_func)(Args... args))
types::TRect< float > FloatRect
std::string print() const
void set(T const &_left, T const &_top, T const &_right, T const &_bottom)
std::string print() const
void set(T const &_width, T const &_height)