wxWidgets/samples/newgrid/griddemo.h
Vadim Zeitlin b54ba67107 1. EVT_GRID_XXX constants renamed to wxEVT_GRID_XXX
2. EVT_GRID_EDITOR_SHOWN/HIDDEN added
3. Alt-X now work in the grid (instead of being eaten in StartingKey)
4. added CanEnableCellControl() and use it before calling EnableEC


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6106 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-02-17 10:12:48 +00:00

145 lines
3.5 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& );
void OnEditorShown(wxGridEvent&);
void OnEditorHidden(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