| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321 |
- /////////////////////////////////////////////////////////////////////////////
- // Name: griddemo.h
- // Purpose: Grid control wxWidgets sample
- // Author: Michael Bedward
- // Modified by:
- // Copyright: (c) Michael Bedward, Julian Smart
- // Licence: wxWindows licence
- /////////////////////////////////////////////////////////////////////////////
- #ifndef griddemo_h
- #define griddemo_h
- class wxGrid;
- class GridApp : public wxApp
- {
- public:
- bool OnInit();
- };
- class GridFrame : public wxFrame
- {
- wxGrid *grid;
- #if wxUSE_LOG
- wxTextCtrl *logWin;
- wxLogTextCtrl *logger;
- #endif // wxUSE_LOG
- void SetDefaults();
- void ToggleRowLabels( wxCommandEvent& );
- void ToggleColLabels( wxCommandEvent& );
- void ToggleEditing( wxCommandEvent& );
- void ToggleRowSizing( wxCommandEvent& );
- void ToggleColSizing( wxCommandEvent& );
- void ToggleColMoving( wxCommandEvent& );
- void ToggleGridSizing( wxCommandEvent& );
- void ToggleGridDragCell ( wxCommandEvent& );
- void SetNativeColHeader ( wxCommandEvent& );
- void SetCustomColHeader( wxCommandEvent& );
- void SetDefaultColHeader( wxCommandEvent& );
- void SetTabBehaviour( wxCommandEvent& );
- void SetTabCustomHandler( wxCommandEvent& );
- void ToggleGridLines( wxCommandEvent& );
- void AutoSizeCols( wxCommandEvent& );
- void CellOverflow( wxCommandEvent& );
- void ResizeCell( wxCommandEvent& );
- void SetLabelColour( wxCommandEvent& );
- void SetLabelTextColour( wxCommandEvent& );
- void SetLabelFont(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 SelectCells( wxCommandEvent& );
- void SelectRows( wxCommandEvent& );
- void SelectCols( wxCommandEvent& );
- void SelectRowsOrCols( wxCommandEvent& );
- void DeselectCell(wxCommandEvent& event);
- void DeselectCol(wxCommandEvent& event);
- void DeselectRow(wxCommandEvent& event);
- void DeselectAll(wxCommandEvent& event);
- void SelectCell(wxCommandEvent& event);
- void SelectCol(wxCommandEvent& event);
- void SelectRow(wxCommandEvent& event);
- void SelectAll(wxCommandEvent& event);
- void OnAddToSelectToggle(wxCommandEvent& event);
- void AutoSizeRow(wxCommandEvent& event);
- void AutoSizeCol(wxCommandEvent& event);
- void AutoSizeRowLabel(wxCommandEvent& event);
- void AutoSizeColLabel(wxCommandEvent& event);
- void AutoSizeLabelsCol(wxCommandEvent& event);
- void AutoSizeLabelsRow(wxCommandEvent& event);
- void AutoSizeTable(wxCommandEvent& event);
- void HideCol(wxCommandEvent& event);
- void ShowCol(wxCommandEvent& event);
- void HideRow(wxCommandEvent& event);
- void ShowRow(wxCommandEvent& event);
- void OnLabelLeftClick( wxGridEvent& );
- void OnCellLeftClick( wxGridEvent& );
- void OnRowSize( wxGridSizeEvent& );
- void OnColSize( wxGridSizeEvent& );
- void OnColAutoSize( wxGridSizeEvent& );
- void OnSelectCell( wxGridEvent& );
- void OnRangeSelected( wxGridRangeSelectEvent& );
- void OnCellValueChanging( wxGridEvent& );
- void OnCellValueChanged( wxGridEvent& );
- void OnCellBeginDrag( wxGridEvent& );
- void OnEditorShown(wxGridEvent&);
- void OnEditorHidden(wxGridEvent&);
- void OnSetHighlightWidth(wxCommandEvent&);
- void OnSetROHighlightWidth(wxCommandEvent&);
- void OnGridCustomTab(wxGridEvent& event);
- public:
- GridFrame();
- ~GridFrame();
- void OnQuit( wxCommandEvent& );
- void About( wxCommandEvent& );
- void OnVTable( wxCommandEvent& );
- void OnBugsTable( wxCommandEvent& );
- void OnTabularTable( wxCommandEvent& );
- void OnGridRender( wxCommandEvent& event );
- void OnRenderPaint( wxPaintEvent& event );
- enum
- {
- ID_TOGGLEROWLABELS = 100,
- ID_TOGGLECOLLABELS,
- ID_TOGGLEEDIT,
- ID_TOGGLEROWSIZING,
- ID_TOGGLECOLSIZING,
- ID_TOGGLECOLMOVING,
- ID_TOGGLEGRIDSIZING,
- ID_TOGGLEGRIDDRAGCELL,
- ID_TOGGLEGRIDLINES,
- ID_AUTOSIZECOLS,
- ID_CELLOVERFLOW,
- ID_HIDECOL,
- ID_SHOWCOL,
- ID_HIDEROW,
- ID_SHOWROW,
- ID_RESIZECELL,
- ID_SETLABELCOLOUR,
- ID_SETLABELTEXTCOLOUR,
- ID_SETLABEL_FONT,
- ID_ROWLABELALIGN,
- ID_ROWLABELHORIZALIGN,
- ID_ROWLABELVERTALIGN,
- ID_COLLABELALIGN,
- ID_COLLABELHORIZALIGN,
- ID_COLLABELVERTALIGN,
- ID_COLDEFAULTHEADER,
- ID_COLNATIVEHEADER,
- ID_COLCUSTOMHEADER,
- ID_TAB_STOP,
- ID_TAB_WRAP,
- ID_TAB_LEAVE,
- ID_TAB_CUSTOM,
- ID_GRIDLINECOLOUR,
- ID_INSERTROW,
- ID_INSERTCOL,
- ID_DELETEROW,
- ID_DELETECOL,
- ID_CLEARGRID,
- ID_CHANGESEL,
- ID_SELCELLS,
- ID_SELROWS,
- ID_SELCOLS,
- ID_SELROWSORCOLS,
- ID_SET_CELL_FG_COLOUR,
- ID_SET_CELL_BG_COLOUR,
- ID_VTABLE,
- ID_BUGS_TABLE,
- ID_TABULAR_TABLE,
- ID_SELECT_UNSELECT,
- ID_SELECT_ALL,
- ID_SELECT_ROW,
- ID_SELECT_COL,
- ID_SELECT_CELL,
- ID_DESELECT_ALL,
- ID_DESELECT_ROW,
- ID_DESELECT_COL,
- ID_DESELECT_CELL,
- ID_SIZE_ROW,
- ID_SIZE_COL,
- ID_SIZE_ROW_LABEL,
- ID_SIZE_COL_LABEL,
- ID_SIZE_LABELS_COL,
- ID_SIZE_LABELS_ROW,
- ID_SIZE_GRID,
- ID_SET_HIGHLIGHT_WIDTH,
- ID_SET_RO_HIGHLIGHT_WIDTH,
- ID_TESTFUNC,
- ID_RENDER_ROW_LABEL,
- ID_RENDER_COL_LABEL,
- ID_RENDER_GRID_LINES,
- ID_RENDER_GRID_BORDER,
- ID_RENDER_SELECT_HLIGHT,
- ID_RENDER_LOMETRIC,
- ID_RENDER_COORDS,
- ID_RENDER_ZOOM,
- ID_RENDER_MARGIN,
- ID_RENDER_DEFAULT_SIZE,
- };
- #if wxUSE_LOG
- wxLog *m_logOld;
- #endif // wxUSE_LOG
- // add the cells to selection when using commands from select menu?
- bool m_addToSel;
- wxBitmap m_gridBitmap;
- wxDECLARE_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);
- };
- // ----------------------------------------------------------------------------
- // demonstration of virtual table which doesn't store all of its data in
- // memory
- // ----------------------------------------------------------------------------
- class BigGridTable : public wxGridTableBase
- {
- public:
- BigGridTable(long sizeGrid) { m_sizeGrid = sizeGrid; }
- int GetNumberRows() { return m_sizeGrid; }
- int GetNumberCols() { return m_sizeGrid; }
- wxString GetValue( int row, int col )
- {
- return wxString::Format(wxT("(%d, %d)"), row, col);
- }
- void SetValue( int , int , const wxString& ) { /* ignore */ }
- bool IsEmptyCell( int , int ) { return false; }
- private:
- long m_sizeGrid;
- };
- class BigGridFrame : public wxFrame
- {
- public:
- BigGridFrame(long sizeGrid);
- private:
- wxGrid* m_grid;
- BigGridTable* m_table;
- };
- // ----------------------------------------------------------------------------
- // an example of custom attr provider: this one makes all odd rows appear grey
- // ----------------------------------------------------------------------------
- class MyGridCellAttrProvider : public wxGridCellAttrProvider
- {
- public:
- MyGridCellAttrProvider();
- virtual ~MyGridCellAttrProvider();
- virtual wxGridCellAttr *GetAttr(int row, int col,
- wxGridCellAttr::wxAttrKind kind) const;
- private:
- wxGridCellAttr *m_attrForOddRows;
- };
- // ----------------------------------------------------------------------------
- // another, more realistic, grid example: shows typed columns and more
- // ----------------------------------------------------------------------------
- class BugsGridTable : public wxGridTableBase
- {
- public:
- BugsGridTable() { }
- virtual int GetNumberRows();
- virtual int GetNumberCols();
- virtual bool IsEmptyCell( int row, int col );
- virtual wxString GetValue( int row, int col );
- virtual void SetValue( int row, int col, const wxString& value );
- virtual wxString GetColLabelValue( int col );
- virtual wxString GetTypeName( int row, int col );
- virtual bool CanGetValueAs( int row, int col, const wxString& typeName );
- virtual bool CanSetValueAs( int row, int col, const wxString& typeName );
- virtual long GetValueAsLong( int row, int col );
- virtual bool GetValueAsBool( int row, int col );
- virtual void SetValueAsLong( int row, int col, long value );
- virtual void SetValueAsBool( int row, int col, bool value );
- };
- class BugsGridFrame : public wxFrame
- {
- public:
- BugsGridFrame();
- };
- #endif // griddemo_h
|