X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/928f1a076c97a28d27cf03fa04af1131e173c188..2e18fe7139558b3cb592a04a4e4668319a966ebf:/docs/doxygen/overviews/grid.h diff --git a/docs/doxygen/overviews/grid.h b/docs/doxygen/overviews/grid.h index 3cc342c8c2..70b886d17a 100644 --- a/docs/doxygen/overviews/grid.h +++ b/docs/doxygen/overviews/grid.h @@ -3,7 +3,7 @@ // Purpose: topic overview // Author: wxWidgets team // RCS-ID: $Id$ -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// /** @@ -24,8 +24,11 @@ Classes: wxGrid @section overview_grid_intro Introduction -wxGrid and its related classes are used for displaying and editing tabular data. - +wxGrid and its related classes are used for displaying and editing tabular +data. wxGrid supports custom attributes for the table cells, allowing to +completely customize its appearance and uses a separate grid table +(wxGridTableBase-derived) class for the data management meaning that it +can be used to display arbitrary amounts of data. @section overview_grid_simpleexample Getting started: a simple example @@ -70,20 +73,85 @@ dialog constructor and illustrates some of the formatting functions. grid->SetCellValue(0, 6, "3.1415"); @endcode +Here is a list of classes related to wxGrid: + +@li wxGrid: The main grid control class itself. +@li wxGridTableBase: The base class for grid data provider. +@li wxGridStringTable: Simple wxGridTableBase implementation supporting only + string data items and storing them all in memory (hence suitable for not + too large grids only). +@li wxGridCellAttr: A cell attribute, allowing to customize its appearance as + well as the renderer and editor used for displaying and editing it. +@li wxGridCellAttrProvider: The object responsible for storing and retrieving + the cell attributes. +@li wxGridColLabelWindow: The window showing the grid columns labels. +@li wxGridRowLabelWindow: The window showing the grid rows labels. +@li wxGridCornerLabelWindow: The window used in the upper left grid corner. +@li wxGridWindow: The window representing the main part of the grid. +@li wxGridCellRenderer: Base class for objects used to display a cell value. +@li wxGridCellStringRenderer: Renderer showing the cell as a text string. +@li wxGridCellNumberRenderer: Renderer showing the cell as an integer number. +@li wxGridCellFloatRenderer: Renderer showing the cell as a floating point + number. +@li wxGridCellBoolRenderer: Renderer showing the cell as checked or unchecked + box. +@li wxGridCellEditor: Base class for objects used to edit the cell value. +@li wxGridCellStringEditor: Editor for cells containing text strings. +@li wxGridCellNumberEditor: Editor for cells containing integer numbers. +@li wxGridCellFloatEditor: Editor for cells containing floating point numbers. +@li wxGridCellBoolEditor: Editor for boolean-valued cells. +@li wxGridCellChoiceEditor: Editor allowing to choose one of the predefined + strings (and possibly enter new one). +@li wxGridEvent: The event sent by most of wxGrid actions. +@li wxGridSizeEvent: The special event sent when a grid column or row is + resized. +@li wxGridRangeSelectEvent: The special event sent when a range of cells is + selected in the grid. +@li wxGridEditorCreatedEvent: The special event sent when a cell editor is + created. +@li wxGridSelection: The object efficiently representing the grid selection. +@li wxGridTypeRegistry: Contains information about the data types supported by + the grid. @section overview_grid_complexexample A more complex example -@todo Yet to be written +@todo To be written @section overview_grid_classrelations How the wxGrid classes relate to each other -@todo Yet to be written +@todo To be written @section overview_grid_keyboardmouse Keyboard and mouse actions -@todo Yet to be written +@todo To be written -*/ +@section overview_grid_resizing Column and row sizes + +@b NB: This section will discuss the resizing of wxGrid rows only to avoid +repetitions but everything in it also applies to grid columns, just replace @c +Row in the method names with @c Col. + +Initially all wxGrid rows have the same height, which can be modified for all +of them at once using wxGrid::SetDefaultRowSize(). However, unlike simpler +controls such as wxListBox or wxListCtrl, wxGrid also allows its rows to be +individually resized to have their own height using wxGrid::SetRowSize() (as a +special case, a row may be hidden entirely by setting its size to 0, which is +done by a helper wxGrid::HideRow() method). It is also possible to resize a row +to fit its contents with wxGrid::AutoSizeRow() or do it for all rows at once +with wxGrid::AutoSizeRows(). +Additionally, by default the user can also drag the row separator lines to +resize the rows interactively. This can be forbidden completely by calling +wxGrid::DisableDragRowSize() or just for the individual rows using +wxGrid::DisableRowResize(). + +If you do allow the user to resize the grid rows, it may be a good idea to save +their heights and restore it when the grid is recreated the next time (possibly +during a next program execution): the functions wxGrid::GetRowSizes() and +wxGrid::SetRowSizes() can help with this, you will just need to serialize +wxGridSizesInfo structure returned by the former in some way and deserialize it +back before calling the latter. + +*/