X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c7d4ca810570664b68f7a4f0f11d2a5a64aa6163..9f9305c0d2a0c4aa55470c882a13861c284f6af2:/docs/doxygen/overviews/grid.h?ds=sidebyside diff --git a/docs/doxygen/overviews/grid.h b/docs/doxygen/overviews/grid.h index cb29b5e16d..d37678d374 100644 --- a/docs/doxygen/overviews/grid.h +++ b/docs/doxygen/overviews/grid.h @@ -3,74 +3,64 @@ // Purpose: topic overview // Author: wxWidgets team // RCS-ID: $Id$ -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// /** @page overview_grid wxGrid Overview -Classes: wxGrid - -@li @ref overview_grid_intro -@li @ref overview_grid_simpleexample -@li @ref overview_grid_complexexample -@li @ref overview_grid_classrelations -@li @ref overview_grid_keyboardmouse - - -
- - -@section overview_grid_intro Introduction +@tableofcontents 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. +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 -For simple applications you need only refer to the wxGrid class in your -code. This example shows how you might create a grid in a frame or -dialog constructor and illustrates some of the formatting functions. + +@section overview_grid_simpleexample Getting Started + +For simple applications you need only refer to the wxGrid class in your code. +This example shows how you might create a grid in a frame or dialog constructor +and illustrates some of the formatting functions. @code - // Create a wxGrid object - - grid = new wxGrid( this, - -1, - wxPoint( 0, 0 ), - wxSize( 400, 300 ) ); - - // Then we call CreateGrid to set the dimensions of the grid - // (100 rows and 10 columns in this example) - grid->CreateGrid( 100, 10 ); - - // We can set the sizes of individual rows and columns - // in pixels - grid->SetRowSize( 0, 60 ); - grid->SetColSize( 0, 120 ); - - // And set grid cell contents as strings - grid->SetCellValue( 0, 0, "wxGrid is good" ); - - // We can specify that some cells are read->only - grid->SetCellValue( 0, 3, "This is read->only" ); - grid->SetReadOnly( 0, 3 ); - - // Colours can be specified for grid cell contents - grid->SetCellValue(3, 3, "green on grey"); - grid->SetCellTextColour(3, 3, *wxGREEN); - grid->SetCellBackgroundColour(3, 3, *wxLIGHT_GREY); - - // We can specify the some cells will store numeric - // values rather than strings. Here we set grid column 5 - // to hold floating point values displayed with width of 6 - // and precision of 2 - grid->SetColFormatFloat(5, 6, 2); - grid->SetCellValue(0, 6, "3.1415"); +// Create a wxGrid object + +grid = new wxGrid( this, + -1, + wxPoint( 0, 0 ), + wxSize( 400, 300 ) ); + +// Then we call CreateGrid to set the dimensions of the grid +// (100 rows and 10 columns in this example) +grid->CreateGrid( 100, 10 ); + +// We can set the sizes of individual rows and columns +// in pixels +grid->SetRowSize( 0, 60 ); +grid->SetColSize( 0, 120 ); + +// And set grid cell contents as strings +grid->SetCellValue( 0, 0, "wxGrid is good" ); + +// We can specify that some cells are read->only +grid->SetCellValue( 0, 3, "This is read->only" ); +grid->SetReadOnly( 0, 3 ); + +// Colours can be specified for grid cell contents +grid->SetCellValue(3, 3, "green on grey"); +grid->SetCellTextColour(3, 3, *wxGREEN); +grid->SetCellBackgroundColour(3, 3, *wxLIGHT_GREY); + +// We can specify the some cells will store numeric +// values rather than strings. Here we set grid column 5 +// to hold floating point values displayed with width of 6 +// and precision of 2 +grid->SetColFormatFloat(5, 6, 2); +grid->SetCellValue(0, 6, "3.1415"); @endcode Here is a list of classes related to wxGrid: @@ -113,19 +103,33 @@ Here is a list of classes related to wxGrid: @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 +@section overview_grid_resizing Column and Row Sizes -@section overview_grid_classrelations How the wxGrid classes relate to each other +@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. -@todo Yet to be written +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(). -@section overview_grid_keyboardmouse Keyboard and mouse actions - -@todo Yet to be written +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. */ -