KiCad PCB EDA Suite
Loading...
Searching...
No Matches
lib_table_grid_tricks.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 The KiCad Developers, see AUTHORS.txt for contributors.
5 *
6 * This program is free software: you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the
8 * Free Software Foundation, either version 3 of the License, or (at your
9 * option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License along
17 * with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20#include "grid_tricks.h"
21#include <functional>
22
23
25
26
28{
29 enum
30 {
38 };
39
40public:
41 explicit LIB_TABLE_GRID_TRICKS( WX_GRID* aGrid );
42 LIB_TABLE_GRID_TRICKS( WX_GRID* aGrid, std::function<void( wxCommandEvent& )> aAddHandler );
43
45
46 void showPopupMenu( wxMenu& menu, wxGridEvent& aEvent ) override;
47 void doPopupSelection( wxCommandEvent& event ) override;
48
49 static void AppendRowHandler( WX_GRID* aGrid );
50 static void DeleteRowHandler( WX_GRID* aGrid );
51
52 static void MoveUpHandler( WX_GRID* aGrid );
53 static void MoveDownHandler( WX_GRID* aGrid );
54
55 static bool VerifyTable( WX_GRID* aGrid, std::function<void( int aRow, int aCol )> aErrorHandler );
56
57protected:
58 virtual void optionsEditor( int aRow ) = 0;
59 virtual void openTable( const LIBRARY_TABLE_ROW& aRow ) = 0;
60
61 void onGridCellLeftClick( wxGridEvent& aEvent ) override;
62 bool handleDoubleClick( wxGridEvent& aEvent ) override;
63
64 void onCharHook( wxKeyEvent& ev );
65
66 /*
67 * Handle specialized clipboard text, either s-expr syntax starting with a lib table preamble
68 * (such as "(fp_lib_table"), or spreadsheet formatted text.
69 */
70 void paste_text( const wxString& cb_text ) override;
71
72 virtual bool supportsVisibilityColumn() { return false; }
73 virtual wxString getTablePreamble() = 0;
74};
GRID_TRICKS(WX_GRID *aGrid)
void onGridCellLeftClick(wxGridEvent &aEvent) override
virtual void openTable(const LIBRARY_TABLE_ROW &aRow)=0
virtual wxString getTablePreamble()=0
static void MoveUpHandler(WX_GRID *aGrid)
void paste_text(const wxString &cb_text) override
bool handleDoubleClick(wxGridEvent &aEvent) override
LIB_TABLE_GRID_TRICKS(WX_GRID *aGrid)
static void DeleteRowHandler(WX_GRID *aGrid)
virtual void optionsEditor(int aRow)=0
static bool VerifyTable(WX_GRID *aGrid, std::function< void(int aRow, int aCol)> aErrorHandler)
virtual bool supportsVisibilityColumn()
static void AppendRowHandler(WX_GRID *aGrid)
void doPopupSelection(wxCommandEvent &event) override
void onCharHook(wxKeyEvent &ev)
static void MoveDownHandler(WX_GRID *aGrid)
void showPopupMenu(wxMenu &menu, wxGridEvent &aEvent) override
@ GRIDTRICKS_FIRST_CLIENT_ID
Definition grid_tricks.h:48