/************************************************************************ filename: CEGUIMultiColumnListProperties.h created: 11/7/2004 author: Paul D Turner purpose: Interface to multi-column list properties. *************************************************************************/ /************************************************************************* Crazy Eddie's GUI System (http://www.cegui.org.uk) Copyright (C)2004 - 2005 Paul D Turner (paul@cegui.org.uk) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *************************************************************************/ #ifndef _CEGUIMultiColumnListProperties_h_ #define _CEGUIMultiColumnListProperties_h_ #include "CEGUIProperty.h" // Start of CEGUI namespace section namespace CEGUI { // Start of MultiColumnListProperties namespace section /*! \brief Namespace containing all classes that make up the properties interface for the MultiColumnList class */ namespace MultiColumnListProperties { /*! \brief Property to access the setting for user sizing of the column headers. \par Usage: - Name: ColumnsSizable - Format: "[text]" \par Where [Text] is: - "True" to indicate the column headers can be sized by the user. - "False" to indicate the column headers can not be sized by the user. */ class ColumnsSizable : public Property { public: ColumnsSizable() : Property( "ColumnsSizable", "Property to get/set the setting for user sizing of the column headers. Value is either \"True\" or \"False\".", "True") {} String get(const PropertyReceiver* receiver) const; void set(PropertyReceiver* receiver, const String& value); }; /*! \brief Property to access the setting for user moving of the column headers. \par Usage: - Name: ColumnsMovable - Format: "[text]" \par Where [Text] is: - "True" to indicate the column headers can be moved by the user. - "False" to indicate the column headers can not be moved by the user. */ class ColumnsMovable : public Property { public: ColumnsMovable() : Property( "ColumnsMovable", "Property to get/set the setting for user moving of the column headers. Value is either \"True\" or \"False\".", "True") {} String get(const PropertyReceiver* receiver) const; void set(PropertyReceiver* receiver, const String& value); }; /*! \brief Property to access the setting for user modification of the sort column & direction. \par Usage: - Name: SortSettingEnabled - Format: "[text]" \par Where [Text] is: - "True" to indicate the user may modify the sort column and direction by clicking the header segments. - "False" to indicate the user may not modify the sort column or direction. */ class SortSettingEnabled : public Property { public: SortSettingEnabled() : Property( "SortSettingEnabled", "Property to get/set the setting for for user modification of the sort column & direction. Value is either \"True\" or \"False\".", "True") {} String get(const PropertyReceiver* receiver) const; void set(PropertyReceiver* receiver, const String& value); }; /*! \brief Property to access the sort direction setting of the list. \par Usage: - Name: SortDirection - Format: "[text]" \par Where [Text] is one of: - "Ascending" - "Descending" - "None" */ class SortDirection : public Property { public: SortDirection() : Property( "SortDirection", "Property to get/set the sort direction setting of the list. Value is the text of one of the SortDirection enumerated value names.", "None") {} String get(const PropertyReceiver* receiver) const; void set(PropertyReceiver* receiver, const String& value); }; /*! \brief Property to access the current sort column (via ID code). \par Usage: - Name: SortColumnID - Format: "[uint]". \par Where: - [uint] is any unsigned integer value. */ class SortColumnID : public Property { public: SortColumnID() : Property( "SortColumnID", "Property to get/set the current sort column (via ID code). Value is an unsigned integer number.", "0") {} String get(const PropertyReceiver* receiver) const; void set(PropertyReceiver* receiver, const String& value); }; /*! \brief Property to access the nominated selection column (via ID). \par Usage: - Name: NominatedSelectionColumnID - Format: "[uint]". \par Where: - [uint] is any unsigned integer value representing the ID code of the column to be used. */ class NominatedSelectionColumnID : public Property { public: NominatedSelectionColumnID() : Property( "NominatedSelectionColumnID", "Property to get/set the nominated selection column (via ID). Value is an unsigned integer number.", "0") {} String get(const PropertyReceiver* receiver) const; void set(PropertyReceiver* receiver, const String& value); }; /*! \brief Property to access the nominated selection row. \par Usage: - Name: NominatedSelectionRow - Format: "[uint]". \par Where: - [uint] is any unsigned integer value representing the index of the row to be used. */ class NominatedSelectionRow : public Property { public: NominatedSelectionRow() : Property( "NominatedSelectionRow", "Property to get/set the nominated selection row. Value is an unsigned integer number.", "0") {} String get(const PropertyReceiver* receiver) const; void set(PropertyReceiver* receiver, const String& value); }; /*! \brief Property to access the 'always show' setting for the vertical scroll bar of the list box. \par Usage: - Name: ForceVertScrollbar - Format: "[text]" \par Where [Text] is: - "True" to indicate that the vertical scroll bar will always be shown. - "False" to indicate that the vertical scroll bar will only be shown when it is needed. */ class ForceVertScrollbar : public Property { public: ForceVertScrollbar() : Property( "ForceVertScrollbar", "Property to get/set the 'always show' setting for the vertical scroll bar of the list box. Value is either \"True\" or \"False\".", "False") {} String get(const PropertyReceiver* receiver) const; void set(PropertyReceiver* receiver, const String& value); }; /*! \brief Property to access the 'always show' setting for the horizontal scroll bar of the list box. \par Usage: - Name: ForceHorzScrollbar - Format: "[text]" \par Where [Text] is: - "True" to indicate that the horizontal scroll bar will always be shown. - "False" to indicate that the horizontal scroll bar will only be shown when it is needed. */ class ForceHorzScrollbar : public Property { public: ForceHorzScrollbar() : Property( "ForceHorzScrollbar", "Property to get/set the 'always show' setting for the horizontal scroll bar of the list box. Value is either \"True\" or \"False\".", "False") {} String get(const PropertyReceiver* receiver) const; void set(PropertyReceiver* receiver, const String& value); }; /*! \brief Property to access the selection mode setting of the list. \par Usage: - Name: SelectionMode - Format: "[text]" \par Where [Text] is one of: - "RowSingle" - "RowMultiple" - "CellSingle" - "CellMultiple" - "NominatedColumnSingle" - "NominatedColumnMultiple" - "ColumnSingle" - "ColumnMultiple" - "NominatedRowSingle" - "NominatedRowMultiple" */ class SelectionMode : public Property { public: SelectionMode() : Property( "SelectionMode", "Property to get/set the selection mode setting of the list. Value is the text of one of the SelectionMode enumerated value names.", "RowSingle") {} String get(const PropertyReceiver* receiver) const; void set(PropertyReceiver* receiver, const String& value); }; /*! \brief Property to access a column. \par Usage: - Name: ColumnHeader - Format: "text:[caption] width:[float] id:[uint]" \par where: - [caption] is the column header caption text. - [float] is the width of the column. - [uint] is the unique ID for the column. */ class ColumnHeader : public Property { public: ColumnHeader() : Property( "ColumnHeader", "Property to set up a column (there is no getter for this property)", "") {} String get(const PropertyReceiver* receiver) const; void set(PropertyReceiver* receiver, const String& value); }; /*! \brief Property to access the number of rows in the list (read-only) \par Usage: - Name: RowCount - Format: "" (property is read-only). */ class RowCount : public Property { public: RowCount() : Property( "RowCount", "Property to access the number of rows in the list (read only)", "") {} String get(const PropertyReceiver* receiver) const; void set(PropertyReceiver* receiver, const String& value); }; } // End of MultiColumnListProperties namespace section } // End of CEGUI namespace section #endif // end of guard _CEGUIMultiColumnListProperties_h_