7#ifndef MYGUI_ITEM_BOX_H_
8#define MYGUI_ITEM_BOX_H_
41 size_t getItemCount()
const;
44 void insertItemAt(
size_t _index,
Any _data = Any::Null,
bool update =
true);
47 void addItem(
Any _data = Any::Null,
bool update =
true);
50 void removeItemAt(
size_t _index,
bool update =
true);
53 void removeAllItems();
56 void redrawItemAt(
size_t _index);
59 void redrawAllItems();
66 size_t getIndexSelected()
const;
69 void setIndexSelected(
size_t _index);
72 void clearIndexSelected();
82 void clearItemDataAt(
size_t _index);
85 template<
typename ValueType>
94 void setVerticalAlignment(
bool _vert);
96 bool getVerticalAlignment()
const;
102 Widget* getWidgetDrag()
const;
121 using Widget::setPosition;
122 using Widget::setSize;
123 using Widget::setCoord;
126 void setVisibleVScroll(
bool _value);
128 bool isVisibleVScroll()
const;
131 void setVisibleHScroll(
bool _value);
133 bool isVisibleHScroll()
const;
140 IntSize getViewSize()
const override;
195 void _resetContainer(
bool _update)
override;
198 void initialiseOverride()
override;
199 void shutdownOverride()
override;
217 void onMouseWheel(
int _rel)
override;
227 size_t _getItemIndex(
Widget*
_item)
const override;
233 void removeDropItems()
override;
234 void updateDropItems()
override;
238 void updateMetrics();
241 void _updateAllVisible(
bool _redraw);
243 void updateFromResize();
252 void resetCurrentActiveItem();
254 void findCurrentActiveItem();
259 void setPropertyOverride(std::string_view
_key, std::string_view
_value)
override;
264 void requestItemSize();
266 IntSize getContentSize()
const override;
267 IntPoint getContentPosition()
const override;
268 void eraseContent()
override;
269 size_t getHScrollPage()
const override;
270 size_t getVScrollPage()
const override;
271 Align getContentAlign()
const override;
287 int mCountItemInLine{0};
292 int mFirstVisibleIndex{0};
295 int mFirstOffsetIndex{0};
307 bool mIsFocus{
false};
310 VectorItemInfo mItemsInfo;
312 Widget* mItemDrag{
nullptr};
315 bool mAlignVert{
true};
317 std::string mDragLayer;
#define MYGUI_ASSERT_RANGE(index, size, owner)
#define MYGUI_RTTI_DERIVED(DerivedType)
widget description should be here.
widget description should be here.
EventHandle_ItemBoxPtrWidgetPtrCIBCellDrawInfoRef requestDrawItem
EventHandle_ItemBoxPtrSizeT eventMouseItemActivate
EventHandle_ItemBoxPtrWidgetPtr requestCreateWidgetItem
EventHandle_ItemBoxPtrSizeT eventSelectItemAccept
std::vector< ItemDataInfo > VectorItemInfo
ValueType * getItemDataAt(size_t _index, bool _throw=true)
Get item data from specified position.
EventHandle_ItemBoxPtrIntCoordRefBool requestCoordItem
EventHandle_ItemBoxPtrCIBNotifyCellDataRef eventNotifyItem
EventHandle_ItemBoxPtrSizeT eventChangeItemPosition
constexpr size_t ITEM_NONE
std::vector< Widget * > VectorWidgetPtr
types::TPoint< int > IntPoint