⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 multicolumnlist.pkg

📁 cegui界面库
💻 PKG
字号:
/***********************************************************************
	MultiColumnList
***********************************************************************/
struct MCLGridRef
{
	unsigned int row;
	unsigned int column;

	//bool operator< (const MCLGridRef& rhs) const;
	//bool operator>= (const MCLGridRef& rhs) const;
	bool operator== (const MCLGridRef& rhs) const;

	MCLGridRef(unsigned int r, unsigned int c);
};


/***********************************************************************
	MultiColumnList
***********************************************************************/
class MultiColumnList : public Window
{
	enum SelectionMode
	{
		RowSingle,
		RowMultiple,
		CellSingle,
		CellMultiple,
		NominatedColumnSingle,
		NominatedColumnMultiple,
		ColumnSingle,
		ColumnMultiple,
		NominatedRowSingle,
		NominatedRowMultiple
	};

	bool isUserSortControlEnabled() const;
	bool isUserColumnSizingEnabled() const;
	bool isUserColumnDraggingEnabled() const;

	unsigned int getColumnCount() const;
	unsigned int getRowCount() const;
	unsigned int getSortColumn() const;
	unsigned int getColumnWithID(unsigned int col_id) const;
	unsigned int getColumnWithHeaderText(string text) const;

	UDim getTotalColumnHeadersWidth() const;
	UDim getColumnHeaderWidth(unsigned int col_idx) const;

	ListHeaderSegment::SortDirection getSortDirection() const;
	ListHeaderSegment& getHeaderSegmentForColumn(unsigned int col_idx) const;

	unsigned int getItemRowIndex(const ListboxItem* item) const;
	unsigned int getItemColumnIndex(const ListboxItem* item) const;

	MCLGridRef getItemGridReference(const ListboxItem* item) const;
	ListboxItem* getItemAtGridReference(const MCLGridRef& grid_ref) const;

	bool isListboxItemInColumn(const ListboxItem* item, unsigned int col_idx) const;
	bool isListboxItemInRow(const ListboxItem* item, unsigned int row_idx) const;
	bool isListboxItemInList(const ListboxItem* item) const;

	ListboxItem* findColumnItemWithText(string text, unsigned int col_idx, const ListboxItem* start_item) const;
	ListboxItem* findRowItemWithText(string text, unsigned int row_idx, const ListboxItem* start_item) const;
	ListboxItem* findListItemWithText(string text, const ListboxItem* start_item) const;
	ListboxItem* getFirstSelectedItem() const;
	ListboxItem* getNextSelected(const ListboxItem* start_item) const;

	unsigned int getSelectedCount() const;
	bool isItemSelected(const MCLGridRef& grid_ref) const;

	unsigned int getNominatedSelectionColumnID() const;
	unsigned int getNominatedSelectionColumn() const;
	unsigned int getNominatedSelectionRow() const;

	SelectionMode getSelectionMode() const;

	bool isVertScrollbarAlwaysShown() const;
	bool isHorzScrollbarAlwaysShown() const;

	unsigned int getColumnID(unsigned int col_idx) const;
	unsigned int getRowID(unsigned int row_idx) const;
    unsigned int getRowWithID(unsigned int row_id) const;

    Rect getListRenderArea() const;

    Scrollbar* getVertScrollbar() const;
    Scrollbar* getHorzScrollbar() const;
    ListHeader* getListHeader() const;

    float getTotalRowsHeight() const;
    float getWidestColumnItemWidth(unsigned int col_idx) const;
    float getHighestRowItemHeight(unsigned int row_idx) const;

	void resetList();

	void addColumn(string text, unsigned int col_id, const UDim& width);
	void insertColumn(string text, unsigned int col_id, const UDim& width, unsigned int position);
	void removeColumn(unsigned int col_idx);
	void removeColumnWithID(unsigned int col_id);
	void moveColumn(unsigned int col_idx, unsigned int position);
	void moveColumnWithID(unsigned int col_id, unsigned int position);

	unsigned int addRow();
	unsigned int addRow(ListboxItem* item, unsigned int col_id);
	unsigned int insertRow(unsigned int row_idx);
	unsigned int insertRow(ListboxItem* item, unsigned int col_id, unsigned int row_idx);
	void removeRow(unsigned int row_idx);

	void setItem(ListboxItem* item, const MCLGridRef& position);
	void setItem(ListboxItem* item, unsigned int col_id, unsigned int row_idx);

	void setSelectionMode(MultiColumnList::SelectionMode sel_mode);
	void setNominatedSelectionColumnID(unsigned int col_id);
	void setNominatedSelectionColumn(unsigned int col_idx);
	void setNominatedSelectionRow(unsigned int row_idx);

	void setSortDirection(ListHeaderSegment::SortDirection direction);
	void setSortColumn(unsigned int col_idx);
	void setSortColumnByID(unsigned int col_id);

	void setShowVertScrollbar(bool setting);
	void setShowHorzScrollbar(bool setting);

	void clearAllSelections();

	void setItemSelectState(ListboxItem* item, bool state);
	void setItemSelectState(const MCLGridRef& grid_ref, bool state);

	void handleUpdatedItemData();

	void setColumnHeaderWidth(unsigned int col_idx, const UDim& width);
	void setUserSortControlEnabled(bool setting);
	void setUserColumnSizingEnabled(bool setting);
	void setUserColumnDraggingEnabled(bool setting);
	void autoSizeColumnHeader(unsigned int col_idx);
	
	void setRowID(unsigned int row_idx, unsigned int row_id);
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -