22 #ifndef __MYGUI_ITEM_BOX_H__
23 #define __MYGUI_ITEM_BOX_H__
55 size_t getItemCount() const;
58 void insertItemAt(
size_t _index,
Any _data =
Any::Null);
61 void addItem(
Any _data =
Any::Null);
64 void removeItemAt(
size_t _index);
67 void removeAllItems();
70 void redrawItemAt(
size_t _index);
73 void redrawAllItems();
80 size_t getIndexSelected() const;
83 void setIndexSelected(
size_t _index);
86 void clearIndexSelected();
93 void setItemDataAt(
size_t _index,
Any _data);
96 void clearItemDataAt(
size_t _index);
99 template <typename ValueType>
100 ValueType* getItemDataAt(
size_t _index,
bool _throw = true)
103 return mItemsInfo[_index].data.castType<ValueType>(_throw);
108 void setVerticalAlignment(
bool _value);
110 bool getVerticalAlignment()
const;
113 size_t getIndexByWidget(
Widget* _widget);
123 Widget* getWidgetByIndex(
size_t _index);
129 virtual void setPosition(
const IntPoint& _value);
131 virtual void setSize(
const IntSize& _value);
133 virtual void setCoord(
const IntCoord& _value);
136 void setPosition(
int _left,
int _top);
138 void setSize(
int _width,
int _height);
140 void setCoord(
int _left,
int _top,
int _width,
int _height);
202 virtual void _resetContainer(
bool _update);
205 virtual void initialiseOverride();
206 virtual void shutdownOverride();
216 virtual void onMouseButtonPressed(
int _left,
int _top,
MouseButton _id);
217 virtual void onMouseButtonReleased(
int _left,
int _top,
MouseButton _id);
218 virtual void onMouseDrag(
int _left,
int _top,
MouseButton _id);
220 virtual void onMouseWheel(
int _rel);
221 virtual void onKeyLostFocus(
Widget* _new);
222 virtual void onKeySetFocus(
Widget* _old);
226 void notifyScrollChangePosition(
ScrollBar* _sender,
size_t _index);
227 void notifyMouseWheel(
Widget* _sender,
int _rel);
228 void notifyRootMouseChangeFocus(
Widget* _sender,
bool _focus);
229 void notifyMouseButtonDoubleClick(
Widget* _sender);
230 virtual size_t _getItemIndex(
Widget* _item);
232 void notifyMouseButtonPressed(
Widget* _sender,
int _left,
int _top,
MouseButton _id);
233 void notifyMouseButtonReleased(
Widget* _sender,
int _left,
int _top,
MouseButton _id);
236 virtual void removeDropItems();
237 virtual void updateDropItems();
238 virtual void updateDropItemsState(
const DDWidgetState& _state);
241 void updateMetrics();
244 void _updateAllVisible(
bool _redraw);
246 void updateFromResize();
250 Widget* getItemWidget(
size_t _index);
252 void _setContainerItemInfo(
size_t _index,
bool _set,
bool _accept);
255 void resetCurrentActiveItem();
257 void findCurrentActiveItem();
260 virtual size_t _getContainerIndex(
const IntPoint& _point);
262 virtual void setPropertyOverride(
const std::string& _key,
const std::string& _value);
265 size_t calcIndexByWidget(
Widget* _widget);
267 void requestItemSize();
269 virtual IntSize getContentSize();
270 virtual IntPoint getContentPosition();
272 virtual void eraseContent();
273 virtual size_t getHScrollPage();
274 virtual size_t getVScrollPage();
275 virtual Align getContentAlign();
276 virtual void setContentPosition(
const IntPoint& _point);
278 IntRect _getClientAbsoluteRect();
279 Widget* _getClientWidget();
294 int mCountItemInLine;
299 int mFirstVisibleIndex;
302 int mFirstOffsetIndex;
324 std::string mDragLayer;
329 #endif // __MYGUI_ITEM_BOX_H__
delegates::CMultiDelegate2< ItemBox *, const IBNotifyItemData & > EventHandle_ItemBoxPtrCIBNotifyCellDataRef
EventHandle_ItemBoxPtrSizeT eventSelectItemAccept
EventHandle_ItemBoxPtrWidgetPtrCIBCellDrawInfoRef requestDrawItem
delegates::CDelegate3< ItemBox *, Widget *, const IBDrawItemInfo & > EventHandle_ItemBoxPtrWidgetPtrCIBCellDrawInfoRef
delegates::CMultiDelegate2< ItemBox *, size_t > EventHandle_ItemBoxPtrSizeT
EventHandle_ItemBoxPtrSizeT eventMouseItemActivate
EventHandle_ItemBoxPtrWidgetPtr requestCreateWidgetItem
#define MYGUI_RTTI_DERIVED(DerivedType)
delegates::CDelegate2< ItemBox *, Widget * > EventHandle_ItemBoxPtrWidgetPtr
std::vector< Widget * > VectorWidgetPtr
std::vector< ItemDataInfo > VectorItemInfo
EventHandle_ItemBoxPtrCIBNotifyCellDataRef eventNotifyItem
delegates::CDelegate3< ItemBox *, IntCoord &, bool > EventHandle_ItemBoxPtrIntCoordRefBool
#define MYGUI_ASSERT_RANGE(index, size, owner)
EventHandle_ItemBoxPtrIntCoordRefBool requestCoordItem
EventHandle_ItemBoxPtrSizeT eventChangeItemPosition