]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/doxygen/overviews/grid.h
Fix broken and missing DataView interface items for Phoenix
[wxWidgets.git] / docs / doxygen / overviews / grid.h
index cb29b5e16de1ed5fa0c464ec8d95d19eda23d172..d37678d3743810d5439a87c79059b7b2be905ad2 100644 (file)
@@ -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
-
-
-<hr>
-
-
-@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.
 
 */
-