KiCad PCB EDA Suite
wx_grid.h
Go to the documentation of this file.
1 /*
2  * This program source code file is part of KiCad, a free EDA CAD application.
3  *
4  * Copyright (C) 2018 KiCad Developers, see AUTHORS.txt for contributors.
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * as published by the Free Software Foundation; either version 3
9  * of the License, or (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, you may find one here:
18  * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
19  * or you may search the http://www.gnu.org website for the version 2 license,
20  * or you may write to the Free Software Foundation, Inc.,
21  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
22  */
23 
24 #ifndef KICAD_WX_GRID_H
25 #define KICAD_WX_GRID_H
26 
27 #include <wx/grid.h>
28 
29 class WX_GRID : public wxGrid
30 {
31 public:
32  // Constructor has to be wxFormBuilder-compatible
33  WX_GRID( wxWindow *parent, wxWindowID id,
34  const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
35  long style = wxWANTS_CHARS, const wxString& name = wxGridNameStr );
36 
37  ~WX_GRID() override;
38 
44  void SetColLabelSize( int aHeight );
45 
50  wxString GetShownColumns();
51 
55  void ShowHideColumns( const wxString& shownColumns );
56 
61  void SetTable( wxGridTableBase* table, bool aTakeOwnership = false );
62 
67  void DestroyTable( wxGridTableBase* aTable );
68 
74  bool CommitPendingChanges( bool aQuietMode = false );
75 
85  int GetVisibleWidth( int aCol, bool aHeader = true, bool aContents = false, bool aKeep = true );
86 
92 
99  void ShowEditorOnMouseUp() { m_waitForSlowClick = true; }
100 
101 protected:
102  void DrawColLabel( wxDC& dc, int col ) override;
103 
104  void onGridColMove( wxGridEvent& aEvent );
105 
107 };
108 
109 #endif //KICAD_WX_GRID_H
bool m_weOwnTable
Definition: wx_grid.h:106
void DrawColLabel(wxDC &dc, int col) override
Definition: wx_grid.cpp:139
WX_GRID(wxWindow *parent, wxWindowID id, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxWANTS_CHARS, const wxString &name=wxGridNameStr)
Definition: wx_grid.cpp:33
void ShowHideColumns(const wxString &shownColumns)
Show/hide the grid columns based on a tokenized string of shown column indexes.
Definition: wx_grid.cpp:119
void SetTable(wxGridTableBase *table, bool aTakeOwnership=false)
Hide wxGrid's SetTable() method with one which doesn't mess up the grid column widths when setting th...
Definition: wx_grid.cpp:57
int GetVisibleWidth(int aCol, bool aHeader=true, bool aContents=false, bool aKeep=true)
Calculates the specified column based on the actual size of the text on screen.
Definition: wx_grid.cpp:228
void DestroyTable(wxGridTableBase *aTable)
Work-around for a bug in wxGrid which crashes when deleting the table if the cell edit control was no...
Definition: wx_grid.cpp:88
void onGridColMove(wxGridEvent &aEvent)
Definition: wx_grid.cpp:221
void EnsureColLabelsVisible()
Ensure the height of the row displaying the column labels is enough, even if labels are multiline tex...
Definition: wx_grid.cpp:270
bool CommitPendingChanges(bool aQuietMode=false)
Close any open cell edit controls.
Definition: wx_grid.cpp:172
~WX_GRID() override
Definition: wx_grid.cpp:40
wxString GetShownColumns()
Get a tokenized string containing the shown column indexes.
Definition: wx_grid.cpp:101
const char * name
Definition: DXF_plotter.cpp:61
void SetColLabelSize(int aHeight)
Hide wxGrid's SetColLabelSize() method with one which makes sure the size is tall enough for the syst...
Definition: wx_grid.cpp:47
void ShowEditorOnMouseUp()
WxWidgets has a bunch of bugs in its handling of wxGrid mouse events which close cell editors right a...
Definition: wx_grid.h:99