KiCad PCB EDA Suite
Loading...
Searching...
No Matches
dialog_hotkey_list.cpp
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
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2
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#include "kicad_manager_frame.h"
26#include <kiface_base.h>
27#include <eda_base_frame.h>
29#include <widgets/ui_common.h>
30#include <tool/tool_manager.h>
31
32#include <wx/sizer.h>
33#include <wx/button.h>
34
36 DIALOG_SHIM( aParent, wxID_ANY, _( "Hotkey List" ) )
37{
38 const int margin = KIUI::GetStdMargin();
39 wxBoxSizer* main_sizer = new wxBoxSizer( wxVERTICAL );
40 KIFACE* kiface = nullptr;
41
42 m_hk_list = new PANEL_HOTKEYS_EDITOR( aParent, this, true );
43
44 wxWindow* kicadMgr_window = wxWindow::FindWindowByName( KICAD_MANAGER_FRAME_NAME );
45
46 if( KICAD_MANAGER_FRAME* kicadMgr = static_cast<KICAD_MANAGER_FRAME*>( kicadMgr_window ) )
47 {
48 ACTION_MANAGER* actionMgr = kicadMgr->GetToolManager()->GetActionManager();
49
50 for( const auto& [name, action] : actionMgr->GetActions() )
51 m_hk_list->ActionsList().push_back( action );
52 }
53
56
59
62
65
66 // Update all of the action hotkeys. The process of loading the actions through
67 // the KiFACE will only get us the default hotkeys
69
70 main_sizer->Add( m_hk_list, 1, wxTOP | wxLEFT | wxRIGHT | wxEXPAND, margin );
71
72 wxStdDialogButtonSizer* sdb_sizer = new wxStdDialogButtonSizer;
73 sdb_sizer->AddButton( new wxButton( this, wxID_OK ) );
74 sdb_sizer->Realize();
75
76 main_sizer->Add( sdb_sizer, 0, wxEXPAND | wxALL, margin );
77
78 SetSizer( main_sizer );
79 main_sizer->SetMinSize( 600, 400 );
80
82}
83
84
86{
88}
const char * name
Definition: DXF_plotter.cpp:59
Manage TOOL_ACTION objects.
const std::map< std::string, TOOL_ACTION * > & GetActions() const
Get a list of currently-registered actions mapped by their name.
DIALOG_LIST_HOTKEYS(EDA_BASE_FRAME *aParent)
Construct a hotkey list dialog on the given frame.
PANEL_HOTKEYS_EDITOR * m_hk_list
bool TransferDataToWindow() override
Called on dialog initialisation - inits the dialog's own widgets.
Dialog helper object to sit in the inheritance tree between wxDialog and any class written by wxFormB...
Definition: dialog_shim.h:52
void finishDialogSettings()
In all dialogs, we must call the same functions to fix minimal dlg size, the default position and per...
The base frame for deriving all KiCad main window classes.
The main KiCad project manager frame.
void GetActions(std::vector< TOOL_ACTION * > &aActions) const override
Append this Kiface's registered actions to the given list.
Definition: kiface_base.h:118
KIWAY & Kiway() const
Return a reference to the KIWAY that this object has an opportunity to participate in.
Definition: kiway_holder.h:55
virtual KIFACE * KiFACE(FACE_T aFaceId, bool doLoad=true)
Return the KIFACE* given a FACE_T.
Definition: kiway.cpp:201
@ FACE_SCH
eeschema DSO
Definition: kiway.h:292
@ FACE_PL_EDITOR
Definition: kiway.h:296
@ FACE_PCB
pcbnew DSO
Definition: kiway.h:293
@ FACE_GERBVIEW
Definition: kiway.h:295
std::vector< TOOL_ACTION * > & ActionsList()
bool TransferDataToWindow() override
Hotkey list dialog (as opposed to editor)
#define _(s)
Base window classes and related definitions.
#define KICAD_MANAGER_FRAME_NAME
void ReadHotKeyConfigIntoActions(const wxString &aFileName, std::vector< TOOL_ACTION * > &aActions)
Read a hotkey config file into a list of actions.
KICOMMON_API int GetStdMargin()
Get the standard margin around a widget in the KiCad UI.
Definition: ui_common.cpp:48
Implement a participant in the KIWAY alchemy.
Definition: kiway.h:152
IFACE KIFACE_BASE kiface("pcb_test_frame", KIWAY::FACE_PCB)
Functions to provide common constants and other functions to assist in making a consistent UI.