Commit c116a9b5 authored by CHARRAS's avatar CHARRAS

first version of programmable hotkeys (work in progress)

parent 88dec9cd
/* XPM */
#ifndef XPMMAIN
extern char * reload_xpm[];
#else
char * reload_xpm[] = {
"16 16 110 2",
" c None",
". c #000000",
"+ c #766B3F",
"@ c #F7F8FA",
"# c #CBDDEB",
"$ c #5D5332",
"% c #EFE5BA",
"& c #7A7A7A",
"* c #E9E9E9",
"= c #EAEAEA",
"- c #F1F1F1",
"; c #BFD5E8",
"> c #DCE5E8",
", c #5A5230",
"' c #EEE5BB",
") c #EED680",
"! c #231F13",
"~ c #2A2516",
"{ c #12100A",
"] c #707070",
"^ c #ABABAB",
"/ c #C0C0C0",
"( c #E0E0E0",
"_ c #8DA9BE",
": c #54697C",
"< c #574F2E",
"[ c #EFE4B6",
"} c #CCB76D",
"| c #96864F",
"1 c #636363",
"2 c #FEFEFE",
"3 c #F9F9F9",
"4 c #84A0B5",
"5 c #4F6475",
"6 c #4B4428",
"7 c #EEE2B2",
"8 c #AF9D5D",
"9 c #919191",
"0 c #819AAE",
"a c #496072",
"b c #494227",
"c c #8F6406",
"d c #D1940C",
"e c #D7A328",
"f c #DEB446",
"g c #A49357",
"h c #CFCFCF",
"i c #302C19",
"j c #765204",
"k c #9E7009",
"l c #D9AA35",
"m c #909090",
"n c #666E75",
"o c #272315",
"p c #986B07",
"q c #737373",
"r c #5C4003",
"s c #B07D0A",
"t c #767676",
"u c #CFE0ED",
"v c #6C7E87",
"w c #1E1A0F",
"x c #896611",
"y c #676D73",
"z c #54595E",
"A c #986B08",
"B c #57626A",
"C c #6B7C85",
"D c #221E11",
"E c #0B0B06",
"F c #576876",
"G c #AE9141",
"H c #847645",
"I c #8CA8BD",
"J c #8E96A0",
"K c #616161",
"L c #C5C5C5",
"M c #CECECE",
"N c #E0C978",
"O c #131D24",
"P c #A0A8AF",
"Q c #183042",
"R c #C9B46B",
"S c #817444",
"T c #0E222D",
"U c #586D80",
"V c #97A5B0",
"W c #86A4B9",
"X c #CDCDCD",
"Y c #AE9C5C",
"Z c #626262",
"` c #112835",
" . c #5A7082",
".. c #9DA9B0",
"+. c #6B7882",
"@. c #839EB2",
"#. c #E6E6E6",
"$. c #213648",
"%. c #666666",
"&. c #8D8D8D",
"*. c #112C3A",
"=. c #9FA9B0",
"-. c #59636D",
";. c #A1A1A1",
">. c #868686",
",. c #6E6E6E",
"'. c #2D3949",
"). c #3E4F5C",
"!. c #80878F",
"~. c #1A3140",
" . . . + . . . . . . . . . . ",
". @ # $ % . & * * * = * - ; ; . ",
". > , ' ) . ! ~ { ] ^ / ( _ : . ",
". < [ ) ) ) ) } | . 1 2 3 4 5 . ",
"6 7 ) ) ) ) ) ) ) 8 . 9 - 0 a . ",
"b c d d d d d e f ) g . h 0 a . ",
". i c d d . . j k l } . m 0 a . ",
". n o p d . q . r s ) . t 0 a . ",
". u v w x . y z . A ) . B 0 a . ",
". u _ C D E F 0 . G H . 0 0 a . ",
". u _ I J K L M . N . O P 0 a . ",
". u _ 4 L L Q . R S . T U V a . ",
". u W 0 L X . Y | . Z ` ...a . ",
". +.@.0 X #.$.. . %.&.*. .=.a . ",
" . -.5 ;./ m m >.,.& '.).!.~.. ",
" . . . . . . . . . . . . . "};
#endif
......@@ -4,6 +4,12 @@ Started 2007-June-11
Please add newer entries at the top, list the date and your name with
email address.
2007-aug-21 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ eeschema & pcbnew
First version of programmable hotkeys by editing hotkey configuration files.
some hotkeys are not programmable (Zoom)(work in progress)
2007-Aug-21 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
......
......@@ -27,10 +27,9 @@ wxString HOSTNAME( wxT( "localhost" ) );
/* variables locales */
// buffers for read and write data in socket connections
// buffer for read and write data in socket connections
#define IPC_BUF_SIZE 4096
static char client_ipc_buffer[IPC_BUF_SIZE];
static char server_ipc_buffer[IPC_BUF_SIZE];
static wxServer* server;
......@@ -80,15 +79,15 @@ void WinEDA_DrawFrame::OnSockRequest( wxSocketEvent& evt )
switch( evt.GetSocketEvent() )
{
case wxSOCKET_INPUT:
sock->Read( server_ipc_buffer, 1 );
sock->Read( client_ipc_buffer, 1 );
if( sock->LastCount() == 0 )
break; // No data: Occurs on open connection
break; // No data: Occurs on opening connection
sock->Read( server_ipc_buffer + 1, IPC_BUF_SIZE - 2 );
sock->Read( client_ipc_buffer + 1, IPC_BUF_SIZE - 2 );
len = 1 + sock->LastCount();
server_ipc_buffer[len] = 0;
client_ipc_buffer[len] = 0;
if( RemoteFct )
RemoteFct( server_ipc_buffer );
RemoteFct( client_ipc_buffer );
break;
case wxSOCKET_LOST:
......
This diff is collapsed.
......@@ -333,10 +333,6 @@ void WinEDA_DrawFrame::GeneralControle( wxDC* DC, wxPoint MousePositionInPixels
curpos = m_CurrentScreen->m_Curseur;
break;
case ' ': // Remise a zero coord relatives
m_CurrentScreen->m_O_Curseur = m_CurrentScreen->m_Curseur;
break;
case WXK_NUMPAD8: /* Deplacement curseur vers le haut */
case WXK_UP:
MousePositionInPixels.y -= delta.y;
......@@ -391,8 +387,6 @@ void WinEDA_DrawFrame::GeneralControle( wxDC* DC, wxPoint MousePositionInPixels
}
}
Affiche_Status_Box(); /* Affichage des coord curseur */
if( hotkey )
{
if( m_CurrentScreen->GetCurItem()
......@@ -401,4 +395,7 @@ void WinEDA_DrawFrame::GeneralControle( wxDC* DC, wxPoint MousePositionInPixels
else
OnHotKey( DC, hotkey, NULL );
}
Affiche_Status_Box(); /* Affichage des coord curseur */
}
......@@ -10,9 +10,13 @@
#include "protos.h"
#include "eeconfig.h"
#include "worksheet.h"
#include "hotkeys_basic.h"
#include "id.h"
extern Ki_HotkeyInfo *s_Schematic_Hotkey_List[];
extern Ki_HotkeyInfo *s_LibEdit_Hotkey_List[];
/* Variables locales */
......@@ -22,7 +26,8 @@ void WinEDA_SchematicFrame::Process_Config(wxCommandEvent& event)
{
int id = event.GetId();
wxPoint pos;
wxString FullFileName;
wxGetMousePosition(&pos.x, &pos.y);
pos.y += 5;
......@@ -49,7 +54,7 @@ wxPoint pos;
case ID_CONFIG_READ:
{
wxString mask( wxT("*") ); mask += g_Prj_Config_Filename_ext;
wxString FullFileName = ScreenSch->m_FileName;
FullFileName = ScreenSch->m_FileName;
ChangeFileNameExt( FullFileName, g_Prj_Config_Filename_ext );
FullFileName = EDA_FileSelector(_("Read config file"),
......@@ -71,12 +76,45 @@ wxPoint pos;
}
break;
case ID_PREFERENCES_CREATE_CONFIG_HOTKEYS:
FullFileName = DEFAULT_HOTKEY_FILENAME_PATH;
FullFileName += wxT("eeschema");
FullFileName += DEFAULT_HOTKEY_FILENAME_EXT;
WriteHotkeyConfigFile(FullFileName, s_Schematic_Hotkey_List, true);
FullFileName = DEFAULT_HOTKEY_FILENAME_PATH;
FullFileName += wxT("libedit");
FullFileName += DEFAULT_HOTKEY_FILENAME_EXT;
WriteHotkeyConfigFile(FullFileName, s_LibEdit_Hotkey_List, true);
break;
case ID_PREFERENCES_READ_CONFIG_HOTKEYS:
Read_Hotkey_Config( this, true);
break;
default:
DisplayError(this, wxT("WinEDA_SchematicFrame::Process_Config internal error") );
}
}
/***************************************************************/
bool Read_Hotkey_Config( WinEDA_DrawFrame * frame, bool verbose )
/***************************************************************/
/*
* Read the hotkey files config for eeschema and libedit
*/
{
wxString FullFileName = DEFAULT_HOTKEY_FILENAME_PATH;
FullFileName += wxT("eeschema");
FullFileName += DEFAULT_HOTKEY_FILENAME_EXT;
frame->ReadHotkeyConfigFile(FullFileName, s_Schematic_Hotkey_List, verbose);
FullFileName = DEFAULT_HOTKEY_FILENAME_PATH;
FullFileName += wxT("libedit");
FullFileName += DEFAULT_HOTKEY_FILENAME_EXT;
frame->ReadHotkeyConfigFile(FullFileName, s_LibEdit_Hotkey_List, verbose);
}
/***********************************************************************/
bool Read_Config( const wxString & CfgFileName, bool ForceRereadConfig )
/***********************************************************************/
......
......@@ -80,6 +80,7 @@ wxString FFileName;
}
SchematicFrame->Zoom_Automatique(TRUE);
Read_Hotkey_Config(SchematicFrame, false);
/* Load file specified in the command line. */
if( ! FFileName.IsEmpty() )
......
......@@ -60,7 +60,7 @@ static Ki_HotkeyInfo HkZoomIn(wxT("Zoom In"), HK_ZOOM_IN, WXK_F1);
static Ki_HotkeyInfo HkHelp(wxT("Help: this message"), HK_HELP, '?');
// List of hotkey descriptors for schematic
static Ki_HotkeyInfo *s_Schematic_Hotkey_List[] = {
Ki_HotkeyInfo *s_Schematic_Hotkey_List[] = {
&HkHelp,
&HkZoomIn, &HkZoomOut, &HkZoomRedraw, &HkZoomCenter,
&HkNextSearch, &HkResetLocalCoord,
......@@ -71,12 +71,11 @@ static Ki_HotkeyInfo *s_Schematic_Hotkey_List[] = {
NULL
};
// Library editor:
static Ki_HotkeyInfo HkInsertPin(wxT("Repeat Pin"), HK_REPEAT_LAST, WXK_INSERT);
// List of hotkey descriptors for libray editor
static Ki_HotkeyInfo *s_LibEdit_Hotkey_List[] =
Ki_HotkeyInfo *s_LibEdit_Hotkey_List[] =
{
&HkHelp,
&HkZoomIn, &HkZoomOut, &HkZoomRedraw, &HkZoomCenter,
......@@ -120,11 +119,14 @@ wxPoint MousePos = m_CurrentScreen->m_MousePosition;
DisplayHotkeyList(this, s_Schematic_Hotkey_List);
break;
case HK_RESET_LOCAL_COORD: /* Reset the relative coord */
m_CurrentScreen->m_O_Curseur = m_CurrentScreen->m_Curseur;
break;
case HK_ZOOM_IN:
case HK_ZOOM_OUT:
case HK_ZOOM_REDRAW:
case HK_ZOOM_CENTER:
case HK_RESET_LOCAL_COORD:
break;
case HK_MOVEBLOCK_TO_DRAGBLOCK: // Switch to drag mode, when block moving
......
......@@ -146,6 +146,16 @@ wxMenuBar * menuBar = GetMenuBar();
item->SetBitmap(read_setup_xpm);
configmenu->Append(item);
configmenu->AppendSeparator();
item = new wxMenuItem(configmenu, ID_PREFERENCES_CREATE_CONFIG_HOTKEYS, _("Create Eeschema &Hotkey config file"),
_("Create or Recreate the hotkey config file from current hotkey list") );
item->SetBitmap(save_setup_xpm);
configmenu->Append(item);
item = new wxMenuItem(configmenu, ID_PREFERENCES_READ_CONFIG_HOTKEYS, _("Reread &Eeschema Hotkey config file"),
_("Reread the hotkey config file") );
item->SetBitmap( reload_xpm);
configmenu->Append(item);
// Menu Help:
wxMenu *helpMenu = new wxMenu;
item = new wxMenuItem(helpMenu , ID_GENERAL_HELP,
......
......@@ -227,6 +227,7 @@ int CountCmpNumber(void);
/* EECONFIG.CPP */
/***************/
bool Read_Config( const wxString & CfgFileName, bool ForceRereadConfig );
bool Read_Hotkey_Config( WinEDA_DrawFrame * frame, bool verbose );
/**************/
......
......@@ -61,6 +61,8 @@ BEGIN_EVENT_TABLE(WinEDA_SchematicFrame, wxFrame)
EVT_MENU(ID_CONFIG_SAVE, WinEDA_SchematicFrame::Process_Config)
EVT_MENU(ID_COLORS_SETUP, WinEDA_SchematicFrame::Process_Config)
EVT_MENU(ID_OPTIONS_SETUP, WinEDA_SchematicFrame::Process_Config)
EVT_MENU(ID_PREFERENCES_CREATE_CONFIG_HOTKEYS, WinEDA_SchematicFrame::Process_Config)
EVT_MENU(ID_PREFERENCES_READ_CONFIG_HOTKEYS, WinEDA_SchematicFrame::Process_Config)
EVT_MENU_RANGE(ID_LANGUAGE_CHOICE, ID_LANGUAGE_CHOICE_END,
WinEDA_DrawFrame::SetLanguage)
......
......@@ -124,11 +124,11 @@ wxString path = wxPathOnly(FullFileName);
if( filename == wxEmptyString)
{
wxString mask = wxT("*") + g_PhotoFilenameExt;
mask += wxT(";*.gbr;*.lgr;*.ger");
mask += wxT(";*.gbr;*.gbx;*.lgr;*.ger");
filename = EDA_FileSelector(_("Gerber files:"),
path, /* Chemin par defaut */
wxEmptyString, /* nom fichier par defaut */
g_PhotoFilenameExt, /* extension par defaut */
wxEmptyString, /* nom fichier par defaut */
g_PhotoFilenameExt, /* extension par defaut */
mask, /* Masque d'affichage */
this,
0,
......
......@@ -84,7 +84,7 @@ enum Gerb_GCommand
};
#define MAX_TOOLS 512
#define MAX_TOOLS 2048
#define FIRST_DCODE 10
enum Gerb_Analyse_Cmd
......
......@@ -13,18 +13,6 @@
/* Variables locales : */
/* Routines Locales */
/****************************/
/* int GetLayerNumber(void) */
/****************************/
/* retourne le nombre de couches a tracer
*/
int GetLayerNumber(void)
{
int ii = 0;
//TO REDO
return ii;
}
/*******************************************************************************/
void Print_PcbItems(BOARD * Pcb, wxDC *DC, int drawmode, int printmasklayer)
......
......@@ -23,7 +23,6 @@ void Plume(int state);
/****************/
/* lay2plot.cpp */
int GetLayerNumber(void);
void Print_PcbItems(BOARD * Pcb, wxDC *DC, int drawmode, int printmasklayer);
/*****************/
......@@ -116,7 +115,7 @@ void PlotArcPS(int x, int y, int StAngle, int EndAngle, int rayon, int width);
/***************/
/* trpiste.cpp */
/***************/
void Trace_Pistes(WinEDA_DrawPanel * panel, wxDC * DC, BOARD * Pcb, int drawmode);
void Draw_Track_Buffer(WinEDA_DrawPanel * panel, wxDC * DC, BOARD * Pcb, int drawmode, int printmasklayer);
void Trace_Segment(WinEDA_DrawPanel * panel, wxDC * DC, TRACK* pt_piste, int draw_mode);
void Trace_DrawSegmentPcb(WinEDA_DrawPanel * panel, wxDC * DC,
DRAWSEGMENT * PtDrawSegment, int draw_mode);
......
......@@ -44,7 +44,7 @@ void WinEDA_DrawPanel::PrintPage( wxDC* DC, bool Print_Sheet_Ref, int printmaskl
DisplayOpt.DisplayDrawItems = FILLED;
DisplayOpt.DisplayZones = 1;
( (WinEDA_GerberFrame*) m_Parent )->Trace_Gerber( DC, GR_COPY );
( (WinEDA_GerberFrame*) m_Parent )->Trace_Gerber( DC, GR_COPY, printmasklayer );
if( Print_Sheet_Ref )
m_Parent->TraceWorkSheet( DC, GetScreen(), 0 );
......@@ -72,7 +72,7 @@ void WinEDA_GerberFrame::RedrawActiveWindow( wxDC* DC, bool EraseBg )
DrawPanel->DrawBackGround( DC );
Trace_Gerber( DC, GR_OR );
Trace_Gerber( DC, GR_OR, -1 );
TraceWorkSheet( DC, screen, 0 );
Affiche_Status_Box();
......@@ -83,16 +83,21 @@ void WinEDA_GerberFrame::RedrawActiveWindow( wxDC* DC, bool EraseBg )
}
/********************************************************/
void WinEDA_GerberFrame::Trace_Gerber( wxDC* DC, int mode )
/********************************************************/
/* Trace l'ensemble des elements du PCB sur l'ecran actif*/
/***********************************************************************************/
void WinEDA_GerberFrame::Trace_Gerber( wxDC* DC, int draw_mode, int printmasklayer )
/***********************************************************************************/
/*
* Trace l'ensemble des elements du PCB sur l'ecran actif
* @param DC = device context to draw
* @param draw_mode = draw mode for the device context (GR_COPY, GR_OR, GR_XOR ..)
* @param printmasklayer = mask for allowed layer (=-1 to draw all layers)
*/
{
if( !m_Pcb )
return;
// Draw tracks and flashes
Trace_Pistes( DrawPanel, DC, m_Pcb, mode );
Draw_Track_Buffer( DrawPanel, DC, m_Pcb, draw_mode, printmasklayer );
// Draw filled polygons
#define NBMAX 2000
......@@ -104,6 +109,9 @@ void WinEDA_GerberFrame::Trace_Gerber( wxDC* DC, int mode )
track = m_Pcb->m_Zone;
for( ; track != NULL; track = track->Next() )
{
if ( printmasklayer != -1 )
if ( (track->ReturnMaskLayer() & printmasklayer) == 0 ) continue;
if( track->m_NetCode == 0 ) // StartPoint
{
if( nbpoints )
......
......@@ -16,12 +16,18 @@
/* variables locales : */
/********************************************************************************/
void Trace_Pistes(WinEDA_DrawPanel * panel, wxDC * DC, BOARD * Pcb, int drawmode)
/********************************************************************************/
/* Routine de trace des pistes et zones */
/***************************************************************************************************/
void Draw_Track_Buffer(WinEDA_DrawPanel * panel, wxDC * DC, BOARD * Pcb, int draw_mode, int printmasklayer)
/***************************************************************************************************/
/* Function to draw the tracks (i.e Sports or lines) in gerbview
Polygons are not handled here (there are in Pcb->m_Zone)
* @param DC = device context to draw
* @param Pcb = Board to draw (only Pcb->m_Track is used)
* @param draw_mode = draw mode for the device context (GR_COPY, GR_OR, GR_XOR ..)
* @param printmasklayer = mask for allowed layer (=-1 to draw all layers)
*/
{
TRACK * pt_piste;
TRACK * Track;
int layer = ((PCB_SCREEN*)panel->GetScreen())->m_Active_Layer;
GERBER_Descr * gerber_layer = g_GERBER_Descr_List[layer];
int dcode_hightlight = 0;
......@@ -29,13 +35,16 @@ int dcode_hightlight = 0;
if ( gerber_layer )
dcode_hightlight = gerber_layer->m_Selected_Tool;
pt_piste = Pcb->m_Track;
for ( ; pt_piste != NULL ; pt_piste = (TRACK*) pt_piste->Pnext )
Track = Pcb->m_Track;
for ( ; Track != NULL ; Track = (TRACK*) Track->Pnext )
{
if ( (dcode_hightlight == pt_piste->m_NetCode) &&
(pt_piste->m_Layer == layer) )
Trace_Segment(panel, DC, pt_piste, drawmode | GR_SURBRILL);
else Trace_Segment(panel, DC, pt_piste, drawmode );
if ( printmasklayer != -1 )
if ( (Track->ReturnMaskLayer() & printmasklayer) == 0 ) continue;
if ( (dcode_hightlight == Track->m_NetCode) &&
(Track->m_Layer == layer) )
Trace_Segment(panel, DC, Track, draw_mode | GR_SURBRILL);
else Trace_Segment(panel, DC, Track, draw_mode );
}
}
......@@ -45,7 +54,7 @@ void Trace_Segment(WinEDA_DrawPanel * panel, wxDC * DC, TRACK* track, int draw_m
/***********************************************************************************/
/* routine de trace de 1 segment de piste.
Parametres :
pt_piste = adresse de la description de la piste en buflib
track = adresse de la description de la piste en buflib
draw_mode = mode ( GR_XOR, GR_OR..)
*/
{
......
......@@ -5,6 +5,7 @@
#include "../bitmaps/Cancel.xpm"
#include "../bitmaps/cancel_tool.xpm"
#include "../bitmaps/Apply.xpm"
#include "../bitmaps/reload.xpm"
#include "../bitmaps/icon_txt.xpm"
#include "../bitmaps/new_txt.xpm"
......
......@@ -5,7 +5,7 @@
COMMON_GLOBL wxString g_BuildVersion
#ifdef EDA_BASE
(wxT("(2007-08-19)"))
(wxT("(2007-08-21)"))
#endif
;
......
......@@ -8,6 +8,16 @@
#ifndef HOTKEYS_BASIC_H
#define HOTKEYS_BASIC_H
#define DEFAULT_HOTKEY_FILENAME_EXT wxT(".key")
/* define default path for config key file */
#ifdef __WINDOWS__
#define DEFAULT_HOTKEY_FILENAME_PATH EDA_Appl->m_BinDir + wxT("../template/")
#else
#define DEFAULT_HOTKEY_FILENAME_PATH wxGetHomeDir() + wxT("/")
#endif
/* Class to handle hotkey commnands. hotkeys have a default value
This class allows (for the future..) the real key code changed by user(from a key code list file, TODO)
*/
......
......@@ -64,6 +64,12 @@ enum main_id {
ID_CONFIG_REQ,
ID_CONFIG_SAVE,
ID_CONFIG_READ,
ID_PREFERENCES_CREATE_CONFIG_HOTKEYS,
ID_PREFERENCES_READ_CONFIG_HOTKEYS,
ID_PREFERENCES_UNUSED0,
ID_PREFERENCES_UNUSED1,
ID_PREFERENCES_UNUSED2,
ID_PREFERENCES_UNUSED3,
ID_GEN_PRINT,
ID_GEN_PLOT,
......@@ -93,11 +99,11 @@ enum main_id {
ID_PREFERENCES_FONT_INFOSCREEN,
ID_PREFERENCES_FONT_DIALOG,
ID_PREFERENCES_FONT_STATUS,
ID_PREFERENCES_UNUSED3,
ID_PREFERENCES_UNUSED4,
ID_PREFERENCES_UNUSED5,
ID_PREFERENCES_UNUSED6,
ID_PREFERENCES_UNUSED7,
ID_PREFERENCES_FONT_UNUSED3,
ID_PREFERENCES_FONT_UNUSED4,
ID_PREFERENCES_FONT_UNUSED5,
ID_PREFERENCES_FONT_UNUSED6,
ID_PREFERENCES_FONT_UNUSED7,
ID_PREFERENCES_FONT_END,
// Find id menu
......
......@@ -65,7 +65,7 @@ class WinEDAChoiceBox;
#define WinEDA_Menu wxMenu
#define WinEDA_MenuItem wxMenuItem
// Utilises mais non definies ici :
// Utilisees mais non definies ici :
class LibraryStruct;
class EDA_LibComponentStruct;
class LibEDA_BaseStruct;
......@@ -97,6 +97,7 @@ class EDGE_MODULE;
class WinEDA3D_DrawFrame;
class PARAM_CFG_BASE;
class Ki_PageDescr;
class Ki_HotkeyInfo;
enum id_librarytype {
......@@ -176,7 +177,9 @@ public:
void PrintMsg( const wxString& text );
void GetSettings( void );
void SaveSettings( void );
void SetLanguage( wxCommandEvent& event );
int WriteHotkeyConfigFile(const wxString & Filename, Ki_HotkeyInfo ** List, bool verbose);
int ReadHotkeyConfigFile(const wxString & Filename, Ki_HotkeyInfo ** List, bool verbose);
void SetLanguage( wxCommandEvent& event );
void ProcessFontPreferences( int id );
wxString GetLastProject( int rang );
......@@ -802,7 +805,7 @@ public:
void Liste_D_Codes( wxDC* DC );
/* Fonctions specifiques */
void Trace_Gerber( wxDC* DC, int mode );
void Trace_Gerber( wxDC* DC, int draw_mode, int printmasklayer );
// Gestion des textes sur pcb
void Rotate_Texte_Pcb( TEXTE_PCB* TextePcb, wxDC* DC );
......
No preview for this file type
This diff is collapsed.
......@@ -62,7 +62,7 @@ static Ki_HotkeyInfo HkTrackDisplayMode(wxT("Track Display Mode"), HK_SWITCH_TRA
// List of hotkey descriptors for pcbnew
static Ki_HotkeyInfo *s_board_edit_Hotkey_List[] = {
Ki_HotkeyInfo *s_board_edit_Hotkey_List[] = {
&HkHelp,
&HkZoomIn, &HkZoomOut, &HkZoomRedraw, &HkZoomCenter,
&HkResetLocalCoord, &HkSwitchUnits, &HkTrackDisplayMode,
......@@ -75,7 +75,7 @@ static Ki_HotkeyInfo *s_board_edit_Hotkey_List[] = {
NULL
};
static Ki_HotkeyInfo *s_module_edit_Hotkey_List[] = {
Ki_HotkeyInfo *s_module_edit_Hotkey_List[] = {
&HkHelp,
&HkZoomIn, &HkZoomOut, &HkZoomRedraw, &HkZoomCenter,
&HkSwitchUnits, &HkResetLocalCoord,
......
......@@ -19,18 +19,6 @@ static void Plot_Module(WinEDA_DrawPanel * panel, wxDC * DC, MODULE * Module,
int draw_mode, int masklayer);
/****************************/
int GetLayerNumber(void)
/****************************/
/* Return the number of layers which can be printed
*/
{
int ii = 29;
//TO REDO
return ii;
}
/**********************************************************************************/
void WinEDA_DrawPanel::PrintPage(wxDC *DC, bool Print_Sheet_Ref, int printmasklayer)
/**********************************************************************************/
......
......@@ -182,6 +182,16 @@ wxMenuBar * menuBar = GetMenuBar();
item->SetBitmap(read_setup_xpm);
configmenu->Append(item);
configmenu->AppendSeparator();
item = new wxMenuItem(configmenu, ID_PREFERENCES_CREATE_CONFIG_HOTKEYS, _("Create Eeschema &Hotkey config file"),
_("Create or Recreate the hotkey config file from current hotkey list") );
item->SetBitmap(save_setup_xpm);
configmenu->Append(item);
item = new wxMenuItem(configmenu, ID_PREFERENCES_READ_CONFIG_HOTKEYS, _("Reread &Eeschema Hotkey config file"),
_("Reread the hotkey config file") );
item->SetBitmap( reload_xpm);
configmenu->Append(item);
/////////////////////////////
// Ajustage de dimensions: //
/////////////////////////////
......
......@@ -12,9 +12,13 @@
#include "pcbcfg.h"
#include "worksheet.h"
#include "id.h"
#include "hotkeys_basic.h"
#include "protos.h"
extern Ki_HotkeyInfo *s_board_edit_Hotkey_List[];
extern Ki_HotkeyInfo *s_module_edit_Hotkey_List[];
/* Routines Locales */
/* Variables locales */
......@@ -27,6 +31,7 @@ void WinEDA_PcbFrame::Process_Config(wxCommandEvent& event)
int id = event.GetId();
wxPoint pos;
wxClientDC dc(DrawPanel);
wxString FullFileName;
DrawPanel->PrepareGraphicContext(&dc);
......@@ -40,10 +45,8 @@ wxClientDC dc(DrawPanel);
break;
case ID_CONFIG_REQ : // Creation de la fenetre de configuration
{
InstallConfigFrame(pos);
break;
}
case ID_PCB_TRACK_SIZE_SETUP:
case ID_PCB_LOOK_SETUP:
......@@ -61,8 +64,7 @@ wxClientDC dc(DrawPanel);
break;
case ID_CONFIG_READ:
{
wxString FullFileName = GetScreen()->m_FileName.AfterLast('/');
FullFileName = GetScreen()->m_FileName.AfterLast('/');
ChangeFileNameExt(FullFileName, g_Prj_Config_Filename_ext);
FullFileName = EDA_FileSelector(_("Read config file"),
wxPathOnly(GetScreen()->m_FileName),/* Chemin par defaut */
......@@ -81,7 +83,21 @@ wxClientDC dc(DrawPanel);
DisplayError(this, msg); break;
}
Read_Config(FullFileName );
}
break;
case ID_PREFERENCES_CREATE_CONFIG_HOTKEYS:
FullFileName = DEFAULT_HOTKEY_FILENAME_PATH;
FullFileName += wxT("pcbnew");
FullFileName += DEFAULT_HOTKEY_FILENAME_EXT;
WriteHotkeyConfigFile(FullFileName, s_board_edit_Hotkey_List, true);
FullFileName = DEFAULT_HOTKEY_FILENAME_PATH;
FullFileName += wxT("module_edit");
FullFileName += DEFAULT_HOTKEY_FILENAME_EXT;
WriteHotkeyConfigFile(FullFileName, s_module_edit_Hotkey_List, true);
break;
case ID_PREFERENCES_READ_CONFIG_HOTKEYS:
Read_Hotkey_Config( this, true);
break;
default:
......@@ -90,6 +106,25 @@ wxClientDC dc(DrawPanel);
}
/***************************************************************/
bool Read_Hotkey_Config( WinEDA_DrawFrame * frame, bool verbose )
/***************************************************************/
/*
* Read the hotkey files config for eeschema and libedit
*/
{
wxString FullFileName = DEFAULT_HOTKEY_FILENAME_PATH;
FullFileName += wxT("pcbnew");
FullFileName += DEFAULT_HOTKEY_FILENAME_EXT;
frame->ReadHotkeyConfigFile(FullFileName, s_board_edit_Hotkey_List, verbose);
FullFileName = DEFAULT_HOTKEY_FILENAME_PATH;
FullFileName += wxT("module_edit");
FullFileName += DEFAULT_HOTKEY_FILENAME_EXT;
frame->ReadHotkeyConfigFile(FullFileName, s_module_edit_Hotkey_List, verbose);
}
/**************************************************************************/
bool Read_Config(const wxString & project_name)
/*************************************************************************/
......
......@@ -69,6 +69,8 @@ BEGIN_EVENT_TABLE( WinEDA_PcbFrame, wxFrame )
EVT_MENU( ID_CONFIG_REQ, WinEDA_PcbFrame::Process_Config )
EVT_MENU( ID_COLORS_SETUP, WinEDA_PcbFrame::Process_Config )
EVT_MENU( ID_OPTIONS_SETUP, WinEDA_PcbFrame::Process_Config )
EVT_MENU(ID_PREFERENCES_CREATE_CONFIG_HOTKEYS, WinEDA_PcbFrame::Process_Config)
EVT_MENU(ID_PREFERENCES_READ_CONFIG_HOTKEYS, WinEDA_PcbFrame::Process_Config)
EVT_MENU( ID_PCB_TRACK_SIZE_SETUP, WinEDA_PcbFrame::Process_Config )
EVT_MENU( ID_PCB_DRAWINGS_WIDTHS_SETUP, WinEDA_PcbFrame::Process_Config )
EVT_MENU( ID_PCB_PAD_SETUP, WinEDA_PcbFrame::Process_Config )
......
......@@ -79,6 +79,7 @@ bool WinEDA_App::OnInit( void )
SetTopWindow( m_PcbFrame );
m_PcbFrame->Show( TRUE );
Read_Hotkey_Config(m_PcbFrame, false);
if( CreateServer( m_PcbFrame, KICAD_PCB_PORT_SERVICE_NUMBER ) )
{
......
......@@ -17,6 +17,7 @@ LISTE_PAD* CreateSortedPadListByXCoord(BOARD * pcb);
/* PCBCFG.CPP */
/**************/
bool Read_Config(const wxString & project_name);
bool Read_Hotkey_Config( WinEDA_DrawFrame * frame, bool verbose );
/***************/
/* TRACEPCB.CPP */
......@@ -400,7 +401,6 @@ MODULE * ListAndSelectModuleName(COMMAND * Cmd);
/***************/
/* LAY2PLOT.CPP */
/***************/
int GetLayerNumber(void); /* retourne le nombre de couches a tracer */
/*****************/
/* SEL_COLOR.CPP */
......
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