first version of programmable hotkeys (work in progress)
This commit is contained in:
parent
88dec9cdda
commit
c116a9b5a7
|
@ -0,0 +1,134 @@
|
|||
/* 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:
|
||||
|
|
|
@ -6,7 +6,9 @@
|
|||
*/
|
||||
#include "fctsys.h"
|
||||
#include "common.h"
|
||||
#include "wxstruct.h"
|
||||
#include "hotkeys_basic.h"
|
||||
#include "macros.h"
|
||||
|
||||
/* 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)
|
||||
|
@ -19,6 +21,100 @@ Ki_HotkeyInfo::Ki_HotkeyInfo(const wxChar * infomsg, int idcommand, int keycode)
|
|||
m_Idcommand = idcommand; // internal id for the corresponding command (see hotkey_id_commnand list)
|
||||
}
|
||||
|
||||
/* class to handle the printable name and the keycode
|
||||
*/
|
||||
struct hotkey_name_descr {
|
||||
wxChar * m_Name;
|
||||
int m_KeyCode;
|
||||
};
|
||||
|
||||
struct hotkey_name_descr s_Notkey_Name_List[] = {
|
||||
{wxT("F1"), WXK_F1},
|
||||
{wxT("F2"), WXK_F2},
|
||||
{wxT("F3"), WXK_F3},
|
||||
{wxT("F4"), WXK_F4},
|
||||
{wxT("F5"), WXK_F5},
|
||||
{wxT("F6"), WXK_F6},
|
||||
{wxT("F7"), WXK_F7},
|
||||
{wxT("F8"), WXK_F8},
|
||||
{wxT("F9"), WXK_F9},
|
||||
{wxT("F10"), WXK_F10},
|
||||
{wxT("F11"), WXK_F11},
|
||||
{wxT("F12"), WXK_F12},
|
||||
|
||||
{wxT("Esc"), WXK_ESCAPE},
|
||||
{wxT("Delete"), WXK_DELETE},
|
||||
{wxT("Esc"), WXK_ESCAPE},
|
||||
{wxT("Tab"), '\t'},
|
||||
{wxT("Backspace"), WXK_BACK},
|
||||
{wxT("Insert"), WXK_INSERT},
|
||||
|
||||
{wxT("End"), WXK_END},
|
||||
{wxT("Page Up"), WXK_PAGEUP},
|
||||
{wxT("Page Down"), WXK_PAGEDOWN},
|
||||
{wxT("+"), WXK_ADD},
|
||||
{wxT("-"), WXK_SUBTRACT},
|
||||
|
||||
{wxT("space"), ' '},
|
||||
{wxT("?"), '?'},
|
||||
{wxT("A"), 'A'},
|
||||
{wxT("B"), 'B'},
|
||||
{wxT("C"), 'C'},
|
||||
{wxT("D"), 'D'},
|
||||
{wxT("E"), 'E'},
|
||||
{wxT("F"), 'F'},
|
||||
{wxT("G"), 'G'},
|
||||
{wxT("H"), 'H'},
|
||||
{wxT("I"), 'I'},
|
||||
{wxT("J"), 'J'},
|
||||
{wxT("K"), 'K'},
|
||||
{wxT("L"), 'L'},
|
||||
{wxT("M"), 'M'},
|
||||
{wxT("N"), 'N'},
|
||||
{wxT("O"), 'O'},
|
||||
{wxT("P"), 'P'},
|
||||
{wxT("Q"), 'Q'},
|
||||
{wxT("R"), 'R'},
|
||||
{wxT("S"), 'S'},
|
||||
{wxT("T"), 'T'},
|
||||
{wxT("U"), 'U'},
|
||||
{wxT("V"), 'V'},
|
||||
{wxT("W"), 'W'},
|
||||
{wxT("X"), 'X'},
|
||||
{wxT("Y"), 'Y'},
|
||||
{wxT("Z"), 'Z'},
|
||||
|
||||
{wxT("Ctrl A"), GR_KB_CTRL + 'A'},
|
||||
{wxT("Ctrl B"), GR_KB_CTRL + 'B'},
|
||||
{wxT("Ctrl C"), GR_KB_CTRL + 'C'},
|
||||
{wxT("Ctrl D"), GR_KB_CTRL + 'D'},
|
||||
{wxT("Ctrl E"), GR_KB_CTRL + 'E'},
|
||||
{wxT("Ctrl F"), GR_KB_CTRL + 'F'},
|
||||
{wxT("Ctrl G"), GR_KB_CTRL + 'G'},
|
||||
{wxT("Ctrl H"), GR_KB_CTRL + 'H'},
|
||||
{wxT("Ctrl I"), GR_KB_CTRL + 'I'},
|
||||
{wxT("Ctrl J"), GR_KB_CTRL + 'J'},
|
||||
{wxT("Ctrl K"), GR_KB_CTRL + 'K'},
|
||||
{wxT("Ctrl L"), GR_KB_CTRL + 'L'},
|
||||
{wxT("Ctrl M"), GR_KB_CTRL + 'M'},
|
||||
{wxT("Ctrl N"), GR_KB_CTRL + 'N'},
|
||||
{wxT("Ctrl O"), GR_KB_CTRL + 'O'},
|
||||
{wxT("Ctrl P"), GR_KB_CTRL + 'P'},
|
||||
{wxT("Ctrl Q"), GR_KB_CTRL + 'Q'},
|
||||
{wxT("Ctrl R"), GR_KB_CTRL + 'R'},
|
||||
{wxT("Ctrl S"), GR_KB_CTRL + 'S'},
|
||||
{wxT("Ctrl T"), GR_KB_CTRL + 'T'},
|
||||
{wxT("Ctrl U"), GR_KB_CTRL + 'U'},
|
||||
{wxT("Ctrl V"), GR_KB_CTRL + 'V'},
|
||||
{wxT("Ctrl W"), GR_KB_CTRL + 'W'},
|
||||
{wxT("Ctrl X"), GR_KB_CTRL + 'X'},
|
||||
{wxT("Ctrl Y"), GR_KB_CTRL + 'Y'},
|
||||
{wxT("Ctrl Z"), GR_KB_CTRL + 'Z'},
|
||||
|
||||
{wxT(""), 0} // Do not change: end of list
|
||||
};
|
||||
|
||||
|
||||
/****************************************************/
|
||||
wxString ReturnKeyNameFromKeyCode(int keycode)
|
||||
/****************************************************/
|
||||
|
@ -30,83 +126,56 @@ wxString ReturnKeyNameFromKeyCode(int keycode)
|
|||
*/
|
||||
{
|
||||
wxString keyname, modifier, fullkeyname;
|
||||
int ii;
|
||||
|
||||
if ( (keycode & GR_KB_CTRL) != 0 ) modifier << wxT("Ctrl ");
|
||||
if ( (keycode & GR_KB_ALT) != 0 ) modifier << wxT("Alt ");
|
||||
if ( (keycode & GR_KB_SHIFT) != 0 ) modifier << wxT("Shift ");
|
||||
|
||||
switch ( keycode)
|
||||
{
|
||||
default:
|
||||
keycode &= ~(GR_KB_CTRL|GR_KB_ALT|GR_KB_SHIFT);
|
||||
keyname.Printf(wxT("%c"), keycode);
|
||||
for ( ii = 0; ; ii++)
|
||||
{
|
||||
if ( s_Notkey_Name_List[ii].m_KeyCode == 0 )
|
||||
{
|
||||
keyname = wxT("<unknown>");
|
||||
break;
|
||||
|
||||
case WXK_ESCAPE:
|
||||
keyname = wxT("Esc");
|
||||
}
|
||||
if ( s_Notkey_Name_List[ii].m_KeyCode == keycode)
|
||||
{
|
||||
keyname = s_Notkey_Name_List[ii].m_Name;
|
||||
break;
|
||||
|
||||
case WXK_F1:
|
||||
case WXK_F2:
|
||||
case WXK_F3:
|
||||
case WXK_F4:
|
||||
case WXK_F5:
|
||||
case WXK_F6:
|
||||
case WXK_F7:
|
||||
case WXK_F8:
|
||||
case WXK_F9:
|
||||
case WXK_F10:
|
||||
case WXK_F11:
|
||||
case WXK_F12:
|
||||
keyname.Printf(wxT("F%d"), keycode - WXK_F1 + 1);
|
||||
break;
|
||||
|
||||
case ' ':
|
||||
keyname = wxT("space");
|
||||
break;
|
||||
|
||||
case '\t':
|
||||
keyname = wxT("Tab");
|
||||
break;
|
||||
|
||||
case WXK_DELETE:
|
||||
keyname = wxT("Delete");
|
||||
break;
|
||||
|
||||
case WXK_BACK:
|
||||
keyname = wxT("Backspace");
|
||||
break;
|
||||
|
||||
case WXK_INSERT:
|
||||
keyname = wxT("Insert");
|
||||
break;
|
||||
|
||||
case WXK_END:
|
||||
keyname = wxT("End");
|
||||
break;
|
||||
|
||||
case WXK_PAGEUP:
|
||||
keyname = wxT("Page Up");
|
||||
break;
|
||||
|
||||
case WXK_PAGEDOWN:
|
||||
keyname = wxT("Page Down");
|
||||
break;
|
||||
|
||||
case WXK_ADD:
|
||||
keyname = wxT("+");
|
||||
break;
|
||||
|
||||
case WXK_SUBTRACT:
|
||||
keyname = wxT("-");
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
fullkeyname = modifier + keyname;
|
||||
return fullkeyname;
|
||||
}
|
||||
|
||||
/************************************************************/
|
||||
static int ReturnKeyCodeFromKeyName(const wxString & keyname)
|
||||
/************************************************************/
|
||||
/*
|
||||
* return the key code from its key name
|
||||
* Only some wxWidgets key values are handled for function key
|
||||
* @param keyname = wxString key name to find in s_Notkey_Name_List[]
|
||||
* @return the key code
|
||||
*/
|
||||
{
|
||||
int ii, keycode = 0;
|
||||
|
||||
for ( ii = 0; ; ii++)
|
||||
{
|
||||
if ( s_Notkey_Name_List[ii].m_KeyCode == 0 ) break;
|
||||
if ( s_Notkey_Name_List[ii].m_Name == keyname)
|
||||
{
|
||||
keycode = s_Notkey_Name_List[ii].m_KeyCode;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return keycode;
|
||||
}
|
||||
|
||||
/****************************************************************************/
|
||||
void DisplayHotkeyList(WinEDA_DrawFrame * frame, Ki_HotkeyInfo ** List)
|
||||
/*****************************************************************************/
|
||||
|
@ -123,7 +192,6 @@ wxString keyname;
|
|||
for ( ; * List != NULL; List++ )
|
||||
{
|
||||
Ki_HotkeyInfo * hk_decr = * List;
|
||||
if ( hk_decr->m_InfoMsg.IsEmpty() ) break;
|
||||
msg += _("key ");
|
||||
keyname = ReturnKeyNameFromKeyCode(hk_decr->m_KeyCode);
|
||||
msg += keyname + wxT(": ") + hk_decr->m_InfoMsg + wxT("\n");
|
||||
|
@ -150,3 +218,177 @@ int GetCommandCodeFromHotkey(int key, Ki_HotkeyInfo ** List)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
int WinEDA_BasicFrame::WriteHotkeyConfigFile(const wxString & Filename,
|
||||
Ki_HotkeyInfo ** List, bool verbose)
|
||||
/*************************************************************************/
|
||||
/*
|
||||
* Create a configuration file (*.key) from the current hotkey list
|
||||
* @param Filename = default full file name to create. If void, A filename will be asked
|
||||
* @param List = pointer to the current hotkey list.
|
||||
* the ouput format is: shortcut "key" "function"
|
||||
* lines starting by # are comments
|
||||
*
|
||||
*/
|
||||
{
|
||||
wxString FullFilename = Filename;
|
||||
FILE * cfgfile;
|
||||
wxString msg;
|
||||
if ( FullFilename.IsEmpty() || verbose)
|
||||
{
|
||||
wxString Mask, Path, Ext;
|
||||
Ext = DEFAULT_HOTKEY_FILENAME_EXT;
|
||||
Mask = wxT("*") + Ext;
|
||||
Path = DEFAULT_HOTKEY_FILENAME_PATH;
|
||||
FullFilename = EDA_FileSelector( _("Hotkey configuration file:"),
|
||||
Path, /* Chemin par defaut */
|
||||
FullFilename, /* nom fichier par defaut */
|
||||
Ext, /* extension par defaut */
|
||||
Mask, /* Masque d'affichage */
|
||||
this,
|
||||
wxFD_SAVE,
|
||||
TRUE
|
||||
);
|
||||
}
|
||||
if ( FullFilename.IsEmpty() ) return 0;
|
||||
|
||||
cfgfile = wxFopen(FullFilename, wxT("wt"));
|
||||
|
||||
if ( cfgfile == NULL )
|
||||
{
|
||||
if ( verbose )
|
||||
{
|
||||
msg = _("Unable to create ") + FullFilename;
|
||||
DisplayError(this, msg);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
wxString keyname, infokey;
|
||||
|
||||
msg = wxT("$hotkey list\n");
|
||||
fprintf(cfgfile, CONV_TO_UTF8(msg));
|
||||
|
||||
/* print the allowed keys, for info
|
||||
*/
|
||||
msg = wxT("# "); msg += _("Allowed keys:\n");
|
||||
fprintf(cfgfile, CONV_TO_UTF8(msg));
|
||||
msg.Empty();
|
||||
for ( int ii = 0; ; ii ++ )
|
||||
{
|
||||
if ( s_Notkey_Name_List[ii].m_KeyCode == 0 ) break;;
|
||||
if ( msg.IsEmpty() ) msg = wxT("# ");
|
||||
else msg += wxT(", ");
|
||||
msg += s_Notkey_Name_List[ii].m_Name;
|
||||
if ( msg.Len() > 60 )
|
||||
{
|
||||
msg += wxT("\n");
|
||||
fprintf(cfgfile, CONV_TO_UTF8(msg));
|
||||
msg.Empty();
|
||||
}
|
||||
}
|
||||
/* print the last line */
|
||||
if ( ! msg.IsEmpty() ) msg += wxT("\n");
|
||||
msg += wxT("#\n#\n");
|
||||
fprintf(cfgfile, CONV_TO_UTF8(msg));
|
||||
|
||||
/* Print the current list */
|
||||
for ( ; * List != NULL; List++ )
|
||||
{
|
||||
Ki_HotkeyInfo * hk_decr = * List;
|
||||
msg = wxT("shortcut ");
|
||||
keyname = ReturnKeyNameFromKeyCode(hk_decr->m_KeyCode);
|
||||
AddDelimiterString( keyname );
|
||||
infokey = hk_decr->m_InfoMsg;
|
||||
AddDelimiterString( infokey );
|
||||
msg += keyname + wxT(": ") + infokey + wxT("\n");
|
||||
fprintf(cfgfile, CONV_TO_UTF8(msg));
|
||||
}
|
||||
msg = wxT("$Endlist\n");
|
||||
fprintf(cfgfile, CONV_TO_UTF8(msg));
|
||||
fclose(cfgfile);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
/********************************************************************************************/
|
||||
int WinEDA_BasicFrame::ReadHotkeyConfigFile(const wxString & Filename,
|
||||
Ki_HotkeyInfo ** CurrentHotkeyList, bool verbose)
|
||||
/********************************************************************************************/
|
||||
/*
|
||||
* Read a configuration file (<file>.key) and fill the current hotkey list with hotkeys
|
||||
* @param Filename = default full file name to create. If void, A filename will be asked
|
||||
* @param CurrentHotkeyList = current hotkey list to initialise.
|
||||
* the input format is: shortcut "key" "function"
|
||||
* lines starting by # are ignored (comments)
|
||||
*
|
||||
*/
|
||||
{
|
||||
wxString FullFilename = Filename;
|
||||
FILE * cfgfile;
|
||||
wxString msg;
|
||||
if ( FullFilename.IsEmpty() || verbose )
|
||||
{
|
||||
wxString Mask, Path, Ext;
|
||||
Ext = DEFAULT_HOTKEY_FILENAME_EXT;
|
||||
Mask = wxT("*") + Ext;
|
||||
Path = DEFAULT_HOTKEY_FILENAME_PATH;
|
||||
FullFilename = EDA_FileSelector( _("Hotkey configuration file:"),
|
||||
Path, /* Chemin par defaut */
|
||||
FullFilename, /* nom fichier par defaut */
|
||||
Ext, /* extension par defaut */
|
||||
Mask, /* Masque d'affichage */
|
||||
this,
|
||||
wxFD_OPEN,
|
||||
TRUE
|
||||
);
|
||||
if ( FullFilename.IsEmpty() ) return 0;
|
||||
}
|
||||
|
||||
cfgfile = wxFopen(FullFilename, wxT("rt"));
|
||||
|
||||
if ( cfgfile == NULL )
|
||||
{
|
||||
if ( verbose )
|
||||
{
|
||||
msg = _("Unable to read ") + FullFilename;
|
||||
DisplayError(this, msg);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
wxString keyname;
|
||||
char Line[1024];
|
||||
int LineNum = 0;
|
||||
/* Read the file */
|
||||
while( GetLine( cfgfile, Line, &LineNum ) != NULL )
|
||||
{
|
||||
char * line_type, * keyname, *fctname;
|
||||
line_type = strtok(Line, " \t\n\r");
|
||||
msg = CONV_FROM_UTF8(line_type);
|
||||
if( msg != wxT("shortcut") ) continue;
|
||||
if( msg == wxT("$Endlist") ) break;
|
||||
|
||||
/* Get the key name */
|
||||
strtok(NULL, "\"\n\r");
|
||||
keyname = strtok(NULL, "\"\n\r");
|
||||
strtok(NULL, "\"\n\r");
|
||||
/* Get the command name */
|
||||
fctname = strtok(NULL, "\"\n\r");
|
||||
msg = CONV_FROM_UTF8(fctname);
|
||||
/* search the hotkey in current hotkey list */
|
||||
for (Ki_HotkeyInfo ** List = CurrentHotkeyList; * List != NULL; List++ )
|
||||
{
|
||||
Ki_HotkeyInfo * hk_decr = * List;
|
||||
if (hk_decr->m_InfoMsg == msg )
|
||||
{
|
||||
msg = CONV_FROM_UTF8(keyname);
|
||||
int code = ReturnKeyCodeFromKeyName(msg);
|
||||
if ( code ) hk_decr->m_KeyCode = code;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
fclose(cfgfile);
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -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,6 +26,7 @@ void WinEDA_SchematicFrame::Process_Config(wxCommandEvent& event)
|
|||
{
|
||||
int id = event.GetId();
|
||||
wxPoint pos;
|
||||
wxString FullFileName;
|
||||
|
||||
wxGetMousePosition(&pos.x, &pos.y);
|
||||
|
||||
|
@ -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,7 +124,7 @@ 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 */
|
||||
|
|
|
@ -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)
|
||||
*/
|
||||
|
|
16
include/id.h
16
include/id.h
|
@ -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
|
||||
|
||||
// Utilis<EFBFBD>es 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,6 +177,8 @@ public:
|
|||
void PrintMsg( const wxString& text );
|
||||
void GetSettings( void );
|
||||
void SaveSettings( void );
|
||||
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 );
|
||||
|
||||
|
@ -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 );
|
||||
|
|
Binary file not shown.
4467
internat/fr/kicad.po
4467
internat/fr/kicad.po
File diff suppressed because it is too large
Load Diff
|
@ -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 */
|
||||
|
|
Loading…
Reference in New Issue