Commit 2804d2e5 authored by jean-pierre charras's avatar jean-pierre charras

Add hotkeys to Kicad manager, and some rework on hotkeys management.

parent 399ab4ba
/* /*
* This program source code file is part of KiCad, a free EDA CAD application. * This program source code file is part of KiCad, a free EDA CAD application.
* *
* Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com * Copyright (C) 2015 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com
* Copyright (C) 1992-2011 KiCad Developers, see AUTHORS.txt for contributors. * Copyright (C) 1992-2015 KiCad Developers, see AUTHORS.txt for contributors.
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
...@@ -225,7 +225,7 @@ bool EDA_ITEM::operator<( const EDA_ITEM& aItem ) const ...@@ -225,7 +225,7 @@ bool EDA_ITEM::operator<( const EDA_ITEM& aItem ) const
return false; return false;
} }
#ifdef USE_EDA_ITEM_OP_EQ // see base_struct.h for explanations
EDA_ITEM& EDA_ITEM::operator=( const EDA_ITEM& aItem ) EDA_ITEM& EDA_ITEM::operator=( const EDA_ITEM& aItem )
{ {
if( &aItem != this ) if( &aItem != this )
...@@ -241,7 +241,7 @@ EDA_ITEM& EDA_ITEM::operator=( const EDA_ITEM& aItem ) ...@@ -241,7 +241,7 @@ EDA_ITEM& EDA_ITEM::operator=( const EDA_ITEM& aItem )
return *this; return *this;
} }
#endif
const BOX2I EDA_ITEM::ViewBBox() const const BOX2I EDA_ITEM::ViewBBox() const
{ {
......
...@@ -251,7 +251,7 @@ void HOTKEY_SECTION_PAGE::Restore() ...@@ -251,7 +251,7 @@ void HOTKEY_SECTION_PAGE::Restore()
} }
void InstallHotkeyFrame( EDA_DRAW_FRAME* aParent, EDA_HOTKEY_CONFIG* aHotkeys ) void InstallHotkeyFrame( EDA_BASE_FRAME* aParent, EDA_HOTKEY_CONFIG* aHotkeys )
{ {
HOTKEYS_EDITOR_DIALOG dialog( aParent, aHotkeys ); HOTKEYS_EDITOR_DIALOG dialog( aParent, aHotkeys );
...@@ -264,7 +264,7 @@ void InstallHotkeyFrame( EDA_DRAW_FRAME* aParent, EDA_HOTKEY_CONFIG* aHotkeys ) ...@@ -264,7 +264,7 @@ void InstallHotkeyFrame( EDA_DRAW_FRAME* aParent, EDA_HOTKEY_CONFIG* aHotkeys )
} }
HOTKEYS_EDITOR_DIALOG::HOTKEYS_EDITOR_DIALOG( EDA_DRAW_FRAME* aParent, HOTKEYS_EDITOR_DIALOG::HOTKEYS_EDITOR_DIALOG( EDA_BASE_FRAME* aParent,
EDA_HOTKEY_CONFIG* aHotkeys ) : EDA_HOTKEY_CONFIG* aHotkeys ) :
HOTKEYS_EDITOR_DIALOG_BASE( aParent ), HOTKEYS_EDITOR_DIALOG_BASE( aParent ),
m_parent( aParent ), m_parent( aParent ),
......
...@@ -419,7 +419,7 @@ int KeyCodeFromKeyName( const wxString& keyname ) ...@@ -419,7 +419,7 @@ int KeyCodeFromKeyName( const wxString& keyname )
* Displays the current hotkey list * Displays the current hotkey list
* aList = a EDA_HOTKEY_CONFIG list(Null terminated) * aList = a EDA_HOTKEY_CONFIG list(Null terminated)
*/ */
void DisplayHotkeyList( EDA_DRAW_FRAME* aFrame, struct EDA_HOTKEY_CONFIG* aDescList ) void DisplayHotkeyList( EDA_BASE_FRAME* aFrame, struct EDA_HOTKEY_CONFIG* aDescList )
{ {
wxString keyname; wxString keyname;
EDA_HOTKEY** list; EDA_HOTKEY** list;
...@@ -534,7 +534,9 @@ int EDA_BASE_FRAME::WriteHotkeyConfig( struct EDA_HOTKEY_CONFIG* aDescList, ...@@ -534,7 +534,9 @@ int EDA_BASE_FRAME::WriteHotkeyConfig( struct EDA_HOTKEY_CONFIG* aDescList,
} }
else else
{ {
wxConfigBase* config = GetNewConfig( m_FrameName ); wxFileName fn( m_FrameName );
fn.SetExt( DEFAULT_HOTKEY_FILENAME_EXT );
wxConfigBase* config = GetNewConfig( fn.GetFullPath() );
config->Write( HOTKEYS_CONFIG_KEY, msg ); config->Write( HOTKEYS_CONFIG_KEY, msg );
delete config; delete config;
} }
...@@ -546,7 +548,10 @@ int EDA_BASE_FRAME::WriteHotkeyConfig( struct EDA_HOTKEY_CONFIG* aDescList, ...@@ -546,7 +548,10 @@ int EDA_BASE_FRAME::WriteHotkeyConfig( struct EDA_HOTKEY_CONFIG* aDescList,
int EDA_BASE_FRAME::ReadHotkeyConfigFile( const wxString& aFilename, int EDA_BASE_FRAME::ReadHotkeyConfigFile( const wxString& aFilename,
struct EDA_HOTKEY_CONFIG* aDescList ) struct EDA_HOTKEY_CONFIG* aDescList )
{ {
wxFile cfgfile( aFilename ); wxFileName fn( aFilename );
fn.SetExt( DEFAULT_HOTKEY_FILENAME_EXT );
wxFile cfgfile( fn.GetFullPath() );
if( !cfgfile.IsOpened() ) // There is a problem to open file if( !cfgfile.IsOpened() ) // There is a problem to open file
return 0; return 0;
...@@ -574,7 +579,10 @@ int EDA_BASE_FRAME::ReadHotkeyConfigFile( const wxString& aFilename, ...@@ -574,7 +579,10 @@ int EDA_BASE_FRAME::ReadHotkeyConfigFile( const wxString& aFilename,
void ReadHotkeyConfig( const wxString& Appname, struct EDA_HOTKEY_CONFIG* aDescList ) void ReadHotkeyConfig( const wxString& Appname, struct EDA_HOTKEY_CONFIG* aDescList )
{ {
wxConfigBase* config = GetNewConfig( Appname ); wxFileName fn( Appname );
fn.SetExt( DEFAULT_HOTKEY_FILENAME_EXT );
wxConfigBase* config = GetNewConfig( fn.GetFullPath() );
if( !config->HasEntry( HOTKEYS_CONFIG_KEY ) ) if( !config->HasEntry( HOTKEYS_CONFIG_KEY ) )
{ {
...@@ -677,7 +685,8 @@ void ParseHotkeyConfig( const wxString& data, ...@@ -677,7 +685,8 @@ void ParseHotkeyConfig( const wxString& data,
} }
void EDA_BASE_FRAME::ImportHotkeyConfigFromFile( EDA_HOTKEY_CONFIG* aDescList ) void EDA_BASE_FRAME::ImportHotkeyConfigFromFile( EDA_HOTKEY_CONFIG* aDescList,
const wxString& aDefaultShortname )
{ {
wxString ext = DEFAULT_HOTKEY_FILENAME_EXT; wxString ext = DEFAULT_HOTKEY_FILENAME_EXT;
wxString mask = wxT( "*." ) + ext; wxString mask = wxT( "*." ) + ext;
...@@ -687,12 +696,12 @@ void EDA_BASE_FRAME::ImportHotkeyConfigFromFile( EDA_HOTKEY_CONFIG* aDescList ) ...@@ -687,12 +696,12 @@ void EDA_BASE_FRAME::ImportHotkeyConfigFromFile( EDA_HOTKEY_CONFIG* aDescList )
#else #else
wxString path = wxGetCwd(); wxString path = wxGetCwd();
#endif #endif
wxFileName fn( aDefaultShortname );
fn.SetExt( DEFAULT_HOTKEY_FILENAME_EXT );
wxString filename = Kiface().Name() + wxT( '.' ) + ext; wxString filename = EDA_FileSelector( _( "Read Hotkey Configuration File:" ),
filename = EDA_FileSelector( _( "Read Hotkey Configuration File:" ),
path, path,
filename, fn.GetFullPath(),
ext, ext,
mask, mask,
this, this,
...@@ -706,7 +715,8 @@ void EDA_BASE_FRAME::ImportHotkeyConfigFromFile( EDA_HOTKEY_CONFIG* aDescList ) ...@@ -706,7 +715,8 @@ void EDA_BASE_FRAME::ImportHotkeyConfigFromFile( EDA_HOTKEY_CONFIG* aDescList )
} }
void EDA_BASE_FRAME::ExportHotkeyConfigToFile( EDA_HOTKEY_CONFIG* aDescList ) void EDA_BASE_FRAME::ExportHotkeyConfigToFile( EDA_HOTKEY_CONFIG* aDescList,
const wxString& aDefaultShortname )
{ {
wxString ext = DEFAULT_HOTKEY_FILENAME_EXT; wxString ext = DEFAULT_HOTKEY_FILENAME_EXT;
wxString mask = wxT( "*." ) + ext; wxString mask = wxT( "*." ) + ext;
...@@ -716,12 +726,12 @@ void EDA_BASE_FRAME::ExportHotkeyConfigToFile( EDA_HOTKEY_CONFIG* aDescList ) ...@@ -716,12 +726,12 @@ void EDA_BASE_FRAME::ExportHotkeyConfigToFile( EDA_HOTKEY_CONFIG* aDescList )
#else #else
wxString path = wxGetCwd(); wxString path = wxGetCwd();
#endif #endif
wxFileName fn( aDefaultShortname );
fn.SetExt( DEFAULT_HOTKEY_FILENAME_EXT );
wxString filename = Kiface().Name() + wxT( "." ) + ext; wxString filename = EDA_FileSelector( _( "Write Hotkey Configuration File:" ),
filename = EDA_FileSelector( _( "Write Hotkey Configuration File:" ),
path, path,
filename, fn.GetFullPath(),
ext, ext,
mask, mask,
this, this,
......
...@@ -229,7 +229,7 @@ bool IFACE::OnKifaceStart( PGM_BASE* aProgram, int aCtlBits ) ...@@ -229,7 +229,7 @@ bool IFACE::OnKifaceStart( PGM_BASE* aProgram, int aCtlBits )
// Must be called before creating the main frame in order to // Must be called before creating the main frame in order to
// display the real hotkeys in menus or tool tips // display the real hotkeys in menus or tool tips
ReadHotkeyConfig( wxT("SchematicFrame"), g_Eeschema_Hokeys_Descr ); ReadHotkeyConfig( SCH_EDIT_FRAME_NAME, g_Eeschema_Hokeys_Descr );
wxConfigLoadSetups( KifaceSettings(), cfg_params() ); wxConfigLoadSetups( KifaceSettings(), cfg_params() );
......
...@@ -177,11 +177,11 @@ void LIB_EDIT_FRAME::Process_Config( wxCommandEvent& event ) ...@@ -177,11 +177,11 @@ void LIB_EDIT_FRAME::Process_Config( wxCommandEvent& event )
break; break;
case ID_PREFERENCES_HOTKEY_EXPORT_CONFIG: case ID_PREFERENCES_HOTKEY_EXPORT_CONFIG:
ExportHotkeyConfigToFile( g_Eeschema_Hokeys_Descr ); ExportHotkeyConfigToFile( g_Eeschema_Hokeys_Descr, wxT( "eeschema" ) );
break; break;
case ID_PREFERENCES_HOTKEY_IMPORT_CONFIG: case ID_PREFERENCES_HOTKEY_IMPORT_CONFIG:
ImportHotkeyConfigFromFile( g_Eeschema_Hokeys_Descr ); ImportHotkeyConfigFromFile( g_Eeschema_Hokeys_Descr, wxT( "eeschema" ) );
break; break;
case ID_PREFERENCES_HOTKEY_SHOW_CURRENT_LIST: case ID_PREFERENCES_HOTKEY_SHOW_CURRENT_LIST:
...@@ -282,11 +282,11 @@ void SCH_EDIT_FRAME::Process_Config( wxCommandEvent& event ) ...@@ -282,11 +282,11 @@ void SCH_EDIT_FRAME::Process_Config( wxCommandEvent& event )
// Hotkey IDs // Hotkey IDs
case ID_PREFERENCES_HOTKEY_EXPORT_CONFIG: case ID_PREFERENCES_HOTKEY_EXPORT_CONFIG:
ExportHotkeyConfigToFile( g_Eeschema_Hokeys_Descr ); ExportHotkeyConfigToFile( g_Eeschema_Hokeys_Descr, wxT( "eeschema" ) );
break; break;
case ID_PREFERENCES_HOTKEY_IMPORT_CONFIG: case ID_PREFERENCES_HOTKEY_IMPORT_CONFIG:
ImportHotkeyConfigFromFile( g_Eeschema_Hokeys_Descr ); ImportHotkeyConfigFromFile( g_Eeschema_Hokeys_Descr, wxT( "eeschema" ) );
break; break;
case ID_PREFERENCES_HOTKEY_SHOW_EDITOR: case ID_PREFERENCES_HOTKEY_SHOW_EDITOR:
......
...@@ -301,7 +301,6 @@ BEGIN_EVENT_TABLE( SCH_EDIT_FRAME, EDA_DRAW_FRAME ) ...@@ -301,7 +301,6 @@ BEGIN_EVENT_TABLE( SCH_EDIT_FRAME, EDA_DRAW_FRAME )
END_EVENT_TABLE() END_EVENT_TABLE()
#define SCH_EDIT_FRAME_NAME wxT( "SchematicFrame" )
SCH_EDIT_FRAME::SCH_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent ): SCH_EDIT_FRAME::SCH_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent ):
SCH_BASE_FRAME( aKiway, aParent, FRAME_SCH, wxT( "Eeschema" ), SCH_BASE_FRAME( aKiway, aParent, FRAME_SCH, wxT( "Eeschema" ),
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
#ifndef WX_EESCHEMA_STRUCT_H #ifndef WX_EESCHEMA_STRUCT_H
#define WX_EESCHEMA_STRUCT_H #define WX_EESCHEMA_STRUCT_H
#include <sch_base_frame.h> #include <sch_base_frame.h>
#include <config_params.h> #include <config_params.h>
#include <class_undoredo_container.h> #include <class_undoredo_container.h>
...@@ -106,6 +107,8 @@ enum SCH_SEARCH_T { ...@@ -106,6 +107,8 @@ enum SCH_SEARCH_T {
}; };
#define SCH_EDIT_FRAME_NAME wxT( "SchematicFrame" )
/** /**
* Schematic editor (Eeschema) main window. * Schematic editor (Eeschema) main window.
*/ */
......
...@@ -140,7 +140,7 @@ bool IFACE::OnKifaceStart( PGM_BASE* aProgram, int aCtlBits ) ...@@ -140,7 +140,7 @@ bool IFACE::OnKifaceStart( PGM_BASE* aProgram, int aCtlBits )
// Must be called before creating the main frame in order to // Must be called before creating the main frame in order to
// display the real hotkeys in menus or tool tips // display the real hotkeys in menus or tool tips
ReadHotkeyConfig( wxT("GerberFrame"), s_Gerbview_Hokeys_Descr ); ReadHotkeyConfig( GERBVIEW_FRAME_NAME, s_Gerbview_Hokeys_Descr );
return true; return true;
} }
......
...@@ -55,11 +55,11 @@ void GERBVIEW_FRAME::Process_Config( wxCommandEvent& event ) ...@@ -55,11 +55,11 @@ void GERBVIEW_FRAME::Process_Config( wxCommandEvent& event )
{ {
// Hotkey IDs // Hotkey IDs
case ID_PREFERENCES_HOTKEY_EXPORT_CONFIG: case ID_PREFERENCES_HOTKEY_EXPORT_CONFIG:
ExportHotkeyConfigToFile( s_Gerbview_Hokeys_Descr ); ExportHotkeyConfigToFile( s_Gerbview_Hokeys_Descr, wxT( "gerbview" ) );
break; break;
case ID_PREFERENCES_HOTKEY_IMPORT_CONFIG: case ID_PREFERENCES_HOTKEY_IMPORT_CONFIG:
ImportHotkeyConfigFromFile( s_Gerbview_Hokeys_Descr ); ImportHotkeyConfigFromFile( s_Gerbview_Hokeys_Descr, wxT( "gerbview" ) );
break; break;
case ID_PREFERENCES_HOTKEY_SHOW_EDITOR: case ID_PREFERENCES_HOTKEY_SHOW_EDITOR:
......
...@@ -62,8 +62,6 @@ static const wxString cfgShowBorderAndTitleBlock( wxT( "ShowBorderAndTitleBloc ...@@ -62,8 +62,6 @@ static const wxString cfgShowBorderAndTitleBlock( wxT( "ShowBorderAndTitleBloc
/* class GERBVIEW_FRAME for GerbView */ /* class GERBVIEW_FRAME for GerbView */
/*************************************/ /*************************************/
#define GERBVIEW_FRAME_NAME wxT( "GerberFrame" )
GERBVIEW_FRAME::GERBVIEW_FRAME( KIWAY* aKiway, wxWindow* aParent ): GERBVIEW_FRAME::GERBVIEW_FRAME( KIWAY* aKiway, wxWindow* aParent ):
EDA_DRAW_FRAME( aKiway, aParent, FRAME_GERBER, wxT( "GerbView" ), EDA_DRAW_FRAME( aKiway, aParent, FRAME_GERBER, wxT( "GerbView" ),
wxDefaultPosition, wxDefaultSize, KICAD_DEFAULT_DRAWFRAME_STYLE, GERBVIEW_FRAME_NAME ) wxDefaultPosition, wxDefaultSize, KICAD_DEFAULT_DRAWFRAME_STYLE, GERBVIEW_FRAME_NAME )
......
...@@ -81,6 +81,8 @@ public: ...@@ -81,6 +81,8 @@ public:
* is the main window used in GerbView. * is the main window used in GerbView.
*/ */
#define GERBVIEW_FRAME_NAME wxT( "GerberFrame" )
class GERBVIEW_FRAME : public EDA_DRAW_FRAME // PCB_BASE_FRAME class GERBVIEW_FRAME : public EDA_DRAW_FRAME // PCB_BASE_FRAME
{ {
GBR_LAYOUT* m_gerberLayout; GBR_LAYOUT* m_gerberLayout;
......
...@@ -488,6 +488,7 @@ public: ...@@ -488,6 +488,7 @@ public:
*/ */
static bool Sort( const EDA_ITEM* aLeft, const EDA_ITEM* aRight ) { return *aLeft < *aRight; } static bool Sort( const EDA_ITEM* aLeft, const EDA_ITEM* aRight ) { return *aLeft < *aRight; }
#if 0
/** /**
* Operator assignment * Operator assignment
* is used to assign the members of \a aItem to another object. * is used to assign the members of \a aItem to another object.
...@@ -496,6 +497,8 @@ public: ...@@ -496,6 +497,8 @@ public:
* as there is a known issue with wxString buffers. * as there is a known issue with wxString buffers.
*/ */
virtual EDA_ITEM& operator=( const EDA_ITEM& aItem ); virtual EDA_ITEM& operator=( const EDA_ITEM& aItem );
#define USE_EDA_ITEM_OP_EQ
#endif
/// @copydoc VIEW_ITEM::ViewBBox() /// @copydoc VIEW_ITEM::ViewBBox()
virtual const BOX2I ViewBBox() const; virtual const BOX2I ViewBBox() const;
......
...@@ -198,13 +198,13 @@ public: ...@@ -198,13 +198,13 @@ public:
class HOTKEYS_EDITOR_DIALOG : public HOTKEYS_EDITOR_DIALOG_BASE class HOTKEYS_EDITOR_DIALOG : public HOTKEYS_EDITOR_DIALOG_BASE
{ {
protected: protected:
EDA_DRAW_FRAME* m_parent; EDA_BASE_FRAME* m_parent;
struct EDA_HOTKEY_CONFIG* m_hotkeys; struct EDA_HOTKEY_CONFIG* m_hotkeys;
std::vector<HOTKEY_SECTION_PAGE*> m_hotkeySectionPages; std::vector<HOTKEY_SECTION_PAGE*> m_hotkeySectionPages;
public: public:
HOTKEYS_EDITOR_DIALOG( EDA_DRAW_FRAME* aParent, EDA_HOTKEY_CONFIG* aHotkeys ); HOTKEYS_EDITOR_DIALOG( EDA_BASE_FRAME* aParent, EDA_HOTKEY_CONFIG* aHotkeys );
~HOTKEYS_EDITOR_DIALOG() {}; ~HOTKEYS_EDITOR_DIALOG() {};
...@@ -259,6 +259,6 @@ private: ...@@ -259,6 +259,6 @@ private:
* @param aParent is the parent window * @param aParent is the parent window
* @param aHotkeys is the hotkey configuration array * @param aHotkeys is the hotkey configuration array
*/ */
void InstallHotkeyFrame( EDA_DRAW_FRAME* aParent, EDA_HOTKEY_CONFIG* aHotkeys ); void InstallHotkeyFrame( EDA_BASE_FRAME* aParent, EDA_HOTKEY_CONFIG* aHotkeys );
#endif #endif
...@@ -29,10 +29,10 @@ ...@@ -29,10 +29,10 @@
#ifndef HOTKEYS_BASIC_H #ifndef HOTKEYS_BASIC_H
#define HOTKEYS_BASIC_H #define HOTKEYS_BASIC_H
#define DEFAULT_HOTKEY_FILENAME_EXT wxT( "key" ) #define DEFAULT_HOTKEY_FILENAME_EXT wxT( "hotkeys" )
class EDA_DRAW_FRAME; class EDA_BASE_FRAME;
/* Identifiers (tags) in key code configuration file (or section names) /* Identifiers (tags) in key code configuration file (or section names)
...@@ -116,7 +116,7 @@ public: ...@@ -116,7 +116,7 @@ public:
/* Functions: /* Functions:
*/ */
void AddHotkeyConfigMenu( wxMenu* menu ); void AddHotkeyConfigMenu( wxMenu* menu );
void HandleHotkeyConfigMenuSelection( EDA_DRAW_FRAME* frame, int id ); void HandleHotkeyConfigMenuSelection( EDA_BASE_FRAME* frame, int id );
/** /**
* Function KeyNameFromKeyCode * Function KeyNameFromKeyCode
...@@ -196,7 +196,7 @@ wxString AddHotkeyName( const wxString& aText, ...@@ -196,7 +196,7 @@ wxString AddHotkeyName( const wxString& aText,
* @param aFrame = current active frame * @param aFrame = current active frame
* @param aList = pointer to a EDA_HOTKEY_CONFIG list (Null terminated) * @param aList = pointer to a EDA_HOTKEY_CONFIG list (Null terminated)
*/ */
void DisplayHotkeyList( EDA_DRAW_FRAME* aFrame, struct EDA_HOTKEY_CONFIG* aList ); void DisplayHotkeyList( EDA_BASE_FRAME* aFrame, struct EDA_HOTKEY_CONFIG* aList );
/** /**
* Function GetDescriptorFromHotkey * Function GetDescriptorFromHotkey
......
...@@ -73,6 +73,8 @@ namespace PCB { struct IFACE; } // KIFACE_I is in pcbnew.cpp ...@@ -73,6 +73,8 @@ namespace PCB { struct IFACE; } // KIFACE_I is in pcbnew.cpp
* *
* See also class PCB_BASE_FRAME(): Basic class for Pcbnew and GerbView. * See also class PCB_BASE_FRAME(): Basic class for Pcbnew and GerbView.
*/ */
#define PCB_EDIT_FRAME_NAME wxT( "PcbFrame" )
class PCB_EDIT_FRAME : public PCB_BASE_EDIT_FRAME class PCB_EDIT_FRAME : public PCB_BASE_EDIT_FRAME
{ {
friend struct PCB::IFACE; friend struct PCB::IFACE;
......
...@@ -291,15 +291,21 @@ public: ...@@ -291,15 +291,21 @@ public:
* Function ImportHotkeyConfigFromFile * Function ImportHotkeyConfigFromFile
* Prompt the user for an old hotkey file to read, and read it. * Prompt the user for an old hotkey file to read, and read it.
* @param aDescList = current hotkey list descr. to initialize. * @param aDescList = current hotkey list descr. to initialize.
* @param aDefaultShortname = a default short name (extention not needed)
* like eechema, kicad...
*/ */
void ImportHotkeyConfigFromFile( EDA_HOTKEY_CONFIG* aDescList ); void ImportHotkeyConfigFromFile( EDA_HOTKEY_CONFIG* aDescList,
const wxString& aDefaultShortname );
/** /**
* Function ExportHotkeyConfigToFile * Function ExportHotkeyConfigToFile
* Prompt the user for an old hotkey file to read, and read it. * Prompt the user for an old hotkey file to read, and read it.
* @param aDescList = current hotkey list descr. to initialize. * @param aDescList = current hotkey list descr. to initialize.
* @param aDefaultShortname = a default short name (extention not needed)
* like eechema, kicad...
*/ */
void ExportHotkeyConfigToFile( EDA_HOTKEY_CONFIG* aDescList ); void ExportHotkeyConfigToFile( EDA_HOTKEY_CONFIG* aDescList,
const wxString& aDefaultShortname );
/** /**
* Function GetFileFromHistory * Function GetFileFromHistory
......
...@@ -38,6 +38,7 @@ ...@@ -38,6 +38,7 @@
#include <online_help.h> #include <online_help.h>
#include <wildcards_and_files_ext.h> #include <wildcards_and_files_ext.h>
#include <boost/ptr_container/ptr_vector.hpp> #include <boost/ptr_container/ptr_vector.hpp>
#include <hotkeys_basic.h>
#include <build_version.h> #include <build_version.h>
...@@ -137,6 +138,11 @@ bool PGM_KICAD::OnPgmInit( wxApp* aWxApp ) ...@@ -137,6 +138,11 @@ bool PGM_KICAD::OnPgmInit( wxApp* aWxApp )
//DBG( m_bm.m_search.Show( (std::string( __func__ ) + " SysSearch()").c_str() );) //DBG( m_bm.m_search.Show( (std::string( __func__ ) + " SysSearch()").c_str() );)
} }
// Must be called before creating the main frame in order to
// display the real hotkeys in menus or tool tips
extern struct EDA_HOTKEY_CONFIG kicad_Manager_Hokeys_Descr[];
ReadHotkeyConfig( KICAD_MANAGER_FRAME_NAME, kicad_Manager_Hokeys_Descr );
KICAD_MANAGER_FRAME* frame = new KICAD_MANAGER_FRAME( NULL, wxT( "KiCad" ), KICAD_MANAGER_FRAME* frame = new KICAD_MANAGER_FRAME( NULL, wxT( "KiCad" ),
wxDefaultPosition, wxDefaultSize ); wxDefaultPosition, wxDefaultSize );
App().SetTopWindow( frame ); App().SetTopWindow( frame );
......
...@@ -46,6 +46,8 @@ ...@@ -46,6 +46,8 @@
#define KICAD_USE_FILES_WATCHER #define KICAD_USE_FILES_WATCHER
#endif #endif
#define KICAD_MANAGER_FRAME_NAME wxT( "KicadFrame" )
class LAUNCHER_PANEL; class LAUNCHER_PANEL;
class TREEPROJECTFILES; class TREEPROJECTFILES;
class TREE_PROJECT_FRAME; class TREE_PROJECT_FRAME;
...@@ -190,6 +192,9 @@ public: ...@@ -190,6 +192,9 @@ public:
void OnFileHistory( wxCommandEvent& event ); void OnFileHistory( wxCommandEvent& event );
void OnExit( wxCommandEvent& event ); void OnExit( wxCommandEvent& event );
void Process_Preferences( wxCommandEvent& event ); void Process_Preferences( wxCommandEvent& event );
void Process_Config( wxCommandEvent& event );
void ReCreateMenuBar(); void ReCreateMenuBar();
void RecreateBaseHToolbar(); void RecreateBaseHToolbar();
...@@ -292,6 +297,7 @@ private: ...@@ -292,6 +297,7 @@ private:
wxAuiToolBar* m_VToolBar; // Vertical toolbar (not used) wxAuiToolBar* m_VToolBar; // Vertical toolbar (not used)
int m_leftWinWidth; int m_leftWinWidth;
EDA_HOTKEY_CONFIG* m_manager_Hokeys_Descr;
void language_change( wxCommandEvent& event ); void language_change( wxCommandEvent& event );
}; };
......
...@@ -40,17 +40,19 @@ ...@@ -40,17 +40,19 @@
#include <tree_project_frame.h> #include <tree_project_frame.h>
#include <wildcards_and_files_ext.h> #include <wildcards_and_files_ext.h>
#include <menus_helpers.h> #include <menus_helpers.h>
#include <dialog_hotkeys_editor.h>
#define TREE_FRAME_WIDTH_ENTRY wxT( "LeftWinWidth" ) #define TREE_FRAME_WIDTH_ENTRY wxT( "LeftWinWidth" )
KICAD_MANAGER_FRAME::KICAD_MANAGER_FRAME( wxWindow* parent, KICAD_MANAGER_FRAME::KICAD_MANAGER_FRAME( wxWindow* parent,
const wxString& title, const wxPoint& pos, const wxSize& size ) : const wxString& title, const wxPoint& pos, const wxSize& size ) :
EDA_BASE_FRAME( parent, KICAD_MAIN_FRAME_T, title, pos, size, EDA_BASE_FRAME( parent, KICAD_MAIN_FRAME_T, title, pos, size,
KICAD_DEFAULT_DRAWFRAME_STYLE, wxT( "KicadFrame" ) ) KICAD_DEFAULT_DRAWFRAME_STYLE, KICAD_MANAGER_FRAME_NAME )
{ {
m_leftWinWidth = 60; m_leftWinWidth = 60;
m_manager_Hokeys_Descr = NULL;
m_FrameName = KICAD_MANAGER_FRAME_NAME;
// Create the status line (bottom of the frame // Create the status line (bottom of the frame
static const int dims[3] = { -1, -1, 100 }; static const int dims[3] = { -1, -1, 100 };
...@@ -529,3 +531,33 @@ void KICAD_MANAGER_FRAME::PrintPrjInfo() ...@@ -529,3 +531,33 @@ void KICAD_MANAGER_FRAME::PrintPrjInfo()
PrintMsg( msg ); PrintMsg( msg );
} }
void KICAD_MANAGER_FRAME::Process_Config( wxCommandEvent& event )
{
int id = event.GetId();
wxFileName fn;
switch( id )
{
// Hotkey IDs
case ID_PREFERENCES_HOTKEY_SHOW_EDITOR:
InstallHotkeyFrame( this, m_manager_Hokeys_Descr );
break;
case ID_PREFERENCES_HOTKEY_EXPORT_CONFIG:
ExportHotkeyConfigToFile( m_manager_Hokeys_Descr, wxT( "kicad" ) );
break;
case ID_PREFERENCES_HOTKEY_IMPORT_CONFIG:
ImportHotkeyConfigFromFile( m_manager_Hokeys_Descr, wxT( "kicad" ) );
break;
case ID_PREFERENCES_HOTKEY_SHOW_CURRENT_LIST:
// Display current hotkey list for LibEdit.
DisplayHotkeyList( this, m_manager_Hokeys_Descr );
break;
default:
wxFAIL_MSG( wxT( "KICAD_MANAGER_FRAME::Process_Config error" ) );
break;
}
}
/* /*
* This program source code file is part of KiCad, a free EDA CAD application. * This program source code file is part of KiCad, a free EDA CAD application.
* *
* Copyright (C) 2012 Jean-Pierre Charras, jp.charras at wanadoo.fr * Copyright (C) 2015 Jean-Pierre Charras, jp.charras at wanadoo.fr
* Copyright (C) 2009-2012 Wayne Stambaugh <stambaughw@verizon.net> * Copyright (C) 2009-2015 Wayne Stambaugh <stambaughw@verizon.net>
* Copyright (C) 1992-2012 KiCad Developers, see AUTHORS.txt for contributors. * Copyright (C) 1992-2015 KiCad Developers, see AUTHORS.txt for contributors.
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
#include <kicad.h> #include <kicad.h>
#include <menus_helpers.h> #include <menus_helpers.h>
#include <tree_project_frame.h> #include <tree_project_frame.h>
#include <hotkeys_basic.h>
// Menubar and toolbar event table // Menubar and toolbar event table
BEGIN_EVENT_TABLE( KICAD_MANAGER_FRAME, EDA_BASE_FRAME ) BEGIN_EVENT_TABLE( KICAD_MANAGER_FRAME, EDA_BASE_FRAME )
...@@ -68,24 +69,42 @@ BEGIN_EVENT_TABLE( KICAD_MANAGER_FRAME, EDA_BASE_FRAME ) ...@@ -68,24 +69,42 @@ BEGIN_EVENT_TABLE( KICAD_MANAGER_FRAME, EDA_BASE_FRAME )
EVT_MENU_RANGE( wxID_FILE1, wxID_FILE9, KICAD_MANAGER_FRAME::OnFileHistory ) EVT_MENU_RANGE( wxID_FILE1, wxID_FILE9, KICAD_MANAGER_FRAME::OnFileHistory )
// Hotkey management (show list, edit ...) events
EVT_MENU_RANGE( ID_PREFERENCES_HOTKEY_START, ID_PREFERENCES_HOTKEY_END,
KICAD_MANAGER_FRAME::Process_Config )
// Special functions // Special functions
#ifdef KICAD_USE_FILES_WATCHER #ifdef KICAD_USE_FILES_WATCHER
EVT_MENU( ID_INIT_WATCHED_PATHS, KICAD_MANAGER_FRAME::OnChangeWatchedPaths ) EVT_MENU( ID_INIT_WATCHED_PATHS, KICAD_MANAGER_FRAME::OnChangeWatchedPaths )
#endif #endif
// Button events // Button events (in command frame), and menu events equivalent to buttons
EVT_BUTTON( ID_TO_SCH, KICAD_MANAGER_FRAME::OnRunEeschema ) EVT_BUTTON( ID_TO_SCH, KICAD_MANAGER_FRAME::OnRunEeschema )
EVT_MENU( ID_TO_SCH, KICAD_MANAGER_FRAME::OnRunEeschema )
EVT_BUTTON( ID_TO_SCH_LIB_EDITOR, KICAD_MANAGER_FRAME::OnRunSchLibEditor ) EVT_BUTTON( ID_TO_SCH_LIB_EDITOR, KICAD_MANAGER_FRAME::OnRunSchLibEditor )
EVT_MENU( ID_TO_SCH_LIB_EDITOR, KICAD_MANAGER_FRAME::OnRunSchLibEditor )
EVT_BUTTON( ID_TO_CVPCB, KICAD_MANAGER_FRAME::OnRunCvpcb ) EVT_BUTTON( ID_TO_CVPCB, KICAD_MANAGER_FRAME::OnRunCvpcb )
EVT_BUTTON( ID_TO_PCB, KICAD_MANAGER_FRAME::OnRunPcbNew ) EVT_BUTTON( ID_TO_PCB, KICAD_MANAGER_FRAME::OnRunPcbNew )
EVT_MENU( ID_TO_PCB, KICAD_MANAGER_FRAME::OnRunPcbNew )
EVT_BUTTON( ID_TO_PCB_FP_EDITOR, KICAD_MANAGER_FRAME::OnRunPcbFpEditor ) EVT_BUTTON( ID_TO_PCB_FP_EDITOR, KICAD_MANAGER_FRAME::OnRunPcbFpEditor )
EVT_MENU( ID_TO_PCB_FP_EDITOR, KICAD_MANAGER_FRAME::OnRunPcbFpEditor )
EVT_BUTTON( ID_TO_GERBVIEW, KICAD_MANAGER_FRAME::OnRunGerbview ) EVT_BUTTON( ID_TO_GERBVIEW, KICAD_MANAGER_FRAME::OnRunGerbview )
EVT_MENU( ID_TO_GERBVIEW, KICAD_MANAGER_FRAME::OnRunGerbview )
EVT_BUTTON( ID_TO_BITMAP_CONVERTER, KICAD_MANAGER_FRAME::OnRunBitmapConverter ) EVT_BUTTON( ID_TO_BITMAP_CONVERTER, KICAD_MANAGER_FRAME::OnRunBitmapConverter )
EVT_MENU( ID_TO_BITMAP_CONVERTER, KICAD_MANAGER_FRAME::OnRunBitmapConverter )
EVT_BUTTON( ID_TO_PCB_CALCULATOR, KICAD_MANAGER_FRAME::OnRunPcbCalculator ) EVT_BUTTON( ID_TO_PCB_CALCULATOR, KICAD_MANAGER_FRAME::OnRunPcbCalculator )
EVT_MENU( ID_TO_PCB_CALCULATOR, KICAD_MANAGER_FRAME::OnRunPcbCalculator )
EVT_BUTTON( ID_TO_PL_EDITOR, KICAD_MANAGER_FRAME::OnRunPageLayoutEditor ) EVT_BUTTON( ID_TO_PL_EDITOR, KICAD_MANAGER_FRAME::OnRunPageLayoutEditor )
EVT_MENU( ID_TO_PL_EDITOR, KICAD_MANAGER_FRAME::OnRunPageLayoutEditor )
EVT_UPDATE_UI( ID_SELECT_DEFAULT_PDF_BROWSER, KICAD_MANAGER_FRAME::OnUpdateDefaultPdfBrowser ) EVT_UPDATE_UI( ID_SELECT_DEFAULT_PDF_BROWSER, KICAD_MANAGER_FRAME::OnUpdateDefaultPdfBrowser )
EVT_UPDATE_UI( ID_SELECT_PREFERED_PDF_BROWSER, EVT_UPDATE_UI( ID_SELECT_PREFERED_PDF_BROWSER,
...@@ -93,15 +112,72 @@ BEGIN_EVENT_TABLE( KICAD_MANAGER_FRAME, EDA_BASE_FRAME ) ...@@ -93,15 +112,72 @@ BEGIN_EVENT_TABLE( KICAD_MANAGER_FRAME, EDA_BASE_FRAME )
END_EVENT_TABLE() END_EVENT_TABLE()
enum hotkey_id_commnand
{
HK_RUN_EESCHEMA = HK_COMMON_END,
HK_LOAD_PROJECT,
HK_SAVE_PROJECT,
HK_NEW_PRJ,
HK_NEW_PRJ_TEMPLATE,
HK_RUN_LIBEDIT,
HK_RUN_PCBNEW,
HK_RUN_FPEDITOR,
HK_RUN_GERBVIEW,
HK_RUN_BM2COMPONENT,
HK_RUN_PCBCALCULATOR,
HK_RUN_PLEDITOR
};
///////////// Hotkeys management ///////////////////////////////////////
// hotkeys command:
static EDA_HOTKEY HkHelp( wxT( "Help (this window)" ), HK_HELP, '?' );
static EDA_HOTKEY HkLoadPrj( wxT( "Load project" ), HK_LOAD_PROJECT, 'O' + GR_KB_CTRL );
static EDA_HOTKEY HkSavePrj( wxT( "Save project" ), HK_SAVE_PROJECT, 'S' + GR_KB_CTRL );
static EDA_HOTKEY HkNewProject( wxT( "New Project" ), HK_NEW_PRJ, 'N' + GR_KB_CTRL );
static EDA_HOTKEY HkNewPrjFromTemplate( wxT( "New Prj From Template" ),
HK_NEW_PRJ_TEMPLATE, 'T' + GR_KB_CTRL );
static EDA_HOTKEY HkRunEeschema( wxT( "Run Eeschema" ), HK_RUN_EESCHEMA, 'E', 0 );
static EDA_HOTKEY HkRunLibedit( wxT( "Run LibEdit" ), HK_RUN_LIBEDIT, 'L', 0 );
static EDA_HOTKEY HkRunPcbnew( wxT( "Run Pcbnew" ), HK_RUN_PCBNEW, 'P', 0 );
static EDA_HOTKEY HkRunModedit( wxT( "Run FpEditor" ), HK_RUN_FPEDITOR, 'F', 0 );
static EDA_HOTKEY HkRunGerbview( wxT( "Run Gerbview" ), HK_RUN_GERBVIEW, 'G', 0 );
static EDA_HOTKEY HkRunBm2Cmp( wxT( "Run Bitmap2Component" ), HK_RUN_BM2COMPONENT, 'B', 0 );
static EDA_HOTKEY HkRunPcbCalc( wxT( "Run PcbCalculator" ), HK_RUN_PCBCALCULATOR, 'C', 0 );
static EDA_HOTKEY HkRunPleditor( wxT( "Run PlEditor" ), HK_RUN_PLEDITOR, 'Y', 0 );
// List of hotkey descriptors
EDA_HOTKEY* common_Hotkey_List[] =
{
&HkHelp,
&HkLoadPrj, &HkSavePrj, &HkNewProject, &HkNewPrjFromTemplate,
&HkRunEeschema, &HkRunLibedit,
&HkRunPcbnew, &HkRunModedit, &HkRunGerbview,
&HkRunBm2Cmp, &HkRunPcbCalc, &HkRunPleditor,
NULL
};
// list of sections and corresponding hotkey list for Kicad
// (used to create an hotkey config file, and edit hotkeys )
// here we have only one section.
struct EDA_HOTKEY_CONFIG kicad_Manager_Hokeys_Descr[] = {
{ &g_CommonSectionTag, common_Hotkey_List, &g_CommonSectionTitle },
{ NULL, NULL, NULL }
};
///////////// End hotkeys management ///////////////////////////////////////
/** /**
* @brief (Re)Create the menubar * @brief (Re)Create the menubar
*/ */
void KICAD_MANAGER_FRAME::ReCreateMenuBar() void KICAD_MANAGER_FRAME::ReCreateMenuBar()
{ {
wxString msg;
static wxMenu* openRecentMenu; // Open Recent submenu, static wxMenu* openRecentMenu; // Open Recent submenu,
// static to remember this menu // static to remember this menu
m_manager_Hokeys_Descr = kicad_Manager_Hokeys_Descr;
// Create and try to get the current menubar // Create and try to get the current menubar
wxMenuBar* menuBar = GetMenuBar(); wxMenuBar* menuBar = GetMenuBar();
...@@ -127,9 +203,8 @@ void KICAD_MANAGER_FRAME::ReCreateMenuBar() ...@@ -127,9 +203,8 @@ void KICAD_MANAGER_FRAME::ReCreateMenuBar()
wxMenu* fileMenu = new wxMenu; wxMenu* fileMenu = new wxMenu;
// Open // Open
AddMenuItem( fileMenu, msg = AddHotkeyName( _( "&Open Project" ), kicad_Manager_Hokeys_Descr, HK_LOAD_PROJECT );
ID_LOAD_PROJECT, AddMenuItem( fileMenu, ID_LOAD_PROJECT, msg,
_( "&Open Project\tCtrl+O" ),
_( "Open existing project" ), _( "Open existing project" ),
KiBitmap( open_project_xpm ) ); KiBitmap( open_project_xpm ) );
...@@ -143,30 +218,35 @@ void KICAD_MANAGER_FRAME::ReCreateMenuBar() ...@@ -143,30 +218,35 @@ void KICAD_MANAGER_FRAME::ReCreateMenuBar()
_( "Open recent schematic project" ), _( "Open recent schematic project" ),
KiBitmap( open_project_xpm ) ); KiBitmap( open_project_xpm ) );
// New // New project creation
wxMenu* newMenu = new wxMenu(); wxMenu* newprjSubMenu = new wxMenu();
AddMenuItem( newMenu, ID_NEW_PROJECT,
_( "&Blank Project\tCtrl+N" ), msg = AddHotkeyName( _( "&New Project" ), kicad_Manager_Hokeys_Descr, HK_NEW_PRJ );
_( "Create blank project" ), AddMenuItem( newprjSubMenu, ID_NEW_PROJECT, msg,
_( "Create new blank project" ),
KiBitmap( new_project_xpm ) ); KiBitmap( new_project_xpm ) );
AddMenuItem( newMenu, ID_NEW_PROJECT_FROM_TEMPLATE, msg = AddHotkeyName( _( "New Project from &Template" ),
_( "Project from &Template\tCtrl+T" ), kicad_Manager_Hokeys_Descr, HK_NEW_PRJ_TEMPLATE );
_( "Create new project from template" ), AddMenuItem( newprjSubMenu, ID_NEW_PROJECT_FROM_TEMPLATE, msg,
_( "Create a new project from a template" ),
KiBitmap( new_project_with_template_xpm ) ); KiBitmap( new_project_with_template_xpm ) );
AddMenuItem( fileMenu, newMenu, AddMenuItem( fileMenu, newprjSubMenu,
wxID_ANY, wxID_ANY,
_( "New" ), _( "New Project" ),
_( "Create new project" ), _( "Create new project" ),
KiBitmap( new_project_xpm ) ); KiBitmap( new_project_xpm ) );
// Currently there is nothing to save
// (Kicad manager does not save any info in .pro file)
#if 0
// Save // Save
AddMenuItem( fileMenu, msg = AddHotkeyName( _( "&Save" ), kicad_Manager_Hokeys_Descr, HK_SAVE_PROJECT );
ID_SAVE_PROJECT, AddMenuItem( fileMenu, ID_SAVE_PROJECT, msg,
_( "&Save\tCtrl+S" ),
_( "Save current project" ), _( "Save current project" ),
KiBitmap( save_project_xpm ) ); KiBitmap( save_project_xpm ) );
#endif
// Archive // Archive
fileMenu->AppendSeparator(); fileMenu->AppendSeparator();
...@@ -255,10 +335,61 @@ void KICAD_MANAGER_FRAME::ReCreateMenuBar() ...@@ -255,10 +335,61 @@ void KICAD_MANAGER_FRAME::ReCreateMenuBar()
_( "PDF viewer preferences" ), _( "PDF viewer preferences" ),
KiBitmap( datasheet_xpm ) ); KiBitmap( datasheet_xpm ) );
// Hotkey submenu
preferencesMenu->AppendSeparator();
AddHotkeyConfigMenu( preferencesMenu );
// Language submenu // Language submenu
preferencesMenu->AppendSeparator(); preferencesMenu->AppendSeparator();
Pgm().AddMenuLanguageList( preferencesMenu ); Pgm().AddMenuLanguageList( preferencesMenu );
// Hotkey submenu
AddHotkeyConfigMenu( preferencesMenu );
// Menu Tools:
wxMenu* toolsMenu = new wxMenu;
msg = AddHotkeyName( _( "Run Eeschema" ), kicad_Manager_Hokeys_Descr, HK_RUN_EESCHEMA );
AddMenuItem( toolsMenu, ID_TO_SCH, msg,
KiBitmap( eeschema_xpm ) );
msg = AddHotkeyName( _( "Run Library Editor" ),
kicad_Manager_Hokeys_Descr, HK_RUN_LIBEDIT );
AddMenuItem( toolsMenu, ID_TO_SCH_LIB_EDITOR, msg,
KiBitmap( libedit_xpm ) );
msg = AddHotkeyName( _( "Run Pcbnew" ),
kicad_Manager_Hokeys_Descr, HK_RUN_PCBNEW );
AddMenuItem( toolsMenu, ID_TO_PCB, msg,
KiBitmap( pcbnew_xpm ) );
msg = AddHotkeyName( _( "Run Footprint Editor" ),
kicad_Manager_Hokeys_Descr, HK_RUN_FPEDITOR );
AddMenuItem( toolsMenu, ID_TO_PCB_FP_EDITOR, msg,
KiBitmap( module_editor_xpm ) );
msg = AddHotkeyName( _( "Run Gerbview" ),
kicad_Manager_Hokeys_Descr, HK_RUN_GERBVIEW );
AddMenuItem( toolsMenu, ID_TO_GERBVIEW, msg,
KiBitmap( icon_gerbview_small_xpm ) );
msg = AddHotkeyName( _( "Run Bitmap2Component" ),
kicad_Manager_Hokeys_Descr, HK_RUN_BM2COMPONENT );
AddMenuItem( toolsMenu, ID_TO_BITMAP_CONVERTER, msg,
_( "Bitmap2Component - Convert bitmap images to Eeschema\n"
"or Pcbnew elements" ),
KiBitmap( image_xpm ) );
msg = AddHotkeyName( _( "Run Pcb Calculator" ), kicad_Manager_Hokeys_Descr, HK_RUN_PCBCALCULATOR );
AddMenuItem( toolsMenu, ID_TO_PCB_CALCULATOR, msg,
_( "Pcb calculator - Calculator for components, track width, etc." ),
KiBitmap( options_module_xpm ) );
msg = AddHotkeyName( _( "Run Page Layout Editor" ), kicad_Manager_Hokeys_Descr, HK_RUN_PLEDITOR );
AddMenuItem( toolsMenu, ID_TO_PL_EDITOR, msg,
_( "Pl editor - Worksheet layout editor" ),
KiBitmap( pagelayout_load_xpm ) );
// Menu Help: // Menu Help:
wxMenu* helpMenu = new wxMenu; wxMenu* helpMenu = new wxMenu;
...@@ -289,6 +420,7 @@ void KICAD_MANAGER_FRAME::ReCreateMenuBar() ...@@ -289,6 +420,7 @@ void KICAD_MANAGER_FRAME::ReCreateMenuBar()
menuBar->Append( fileMenu, _( "&File" ) ); menuBar->Append( fileMenu, _( "&File" ) );
menuBar->Append( browseMenu, _( "&Browse" ) ); menuBar->Append( browseMenu, _( "&Browse" ) );
menuBar->Append( preferencesMenu, _( "&Preferences" ) ); menuBar->Append( preferencesMenu, _( "&Preferences" ) );
menuBar->Append( toolsMenu, _( "&Tools" ) );
menuBar->Append( helpMenu, _( "&Help" ) ); menuBar->Append( helpMenu, _( "&Help" ) );
menuBar->Thaw(); menuBar->Thaw();
...@@ -298,6 +430,15 @@ void KICAD_MANAGER_FRAME::ReCreateMenuBar() ...@@ -298,6 +430,15 @@ void KICAD_MANAGER_FRAME::ReCreateMenuBar()
SetMenuBar( menuBar ); SetMenuBar( menuBar );
else else
menuBar->Refresh(); menuBar->Refresh();
// Add the hotkey to the "show hotkey list" menu, because we do not have
// a management of the keyboard keys in Kicad.
// So all hotheys should be added to the menubar
// Note Use wxMenuBar::SetLabel only after the menubar
// has been associated with a frame. (see wxWidgets doc)
msg = AddHotkeyName( menuBar->GetLabel( ID_PREFERENCES_HOTKEY_SHOW_CURRENT_LIST ),
kicad_Manager_Hokeys_Descr, HK_HELP );
menuBar->SetLabel( ID_PREFERENCES_HOTKEY_SHOW_CURRENT_LIST, msg );
} }
......
...@@ -122,7 +122,7 @@ bool IFACE::OnKifaceStart( PGM_BASE* aProgram, int aCtlBits ) ...@@ -122,7 +122,7 @@ bool IFACE::OnKifaceStart( PGM_BASE* aProgram, int aCtlBits )
// Must be called before creating the main frame in order to // Must be called before creating the main frame in order to
// display the real hotkeys in menus or tool tips // display the real hotkeys in menus or tool tips
ReadHotkeyConfig( wxT("PlEditorFrame"), s_PlEditor_Hokeys_Descr ); ReadHotkeyConfig( PL_EDITOR_FRAME_NAME, s_PlEditor_Hokeys_Descr );
g_UserUnit = MILLIMETRES; g_UserUnit = MILLIMETRES;
...@@ -159,7 +159,7 @@ bool MYFACE::OnKifaceStart( PGM_BASE* aProgram ) ...@@ -159,7 +159,7 @@ bool MYFACE::OnKifaceStart( PGM_BASE* aProgram )
// Must be called before creating the main frame in order to // Must be called before creating the main frame in order to
// display the real hotkeys in menus or tool tips // display the real hotkeys in menus or tool tips
ReadHotkeyConfig( wxT("PlEditorFrame"), s_PlEditor_Hokeys_Descr ); ReadHotkeyConfig( PL_EDITOR_FRAME_NAME, s_PlEditor_Hokeys_Descr );
PL_EDITOR_FRAME * frame = new PL_EDITOR_FRAME( NULL, wxT( "PlEditorFrame" ), wxPoint( 0, 0 ), wxSize( 600, 400 ) ); PL_EDITOR_FRAME * frame = new PL_EDITOR_FRAME( NULL, wxT( "PlEditorFrame" ), wxPoint( 0, 0 ), wxSize( 600, 400 ) );
......
...@@ -74,11 +74,11 @@ void PL_EDITOR_FRAME::Process_Config( wxCommandEvent& event ) ...@@ -74,11 +74,11 @@ void PL_EDITOR_FRAME::Process_Config( wxCommandEvent& event )
break; break;
case ID_PREFERENCES_HOTKEY_EXPORT_CONFIG: case ID_PREFERENCES_HOTKEY_EXPORT_CONFIG:
ExportHotkeyConfigToFile( s_PlEditor_Hokeys_Descr ); ExportHotkeyConfigToFile( s_PlEditor_Hokeys_Descr, wxT( "pl_editor" ) );
break; break;
case ID_PREFERENCES_HOTKEY_IMPORT_CONFIG: case ID_PREFERENCES_HOTKEY_IMPORT_CONFIG:
ImportHotkeyConfigFromFile( s_PlEditor_Hokeys_Descr ); ImportHotkeyConfigFromFile( s_PlEditor_Hokeys_Descr, wxT( "pl_editor" ) );
break; break;
case ID_PREFERENCES_HOTKEY_SHOW_CURRENT_LIST: case ID_PREFERENCES_HOTKEY_SHOW_CURRENT_LIST:
......
...@@ -50,8 +50,6 @@ ...@@ -50,8 +50,6 @@
/* class PL_EDITOR_FRAME */ /* class PL_EDITOR_FRAME */
/*************************/ /*************************/
#define PL_EDITOR_FRAME_NAME wxT( "PlEditorFrame" )
PL_EDITOR_FRAME::PL_EDITOR_FRAME( KIWAY* aKiway, wxWindow* aParent ) : PL_EDITOR_FRAME::PL_EDITOR_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
EDA_DRAW_FRAME( aKiway, aParent, FRAME_PL_EDITOR, wxT( "PlEditorFrame" ), EDA_DRAW_FRAME( aKiway, aParent, FRAME_PL_EDITOR, wxT( "PlEditorFrame" ),
wxDefaultPosition, wxDefaultSize, KICAD_DEFAULT_DRAWFRAME_STYLE, PL_EDITOR_FRAME_NAME ) wxDefaultPosition, wxDefaultSize, KICAD_DEFAULT_DRAWFRAME_STYLE, PL_EDITOR_FRAME_NAME )
......
...@@ -45,6 +45,8 @@ class WORKSHEET_DATAITEM; ...@@ -45,6 +45,8 @@ class WORKSHEET_DATAITEM;
* Class PL_EDITOR_FRAME * Class PL_EDITOR_FRAME
* is the main window used in the page layout editor. * is the main window used in the page layout editor.
*/ */
#define PL_EDITOR_FRAME_NAME wxT( "PlEditorFrame" )
class PL_EDITOR_FRAME : public EDA_DRAW_FRAME class PL_EDITOR_FRAME : public EDA_DRAW_FRAME
{ {
PL_EDITOR_LAYOUT m_pageLayout; PL_EDITOR_LAYOUT m_pageLayout;
......
...@@ -835,11 +835,11 @@ void FOOTPRINT_EDIT_FRAME::ProcessPreferences( wxCommandEvent& event ) ...@@ -835,11 +835,11 @@ void FOOTPRINT_EDIT_FRAME::ProcessPreferences( wxCommandEvent& event )
{ {
// Hotkey IDs // Hotkey IDs
case ID_PREFERENCES_HOTKEY_EXPORT_CONFIG: case ID_PREFERENCES_HOTKEY_EXPORT_CONFIG:
ExportHotkeyConfigToFile( g_Module_Editor_Hokeys_Descr ); ExportHotkeyConfigToFile( g_Module_Editor_Hokeys_Descr, wxT( "pcbnew" ) );
break; break;
case ID_PREFERENCES_HOTKEY_IMPORT_CONFIG: case ID_PREFERENCES_HOTKEY_IMPORT_CONFIG:
ImportHotkeyConfigFromFile( g_Module_Editor_Hokeys_Descr ); ImportHotkeyConfigFromFile( g_Module_Editor_Hokeys_Descr, wxT( "pcbnew" ) );
break; break;
case ID_PREFERENCES_HOTKEY_SHOW_EDITOR: case ID_PREFERENCES_HOTKEY_SHOW_EDITOR:
......
...@@ -310,8 +310,6 @@ BEGIN_EVENT_TABLE( PCB_EDIT_FRAME, PCB_BASE_FRAME ) ...@@ -310,8 +310,6 @@ BEGIN_EVENT_TABLE( PCB_EDIT_FRAME, PCB_BASE_FRAME )
END_EVENT_TABLE() END_EVENT_TABLE()
#define PCB_EDIT_FRAME_NAME wxT( "PcbFrame" )
PCB_EDIT_FRAME::PCB_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent ) : PCB_EDIT_FRAME::PCB_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
PCB_BASE_EDIT_FRAME( aKiway, aParent, FRAME_PCB, wxT( "Pcbnew" ), wxDefaultPosition, PCB_BASE_EDIT_FRAME( aKiway, aParent, FRAME_PCB, wxT( "Pcbnew" ), wxDefaultPosition,
wxDefaultSize, KICAD_DEFAULT_DRAWFRAME_STYLE, PCB_EDIT_FRAME_NAME ) wxDefaultSize, KICAD_DEFAULT_DRAWFRAME_STYLE, PCB_EDIT_FRAME_NAME )
......
/* /*
* This program source code file is part of KiCad, a free EDA CAD application. * This program source code file is part of KiCad, a free EDA CAD application.
* *
* Copyright (C) 2012 Jean-Pierre Charras, jean-pierre.charras@ujf-grenoble.fr * Copyright (C) 2015 Jean-Pierre Charras, jp.charras at wanadoo.fr
* Copyright (C) 2012 SoftPLC Corporation, Dick Hollenbeck <dick@softplc.com> * Copyright (C) 2012 SoftPLC Corporation, Dick Hollenbeck <dick@softplc.com>
* Copyright (C) 1992-2015 KiCad Developers, see AUTHORS.txt for contributors. * Copyright (C) 1992-2015 KiCad Developers, see AUTHORS.txt for contributors.
* *
...@@ -307,7 +307,7 @@ bool IFACE::OnKifaceStart( PGM_BASE* aProgram, int aCtlBits ) ...@@ -307,7 +307,7 @@ bool IFACE::OnKifaceStart( PGM_BASE* aProgram, int aCtlBits )
// Must be called before creating the main frame in order to // Must be called before creating the main frame in order to
// display the real hotkeys in menus or tool tips // display the real hotkeys in menus or tool tips
ReadHotkeyConfig( wxT( "PcbFrame" ), g_Board_Editor_Hokeys_Descr ); ReadHotkeyConfig( PCB_EDIT_FRAME_NAME, g_Board_Editor_Hokeys_Descr );
try try
{ {
......
...@@ -227,11 +227,11 @@ void PCB_EDIT_FRAME::Process_Config( wxCommandEvent& event ) ...@@ -227,11 +227,11 @@ void PCB_EDIT_FRAME::Process_Config( wxCommandEvent& event )
// Hotkey IDs // Hotkey IDs
case ID_PREFERENCES_HOTKEY_EXPORT_CONFIG: case ID_PREFERENCES_HOTKEY_EXPORT_CONFIG:
ExportHotkeyConfigToFile( g_Board_Editor_Hokeys_Descr ); ExportHotkeyConfigToFile( g_Board_Editor_Hokeys_Descr, wxT( "pcbnew" ) );
break; break;
case ID_PREFERENCES_HOTKEY_IMPORT_CONFIG: case ID_PREFERENCES_HOTKEY_IMPORT_CONFIG:
ImportHotkeyConfigFromFile( g_Board_Editor_Hokeys_Descr ); ImportHotkeyConfigFromFile( g_Board_Editor_Hokeys_Descr, wxT( "pcbnew" ) );
break; break;
case ID_PREFERENCES_HOTKEY_SHOW_EDITOR: case ID_PREFERENCES_HOTKEY_SHOW_EDITOR:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment