Files
wxWidgets/samples/newgrid/griddemo.h
Robin Dunn f97c9b5bf2 1. Grid cell defaults are now handled by an internal
wxGridCellAttr object

2. wxGridCellRenderer::Draw updated to expect an attr object and
use it instead of going back to the grid for everything

3. The selection colours are now initialized from wxSystemSettings,
and are configurable.

4. Now either CreateGrid() or SetTable() can be called to initialize
the grid.  Added a test for using a non-default table.

5. Reduced flicker even more byt using empty EVT_ERASE_BACKGROUND handlers.

6. The beginings of wxGridCellEditor are in there but not activated
yet. (This is the next step.)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5986 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-13 05:38:03 +00:00

142 lines
3.4 KiB
C++

/////////////////////////////////////////////////////////////////////////////
// Name: griddemo.h
// Purpose: Grid control wxWindows sample
// Author: Michael Bedward
// Modified by:
// RCS-ID: $Id$
// Copyright: (c) Michael Bedward, Julian Smart
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
#ifndef griddemo_h
#define griddemo_h
#if !defined(wxUSE_NEW_GRID) || !(wxUSE_NEW_GRID)
#error "This sample requires the new wxGrid class."
#endif
class wxGrid;
class GridApp : public wxApp
{
public:
bool OnInit();
};
class GridFrame : public wxFrame
{
wxGrid *grid;
wxTextCtrl *logWin;
wxLogTextCtrl *logger;
wxString logBuf;
void SetDefaults();
void ToggleRowLabels( wxCommandEvent& );
void ToggleColLabels( wxCommandEvent& );
void ToggleEditing( wxCommandEvent& );
void SetLabelColour( wxCommandEvent& );
void SetLabelTextColour( wxCommandEvent& );
void SetRowLabelHorizAlignment( wxCommandEvent& );
void SetRowLabelVertAlignment( wxCommandEvent& );
void SetColLabelHorizAlignment( wxCommandEvent& );
void SetColLabelVertAlignment( wxCommandEvent& );
void SetGridLineColour( wxCommandEvent& );
void SetCellFgColour(wxCommandEvent &);
void SetCellBgColour(wxCommandEvent &);
void InsertRow( wxCommandEvent& );
void InsertCol( wxCommandEvent& );
void DeleteSelectedRows( wxCommandEvent& );
void DeleteSelectedCols( wxCommandEvent& );
void ClearGrid( wxCommandEvent& );
void OnLabelLeftClick( wxGridEvent& );
void OnCellLeftClick( wxGridEvent& );
void OnRowSize( wxGridSizeEvent& );
void OnColSize( wxGridSizeEvent& );
void OnSelectCell( wxGridEvent& );
void OnRangeSelected( wxGridRangeSelectEvent& );
void OnCellValueChanged( wxGridEvent& );
public:
GridFrame();
~GridFrame();
void OnQuit( wxCommandEvent& );
void About( wxCommandEvent& );
void OnVTable( wxCommandEvent& );
enum
{
ID_TOGGLEROWLABELS = 100,
ID_TOGGLECOLLABELS,
ID_TOGGLEEDIT,
ID_SETLABELCOLOUR,
ID_SETLABELTEXTCOLOUR,
ID_ROWLABELALIGN,
ID_ROWLABELHORIZALIGN,
ID_ROWLABELVERTALIGN,
ID_COLLABELALIGN,
ID_COLLABELHORIZALIGN,
ID_COLLABELVERTALIGN,
ID_GRIDLINECOLOUR,
ID_INSERTROW,
ID_INSERTCOL,
ID_DELETEROW,
ID_DELETECOL,
ID_CLEARGRID,
ID_SET_CELL_FG_COLOUR,
ID_SET_CELL_BG_COLOUR,
ID_ABOUT,
ID_VTABLE,
ID_TESTFUNC
};
DECLARE_EVENT_TABLE()
};
class MyGridCellRenderer : public wxGridCellStringRenderer
{
public:
virtual void Draw(wxGrid& grid,
wxGridCellAttr& attr,
wxDC& dc,
const wxRect& rect,
int row, int col,
bool isSelected);
};
class BigGridTable : public wxGridTableBase {
public:
long GetNumberRows() { return 10000; }
long GetNumberCols() { return 10000; }
wxString GetValue( int row, int col ) {
wxString str;
str.Printf("(%d, %d)", row, col);
return str;
}
void SetValue( int , int , const wxString& ) {}
bool IsEmptyCell( int , int ) { return FALSE; }
};
class BigGridFrame : public wxFrame {
public:
BigGridFrame();
private:
wxGrid* m_grid;
BigGridTable* m_table;
};
#endif