7#ifndef MYGUI_MULTI_LIST_BOX_H_
8#define MYGUI_MULTI_LIST_BOX_H_
46 void setPosition(
const IntPoint& _value)
override;
48 void setSize(
const IntSize& _value)
override;
50 void setCoord(
const IntCoord& _value)
override;
62 size_t getColumnCount()
const;
70 void insertColumnAt(
size_t _column,
const UString& _name,
int _width = 0,
Any _data =
Any::Null);
80 void removeColumnAt(
size_t _column);
83 void removeAllColumns();
86 void swapColumnsAt(
size_t _index1,
size_t _index2);
95 void setColumnNameAt(
size_t _column,
const UString& _name);
107 void setColumnWidthAt(
size_t _column,
int _width);
116 const UString& getColumnNameAt(
size_t _column)
const;
122 int getColumnWidthAt(
size_t _column)
const;
125 void sortByColumn(
size_t _column,
bool _backward =
false);
139 void setColumnResizingPolicyAt(
size_t _index,
ResizingPolicy _value);
145 void setColumnDataAt(
size_t _index,
Any _data);
148 void clearColumnDataAt(
size_t _index);
151 template <
typename ValueType>
155 return mVectorColumnInfo[_index].data.castType<ValueType>(_throw);
169 size_t getItemCount()
const;
178 void removeItemAt(
size_t _index);
181 void removeAllItems();
184 void swapItemsAt(
size_t _index1,
size_t _index2);
191 void setItemNameAt(
size_t _index,
const UString& _name);
194 const UString& getItemNameAt(
size_t _index)
const;
201 size_t getIndexSelected()
const;
204 void setIndexSelected(
size_t _index);
207 void clearIndexSelected();
214 void setItemDataAt(
size_t _index,
Any _data);
217 void clearItemDataAt(
size_t _index);
220 template <
typename ValueType>
223 return getSubItemDataAt<ValueType>(0, _index, _throw);
237 void setSubItemNameAt(
size_t _column,
size_t _index,
const UString& _name);
240 const UString& getSubItemNameAt(
size_t _column,
size_t _index)
const;
243 size_t findSubItemWith(
size_t _column,
const UString& _name);
249 void setSubItemDataAt(
size_t _column,
size_t _index,
Any _data);
252 void clearSubItemDataAt(
size_t _column,
size_t _index);
255 template <
typename ValueType>
258 MYGUI_ASSERT_RANGE(_index, mVectorColumnInfo.begin()->list->getItemCount(),
"MultiListBox::getSubItemDataAt");
261 return getSubItemAt(_column)->getItemDataAt<ValueType>(index, _throw);
298 size_t _getItemCount()
const override;
300 void _removeItemAt(
size_t _index)
override;
301 Widget* _getItemAt(
size_t _index)
const override;
302 void _setItemNameAt(
size_t _index,
const UString& _name)
override;
303 const UString& _getItemNameAt(
size_t _index)
const override;
306 void initialiseOverride()
override;
307 void shutdownOverride()
override;
309 void onWidgetCreated(
Widget* _widget)
override;
310 void onWidgetDestroy(
Widget* _widget)
override;
313 void notifyListChangePosition(
ListBox* _sender,
size_t _position);
314 void notifyListChangeFocus(
ListBox* _sender,
size_t _position);
315 void notifyListChangeScrollPosition(
ListBox* _sender,
size_t _position);
316 void notifyButtonClick(
Widget* _sender);
317 void notifyListSelectAccept(
ListBox* _sender,
size_t _position);
320 void updateColumns();
321 void redrawButtons();
322 void updateOnlyEmpty();
324 bool compare(
ListBox* _list,
size_t _left,
size_t _right);
328 Widget* getOrCreateSeparator(
size_t _index);
330 void updateBackSelected(
size_t _index);
344 typedef std::vector<ColumnInfo> VectorColumnInfo;
346 void frameEntered(
float _frame);
347 void frameAdvise(
bool _advise);
349 ListBox* getSubItemAt(
size_t _column)
const;
350 int getButtonHeight()
const;
354 void _swapColumnsAt(
size_t _index1,
size_t _index2);
356 int getColumnWidth(
size_t _index,
int _freeSpace,
size_t _countStars,
size_t _lastIndexStar,
int _starWidth)
const;
357 bool getUpdateByResize()
const;
358 int updateWidthColumns(
size_t& _countStars,
size_t& _lastIndexStar);
363 std::string mSkinButton;
364 std::string mSkinList;
367 VectorColumnInfo mVectorColumnInfo;
371 size_t mLastMouseFocusIndex;
374 size_t mSortColumnIndex;
377 std::string mSkinSeparator;
379 size_t mItemSelected;
#define MYGUI_ASSERT_RANGE(index, size, owner)
#define MYGUI_RTTI_DERIVED(DerivedType)
size_t convertToBack(size_t _index) const
widget description should be here.
widget description should be here.
EventPair< EventHandle_WidgetSizeT, EventHandle_MultiListPtrSizeT > eventListChangePosition
EventPair< EventHandle_WidgetSizeT, EventHandle_MultiListPtrSizeT > eventListSelectAccept
ValueType * getSubItemDataAt(size_t _column, size_t _index, bool _throw=true)
Get item data from specified position.
EventPair< EventHandle_MultiListPtrSizeTCUTFStringRefCUTFStringRefBoolRef, EventHandle_MultiListPtrSizeTSizeTSizeTBoolRef > requestOperatorLess
EventHandle_MultiListPtrCIBNotifyCellDataRef eventNotifyItem
ValueType * getColumnDataAt(size_t _index, bool _throw=true)
Get item data from specified position.
ValueType * getItemDataAt(size_t _index, bool _throw=true)
Get item data from specified position.
widget description should be here.
A UTF-16 string with implicit conversion to/from std::string and std::wstring.
delegates::CMultiDelegate5< Widget *, size_t, const UString &, const UString &, bool & > EventHandle_WidgetIntUTFStringUTFStringBool
delegates::CDelegate5< MultiListBox *, size_t, const UString &, const UString &, bool & > EventHandle_MultiListPtrSizeTCUTFStringRefCUTFStringRefBoolRef
delegates::CMultiDelegate2< MultiListBox *, const IBNotifyItemData & > EventHandle_MultiListPtrCIBNotifyCellDataRef
delegates::CMultiDelegate2< MultiListBox *, size_t > EventHandle_MultiListPtrSizeT
std::vector< Widget * > VectorWidgetPtr
delegates::CDelegate5< MultiListBox *, size_t, size_t, size_t, bool & > EventHandle_MultiListPtrSizeTSizeTSizeTBoolRef