23 #ifndef __MYGUI_LIST_CTRL_H__
24 #define __MYGUI_LIST_CTRL_H__
54 size_t getItemCount()
const {
return mItemsInfo.size(); }
63 void removeItemAt(
size_t _index);
66 void removeAllItems();
69 void redrawItemAt(
size_t _index);
82 void setIndexSelected(
size_t _index);
92 void setItemDataAt(
size_t _index,
Any _data);
98 template <
typename ValueType>
99 ValueType * getItemDataAt(
size_t _index,
bool _throw =
true)
102 return mItemsInfo[_index].data.castType<ValueType>(_throw);
107 size_t getIndexByWidget(
Widget* _widget);
117 Widget* getWidgetByIndex(
size_t _index);
123 virtual void setPosition(
const IntPoint& _value);
125 virtual void setSize(
const IntSize& _value);
127 virtual void setCoord(
const IntCoord& _value);
198 virtual void onMouseButtonPressed(
int _left,
int _top,
MouseButton _id);
199 virtual void onMouseButtonReleased(
int _left,
int _top,
MouseButton _id);
200 virtual void onMouseDrag(
int _left,
int _top);
202 virtual void onMouseWheel(
int _rel);
203 virtual void onKeyLostFocus(
Widget* _new);
204 virtual void onKeySetFocus(
Widget* _old);
208 void notifyScrollChangePosition(
VScroll* _sender,
size_t _index);
209 void notifyMouseWheel(
Widget* _sender,
int _rel);
210 void notifyRootMouseChangeFocus(
Widget* _sender,
bool _focus);
211 void notifyMouseButtonDoubleClick(
Widget* _sender);
212 void _requestGetContainer(
Widget* _sender,
Widget*& _container,
size_t& _index);
213 void notifyMouseDrag(
Widget* _sender,
int _left,
int _top);
214 void notifyMouseButtonPressed(
Widget* _sender,
int _left,
int _top,
MouseButton _id);
215 void notifyMouseButtonReleased(
Widget* _sender,
int _left,
int _top,
MouseButton _id);
218 virtual void removeDropItems();
219 virtual void updateDropItems();
220 virtual void updateDropItemsState(
const DDWidgetState& _state);
223 void updateMetrics();
226 void _updateAllVisible(
size_t _index,
bool _needUpdateContetntSize,
bool _update);
228 void updateFromResize();
232 Widget* getItemWidget(
size_t _index);
234 void _setContainerItemInfo(
size_t _index,
bool _set,
bool _accept);
237 void resetCurrentActiveItem();
239 void findCurrentActiveItem();
242 virtual size_t _getContainerIndex(
const IntPoint& _point);
245 virtual void _resetContainer(
bool _update);
251 void shutdownWidgetSkin();
255 virtual IntSize getContentSize();
256 virtual IntPoint getContentPosition();
257 virtual IntSize getViewSize()
const;
258 virtual void eraseContent();
259 virtual size_t getHScrollPage();
260 virtual size_t getVScrollPage();
261 virtual Align getContentAlign();
262 virtual void setContentPosition(
const IntPoint& _point);
264 Widget* _getClientWidget();
265 const Widget* _getClientWidget()
const;
289 VectorItemInfo mItemsInfo;
294 std::string mDragLayer;
296 size_t mScrollViewPage;
301 #endif // __MYGUI_LIST_CTRL_H__