Commit f5eae506 authored by CHARRAS's avatar CHARRAS

more work on hotkeys. many features are ok.

parent 90e28dd1
...@@ -4,6 +4,15 @@ Started 2007-June-11 ...@@ -4,6 +4,15 @@ Started 2007-June-11
Please add newer entries at the top, list the date and your name with Please add newer entries at the top, list the date and your name with
email address. email address.
2007-aug-30 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ eeschema & pcbnew
more about programmable hotkeys.
Most existing hotkeys are programmable and displayed in popup menus or tools
Work still in progress but most features are ok.
some features are not fixed (mainly the configuration files path, which is
currently the home directory under unix systems and kicad/template under windows))
2007-Aug-29 UPDATE Dick Hollenbeck <dick@softplc.com> 2007-Aug-29 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================ ================================================================================
......
/*********************/ /*********************/
/* hotkeys_basic.cpp */ /* hotkeys_basic.cpp */
/*********************/ /*********************/
/* Some functions to handle hotkeys in kicad /* Some functions to handle hotkeys in kicad
*/ */
#include "fctsys.h" #include "fctsys.h"
#include "common.h" #include "common.h"
#include "wxstruct.h" #include "wxstruct.h"
...@@ -11,384 +11,477 @@ ...@@ -11,384 +11,477 @@
#include "macros.h" #include "macros.h"
/* Class to handle hotkey commnands. hotkeys have a default value /* 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) * This class allows (for the future..) the real key code changed by user(from a key code list file, TODO)
*/ */
Ki_HotkeyInfo::Ki_HotkeyInfo(const wxChar * infomsg, int idcommand, int keycode) Ki_HotkeyInfo::Ki_HotkeyInfo( const wxChar* infomsg, int idcommand, int keycode )
{ {
m_KeyCode = keycode; // Key code (ascii value for ascii keys or wxWidgets code for function key m_KeyCode = keycode; // Key code (ascii value for ascii keys or wxWidgets code for function key
m_InfoMsg = infomsg; // info message. m_InfoMsg = infomsg; // info message.
m_Idcommand = idcommand; // internal id for the corresponding command (see hotkey_id_commnand list) m_Idcommand = idcommand; // internal id for the corresponding command (see hotkey_id_commnand list)
} }
/* class to handle the printable name and the keycode /* class to handle the printable name and the keycode
*/ */
struct hotkey_name_descr { struct hotkey_name_descr
wxChar * m_Name; {
int m_KeyCode; wxChar* m_Name;
int m_KeyCode;
}; };
struct hotkey_name_descr s_Notkey_Name_List[] = { struct hotkey_name_descr s_Hotkey_Name_List[] =
{wxT("F1"), WXK_F1}, {
{wxT("F2"), WXK_F2}, { wxT( "F1" ), WXK_F1 },
{wxT("F3"), WXK_F3}, { wxT( "F2" ), WXK_F2 },
{wxT("F4"), WXK_F4}, { wxT( "F3" ), WXK_F3 },
{wxT("F5"), WXK_F5}, { wxT( "F4" ), WXK_F4 },
{wxT("F6"), WXK_F6}, { wxT( "F5" ), WXK_F5 },
{wxT("F7"), WXK_F7}, { wxT( "F6" ), WXK_F6 },
{wxT("F8"), WXK_F8}, { wxT( "F7" ), WXK_F7 },
{wxT("F9"), WXK_F9}, { wxT( "F8" ), WXK_F8 },
{wxT("F10"), WXK_F10}, { wxT( "F9" ), WXK_F9 },
{wxT("F11"), WXK_F11}, { wxT( "F10" ), WXK_F10 },
{wxT("F12"), WXK_F12}, { wxT( "F11" ), WXK_F11 },
{ wxT( "F12" ), WXK_F12 },
{wxT("Esc"), WXK_ESCAPE},
{wxT("Delete"), WXK_DELETE}, { wxT( "Esc" ), WXK_ESCAPE },
{wxT("Esc"), WXK_ESCAPE}, { wxT( "Delete" ), WXK_DELETE },
{wxT("Tab"), '\t'}, { wxT( "Esc" ), WXK_ESCAPE },
{wxT("Backspace"), WXK_BACK}, { wxT( "Tab" ), '\t' },
{wxT("Insert"), WXK_INSERT}, { wxT( "Backspace" ), WXK_BACK },
{ wxT( "Insert" ), WXK_INSERT },
{wxT("End"), WXK_END},
{wxT("Page Up"), WXK_PAGEUP}, { wxT( "End" ), WXK_END },
{wxT("Page Down"), WXK_PAGEDOWN}, { wxT( "Page Up" ), WXK_PAGEUP },
{wxT("+"), WXK_ADD}, { wxT( "Page Down" ), WXK_PAGEDOWN },
{wxT("-"), WXK_SUBTRACT}, { wxT( "+" ), WXK_ADD },
{ wxT( "-" ), WXK_SUBTRACT },
{wxT("space"), ' '},
{wxT("?"), '?'}, { wxT( "Up" ), WXK_UP },
{wxT("A"), 'A'}, { wxT( "Down" ), WXK_DOWN },
{wxT("B"), 'B'}, { wxT( "Left" ), WXK_LEFT },
{wxT("C"), 'C'}, { wxT( "Right" ), WXK_RIGHT },
{wxT("D"), 'D'},
{wxT("E"), 'E'}, { wxT( "space" ), ' ' },
{wxT("F"), 'F'}, { wxT( "?" ), '?' },
{wxT("G"), 'G'}, { wxT( "!" ), '!' },
{wxT("H"), 'H'}, { wxT( ":" ), ':' },
{wxT("I"), 'I'}, { wxT( "," ), ',' },
{wxT("J"), 'J'}, { wxT( "*" ), '*' },
{wxT("K"), 'K'}, { wxT( "+" ), '+' },
{wxT("L"), 'L'}, { wxT( "-" ), '-' },
{wxT("M"), 'M'}, { wxT( "\%" ), '%' },
{wxT("N"), 'N'}, { wxT( "A" ), 'A' },
{wxT("O"), 'O'}, { wxT( "B" ), 'B' },
{wxT("P"), 'P'}, { wxT( "C" ), 'C' },
{wxT("Q"), 'Q'}, { wxT( "D" ), 'D' },
{wxT("R"), 'R'}, { wxT( "E" ), 'E' },
{wxT("S"), 'S'}, { wxT( "F" ), 'F' },
{wxT("T"), 'T'}, { wxT( "G" ), 'G' },
{wxT("U"), 'U'}, { wxT( "H" ), 'H' },
{wxT("V"), 'V'}, { wxT( "I" ), 'I' },
{wxT("W"), 'W'}, { wxT( "J" ), 'J' },
{wxT("X"), 'X'}, { wxT( "K" ), 'K' },
{wxT("Y"), 'Y'}, { wxT( "L" ), 'L' },
{wxT("Z"), 'Z'}, { wxT( "M" ), 'M' },
{ wxT( "N" ), 'N' },
{wxT("Ctrl A"), GR_KB_CTRL + 'A'}, { wxT( "O" ), 'O' },
{wxT("Ctrl B"), GR_KB_CTRL + 'B'}, { wxT( "P" ), 'P' },
{wxT("Ctrl C"), GR_KB_CTRL + 'C'}, { wxT( "Q" ), 'Q' },
{wxT("Ctrl D"), GR_KB_CTRL + 'D'}, { wxT( "R" ), 'R' },
{wxT("Ctrl E"), GR_KB_CTRL + 'E'}, { wxT( "S" ), 'S' },
{wxT("Ctrl F"), GR_KB_CTRL + 'F'}, { wxT( "T" ), 'T' },
{wxT("Ctrl G"), GR_KB_CTRL + 'G'}, { wxT( "U" ), 'U' },
{wxT("Ctrl H"), GR_KB_CTRL + 'H'}, { wxT( "V" ), 'V' },
{wxT("Ctrl I"), GR_KB_CTRL + 'I'}, { wxT( "W" ), 'W' },
{wxT("Ctrl J"), GR_KB_CTRL + 'J'}, { wxT( "X" ), 'X' },
{wxT("Ctrl K"), GR_KB_CTRL + 'K'}, { wxT( "Y" ), 'Y' },
{wxT("Ctrl L"), GR_KB_CTRL + 'L'}, { wxT( "Z" ), 'Z' },
{wxT("Ctrl M"), GR_KB_CTRL + 'M'},
{wxT("Ctrl N"), GR_KB_CTRL + 'N'}, { wxT( "Ctrl A" ), GR_KB_CTRL + 'A' },
{wxT("Ctrl O"), GR_KB_CTRL + 'O'}, { wxT( "Ctrl B" ), GR_KB_CTRL + 'B' },
{wxT("Ctrl P"), GR_KB_CTRL + 'P'}, { wxT( "Ctrl C" ), GR_KB_CTRL + 'C' },
{wxT("Ctrl Q"), GR_KB_CTRL + 'Q'}, { wxT( "Ctrl D" ), GR_KB_CTRL + 'D' },
{wxT("Ctrl R"), GR_KB_CTRL + 'R'}, { wxT( "Ctrl E" ), GR_KB_CTRL + 'E' },
{wxT("Ctrl S"), GR_KB_CTRL + 'S'}, { wxT( "Ctrl F" ), GR_KB_CTRL + 'F' },
{wxT("Ctrl T"), GR_KB_CTRL + 'T'}, { wxT( "Ctrl G" ), GR_KB_CTRL + 'G' },
{wxT("Ctrl U"), GR_KB_CTRL + 'U'}, { wxT( "Ctrl H" ), GR_KB_CTRL + 'H' },
{wxT("Ctrl V"), GR_KB_CTRL + 'V'}, { wxT( "Ctrl I" ), GR_KB_CTRL + 'I' },
{wxT("Ctrl W"), GR_KB_CTRL + 'W'}, { wxT( "Ctrl J" ), GR_KB_CTRL + 'J' },
{wxT("Ctrl X"), GR_KB_CTRL + 'X'}, { wxT( "Ctrl K" ), GR_KB_CTRL + 'K' },
{wxT("Ctrl Y"), GR_KB_CTRL + 'Y'}, { wxT( "Ctrl L" ), GR_KB_CTRL + 'L' },
{wxT("Ctrl Z"), GR_KB_CTRL + 'Z'}, { wxT( "Ctrl M" ), GR_KB_CTRL + 'M' },
{ wxT( "Ctrl N" ), GR_KB_CTRL + 'N' },
{wxT(""), 0} // Do not change: end of list { 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) wxString ReturnKeyNameFromKeyCode( int keycode )
/****************************************************/ /****************************************************/
/* /*
* return the key name from the key code * return the key name from the key code
* Only some wxWidgets key values are handled for function key * Only some wxWidgets key values are handled for function key
* @param key = key code (ascii value, or wxWidgets value for function keys) * @param key = key code (ascii value, or wxWidgets value for function keys)
* @return the key name in a wxString * @return the key name in a wxString
*/ */
{ {
wxString keyname, modifier, fullkeyname; wxString keyname, modifier, fullkeyname;
int ii; int ii;
if ( (keycode & GR_KB_CTRL) != 0 ) modifier << wxT("Ctrl "); if( (keycode & GR_KB_CTRL) != 0 )
if ( (keycode & GR_KB_ALT) != 0 ) modifier << wxT("Alt "); modifier << wxT( "Ctrl " );
if ( (keycode & GR_KB_SHIFT) != 0 ) modifier << wxT("Shift "); if( (keycode & GR_KB_ALT) != 0 )
modifier << wxT( "Alt " );
keycode &= ~(GR_KB_CTRL|GR_KB_ALT|GR_KB_SHIFT); if( (keycode & GR_KB_SHIFT) != 0 )
for ( ii = 0; ; ii++) modifier << wxT( "Shift " );
{
if ( s_Notkey_Name_List[ii].m_KeyCode == 0 ) keycode &= ~(GR_KB_CTRL | GR_KB_ALT | GR_KB_SHIFT);
{ for( ii = 0; ; ii++ )
keyname = wxT("<unknown>"); {
break; if( s_Hotkey_Name_List[ii].m_KeyCode == 0 )
} {
if ( s_Notkey_Name_List[ii].m_KeyCode == keycode) keyname = wxT( "<unknown>" );
{ break;
keyname = s_Notkey_Name_List[ii].m_Name; }
break; if( s_Hotkey_Name_List[ii].m_KeyCode == keycode )
} {
} keyname = s_Hotkey_Name_List[ii].m_Name;
break;
fullkeyname = modifier + keyname; }
return fullkeyname; }
fullkeyname = modifier + keyname;
return fullkeyname;
} }
/**********************************************************************************/
wxString AddHotkeyName( const wxString& text, Ki_HotkeyInfo** List, int CommandId )
/**********************************************************************************/
/*
* Add the key name from the Command id value ( m_Idcommand member value)
* @param List = pointer to a Ki_HotkeyInfo list of commands
* @param CommandId = Command Id value
* @return text (key name) in a wxString if found or text without modification
*/
{
wxString msg = text;
wxString keyname = ReturnKeyNameFromCommandId( List, CommandId );
if( !keyname.IsEmpty() )
msg << wxT( " (" ) << keyname << wxT( ")" );
return msg;
}
/***********************************************************************/
wxString ReturnKeyNameFromCommandId( Ki_HotkeyInfo** List, int CommandId )
/***********************************************************************/
/*
* return the key name from the Command id value ( m_Idcommand member value)
* @param List = pointer to a Ki_HotkeyInfo list of commands
* @param CommandId = Command Id value
* @return the key name in a wxString
*/
{
wxString keyname;
for( ; *List != NULL; List++ )
{
Ki_HotkeyInfo* hk_decr = *List;
if( hk_decr->m_Idcommand == CommandId )
{
keyname = ReturnKeyNameFromKeyCode( hk_decr->m_KeyCode );
break;
}
}
return keyname;
}
/************************************************************/ /************************************************************/
static int ReturnKeyCodeFromKeyName(const wxString & keyname) static int ReturnKeyCodeFromKeyName( const wxString& keyname )
/************************************************************/ /************************************************************/
/* /*
* return the key code from its key name * return the key code from its key name
* Only some wxWidgets key values are handled for function key * Only some wxWidgets key values are handled for function key
* @param keyname = wxString key name to find in s_Notkey_Name_List[] * @param keyname = wxString key name to find in s_Hotkey_Name_List[]
* @return the key code * @return the key code
*/ */
{ {
int ii, keycode = 0; int ii, keycode = 0;
for ( ii = 0; ; ii++) for( ii = 0; ; ii++ )
{ {
if ( s_Notkey_Name_List[ii].m_KeyCode == 0 ) break; if( s_Hotkey_Name_List[ii].m_KeyCode == 0 ) // End of list reached
if ( s_Notkey_Name_List[ii].m_Name == keyname) break;
{ if( keyname.CmpNoCase( s_Hotkey_Name_List[ii].m_Name ) == 0 )
keycode = s_Notkey_Name_List[ii].m_KeyCode; {
break; keycode = s_Hotkey_Name_List[ii].m_KeyCode;
} break;
} }
}
return keycode;
return keycode;
} }
/****************************************************************************/ /****************************************************************************/
void DisplayHotkeyList(WinEDA_DrawFrame * frame, Ki_HotkeyInfo ** List) void DisplayHotkeyList( WinEDA_DrawFrame* frame, Ki_HotkeyInfo** List )
/*****************************************************************************/ /*****************************************************************************/
/* /*
* Displays the current hotkey list * Displays the current hotkey list
* @param frame = current open frame * @param frame = current open frame
* @param List = pointer to a Ki_HotkeyInfo list of commands * @param List = pointer to a Ki_HotkeyInfo list of commands
* @return none * @return none
*/ */
{ {
wxString keyname; wxString keyname;
wxString msg = _("Current hotkey list:\n\n"); wxString msg = _( "Current hotkey list:\n\n" );
for ( ; * List != NULL; List++ )
{ for( ; *List != NULL; List++ )
Ki_HotkeyInfo * hk_decr = * List; {
msg += _("key "); Ki_HotkeyInfo* hk_decr = *List;
keyname = ReturnKeyNameFromKeyCode(hk_decr->m_KeyCode); msg += _( "key " );
msg += keyname + wxT(": ") + hk_decr->m_InfoMsg + wxT("\n"); keyname = ReturnKeyNameFromKeyCode( hk_decr->m_KeyCode );
} msg += keyname + wxT( ": " ) + hk_decr->m_InfoMsg + wxT( "\n" );
DisplayInfo(frame, msg); }
DisplayInfo( frame, msg );
} }
/******************************************************************/ /******************************************************************/
int GetCommandCodeFromHotkey(int key, Ki_HotkeyInfo ** List) int GetCommandCodeFromHotkey( int key, Ki_HotkeyInfo** List )
/******************************************************************/ /******************************************************************/
/* /*
* Return an id identifier fron a key code for OnHotKey() function * Return an id identifier fron a key code for OnHotKey() function
* @param key = key code (ascii value, or wxWidgets value for function keys * @param key = key code (ascii value, or wxWidgets value for function keys
* @param List = pointer to a Ki_HotkeyInfo list of commands * @param List = pointer to a Ki_HotkeyInfo list of commands
* @return the corresponding function identifier from the Ki_HotkeyInfo List * @return the corresponding function identifier from the Ki_HotkeyInfo List
*/ */
{ {
for ( ; * List != NULL; List++ ) for( ; *List != NULL; List++ )
{ {
Ki_HotkeyInfo * hk_decr = * List; Ki_HotkeyInfo* hk_decr = *List;
if ( hk_decr->m_KeyCode == key ) return hk_decr->m_Idcommand; if( hk_decr->m_KeyCode == key )
} return hk_decr->m_Idcommand;
}
return 0;
return 0;
} }
/*************************************************************************/ /*************************************************************************/
int WinEDA_BasicFrame::WriteHotkeyConfigFile(const wxString & Filename, int WinEDA_BasicFrame::WriteHotkeyConfigFile( const wxString& Filename,
Ki_HotkeyInfo ** List, bool verbose) Ki_HotkeyInfo** List, bool verbose )
/*************************************************************************/ /*************************************************************************/
/* /*
* Create a configuration file (*.key) from the current hotkey list * 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 Filename = default full file name to create. If void, A filename will be asked
* @param List = pointer to the current hotkey list. * @param List = pointer to the current hotkey list.
* the ouput format is: shortcut "key" "function" * the ouput format is: shortcut "key" "function"
* lines starting by # are comments * lines starting by # are comments
* *
*/ */
{ {
wxString FullFilename = Filename; wxString FullFilename = Filename;
FILE * cfgfile; FILE* cfgfile;
wxString msg; wxString msg;
if ( FullFilename.IsEmpty() || verbose)
{ if( FullFilename.IsEmpty() || verbose )
wxString Mask, Path, Ext; {
Ext = DEFAULT_HOTKEY_FILENAME_EXT; wxString Mask, Path, Ext;
Mask = wxT("*") + Ext; Ext = DEFAULT_HOTKEY_FILENAME_EXT;
Path = DEFAULT_HOTKEY_FILENAME_PATH; Mask = wxT( "*" ) + Ext;
FullFilename = EDA_FileSelector( _("Hotkey configuration file:"), Path = DEFAULT_HOTKEY_FILENAME_PATH;
Path, /* Chemin par defaut */ FullFilename = EDA_FileSelector( _( "Hotkey configuration file:" ),
FullFilename, /* nom fichier par defaut */ Path, /* Chemin par defaut */
Ext, /* extension par defaut */ FullFilename, /* nom fichier par defaut */
Mask, /* Masque d'affichage */ Ext, /* extension par defaut */
this, Mask, /* Masque d'affichage */
wxFD_SAVE, this,
TRUE wxFD_SAVE,
); TRUE
} );
if ( FullFilename.IsEmpty() ) return 0; }
if( FullFilename.IsEmpty() )
cfgfile = wxFopen(FullFilename, wxT("wt")); return 0;
if ( cfgfile == NULL ) cfgfile = wxFopen( FullFilename, wxT( "wt" ) );
{
if ( verbose ) if( cfgfile == NULL )
{ {
msg = _("Unable to create ") + FullFilename; if( verbose )
DisplayError(this, msg); {
} msg = _( "Unable to create " ) + FullFilename;
return 0; DisplayError( this, msg );
} }
return 0;
wxString keyname, infokey; }
msg = wxT("$hotkey list\n"); wxString keyname, infokey;
fprintf(cfgfile, CONV_TO_UTF8(msg));
msg = wxT( "$hotkey list\n" );
/* print the allowed keys, for info fprintf( cfgfile, CONV_TO_UTF8( msg ) );
*/
msg = wxT("# "); msg += _("Allowed keys:\n"); /* print the allowed keys, for info
fprintf(cfgfile, CONV_TO_UTF8(msg)); */
msg.Empty(); msg = wxT( "# " ); msg += _( "Allowed keys:\n" );
for ( int ii = 0; ; ii ++ ) fprintf( cfgfile, CONV_TO_UTF8( msg ) );
{ msg.Empty();
if ( s_Notkey_Name_List[ii].m_KeyCode == 0 ) break;; for( int ii = 0; ; ii++ )
if ( msg.IsEmpty() ) msg = wxT("# "); {
else msg += wxT(", "); if( s_Hotkey_Name_List[ii].m_KeyCode == 0 )
msg += s_Notkey_Name_List[ii].m_Name; break;;
if ( msg.Len() > 60 ) if( msg.IsEmpty() )
{ msg = wxT( "# " );
msg += wxT("\n"); else
fprintf(cfgfile, CONV_TO_UTF8(msg)); msg += wxT( ", " );
msg.Empty(); msg += s_Hotkey_Name_List[ii].m_Name;
} if( msg.Len() > 60 )
} {
/* print the last line */ msg += wxT( "\n" );
if ( ! msg.IsEmpty() ) msg += wxT("\n"); fprintf( cfgfile, CONV_TO_UTF8( msg ) );
msg += wxT("#\n#\n"); msg.Empty();
fprintf(cfgfile, CONV_TO_UTF8(msg)); }
}
/* Print the current list */
for ( ; * List != NULL; List++ ) /* print the last line */
{ if( !msg.IsEmpty() )
Ki_HotkeyInfo * hk_decr = * List; msg += wxT( "\n" );
msg = wxT("shortcut "); msg += wxT( "#\n#\n" );
keyname = ReturnKeyNameFromKeyCode(hk_decr->m_KeyCode); fprintf( cfgfile, CONV_TO_UTF8( msg ) );
AddDelimiterString( keyname );
infokey = hk_decr->m_InfoMsg; /* Print the current list */
AddDelimiterString( infokey ); for( ; *List != NULL; List++ )
msg += keyname + wxT(": ") + infokey + wxT("\n"); {
fprintf(cfgfile, CONV_TO_UTF8(msg)); Ki_HotkeyInfo* hk_decr = *List;
} msg = wxT( "shortcut " );
msg = wxT("$Endlist\n"); keyname = ReturnKeyNameFromKeyCode( hk_decr->m_KeyCode );
fprintf(cfgfile, CONV_TO_UTF8(msg)); AddDelimiterString( keyname );
fclose(cfgfile); infokey = hk_decr->m_InfoMsg;
return 1; 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, int WinEDA_BasicFrame::ReadHotkeyConfigFile( const wxString& Filename,
Ki_HotkeyInfo ** CurrentHotkeyList, bool verbose) Ki_HotkeyInfo** CurrentHotkeyList, bool verbose )
/********************************************************************************************/ /********************************************************************************************/
/* /*
* Read a configuration file (<file>.key) and fill the current hotkey list with hotkeys * 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 Filename = default full file name to create. If void, A filename will be asked
* @param CurrentHotkeyList = current hotkey list to initialise. * @param CurrentHotkeyList = current hotkey list to initialise.
* the input format is: shortcut "key" "function" * the input format is: shortcut "key" "function"
* lines starting by # are ignored (comments) * lines starting by # are ignored (comments)
* *
*/ */
{ {
wxString FullFilename = Filename; wxString FullFilename = Filename;
FILE * cfgfile; FILE* cfgfile;
wxString msg; wxString msg;
if ( FullFilename.IsEmpty() || verbose )
{ if( FullFilename.IsEmpty() || verbose )
wxString Mask, Path, Ext; {
Ext = DEFAULT_HOTKEY_FILENAME_EXT; wxString Mask, Path, Ext;
Mask = wxT("*") + Ext; Ext = DEFAULT_HOTKEY_FILENAME_EXT;
Path = DEFAULT_HOTKEY_FILENAME_PATH; Mask = wxT( "*" ) + Ext;
FullFilename = EDA_FileSelector( _("Hotkey configuration file:"), Path = DEFAULT_HOTKEY_FILENAME_PATH;
Path, /* Chemin par defaut */ FullFilename = EDA_FileSelector( _( "Hotkey configuration file:" ),
FullFilename, /* nom fichier par defaut */ Path, /* Chemin par defaut */
Ext, /* extension par defaut */ FullFilename, /* nom fichier par defaut */
Mask, /* Masque d'affichage */ Ext, /* extension par defaut */
this, Mask, /* Masque d'affichage */
wxFD_OPEN, this,
TRUE wxFD_OPEN,
); TRUE
if ( FullFilename.IsEmpty() ) return 0; );
} if( FullFilename.IsEmpty() )
return 0;
cfgfile = wxFopen(FullFilename, wxT("rt")); }
if ( cfgfile == NULL ) cfgfile = wxFopen( FullFilename, wxT( "rt" ) );
{
if ( verbose ) if( cfgfile == NULL )
{ {
msg = _("Unable to read ") + FullFilename; if( verbose )
DisplayError(this, msg); {
} msg = _( "Unable to read " ) + FullFilename;
return 0; DisplayError( this, msg );
} }
return 0;
wxString keyname; }
char Line[1024];
int LineNum = 0; wxString keyname;
/* Read the file */ char Line[1024];
int LineNum = 0;
/* Read the file */
while( GetLine( cfgfile, Line, &LineNum ) != NULL ) while( GetLine( cfgfile, Line, &LineNum ) != NULL )
{ {
char * line_type, * keyname, *fctname; char* line_type, * keyname, * fctname;
line_type = strtok(Line, " \t\n\r"); line_type = strtok( Line, " \t\n\r" );
msg = CONV_FROM_UTF8(line_type); msg = CONV_FROM_UTF8( line_type );
if( msg != wxT("shortcut") ) continue; if( msg != wxT( "shortcut" ) )
if( msg == wxT("$Endlist") ) break; continue;
if( msg == wxT( "$Endlist" ) )
/* Get the key name */ break;
strtok(NULL, "\"\n\r");
keyname = strtok(NULL, "\"\n\r"); /* Get the key name */
strtok(NULL, "\"\n\r"); strtok( NULL, "\"\n\r" );
/* Get the command name */ keyname = strtok( NULL, "\"\n\r" );
fctname = strtok(NULL, "\"\n\r"); strtok( NULL, "\"\n\r" );
msg = CONV_FROM_UTF8(fctname); /* Get the command name */
/* search the hotkey in current hotkey list */ fctname = strtok( NULL, "\"\n\r" );
for (Ki_HotkeyInfo ** List = CurrentHotkeyList; * List != NULL; List++ ) msg = CONV_FROM_UTF8( fctname );
{ /* search the hotkey in current hotkey list */
Ki_HotkeyInfo * hk_decr = * List; for( Ki_HotkeyInfo** List = CurrentHotkeyList; *List != NULL; List++ )
if (hk_decr->m_InfoMsg == msg ) {
{ Ki_HotkeyInfo* hk_decr = *List;
msg = CONV_FROM_UTF8(keyname); if( hk_decr->m_InfoMsg == msg )
int code = ReturnKeyCodeFromKeyName(msg); {
if ( code ) hk_decr->m_KeyCode = code; msg = CONV_FROM_UTF8( keyname );
break; int code = ReturnKeyCodeFromKeyName( msg );
} if( code )
} hk_decr->m_KeyCode = code;
} break;
fclose(cfgfile); }
return 1; }
}
fclose( cfgfile );
return 1;
} }
...@@ -294,6 +294,9 @@ void WinEDA_DrawFrame::GeneralControle( wxDC* DC, wxPoint MousePositionInPixels ...@@ -294,6 +294,9 @@ void WinEDA_DrawFrame::GeneralControle( wxDC* DC, wxPoint MousePositionInPixels
switch( g_KeyPressed ) switch( g_KeyPressed )
{ {
case 0:
break;
case EDA_PANNING_UP_KEY: case EDA_PANNING_UP_KEY:
OnZoom( ID_ZOOM_PANNING_UP ); OnZoom( ID_ZOOM_PANNING_UP );
curpos = m_CurrentScreen->m_Curseur; curpos = m_CurrentScreen->m_Curseur;
...@@ -315,23 +318,16 @@ void WinEDA_DrawFrame::GeneralControle( wxDC* DC, wxPoint MousePositionInPixels ...@@ -315,23 +318,16 @@ void WinEDA_DrawFrame::GeneralControle( wxDC* DC, wxPoint MousePositionInPixels
break; break;
case EDA_ZOOM_IN_FROM_MOUSE: case EDA_ZOOM_IN_FROM_MOUSE:
case WXK_F1:
OnZoom( ID_ZOOM_PLUS_KEY ); OnZoom( ID_ZOOM_PLUS_KEY );
curpos = m_CurrentScreen->m_Curseur; curpos = m_CurrentScreen->m_Curseur;
break; break;
case EDA_ZOOM_OUT_FROM_MOUSE: case EDA_ZOOM_OUT_FROM_MOUSE:
case WXK_F2:
OnZoom( ID_ZOOM_MOINS_KEY ); OnZoom( ID_ZOOM_MOINS_KEY );
curpos = m_CurrentScreen->m_Curseur; curpos = m_CurrentScreen->m_Curseur;
break; break;
case WXK_F3:
OnZoom( ID_ZOOM_REDRAW_KEY );
break;
case EDA_ZOOM_CENTER_FROM_MOUSE: case EDA_ZOOM_CENTER_FROM_MOUSE:
case WXK_F4:
OnZoom( ID_ZOOM_CENTER_KEY ); OnZoom( ID_ZOOM_CENTER_KEY );
curpos = m_CurrentScreen->m_Curseur; curpos = m_CurrentScreen->m_Curseur;
break; break;
......
/***********************************/ /***********************************/
/* eeschema.cpp - module principal */ /* eeschema.cpp - module principal */
/***********************************/ /***********************************/
#ifdef __GNUG__ #ifdef __GNUG__
#pragma implementation #pragma implementation
...@@ -26,51 +26,57 @@ ...@@ -26,51 +26,57 @@
/* Routines locales */ /* Routines locales */
static void CreateScreens(void); static void CreateScreens( void );
// Global variables // Global variables
wxString g_Main_Title( wxT("EESchema") ); wxString g_Main_Title( wxT( "EESchema" ) );
/************************************/ /************************************/
/* Called to initialize the program */ /* Called to initialize the program */
/************************************/ /************************************/
// Create a new application object: this macro will allow wxWindows to create // Create a new application object: this macro will allow wxWindows to create
// the application object during program execution (it's better than using a // the application object during program execution (it's better than using a
// static object for many reasons) and also declares the accessor function // static object for many reasons) and also declares the accessor function
// wxGetApp() which will return the reference of the right type (i.e. MyApp and // wxGetApp() which will return the reference of the right type (i.e. MyApp and
// not wxApp) // not wxApp)
IMPLEMENT_APP(WinEDA_App) IMPLEMENT_APP( WinEDA_App )
bool WinEDA_App::OnInit(void) bool WinEDA_App::OnInit( void )
{ {
wxString FFileName; wxString FFileName;
EDA_Appl = this;
g_DebugLevel = 0; // Debug level */ EDA_Appl = this;
InitEDA_Appl( wxT("eeschema") ); g_DebugLevel = 0; // Debug level */
if ( m_Checker && m_Checker->IsAnotherRunning() ) InitEDA_Appl( wxT( "eeschema" ) );
if( m_Checker && m_Checker->IsAnotherRunning() )
{ {
if ( ! IsOK(NULL, _("Eeschema is already running, Continue?") ) ) if( !IsOK( NULL, _( "Eeschema is already running, Continue?" ) ) )
return false; return false;
} }
if(argc > 1 ) FFileName = argv[1]; if( argc > 1 )
FFileName = argv[1];
CreateScreens(); CreateScreens();
/* init EESCHEMA */ /* init EESCHEMA */
GetSettings(); // read current setup GetSettings(); // read current setup
SeedLayers(); SeedLayers();
Read_Hotkey_Config( SchematicFrame, false ); /* Must be called before creating the main frame
* in order to display the real hotkeys in menus
* or tool tips */
// Create main frame (schematic frame) : // Create main frame (schematic frame) :
SchematicFrame = new WinEDA_SchematicFrame(NULL, this, SchematicFrame = new WinEDA_SchematicFrame( NULL, this,
wxT("EESchema"), wxPoint(0,0), wxSize(600,400) ); wxT( "EESchema" ),
wxPoint( 0, 0 ), wxSize( 600, 400 ) );
SetTopWindow(SchematicFrame); SetTopWindow( SchematicFrame );
SchematicFrame->Show(TRUE); SchematicFrame->Show( TRUE );
if( CreateServer( SchematicFrame, KICAD_SCH_PORT_SERVICE_NUMBER ) ) if( CreateServer( SchematicFrame, KICAD_SCH_PORT_SERVICE_NUMBER ) )
{ {
...@@ -78,49 +84,47 @@ wxString FFileName; ...@@ -78,49 +84,47 @@ wxString FFileName;
// sends EESCHEMA a command // sends EESCHEMA a command
SetupServerFunction( RemoteCommand ); SetupServerFunction( RemoteCommand );
} }
SchematicFrame->Zoom_Automatique(TRUE); SchematicFrame->Zoom_Automatique( TRUE );
Read_Hotkey_Config(SchematicFrame, false);
/* Load file specified in the command line. */
/* Load file specified in the command line. */ if( !FFileName.IsEmpty() )
if( ! FFileName.IsEmpty() ) {
{ ChangeFileNameExt( FFileName, g_SchExtBuffer );
ChangeFileNameExt(FFileName, g_SchExtBuffer); wxSetWorkingDirectory( wxPathOnly( FFileName ) );
wxSetWorkingDirectory( wxPathOnly(FFileName) ); if( SchematicFrame->DrawPanel )
if ( SchematicFrame->DrawPanel ) if( SchematicFrame->LoadOneEEProject( FFileName, FALSE ) <= 0 )
if ( SchematicFrame->LoadOneEEProject(FFileName, FALSE) <= 0 ) SchematicFrame->DrawPanel->Refresh( TRUE ); // File not found or error
SchematicFrame->DrawPanel->Refresh(TRUE); // File not found or error }
} else
{
else Read_Config( wxEmptyString, TRUE ); // Read config file ici si pas de fichier a charger
{ if( SchematicFrame->DrawPanel )
Read_Config(wxEmptyString, TRUE); // Read config file ici si pas de fichier a charger SchematicFrame->DrawPanel->Refresh( TRUE );
if ( SchematicFrame->DrawPanel ) }
SchematicFrame->DrawPanel->Refresh(TRUE);
} return TRUE;
return TRUE;
} }
/******************************/ /******************************/
static void CreateScreens(void) static void CreateScreens( void )
/******************************/ /******************************/
/* /*
Fonction d'init des crans utiliss dans EESchema: * Fonction d'init des crans utiliss dans EESchema:
*/ */
{ {
/* creation des ecrans Sch , Lib */ /* creation des ecrans Sch , Lib */
if(ScreenSch == NULL ) if( ScreenSch == NULL )
ScreenSch = new SCH_SCREEN(SCHEMATIC_FRAME); ScreenSch = new SCH_SCREEN( SCHEMATIC_FRAME );
ScreenSch->m_FileName = g_DefaultSchematicFileName; ScreenSch->m_FileName = g_DefaultSchematicFileName;
ScreenSch->m_Date = GenDate(); ScreenSch->m_Date = GenDate();
ActiveScreen = ScreenSch; ActiveScreen = ScreenSch;
if(ScreenLib == NULL ) if( ScreenLib == NULL )
ScreenLib = new SCH_SCREEN(LIBEDITOR_FRAME); ScreenLib = new SCH_SCREEN( LIBEDITOR_FRAME );
ScreenLib->SetZoom(4); ScreenLib->SetZoom( 4 );
ScreenLib->m_UndoRedoCountMax = 10; ScreenLib->m_UndoRedoCountMax = 10;
} }
/***************/ /***************/
/* hotkeys.cpp */ /* hotkeys.cpp */
/***************/ /***************/
#include "fctsys.h" #include "fctsys.h"
...@@ -13,318 +13,370 @@ ...@@ -13,318 +13,370 @@
#include "id.h" #include "id.h"
#include "hotkeys_basic.h" #include "hotkeys.h"
#include "protos.h" #include "protos.h"
enum hotkey_id_commnand { /* How to add a new hotkey:
HK_NOT_FOUND = 0, * add a new id in the enum hotkey_id_commnand like MY_NEW_ID_FUNCTION (see hotkeys.h).
HK_RESET_LOCAL_COORD, * add a new Ki_HotkeyInfo entry like:
HK_HELP, * static Ki_HotkeyInfo HkMyNewEntry(wxT("Command Label"), MY_NEW_ID_FUNCTION, default key value);
HK_ZOOM_IN, * "Command Label" is the name used in hotkey list display, and the identifier in the hotkey list file
HK_ZOOM_OUT, * MY_NEW_ID_FUNCTION is an equivalent id function used in the switch in OnHotKey() function.
HK_ZOOM_REDRAW, * default key value is the default hotkey for this command. Can be overrided by the user hotkey list file
HK_ZOOM_CENTER, * add the HkMyNewEntry pointer in the s_Schematic_Hotkey_List list ( or/and the s_LibEdit_Hotkey_List list)
HK_NEXT_SEARCH, * Add the new code in the switch in OnHotKey() function.
HK_DELETE, * when the variable PopupOn is true, an item is currently edited.
HK_REPEAT_LAST, * This can be usefull if the new function cannot be executed while an item is currently being edited
HK_MOVEBLOCK_TO_DRAGBLOCK, * ( For example, one cannot start a new wire when a component is moving.)
HK_ROTATE_COMPONENT, *
HK_MIRROR_X_COMPONENT, * Note: If an hotkey is a special key be sure the corresponding wxWidget keycode (WXK_XXXX)
HK_MIRROR_Y_COMPONENT, * is handled in the hotkey_name_descr s_Hotkey_Name_List list (see hotkeys_basic.cpp)
HK_ORIENT_NORMAL_COMPONENT, * and see this list for some ascii keys (space ...)
HK_MOVE_COMPONENT, */
HK_ADD_NEW_COMPONENT,
HK_BEGIN_WIRE
};
/* local variables */ /* local variables */
/* Hotkey list: */ /* Hotkey list: */
static Ki_HotkeyInfo HkBeginWire(wxT("begin Wire"), HK_BEGIN_WIRE, 'W'); static Ki_HotkeyInfo HkBeginWire( wxT( "begin Wire" ), HK_BEGIN_WIRE, 'W' );
static Ki_HotkeyInfo HkAddComponent(wxT("Add Component"), HK_ADD_NEW_COMPONENT, 'A'); static Ki_HotkeyInfo HkAddComponent( wxT( "Add Component" ), HK_ADD_NEW_COMPONENT, 'A' );
static Ki_HotkeyInfo HkMirrorYComponent(wxT("Mirror Y Component"), HK_MIRROR_Y_COMPONENT, 'Y'); static Ki_HotkeyInfo HkMirrorYComponent( wxT(
static Ki_HotkeyInfo HkMirrorXComponent(wxT("Mirror X Component"), HK_MIRROR_X_COMPONENT, 'X'); "Mirror Y Component" ), HK_MIRROR_Y_COMPONENT, 'Y' );
static Ki_HotkeyInfo HkOrientNormalComponent(wxT("Orient Normal Component"), HK_ORIENT_NORMAL_COMPONENT, 'N'); static Ki_HotkeyInfo HkMirrorXComponent( wxT(
static Ki_HotkeyInfo HkRotateComponent(wxT("Rotate Component"), HK_ROTATE_COMPONENT, 'R'); "Mirror X Component" ), HK_MIRROR_X_COMPONENT, 'X' );
static Ki_HotkeyInfo HkMoveComponent(wxT("Move Component"), HK_MOVE_COMPONENT, 'M'); static Ki_HotkeyInfo HkOrientNormalComponent( wxT(
static Ki_HotkeyInfo HkMove2Drag(wxT("Switch move block to drag block"), HK_MOVEBLOCK_TO_DRAGBLOCK, '\t'); "Orient Normal Component" ),
static Ki_HotkeyInfo HkInsert(wxT("Repeat Last Item"), HK_REPEAT_LAST, WXK_INSERT); HK_ORIENT_NORMAL_COMPONENT, 'N' );
static Ki_HotkeyInfo HkDelete(wxT("Delete Item"), HK_DELETE, WXK_DELETE); static Ki_HotkeyInfo HkRotateComponent( wxT( "Rotate Component" ), HK_ROTATE_COMPONENT, 'R' );
static Ki_HotkeyInfo HkResetLocalCoord(wxT("Reset local coord."), HK_RESET_LOCAL_COORD, ' '); static Ki_HotkeyInfo HkMoveComponent( wxT( "Move Component" ), HK_MOVE_COMPONENT, 'M' );
static Ki_HotkeyInfo HkNextSearch(wxT("Next Search"), HK_NEXT_SEARCH, WXK_F5); static Ki_HotkeyInfo HkMove2Drag( wxT(
static Ki_HotkeyInfo HkZoomCenter(wxT("Zoom Center"), HK_ZOOM_CENTER, WXK_F4); "Switch move block to drag block" ),
static Ki_HotkeyInfo HkZoomRedraw(wxT("Zoom Redraw"), HK_ZOOM_REDRAW, WXK_F3); HK_MOVEBLOCK_TO_DRAGBLOCK, '\t' );
static Ki_HotkeyInfo HkZoomOut(wxT("Zoom Out"), HK_ZOOM_OUT, WXK_F2); static Ki_HotkeyInfo HkInsert( wxT( "Repeat Last Item" ), HK_REPEAT_LAST, WXK_INSERT );
static Ki_HotkeyInfo HkZoomIn(wxT("Zoom In"), HK_ZOOM_IN, WXK_F1); static Ki_HotkeyInfo HkDelete( wxT( "Delete Item" ), HK_DELETE, WXK_DELETE );
static Ki_HotkeyInfo HkHelp(wxT("Help: this message"), HK_HELP, '?'); static Ki_HotkeyInfo HkResetLocalCoord( wxT( "Reset local coord." ), HK_RESET_LOCAL_COORD, ' ' );
static Ki_HotkeyInfo HkNextSearch( wxT( "Next Search" ), HK_NEXT_SEARCH, WXK_F5 );
static Ki_HotkeyInfo HkZoomCenter( wxT( "Zoom Center" ), HK_ZOOM_CENTER, WXK_F4 );
static Ki_HotkeyInfo HkZoomRedraw( wxT( "Zoom Redraw" ), HK_ZOOM_REDRAW, WXK_F3 );
static Ki_HotkeyInfo HkZoomOut( wxT( "Zoom Out" ), HK_ZOOM_OUT, WXK_F2 );
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 // List of hotkey descriptors for schematic
Ki_HotkeyInfo *s_Schematic_Hotkey_List[] = { Ki_HotkeyInfo* s_Schematic_Hotkey_List[] = {
&HkHelp, &HkHelp,
&HkZoomIn, &HkZoomOut, &HkZoomRedraw, &HkZoomCenter, &HkZoomIn, &HkZoomOut, &HkZoomRedraw, &HkZoomCenter,
&HkNextSearch, &HkResetLocalCoord, &HkNextSearch, &HkResetLocalCoord,
&HkDelete, &HkInsert, &HkMove2Drag, &HkDelete, &HkInsert, &HkMove2Drag,
&HkMoveComponent, &HkAddComponent, &HkMoveComponent, &HkAddComponent,
&HkRotateComponent, &HkMirrorXComponent, &HkMirrorYComponent, & HkOrientNormalComponent, &HkRotateComponent, &HkMirrorXComponent, &HkMirrorYComponent, &HkOrientNormalComponent,
&HkBeginWire, &HkBeginWire,
NULL NULL
}; };
// Library editor: // Library editor:
static Ki_HotkeyInfo HkInsertPin(wxT("Repeat Pin"), HK_REPEAT_LAST, WXK_INSERT); static Ki_HotkeyInfo HkInsertPin( wxT( "Repeat Pin" ), HK_REPEAT_LAST, WXK_INSERT );
// List of hotkey descriptors for libray editor // List of hotkey descriptors for libray editor
Ki_HotkeyInfo *s_LibEdit_Hotkey_List[] = Ki_HotkeyInfo* s_LibEdit_Hotkey_List[] =
{ {
&HkHelp, &HkHelp,
&HkZoomIn, &HkZoomOut, &HkZoomRedraw, &HkZoomCenter, &HkZoomIn, &HkZoomOut, &HkZoomRedraw, &HkZoomCenter,
&HkResetLocalCoord, &HkResetLocalCoord,
&HkInsertPin, &HkInsertPin,
NULL NULL
}; };
/***********************************************************/ /***********************************************************/
void WinEDA_SchematicFrame::OnHotKey(wxDC * DC, int hotkey, void WinEDA_SchematicFrame::OnHotKey( wxDC* DC, int hotkey,
EDA_BaseStruct * DrawStruct) EDA_BaseStruct* DrawStruct )
/***********************************************************/ /***********************************************************/
/* Hot keys. Some commands are relatives to the item under the mouse cursor /* Hot keys. Some commands are relatives to the item under the mouse cursor
Commands are case insensitive * Commands are case insensitive
Zoom commands are not managed here */
*/
{ {
bool PopupOn = m_CurrentScreen->GetCurItem() && bool PopupOn = m_CurrentScreen->GetCurItem()
m_CurrentScreen->GetCurItem()->m_Flags; && m_CurrentScreen->GetCurItem()->m_Flags;
bool RefreshToolBar = FALSE; // We must refresh tool bar when the undo/redo tool state is modified bool RefreshToolBar = FALSE; // We must refresh tool bar when the undo/redo tool state is modified
if ( hotkey == 0 ) return; if( hotkey == 0 )
return;
wxPoint MousePos = m_CurrentScreen->m_MousePosition;
wxPoint MousePos = m_CurrentScreen->m_MousePosition;
// Remap the control key Ctrl A (0x01) to GR_KB_CTRL + 'A' (easier to handle...)
if ( (hotkey & GR_KB_CTRL) != 0 ) hotkey += 'A' - 1; // Remap the control key Ctrl A (0x01) to GR_KB_CTRL + 'A' (easier to handle...)
/* Convert lower to upper case (the usual toupper function has problem with non ascii codes like function keys */ if( (hotkey & GR_KB_CTRL) != 0 )
if( (hotkey >= 'a') && (hotkey <= 'z') ) hotkey += 'A' - 'a'; hotkey += 'A' - 1;
/* Convert lower to upper case (the usual toupper function has problem with non ascii codes like function keys */
// Search command from key : if( (hotkey >= 'a') && (hotkey <= 'z') )
int CommandCode = GetCommandCodeFromHotkey(hotkey, s_Schematic_Hotkey_List); hotkey += 'A' - 'a';
// Search command from key :
int CommandCode = GetCommandCodeFromHotkey( hotkey, s_Schematic_Hotkey_List );
switch( CommandCode ) switch( CommandCode )
{ {
default: default:
case HK_NOT_FOUND: case HK_NOT_FOUND:
return; return;
break; break;
case HK_HELP: // Display Current hotkey list case HK_HELP: // Display Current hotkey list
DisplayHotkeyList(this, s_Schematic_Hotkey_List); DisplayHotkeyList( this, s_Schematic_Hotkey_List );
break; break;
case HK_RESET_LOCAL_COORD: /* Reset the relative coord */ case HK_RESET_LOCAL_COORD: /* Reset the relative coord */
m_CurrentScreen->m_O_Curseur = m_CurrentScreen->m_Curseur; m_CurrentScreen->m_O_Curseur = m_CurrentScreen->m_Curseur;
break; break;
case HK_ZOOM_IN: case HK_ZOOM_IN:
case HK_ZOOM_OUT: OnZoom( ID_ZOOM_PLUS_KEY );
case HK_ZOOM_REDRAW: break;
case HK_ZOOM_CENTER:
break; case HK_ZOOM_OUT:
OnZoom( ID_ZOOM_MOINS_KEY );
case HK_MOVEBLOCK_TO_DRAGBLOCK: // Switch to drag mode, when block moving break;
HandleBlockEndByPopUp(BLOCK_DRAG, DC);
break; case HK_ZOOM_REDRAW:
OnZoom( ID_ZOOM_REDRAW_KEY );
case HK_DELETE: break;
if ( PopupOn ) break;
RefreshToolBar = LocateAndDeleteItem(this, DC); case HK_ZOOM_CENTER:
m_CurrentScreen->SetModify(); OnZoom( ID_ZOOM_CENTER_KEY );
m_CurrentScreen->SetCurItem( NULL); break;
TestDanglingEnds(m_CurrentScreen->EEDrawList, DC);
break; case HK_MOVEBLOCK_TO_DRAGBLOCK: // Switch to drag mode, when block moving
HandleBlockEndByPopUp( BLOCK_DRAG, DC );
case HK_REPEAT_LAST: break;
if ( g_ItemToRepeat && (g_ItemToRepeat->m_Flags == 0) )
{ case HK_DELETE:
RepeatDrawItem(DC); if( PopupOn )
} break;
else wxBell(); RefreshToolBar = LocateAndDeleteItem( this, DC );
break; m_CurrentScreen->SetModify();
m_CurrentScreen->SetCurItem( NULL );
case HK_NEXT_SEARCH : TestDanglingEnds( m_CurrentScreen->EEDrawList, DC );
if ( g_LastSearchIsMarker ) WinEDA_SchematicFrame::FindMarker(1); break;
else FindSchematicItem(wxEmptyString, 2);
break; case HK_REPEAT_LAST:
if( g_ItemToRepeat && (g_ItemToRepeat->m_Flags == 0) )
case HK_ADD_NEW_COMPONENT: // Add component {
if ( DrawStruct && DrawStruct->m_Flags ) break; RepeatDrawItem( DC );
// switch to m_ID_current_state = ID_COMPONENT_BUTT; }
if ( m_ID_current_state != ID_COMPONENT_BUTT ) SetToolID( ID_COMPONENT_BUTT, wxCURSOR_PENCIL, _("Add Component")); else
OnLeftClick(DC, MousePos); wxBell();
break; break;
case HK_BEGIN_WIRE: // Add wire case HK_NEXT_SEARCH:
if ( DrawStruct ) // An item is selected. If edited and not a wire, a new command is not possible if( g_LastSearchIsMarker )
{ WinEDA_SchematicFrame::FindMarker( 1 );
if ( DrawStruct->m_Flags ) // Item selected and edition in progress else
{ FindSchematicItem( wxEmptyString, 2 );
if (DrawStruct->m_StructType == DRAW_SEGMENT_STRUCT_TYPE ) break;
{
EDA_DrawLineStruct * segment = (EDA_DrawLineStruct *)DrawStruct; case HK_ADD_NEW_COMPONENT: // Add component
if ( segment->m_Layer != LAYER_WIRE ) break; if( DrawStruct && DrawStruct->m_Flags )
}
else break;
}
}
// switch to m_ID_current_state = ID_WIRE_BUTT;
if ( m_ID_current_state != ID_WIRE_BUTT ) SetToolID( ID_WIRE_BUTT, wxCURSOR_PENCIL, _("Add Wire"));
OnLeftClick(DC, MousePos);
break; break;
case HK_ROTATE_COMPONENT: // Component Rotation // switch to m_ID_current_state = ID_COMPONENT_BUTT;
if ( DrawStruct == NULL ) if( m_ID_current_state != ID_COMPONENT_BUTT )
{ SetToolID( ID_COMPONENT_BUTT, wxCURSOR_PENCIL, _( "Add Component" ) );
DrawStruct = PickStruct( GetScreen()->m_Curseur, OnLeftClick( DC, MousePos );
GetScreen()->EEDrawList, LIBITEM|TEXTITEM|LABELITEM ); break;
if ( DrawStruct == NULL ) break;
if ( DrawStruct->m_StructType == DRAW_LIB_ITEM_STRUCT_TYPE ) case HK_BEGIN_WIRE: // Add wire
DrawStruct = LocateSmallestComponent( GetScreen() ); if( DrawStruct ) // An item is selected. If edited and not a wire, a new command is not possible
if ( DrawStruct == NULL ) break; {
} if( DrawStruct->m_Flags ) // Item selected and edition in progress
switch (DrawStruct->m_StructType) {
{ if( DrawStruct->m_StructType == DRAW_SEGMENT_STRUCT_TYPE )
case DRAW_LIB_ITEM_STRUCT_TYPE: {
if ( DrawStruct->m_Flags == 0 ) EDA_DrawLineStruct* segment = (EDA_DrawLineStruct*) DrawStruct;
{ if( segment->m_Layer != LAYER_WIRE )
SaveCopyInUndoList(DrawStruct, IS_CHANGED); break;
RefreshToolBar = TRUE; }
} else
break;
CmpRotationMiroir( }
(EDA_SchComponentStruct *) DrawStruct, DC, CMP_ROTATE_COUNTERCLOCKWISE ); }
break;
// switch to m_ID_current_state = ID_WIRE_BUTT;
case DRAW_TEXT_STRUCT_TYPE: if( m_ID_current_state != ID_WIRE_BUTT )
case DRAW_LABEL_STRUCT_TYPE: SetToolID( ID_WIRE_BUTT, wxCURSOR_PENCIL, _( "Add Wire" ) );
case DRAW_GLOBAL_LABEL_STRUCT_TYPE: OnLeftClick( DC, MousePos );
if ( DrawStruct->m_Flags == 0 ) break;
{
SaveCopyInUndoList(DrawStruct, IS_CHANGED); case HK_ROTATE_COMPONENT: // Component Rotation
RefreshToolBar = TRUE; if( DrawStruct == NULL )
} {
ChangeTextOrient( (DrawTextStruct*)DrawStruct, DC); DrawStruct = PickStruct( GetScreen()->m_Curseur,
break; GetScreen()->EEDrawList, LIBITEM | TEXTITEM | LABELITEM );
if( DrawStruct == NULL )
default:; break;
} if( DrawStruct->m_StructType == DRAW_LIB_ITEM_STRUCT_TYPE )
break; DrawStruct = LocateSmallestComponent( GetScreen() );
if( DrawStruct == NULL )
case HK_MIRROR_Y_COMPONENT: // Mirror Y (Component) break;
if ( DrawStruct == NULL ) }
DrawStruct = LocateSmallestComponent( GetScreen() );
if ( DrawStruct ) switch( DrawStruct->m_StructType )
{ {
if ( DrawStruct->m_Flags == 0 ) case DRAW_LIB_ITEM_STRUCT_TYPE:
{ if( DrawStruct->m_Flags == 0 )
SaveCopyInUndoList(DrawStruct, IS_CHANGED); {
RefreshToolBar = TRUE; SaveCopyInUndoList( DrawStruct, IS_CHANGED );
} RefreshToolBar = TRUE;
CmpRotationMiroir( }
(EDA_SchComponentStruct *) DrawStruct, DC, CMP_MIROIR_Y );
} CmpRotationMiroir(
break; (EDA_SchComponentStruct*) DrawStruct, DC, CMP_ROTATE_COUNTERCLOCKWISE );
break;
case HK_MIRROR_X_COMPONENT: // Mirror X (Component)
if ( DrawStruct == NULL ) case DRAW_TEXT_STRUCT_TYPE:
DrawStruct = LocateSmallestComponent( GetScreen() ); case DRAW_LABEL_STRUCT_TYPE:
if ( DrawStruct ) case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
{ if( DrawStruct->m_Flags == 0 )
if ( DrawStruct->m_Flags == 0 ) {
{ SaveCopyInUndoList( DrawStruct, IS_CHANGED );
SaveCopyInUndoList(DrawStruct, IS_CHANGED); RefreshToolBar = TRUE;
RefreshToolBar = TRUE; }
} ChangeTextOrient( (DrawTextStruct*) DrawStruct, DC );
CmpRotationMiroir( break;
(EDA_SchComponentStruct *) DrawStruct, DC, CMP_MIROIR_X );
} default:
break; ;
}
case HK_ORIENT_NORMAL_COMPONENT: // Orient 0, no mirror (Component)
if ( DrawStruct == NULL ) break;
DrawStruct = LocateSmallestComponent( GetScreen() );
if ( DrawStruct ) case HK_MIRROR_Y_COMPONENT: // Mirror Y (Component)
{ if( DrawStruct == NULL )
if ( DrawStruct->m_Flags == 0 ) DrawStruct = LocateSmallestComponent( GetScreen() );
{ if( DrawStruct )
SaveCopyInUndoList(DrawStruct, IS_CHANGED); {
RefreshToolBar = TRUE; if( DrawStruct->m_Flags == 0 )
} {
CmpRotationMiroir( SaveCopyInUndoList( DrawStruct, IS_CHANGED );
(EDA_SchComponentStruct *) DrawStruct, DC, CMP_NORMAL ); RefreshToolBar = TRUE;
TestDanglingEnds(m_CurrentScreen->EEDrawList, DC); }
} CmpRotationMiroir(
break; (EDA_SchComponentStruct*) DrawStruct, DC, CMP_MIROIR_Y );
}
case HK_MOVE_COMPONENT: // Start move Component break;
if ( PopupOn ) break;
if ( DrawStruct == NULL ) case HK_MIRROR_X_COMPONENT: // Mirror X (Component)
DrawStruct = LocateSmallestComponent( GetScreen() ); if( DrawStruct == NULL )
if ( DrawStruct && (DrawStruct->m_Flags ==0) ) DrawStruct = LocateSmallestComponent( GetScreen() );
{ if( DrawStruct )
m_CurrentScreen->SetCurItem(DrawStruct); {
Process_Move_Item(m_CurrentScreen->GetCurItem(), DC); if( DrawStruct->m_Flags == 0 )
} {
break; SaveCopyInUndoList( DrawStruct, IS_CHANGED );
} RefreshToolBar = TRUE;
}
if ( RefreshToolBar ) SetToolbars(); CmpRotationMiroir(
(EDA_SchComponentStruct*) DrawStruct, DC, CMP_MIROIR_X );
}
break;
case HK_ORIENT_NORMAL_COMPONENT: // Orient 0, no mirror (Component)
if( DrawStruct == NULL )
DrawStruct = LocateSmallestComponent( GetScreen() );
if( DrawStruct )
{
if( DrawStruct->m_Flags == 0 )
{
SaveCopyInUndoList( DrawStruct, IS_CHANGED );
RefreshToolBar = TRUE;
}
CmpRotationMiroir(
(EDA_SchComponentStruct*) DrawStruct, DC, CMP_NORMAL );
TestDanglingEnds( m_CurrentScreen->EEDrawList, DC );
}
break;
case HK_MOVE_COMPONENT: // Start move Component
if( PopupOn )
break;
if( DrawStruct == NULL )
DrawStruct = LocateSmallestComponent( GetScreen() );
if( DrawStruct && (DrawStruct->m_Flags ==0) )
{
m_CurrentScreen->SetCurItem( DrawStruct );
Process_Move_Item( m_CurrentScreen->GetCurItem(), DC );
}
break;
}
if( RefreshToolBar )
SetToolbars();
} }
/***********************************************************/ /***********************************************************/
void WinEDA_LibeditFrame::OnHotKey(wxDC * DC, int hotkey, void WinEDA_LibeditFrame::OnHotKey( wxDC* DC, int hotkey,
EDA_BaseStruct * DrawStruct) EDA_BaseStruct* DrawStruct )
/***********************************************************/ /***********************************************************/
/* Hot keys for the component editot. Some commands are relatives to the item under the mouse cursor /* Hot keys for the component editot. Some commands are relatives to the item under the mouse cursor
Commands are case insensitive * Commands are case insensitive
Zoom commands are not managed here */
*/
{ {
bool RefreshToolBar = FALSE; // We must refresh tool bar when the undo/redo tool state is modified bool RefreshToolBar = FALSE; // We must refresh tool bar when the undo/redo tool state is modified
if ( hotkey == 0 ) return; if( hotkey == 0 )
return;
wxPoint MousePos = m_CurrentScreen->m_MousePosition; wxPoint MousePos = m_CurrentScreen->m_MousePosition;
/* Convert lower to upper case (the usual toupper function has problem with non ascii codes like function keys */
if( (hotkey >= 'a') && (hotkey <= 'z') )
hotkey += 'A' - 'a';
int CommandCode = GetCommandCodeFromHotkey( hotkey, s_LibEdit_Hotkey_List );
/* Convert lower to upper case (the usual toupper function has problem with non ascii codes like function keys */
if( (hotkey >= 'a') && (hotkey <= 'z') ) hotkey += 'A' - 'a';
int CommandCode = GetCommandCodeFromHotkey(hotkey, s_LibEdit_Hotkey_List);
switch( CommandCode ) switch( CommandCode )
{ {
default: default:
case HK_NOT_FOUND: case HK_NOT_FOUND:
return; return;
break; break;
case HK_HELP: // Display Current hotkey list case HK_HELP: // Display Current hotkey list
DisplayHotkeyList(this, s_LibEdit_Hotkey_List); DisplayHotkeyList( this, s_LibEdit_Hotkey_List );
break; break;
case HK_ZOOM_IN: case HK_RESET_LOCAL_COORD: /* Reset the relative coord */
case HK_ZOOM_OUT: m_CurrentScreen->m_O_Curseur = m_CurrentScreen->m_Curseur;
case HK_ZOOM_REDRAW: break;
case HK_ZOOM_CENTER:
case HK_RESET_LOCAL_COORD: case HK_ZOOM_IN:
break; OnZoom( ID_ZOOM_PLUS_KEY );
break;
case HK_REPEAT_LAST:
if ( LibItemToRepeat && (LibItemToRepeat->m_Flags == 0) && case HK_ZOOM_OUT:
(LibItemToRepeat->m_StructType == COMPONENT_PIN_DRAW_TYPE) ) OnZoom( ID_ZOOM_MOINS_KEY );
{ break;
RepeatPinItem(DC, (LibDrawPin*) LibItemToRepeat);
} case HK_ZOOM_REDRAW:
else wxBell(); OnZoom( ID_ZOOM_REDRAW_KEY );
break; break;
}
case HK_ZOOM_CENTER:
if ( RefreshToolBar ) SetToolbars(); OnZoom( ID_ZOOM_CENTER_KEY );
break;
case HK_REPEAT_LAST:
if( LibItemToRepeat && (LibItemToRepeat->m_Flags == 0)
&& (LibItemToRepeat->m_StructType == COMPONENT_PIN_DRAW_TYPE) )
{
RepeatPinItem( DC, (LibDrawPin*) LibItemToRepeat );
}
else
wxBell();
break;
}
if( RefreshToolBar )
SetToolbars();
} }
/***************/
/* hotkeys.h */
/***************/
#ifndef KOTKEYS_H
#define KOTKEYS_H
#include "hotkeys_basic.h"
enum hotkey_id_commnand {
HK_NOT_FOUND = 0,
HK_RESET_LOCAL_COORD,
HK_HELP,
HK_ZOOM_IN,
HK_ZOOM_OUT,
HK_ZOOM_REDRAW,
HK_ZOOM_CENTER,
HK_NEXT_SEARCH,
HK_DELETE,
HK_REPEAT_LAST,
HK_MOVEBLOCK_TO_DRAGBLOCK,
HK_ROTATE_COMPONENT,
HK_MIRROR_X_COMPONENT,
HK_MIRROR_Y_COMPONENT,
HK_ORIENT_NORMAL_COMPONENT,
HK_MOVE_COMPONENT,
HK_ADD_NEW_COMPONENT,
HK_BEGIN_WIRE
};
// List of hotkey descriptors for schematic
extern Ki_HotkeyInfo* s_Schematic_Hotkey_List[];
// List of hotkey descriptors for libray editor
extern Ki_HotkeyInfo* s_LibEdit_Hotkey_List[];
#endif // KOTKEYS_H
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include "protos.h" #include "protos.h"
#include "id.h" #include "id.h"
#include "hotkeys.h"
#include "bitmaps.h" #include "bitmaps.h"
...@@ -272,24 +273,31 @@ void AddMenusForComponent( wxMenu* PopMenu, EDA_SchComponentStruct* Component ) ...@@ -272,24 +273,31 @@ void AddMenusForComponent( wxMenu* PopMenu, EDA_SchComponentStruct* Component )
/* Add menu commands for a component /* Add menu commands for a component
*/ */
{ {
wxString msg;
EDA_LibComponentStruct* LibEntry; EDA_LibComponentStruct* LibEntry;
LibEntry = FindLibPart( Component->m_ChipName.GetData(), wxEmptyString, FIND_ROOT ); LibEntry = FindLibPart( Component->m_ChipName.GetData(), wxEmptyString, FIND_ROOT );
if( !Component->m_Flags ) if( !Component->m_Flags )
{ {
msg = AddHotkeyName( _( "Move Component" ), s_Schematic_Hotkey_List, HK_MOVE_COMPONENT );
ADD_MENUITEM( PopMenu, ID_POPUP_SCH_MOVE_CMP_REQUEST, ADD_MENUITEM( PopMenu, ID_POPUP_SCH_MOVE_CMP_REQUEST,
_( "Move Component (M)" ), move_xpm ); msg, move_xpm );
} }
// add menu orient et sous menu: // add menu orient et sous menu:
wxMenu* orientmenu = new wxMenu; wxMenu* orientmenu = new wxMenu;
msg = AddHotkeyName( _( "Rotate +" ), s_Schematic_Hotkey_List, HK_ROTATE_COMPONENT );
ADD_MENUITEM( orientmenu, ID_POPUP_SCH_ROTATE_CMP_COUNTERCLOCKWISE, ADD_MENUITEM( orientmenu, ID_POPUP_SCH_ROTATE_CMP_COUNTERCLOCKWISE,
_( "Rotate + (R)" ), rotate_pos_xpm ); msg, rotate_pos_xpm );
ADD_MENUITEM( orientmenu, ID_POPUP_SCH_ROTATE_CMP_CLOCKWISE, _( "Rotate -" ), rotate_neg_xpm ); ADD_MENUITEM( orientmenu, ID_POPUP_SCH_ROTATE_CMP_CLOCKWISE, _( "Rotate -" ), rotate_neg_xpm );
ADD_MENUITEM( orientmenu, ID_POPUP_SCH_MIROR_X_CMP, _( "Mirror -- (X)" ), mirror_V_xpm ); msg = AddHotkeyName( _( "Mirror --" ), s_Schematic_Hotkey_List, HK_MIRROR_X_COMPONENT );
ADD_MENUITEM( orientmenu, ID_POPUP_SCH_MIROR_Y_CMP, _( "Mirror || (Y)" ), mirror_H_xpm ); ADD_MENUITEM( orientmenu, ID_POPUP_SCH_MIROR_X_CMP, msg, mirror_V_xpm );
ADD_MENUITEM( orientmenu, ID_POPUP_SCH_ORIENT_NORMAL_CMP, _( "Normal (N)" ), normal_xpm ); msg = AddHotkeyName( _( "Mirror ||" ), s_Schematic_Hotkey_List, HK_MIRROR_Y_COMPONENT );
ADD_MENUITEM( orientmenu, ID_POPUP_SCH_MIROR_Y_CMP, msg, mirror_H_xpm );
msg = AddHotkeyName( _( "Normal" ), s_Schematic_Hotkey_List, HK_ORIENT_NORMAL_COMPONENT );
ADD_MENUITEM( orientmenu, ID_POPUP_SCH_ORIENT_NORMAL_CMP, msg, normal_xpm );
ADD_MENUITEM_WITH_SUBMENU( PopMenu, orientmenu, ADD_MENUITEM_WITH_SUBMENU( PopMenu, orientmenu,
ID_POPUP_SCH_GENERIC_ORIENT_CMP, _( ID_POPUP_SCH_GENERIC_ORIENT_CMP, _(
"Orient Component" ), orient_xpm ); "Orient Component" ), orient_xpm );
......
/********************************************/ /********************************************/
/* tool_lib.cpp: construction des toolbars */ /* tool_lib.cpp: construction des toolbars */
/********************************************/ /********************************************/
#include "fctsys.h" #include "fctsys.h"
#include "gr_basic.h" #include "gr_basic.h"
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include "general.h" #include "general.h"
#include "protos.h" #include "protos.h"
#include "hotkeys.h"
#define BITMAP wxBitmap #define BITMAP wxBitmap
...@@ -34,243 +35,245 @@ ...@@ -34,243 +35,245 @@
/****************************************************/ /****************************************************/
void WinEDA_LibeditFrame::ReCreateVToolbar(void) void WinEDA_LibeditFrame::ReCreateVToolbar( void )
/****************************************************/ /****************************************************/
{ {
if( m_VToolBar == NULL ) if( m_VToolBar == NULL )
{ {
m_VToolBar = new WinEDA_Toolbar(TOOLBAR_TOOL, this, ID_V_TOOLBAR, FALSE); m_VToolBar = new WinEDA_Toolbar( TOOLBAR_TOOL, this, ID_V_TOOLBAR, FALSE );
// Set up toolbar // Set up toolbar
m_VToolBar->AddTool(ID_NO_SELECT_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_NO_SELECT_BUTT, wxEmptyString,
BITMAP(cursor_xpm), BITMAP( cursor_xpm ),
_("deselect current tool"), wxITEM_CHECK ); _( "deselect current tool" ), wxITEM_CHECK );
m_VToolBar->ToggleTool(ID_NO_SELECT_BUTT, TRUE); m_VToolBar->ToggleTool( ID_NO_SELECT_BUTT, TRUE );
m_VToolBar->AddSeparator(); m_VToolBar->AddSeparator();
m_VToolBar->AddTool(ID_LIBEDIT_PIN_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_LIBEDIT_PIN_BUTT, wxEmptyString,
BITMAP(pin_xpm), BITMAP( pin_xpm ),
_("Add Pins"), wxITEM_CHECK ); _( "Add Pins" ), wxITEM_CHECK );
m_VToolBar->AddTool(ID_LIBEDIT_BODY_TEXT_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_LIBEDIT_BODY_TEXT_BUTT, wxEmptyString,
BITMAP(add_text_xpm), BITMAP( add_text_xpm ),
_("Add graphic text"), wxITEM_CHECK ); _( "Add graphic text" ), wxITEM_CHECK );
m_VToolBar->AddTool(ID_LIBEDIT_BODY_RECT_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_LIBEDIT_BODY_RECT_BUTT, wxEmptyString,
BITMAP(add_rectangle_xpm), BITMAP( add_rectangle_xpm ),
_("Add rectangles"), wxITEM_CHECK ); _( "Add rectangles" ), wxITEM_CHECK );
m_VToolBar->AddTool(ID_LIBEDIT_BODY_CIRCLE_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_LIBEDIT_BODY_CIRCLE_BUTT, wxEmptyString,
BITMAP(add_circle_xpm), BITMAP( add_circle_xpm ),
_("Add circles"), wxITEM_CHECK ); _( "Add circles" ), wxITEM_CHECK );
m_VToolBar->AddTool(ID_LIBEDIT_BODY_ARC_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_LIBEDIT_BODY_ARC_BUTT, wxEmptyString,
BITMAP(add_arc_xpm), BITMAP( add_arc_xpm ),
_("Add arcs"), wxITEM_CHECK ); _( "Add arcs" ), wxITEM_CHECK );
m_VToolBar->AddTool(ID_LIBEDIT_BODY_LINE_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_LIBEDIT_BODY_LINE_BUTT, wxEmptyString,
BITMAP(add_polygon_xpm), BITMAP( add_polygon_xpm ),
_( "Add lines and polygons"), wxITEM_CHECK ); _( "Add lines and polygons" ), wxITEM_CHECK );
m_VToolBar->AddSeparator(); m_VToolBar->AddSeparator();
m_VToolBar->AddTool(ID_LIBEDIT_ANCHOR_ITEM_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_LIBEDIT_ANCHOR_ITEM_BUTT, wxEmptyString,
BITMAP(anchor_xpm), BITMAP( anchor_xpm ),
_("Move part anchor"), wxITEM_CHECK ); _( "Move part anchor" ), wxITEM_CHECK );
m_VToolBar->AddSeparator(); m_VToolBar->AddSeparator();
m_VToolBar->AddTool(ID_LIBEDIT_IMPORT_BODY_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_LIBEDIT_IMPORT_BODY_BUTT, wxEmptyString,
BITMAP(import_xpm), BITMAP( import_xpm ),
_("Import existing drawings"), wxITEM_CHECK ); _( "Import existing drawings" ), wxITEM_CHECK );
m_VToolBar->AddTool(ID_LIBEDIT_EXPORT_BODY_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_LIBEDIT_EXPORT_BODY_BUTT, wxEmptyString,
BITMAP(export_xpm), BITMAP( export_xpm ),
_("Export current drawing"), wxITEM_CHECK ); _( "Export current drawing" ), wxITEM_CHECK );
m_VToolBar->AddSeparator(); m_VToolBar->AddSeparator();
m_VToolBar->AddTool(ID_LIBEDIT_DELETE_ITEM_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_LIBEDIT_DELETE_ITEM_BUTT, wxEmptyString,
BITMAP(delete_body_xpm), BITMAP( delete_body_xpm ),
_("Delete items"), wxITEM_CHECK ); _( "Delete items" ), wxITEM_CHECK );
m_VToolBar->Realize(); m_VToolBar->Realize();
} }
SetToolbars(); SetToolbars();
} }
/*************************************************/ /*************************************************/
void WinEDA_LibeditFrame::ReCreateHToolbar(void) void WinEDA_LibeditFrame::ReCreateHToolbar( void )
/*************************************************/ /*************************************************/
{
int ii;
// Create the toolbar if not exists
if ( m_HToolBar == NULL )
{
m_HToolBar = new WinEDA_Toolbar(TOOLBAR_MAIN, this, ID_H_TOOLBAR, TRUE);
SetToolBar(m_HToolBar);
// Set up toolbar
m_HToolBar->AddTool(ID_LIBEDIT_SAVE_CURRENT_LIB, wxEmptyString, BITMAP(save_library_xpm),
_("Save current loaded library on disk (file update)") );
m_HToolBar->AddTool(ID_LIBEDIT_SELECT_CURRENT_LIB, wxEmptyString, BITMAP(library_xpm),
_("Select working library") );
m_HToolBar->AddTool(ID_LIBEDIT_DELETE_PART, wxEmptyString, BITMAP(delete_xpm),
_("Delete part in current library") );
m_HToolBar->AddSeparator();
m_HToolBar->AddTool(ID_LIBEDIT_NEW_PART, wxEmptyString, BITMAP(new_component_xpm),
_("New part") );
m_HToolBar->AddTool(ID_LIBEDIT_SELECT_PART, BITMAP(add_component_xpm),
_("Select part to edit") );
m_HToolBar->AddTool(ID_LIBEDIT_SAVE_CURRENT_PART, wxEmptyString,
BITMAP(save_part_in_mem_xpm),
_("Save current part into current loaded library (in memory)") );
m_HToolBar->AddTool(ID_LIBEDIT_IMPORT_PART, wxEmptyString, BITMAP(import_xpm),
_("import part"));
m_HToolBar->AddTool(ID_LIBEDIT_EXPORT_PART, wxEmptyString, BITMAP(export_xpm),
_("export part"));
m_HToolBar->AddTool(ID_LIBEDIT_CREATE_NEW_LIB_AND_SAVE_CURRENT_PART,
wxEmptyString, BITMAP(new_library_xpm),
_("Create a new library an save current part into"));
m_HToolBar->AddSeparator();
m_HToolBar->AddTool(ID_LIBEDIT_UNDO, wxEmptyString, BITMAP(undo_xpm),
_("Undo last edition"));
m_HToolBar->AddTool(ID_LIBEDIT_REDO, wxEmptyString, BITMAP(redo_xpm),
_("Redo the last undo command"));
m_HToolBar->AddSeparator();
m_HToolBar->AddTool(ID_LIBEDIT_GET_FRAME_EDIT_PART, BITMAP(part_properties_xpm),
wxNullBitmap,
FALSE,
-1, -1, (wxObject *) NULL,
_("Edit Part Properties"));
m_HToolBar->AddSeparator();
m_HToolBar->AddTool(ID_LIBEDIT_CHECK_PART, BITMAP(erc_xpm),
wxNullBitmap,
FALSE,
-1, -1, (wxObject *) NULL,
_("Test duplicate pins"));
m_HToolBar->AddSeparator();
m_HToolBar->AddTool(ID_ZOOM_PLUS_BUTT, BITMAP(zoom_in_xpm),
wxNullBitmap,
FALSE,
-1, -1, (wxObject *) NULL,
_("zoom + (F1)"));
m_HToolBar->AddTool(ID_ZOOM_MOINS_BUTT, wxEmptyString,
BITMAP(zoom_out_xpm),
_("zoom - (F2)"));
m_HToolBar->AddTool(ID_ZOOM_REDRAW_BUTT, wxEmptyString,
BITMAP(repaint_xpm),
_("redraw (F3)"));
m_HToolBar->AddTool(ID_ZOOM_PAGE_BUTT, wxEmptyString,
BITMAP(zoom_optimal_xpm),
_("auto zoom") );
m_HToolBar->AddSeparator();
m_HToolBar->AddTool(ID_DE_MORGAN_NORMAL_BUTT, wxEmptyString,
BITMAP(morgan1_xpm),
_("show as \"De Morgan\" normal part"), wxITEM_CHECK);
m_HToolBar->ToggleTool(ID_DE_MORGAN_NORMAL_BUTT,
(CurrentConvert <= 1) ? TRUE : FALSE);
m_HToolBar->AddTool(ID_DE_MORGAN_CONVERT_BUTT, wxEmptyString,
BITMAP(morgan2_xpm),
_("show as \"De Morgan\" convert part"), wxITEM_CHECK);
m_HToolBar->ToggleTool(ID_DE_MORGAN_CONVERT_BUTT,
(CurrentConvert >= 2) ? TRUE : FALSE );
m_HToolBar->AddSeparator();
m_HToolBar->AddTool(ID_LIBEDIT_VIEW_DOC, BITMAP(datasheet_xpm),
wxNullBitmap,
FALSE,
-1, -1, (wxObject *) NULL,
_("Documents"));
m_HToolBar->EnableTool(ID_LIBEDIT_VIEW_DOC, FALSE);
m_HToolBar->AddSeparator();
m_SelpartBox = new WinEDAChoiceBox(m_HToolBar, ID_LIBEDIT_SELECT_PART_NUMBER,
wxDefaultPosition, wxSize(LISTBOX_WIDTH, -1));
m_HToolBar->AddControl(m_SelpartBox);
m_SelAliasBox = new WinEDAChoiceBox(m_HToolBar, ID_LIBEDIT_SELECT_ALIAS,
wxDefaultPosition, wxSize(LISTBOX_WIDTH, -1));
m_HToolBar->AddControl(m_SelAliasBox);
m_HToolBar->AddSeparator();
m_HToolBar->AddTool(ID_LIBEDIT_EDIT_PIN_BY_PIN, BITMAP(pin2pin_xpm),
wxNullBitmap,
TRUE,
-1, -1, (wxObject *) NULL,
_("Edit pins part per part (Carefully use!)"));
m_HToolBar->ToggleTool(ID_LIBEDIT_EDIT_PIN_BY_PIN, g_EditPinByPinIsOn);
// after adding the buttons to the toolbar, must call Realize() to reflect
// the changes
m_HToolBar->Realize();
}
else /* Toolbar deja cr, mise a jour des affichages */
{
m_SelAliasBox->Clear();
m_SelpartBox->Clear();
}
/* Update the part selection box */
int jj = 1;
if( CurrentLibEntry ) jj = CurrentLibEntry->m_UnitCount;
if ( jj > 1 )
for ( ii = 0; ii < jj ; ii ++ )
{
wxString msg;
msg.Printf(_("Part %c"), 'A' + ii);
m_SelpartBox->Append(msg);
}
else m_SelpartBox->Append( wxEmptyString );
m_SelpartBox->SetSelection( ( CurrentUnit > 0 ) ? CurrentUnit-1 : 0);
if( CurrentLibEntry)
{
if ( CurrentLibEntry->m_UnitCount > 1 ) m_SelpartBox->Enable(TRUE);
else m_SelpartBox->Enable(FALSE);
m_SelAliasBox->Append(CurrentLibEntry->m_Name.m_Text);
m_SelAliasBox->SetSelection( 0 );
int count = CurrentLibEntry->m_AliasList.GetCount();
if ( count > 0 ) /* Update the part selection box */
{
m_SelAliasBox->Enable(TRUE);
for ( ii = 0, jj = 1; ii < count; ii += ALIAS_NEXT, jj++ )
{
m_SelAliasBox->Append(CurrentLibEntry->m_AliasList[ii]);
if ( CurrentAliasName == CurrentLibEntry->m_AliasList[ii])
m_SelAliasBox->SetSelection( jj );
}
}
else m_SelAliasBox->Enable(FALSE);
}
else
{
m_SelAliasBox->Enable(FALSE);
m_SelpartBox->Enable(FALSE);
}
// Doit etre plac apres Realize():
SetToolbars();
/* Create or update the main Horizontal Toolbar for the schematic library editor
*/
{
int ii;
wxString msg;
// Create the toolbar if not exists
if( m_HToolBar == NULL )
{
m_HToolBar = new WinEDA_Toolbar( TOOLBAR_MAIN, this, ID_H_TOOLBAR, TRUE );
SetToolBar( m_HToolBar );
// Set up toolbar
m_HToolBar->AddTool( ID_LIBEDIT_SAVE_CURRENT_LIB, wxEmptyString, BITMAP( save_library_xpm ),
_( "Save current loaded library on disk (file update)" ) );
m_HToolBar->AddTool( ID_LIBEDIT_SELECT_CURRENT_LIB, wxEmptyString, BITMAP( library_xpm ),
_( "Select working library" ) );
m_HToolBar->AddTool( ID_LIBEDIT_DELETE_PART, wxEmptyString, BITMAP( delete_xpm ),
_( "Delete part in current library" ) );
m_HToolBar->AddSeparator();
m_HToolBar->AddTool( ID_LIBEDIT_NEW_PART, wxEmptyString, BITMAP( new_component_xpm ),
_( "New part" ) );
m_HToolBar->AddTool( ID_LIBEDIT_SELECT_PART, BITMAP( add_component_xpm ),
_( "Select part to edit" ) );
m_HToolBar->AddTool( ID_LIBEDIT_SAVE_CURRENT_PART, wxEmptyString,
BITMAP( save_part_in_mem_xpm ),
_( "Save current part into current loaded library (in memory)" ) );
m_HToolBar->AddTool( ID_LIBEDIT_IMPORT_PART, wxEmptyString, BITMAP( import_xpm ),
_( "import part" ) );
m_HToolBar->AddTool( ID_LIBEDIT_EXPORT_PART, wxEmptyString, BITMAP( export_xpm ),
_( "export part" ) );
m_HToolBar->AddTool( ID_LIBEDIT_CREATE_NEW_LIB_AND_SAVE_CURRENT_PART,
wxEmptyString, BITMAP( new_library_xpm ),
_( "Create a new library an save current part into" ) );
m_HToolBar->AddSeparator();
m_HToolBar->AddTool( ID_LIBEDIT_UNDO, wxEmptyString, BITMAP( undo_xpm ),
_( "Undo last edition" ) );
m_HToolBar->AddTool( ID_LIBEDIT_REDO, wxEmptyString, BITMAP( redo_xpm ),
_( "Redo the last undo command" ) );
m_HToolBar->AddSeparator();
m_HToolBar->AddTool( ID_LIBEDIT_GET_FRAME_EDIT_PART, BITMAP( part_properties_xpm ),
wxNullBitmap,
FALSE,
-1, -1, (wxObject*) NULL,
_( "Edit Part Properties" ) );
m_HToolBar->AddSeparator();
m_HToolBar->AddTool( ID_LIBEDIT_CHECK_PART, BITMAP( erc_xpm ),
wxNullBitmap,
FALSE,
-1, -1, (wxObject*) NULL,
_( "Test duplicate pins" ) );
m_HToolBar->AddSeparator();
msg = AddHotkeyName( _( "zoom +" ), s_LibEdit_Hotkey_List, HK_ZOOM_IN );
m_HToolBar->AddTool( ID_ZOOM_PLUS_BUTT, wxEmptyString, BITMAP( zoom_in_xpm ),
msg );
msg = AddHotkeyName( _( "zoom -" ), s_LibEdit_Hotkey_List, HK_ZOOM_OUT );
m_HToolBar->AddTool( ID_ZOOM_MOINS_BUTT, wxEmptyString, BITMAP( zoom_out_xpm ),
msg );
msg = AddHotkeyName( _( "redraw" ), s_LibEdit_Hotkey_List, HK_ZOOM_REDRAW );
m_HToolBar->AddTool( ID_ZOOM_REDRAW_BUTT, wxEmptyString, BITMAP( repaint_xpm ),
msg );
m_HToolBar->AddTool( ID_ZOOM_PAGE_BUTT, wxEmptyString,
BITMAP( zoom_optimal_xpm ),
_( "auto zoom" ) );
m_HToolBar->AddSeparator();
m_HToolBar->AddTool( ID_DE_MORGAN_NORMAL_BUTT, wxEmptyString,
BITMAP( morgan1_xpm ),
_( "show as \"De Morgan\" normal part" ), wxITEM_CHECK );
m_HToolBar->ToggleTool( ID_DE_MORGAN_NORMAL_BUTT,
(CurrentConvert <= 1) ? TRUE : FALSE );
m_HToolBar->AddTool( ID_DE_MORGAN_CONVERT_BUTT, wxEmptyString,
BITMAP( morgan2_xpm ),
_( "show as \"De Morgan\" convert part" ), wxITEM_CHECK );
m_HToolBar->ToggleTool( ID_DE_MORGAN_CONVERT_BUTT,
(CurrentConvert >= 2) ? TRUE : FALSE );
m_HToolBar->AddSeparator();
m_HToolBar->AddTool( ID_LIBEDIT_VIEW_DOC, BITMAP( datasheet_xpm ),
wxNullBitmap,
FALSE,
-1, -1, (wxObject*) NULL,
_( "Documents" ) );
m_HToolBar->EnableTool( ID_LIBEDIT_VIEW_DOC, FALSE );
m_HToolBar->AddSeparator();
m_SelpartBox = new WinEDAChoiceBox( m_HToolBar, ID_LIBEDIT_SELECT_PART_NUMBER,
wxDefaultPosition, wxSize( LISTBOX_WIDTH, -1 ) );
m_HToolBar->AddControl( m_SelpartBox );
m_SelAliasBox = new WinEDAChoiceBox( m_HToolBar, ID_LIBEDIT_SELECT_ALIAS,
wxDefaultPosition, wxSize( LISTBOX_WIDTH, -1 ) );
m_HToolBar->AddControl( m_SelAliasBox );
m_HToolBar->AddSeparator();
m_HToolBar->AddTool( ID_LIBEDIT_EDIT_PIN_BY_PIN, BITMAP( pin2pin_xpm ),
wxNullBitmap,
TRUE,
-1, -1, (wxObject*) NULL,
_( "Edit pins part per part (Carefully use!)" ) );
m_HToolBar->ToggleTool( ID_LIBEDIT_EDIT_PIN_BY_PIN, g_EditPinByPinIsOn );
// after adding the buttons to the toolbar, must call Realize() to reflect the changes
m_HToolBar->Realize();
}
else /* Toolbar already created, it only must be updated */
{
m_SelAliasBox->Clear();
m_SelpartBox->Clear();
}
/* Update the part selection box */
int jj = 1;
if( CurrentLibEntry )
jj = CurrentLibEntry->m_UnitCount;
if( jj > 1 )
for( ii = 0; ii < jj; ii++ )
{
wxString msg;
msg.Printf( _( "Part %c" ), 'A' + ii );
m_SelpartBox->Append( msg );
}
else
m_SelpartBox->Append( wxEmptyString );
m_SelpartBox->SetSelection( ( CurrentUnit > 0 ) ? CurrentUnit - 1 : 0 );
if( CurrentLibEntry )
{
if( CurrentLibEntry->m_UnitCount > 1 )
m_SelpartBox->Enable( TRUE );
else
m_SelpartBox->Enable( FALSE );
m_SelAliasBox->Append( CurrentLibEntry->m_Name.m_Text );
m_SelAliasBox->SetSelection( 0 );
int count = CurrentLibEntry->m_AliasList.GetCount();
if( count > 0 ) /* Update the part selection box */
{
m_SelAliasBox->Enable( TRUE );
for( ii = 0, jj = 1; ii < count; ii += ALIAS_NEXT, jj++ )
{
m_SelAliasBox->Append( CurrentLibEntry->m_AliasList[ii] );
if( CurrentAliasName == CurrentLibEntry->m_AliasList[ii] )
m_SelAliasBox->SetSelection( jj );
}
}
else
m_SelAliasBox->Enable( FALSE );
}
else
{
m_SelAliasBox->Enable( FALSE );
m_SelpartBox->Enable( FALSE );
}
// Must be called AFTER Realize():
SetToolbars();
} }
/*****************************************************/ /*****************************************************/
/* toolsch.cpp; vreate toolbars for schematic frame */ /* toolsch.cpp; vreate toolbars for schematic frame */
/*****************************************************/ /*****************************************************/
#include "fctsys.h" #include "fctsys.h"
#include "gr_basic.h" #include "gr_basic.h"
...@@ -11,10 +11,11 @@ ...@@ -11,10 +11,11 @@
#include "general.h" #include "general.h"
#include "protos.h" #include "protos.h"
#include "hotkeys.h"
#define BITMAP wxBitmap #define BITMAP wxBitmap
#include "bitmaps.h" /* general bitmaps */ #include "bitmaps.h" /* general bitmaps */
/* Specific bitmaps */ /* Specific bitmaps */
#include "cvpcb.xpm" #include "cvpcb.xpm"
...@@ -36,292 +37,300 @@ ...@@ -36,292 +37,300 @@
/**************************************************************/ /**************************************************************/
void WinEDA_SchematicFrame::ReCreateHToolbar(void) void WinEDA_SchematicFrame::ReCreateHToolbar( void )
/**************************************************************/ /**************************************************************/
/* Create Horizontal (main) Toolbar
*/ /* Create the main Horizontal Toolbar for the schematic editor
*/
{ {
if ( m_HToolBar != NULL ) return; if( m_HToolBar != NULL )
return;
m_HToolBar = new WinEDA_Toolbar(TOOLBAR_MAIN, this, ID_H_TOOLBAR, TRUE); wxString msg;
SetToolBar(m_HToolBar); m_HToolBar = new WinEDA_Toolbar( TOOLBAR_MAIN, this, ID_H_TOOLBAR, TRUE );
SetToolBar( m_HToolBar );
// Set up toolbar // Set up toolbar
m_HToolBar->AddTool(ID_NEW_PROJECT, wxEmptyString, BITMAP(new_xpm), m_HToolBar->AddTool( ID_NEW_PROJECT, wxEmptyString, BITMAP( new_xpm ),
_("New schematic project")); _( "New schematic project" ) );
m_HToolBar->AddTool(ID_LOAD_PROJECT, wxEmptyString, BITMAP(open_xpm), m_HToolBar->AddTool( ID_LOAD_PROJECT, wxEmptyString, BITMAP( open_xpm ),
_("Open schematic project")); _( "Open schematic project" ) );
m_HToolBar->AddTool(ID_SAVE_PROJECT, wxEmptyString, BITMAP(save_project_xpm), m_HToolBar->AddTool( ID_SAVE_PROJECT, wxEmptyString, BITMAP( save_project_xpm ),
_("Save schematic project")); _( "Save schematic project" ) );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
m_HToolBar->AddTool(ID_SHEET_SET, wxEmptyString, BITMAP(sheetset_xpm), m_HToolBar->AddTool( ID_SHEET_SET, wxEmptyString, BITMAP( sheetset_xpm ),
_("page settings (size, texts)") ); _( "page settings (size, texts)" ) );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
m_HToolBar->AddTool(ID_TO_LIBRARY, wxEmptyString, BITMAP(libedit_xpm), m_HToolBar->AddTool( ID_TO_LIBRARY, wxEmptyString, BITMAP( libedit_xpm ),
_("go to library editor") ); _( "go to library editor" ) );
m_HToolBar->AddTool(ID_TO_LIBVIEW, wxEmptyString, BITMAP(library_browse_xpm), m_HToolBar->AddTool( ID_TO_LIBVIEW, wxEmptyString, BITMAP( library_browse_xpm ),
_("go to library browse") ); _( "go to library browse" ) );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
m_HToolBar->AddTool(ID_HIERARCHY, wxEmptyString, BITMAP(hierarchy_nav_xpm), m_HToolBar->AddTool( ID_HIERARCHY, wxEmptyString, BITMAP( hierarchy_nav_xpm ),
_("Schematic Hierarchy Navigator") ); _( "Schematic Hierarchy Navigator" ) );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
m_HToolBar->AddTool(wxID_CUT, wxEmptyString, BITMAP(cut_button), m_HToolBar->AddTool( wxID_CUT, wxEmptyString, BITMAP( cut_button ),
_("Cut selected item") ); _( "Cut selected item" ) );
m_HToolBar->AddTool(wxID_COPY, wxEmptyString, BITMAP(copy_button), m_HToolBar->AddTool( wxID_COPY, wxEmptyString, BITMAP( copy_button ),
_("Copy selected item") ); _( "Copy selected item" ) );
m_HToolBar->AddTool(wxID_PASTE, wxEmptyString, BITMAP(paste_xpm), m_HToolBar->AddTool( wxID_PASTE, wxEmptyString, BITMAP( paste_xpm ),
_("Paste") ); _( "Paste" ) );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
m_HToolBar->AddTool(ID_SCHEMATIC_UNDO, wxEmptyString, BITMAP(undo_xpm), m_HToolBar->AddTool( ID_SCHEMATIC_UNDO, wxEmptyString, BITMAP( undo_xpm ),
_("Undo last edition")); _( "Undo last edition" ) );
m_HToolBar->AddTool(ID_SCHEMATIC_REDO, wxEmptyString, BITMAP(redo_xpm), m_HToolBar->AddTool( ID_SCHEMATIC_REDO, wxEmptyString, BITMAP( redo_xpm ),
_("Redo the last undo command")); _( "Redo the last undo command" ) );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
m_HToolBar->AddTool(ID_GEN_PRINT, wxEmptyString, BITMAP(print_button), m_HToolBar->AddTool( ID_GEN_PRINT, wxEmptyString, BITMAP( print_button ),
_("Print schematic") ); _( "Print schematic" ) );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
m_HToolBar->AddTool(ID_TO_CVPCB, wxEmptyString, BITMAP(cvpcb_xpm), m_HToolBar->AddTool( ID_TO_CVPCB, wxEmptyString, BITMAP( cvpcb_xpm ),
_("Run Cvpcb") ); _( "Run Cvpcb" ) );
m_HToolBar->AddTool(ID_TO_PCB, wxEmptyString, BITMAP(pcbnew_xpm), m_HToolBar->AddTool( ID_TO_PCB, wxEmptyString, BITMAP( pcbnew_xpm ),
_("Run Pcbnew") ); _( "Run Pcbnew" ) );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
m_HToolBar->AddTool(ID_ZOOM_PLUS_BUTT, wxEmptyString, BITMAP(zoom_in_xpm), msg = AddHotkeyName( _( "zoom +" ), s_Schematic_Hotkey_List, HK_ZOOM_IN );
_("zoom + (F1)")); m_HToolBar->AddTool( ID_ZOOM_PLUS_BUTT, wxEmptyString, BITMAP( zoom_in_xpm ),
msg );
m_HToolBar->AddTool(ID_ZOOM_MOINS_BUTT, wxEmptyString, BITMAP(zoom_out_xpm), msg = AddHotkeyName( _( "zoom -" ), s_Schematic_Hotkey_List, HK_ZOOM_OUT );
_("zoom - (F2)")); m_HToolBar->AddTool( ID_ZOOM_MOINS_BUTT, wxEmptyString, BITMAP( zoom_out_xpm ),
msg );
m_HToolBar->AddTool(ID_ZOOM_REDRAW_BUTT, wxEmptyString, BITMAP(repaint_xpm), msg = AddHotkeyName( _( "redraw" ), s_Schematic_Hotkey_List, HK_ZOOM_REDRAW );
_("redraw (F3)") ); m_HToolBar->AddTool( ID_ZOOM_REDRAW_BUTT, wxEmptyString, BITMAP( repaint_xpm ),
msg );
m_HToolBar->AddTool(ID_ZOOM_PAGE_BUTT, wxEmptyString, BITMAP(zoom_optimal_xpm), m_HToolBar->AddTool( ID_ZOOM_PAGE_BUTT, wxEmptyString, BITMAP( zoom_optimal_xpm ),
_("auto zoom") ); _( "auto zoom" ) );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
m_HToolBar->AddTool(ID_FIND_ITEMS, wxEmptyString, BITMAP(find_xpm), m_HToolBar->AddTool( ID_FIND_ITEMS, wxEmptyString, BITMAP( find_xpm ),
_("Find components and texts") ); _( "Find components and texts" ) );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
m_HToolBar->AddTool(ID_GET_NETLIST, wxEmptyString, BITMAP(netlist_xpm), m_HToolBar->AddTool( ID_GET_NETLIST, wxEmptyString, BITMAP( netlist_xpm ),
_("Netlist generation") ); _( "Netlist generation" ) );
m_HToolBar->AddTool(ID_GET_ANNOTATE, wxEmptyString, BITMAP(annotate_xpm), m_HToolBar->AddTool( ID_GET_ANNOTATE, wxEmptyString, BITMAP( annotate_xpm ),
_("Schematic Annotation") ); _( "Schematic Annotation" ) );
m_HToolBar->AddTool(ID_GET_ERC, wxEmptyString, BITMAP(erc_xpm), m_HToolBar->AddTool( ID_GET_ERC, wxEmptyString, BITMAP( erc_xpm ),
_("Schematic Electric Rules Check") ); _( "Schematic Electric Rules Check" ) );
m_HToolBar->AddTool(ID_GET_TOOLS, wxEmptyString, BITMAP(tools_xpm), m_HToolBar->AddTool( ID_GET_TOOLS, wxEmptyString, BITMAP( tools_xpm ),
_("Bill of material and/or Crossreferences") ); _( "Bill of material and/or Crossreferences" ) );
// after adding the buttons to the toolbar, must call Realize() to reflect // after adding the tools to the toolbar, must call Realize() to reflect the changes
// the changes m_HToolBar->Realize();
m_HToolBar->Realize(); SetToolbars();
SetToolbars();
} }
/*************************************************/ /*************************************************/
void WinEDA_SchematicFrame::ReCreateVToolbar(void) void WinEDA_SchematicFrame::ReCreateVToolbar( void )
/*************************************************/ /*************************************************/
/* Create Vertical Right Toolbar /* Create Vertical Right Toolbar
*/ */
{ {
if( m_VToolBar ) return; if( m_VToolBar )
m_VToolBar = new WinEDA_Toolbar(TOOLBAR_TOOL, this, ID_V_TOOLBAR, FALSE); return;
m_VToolBar = new WinEDA_Toolbar( TOOLBAR_TOOL, this, ID_V_TOOLBAR, FALSE );
// Set up toolbar
m_VToolBar->AddTool(ID_NO_SELECT_BUTT, wxEmptyString, // Set up toolbar
BITMAP(cursor_xpm), wxEmptyString, wxITEM_CHECK ); m_VToolBar->AddTool( ID_NO_SELECT_BUTT, wxEmptyString,
m_VToolBar->ToggleTool(ID_NO_SELECT_BUTT, TRUE); BITMAP( cursor_xpm ), wxEmptyString, wxITEM_CHECK );
m_VToolBar->ToggleTool( ID_NO_SELECT_BUTT, TRUE );
m_VToolBar->AddTool(ID_HIERARCHY_PUSH_POP_BUTT, wxEmptyString,
BITMAP(hierarchy_cursor_xpm), m_VToolBar->AddTool( ID_HIERARCHY_PUSH_POP_BUTT, wxEmptyString,
_("Hierarchy Push/Pop"), wxITEM_CHECK ); BITMAP( hierarchy_cursor_xpm ),
_( "Hierarchy Push/Pop" ), wxITEM_CHECK );
m_VToolBar->AddSeparator();
m_VToolBar->AddTool(ID_COMPONENT_BUTT, wxEmptyString, m_VToolBar->AddSeparator();
BITMAP(add_component_xpm), m_VToolBar->AddTool( ID_COMPONENT_BUTT, wxEmptyString,
_("Add components"), wxITEM_CHECK ); BITMAP( add_component_xpm ),
_( "Add components" ), wxITEM_CHECK );
m_VToolBar->AddTool(ID_PLACE_POWER_BUTT, wxEmptyString,
BITMAP(add_power_xpm), m_VToolBar->AddTool( ID_PLACE_POWER_BUTT, wxEmptyString,
_("Add powers"), wxITEM_CHECK ); BITMAP( add_power_xpm ),
_( "Add powers" ), wxITEM_CHECK );
m_VToolBar->AddSeparator();
m_VToolBar->AddTool(ID_WIRE_BUTT, wxEmptyString, m_VToolBar->AddSeparator();
BITMAP(add_line_xpm), m_VToolBar->AddTool( ID_WIRE_BUTT, wxEmptyString,
_("Add wires"), wxITEM_CHECK ); BITMAP( add_line_xpm ),
_( "Add wires" ), wxITEM_CHECK );
m_VToolBar->AddTool(ID_BUS_BUTT, wxEmptyString,
BITMAP(add_bus_xpm), m_VToolBar->AddTool( ID_BUS_BUTT, wxEmptyString,
_("Add bus"), wxITEM_CHECK ); BITMAP( add_bus_xpm ),
_( "Add bus" ), wxITEM_CHECK );
m_VToolBar->AddTool(ID_WIRETOBUS_ENTRY_BUTT, wxEmptyString,
BITMAP(add_line2bus_xpm), m_VToolBar->AddTool( ID_WIRETOBUS_ENTRY_BUTT, wxEmptyString,
_("Add wire to bus entry"), wxITEM_CHECK ); BITMAP( add_line2bus_xpm ),
_( "Add wire to bus entry" ), wxITEM_CHECK );
m_VToolBar->AddTool(ID_BUSTOBUS_ENTRY_BUTT, wxEmptyString,
BITMAP(add_bus2bus_xpm), m_VToolBar->AddTool( ID_BUSTOBUS_ENTRY_BUTT, wxEmptyString,
_("Add bus to bus entry"), wxITEM_CHECK ); BITMAP( add_bus2bus_xpm ),
_( "Add bus to bus entry" ), wxITEM_CHECK );
m_VToolBar->AddSeparator();
m_VToolBar->AddTool(ID_NOCONN_BUTT, wxEmptyString, m_VToolBar->AddSeparator();
BITMAP(noconn_button), m_VToolBar->AddTool( ID_NOCONN_BUTT, wxEmptyString,
_("Add no connect flag"), wxITEM_CHECK ); BITMAP( noconn_button ),
_( "Add no connect flag" ), wxITEM_CHECK );
m_VToolBar->AddTool(ID_LABEL_BUTT, wxEmptyString,
BITMAP(add_line_label_xpm), m_VToolBar->AddTool( ID_LABEL_BUTT, wxEmptyString,
_("Add wire or bus label"), wxITEM_CHECK ); BITMAP( add_line_label_xpm ),
_( "Add wire or bus label" ), wxITEM_CHECK );
m_VToolBar->AddTool(ID_GLABEL_BUTT, wxEmptyString,
BITMAP(add_glabel_xpm), m_VToolBar->AddTool( ID_GLABEL_BUTT, wxEmptyString,
_("Add global label"), wxITEM_CHECK ); BITMAP( add_glabel_xpm ),
_( "Add global label" ), wxITEM_CHECK );
m_VToolBar->AddTool(ID_JUNCTION_BUTT, wxEmptyString,
BITMAP(add_junction_xpm), m_VToolBar->AddTool( ID_JUNCTION_BUTT, wxEmptyString,
_("Add junction"), wxITEM_CHECK ); BITMAP( add_junction_xpm ),
_( "Add junction" ), wxITEM_CHECK );
m_VToolBar->AddSeparator();
m_VToolBar->AddTool(ID_SHEET_SYMBOL_BUTT, wxEmptyString, m_VToolBar->AddSeparator();
BITMAP(add_hierar_symbol_xpm), m_VToolBar->AddTool( ID_SHEET_SYMBOL_BUTT, wxEmptyString,
_("Add hierarchical symbol (sheet)") , wxITEM_CHECK); BITMAP( add_hierar_symbol_xpm ),
_( "Add hierarchical symbol (sheet)" ), wxITEM_CHECK );
m_VToolBar->AddTool(ID_IMPORT_GLABEL_BUTT, wxEmptyString,
BITMAP(import_glabel_xpm), m_VToolBar->AddTool( ID_IMPORT_GLABEL_BUTT, wxEmptyString,
_("import glabel from sheet & create pinsheet"), wxITEM_CHECK ); BITMAP( import_glabel_xpm ),
_( "import glabel from sheet & create pinsheet" ), wxITEM_CHECK );
m_VToolBar->AddTool(ID_SHEET_LABEL_BUTT, wxEmptyString,
BITMAP(add_hierar_pin_xpm), m_VToolBar->AddTool( ID_SHEET_LABEL_BUTT, wxEmptyString,
_("Add hierachical pin to sheet"), wxITEM_CHECK ); BITMAP( add_hierar_pin_xpm ),
_( "Add hierachical pin to sheet" ), wxITEM_CHECK );
m_VToolBar->AddSeparator();
m_VToolBar->AddTool(ID_LINE_COMMENT_BUTT, wxEmptyString, m_VToolBar->AddSeparator();
BITMAP(add_dashed_line_xpm), m_VToolBar->AddTool( ID_LINE_COMMENT_BUTT, wxEmptyString,
_("Add graphic line or polygon") , wxITEM_CHECK); BITMAP( add_dashed_line_xpm ),
_( "Add graphic line or polygon" ), wxITEM_CHECK );
m_VToolBar->AddTool(ID_TEXT_COMMENT_BUTT, wxEmptyString,
BITMAP(add_text_xpm), m_VToolBar->AddTool( ID_TEXT_COMMENT_BUTT, wxEmptyString,
_("Add graphic text (comment)"), wxITEM_CHECK ); BITMAP( add_text_xpm ),
_( "Add graphic text (comment)" ), wxITEM_CHECK );
m_VToolBar->AddSeparator();
m_VToolBar->AddTool(ID_SCHEMATIC_DELETE_ITEM_BUTT, wxEmptyString, m_VToolBar->AddSeparator();
BITMAP(delete_body_xpm), m_VToolBar->AddTool( ID_SCHEMATIC_DELETE_ITEM_BUTT, wxEmptyString,
_("Delete items"), wxITEM_CHECK ); BITMAP( delete_body_xpm ),
_( "Delete items" ), wxITEM_CHECK );
m_VToolBar->Realize();
SetToolbars(); m_VToolBar->Realize();
SetToolbars();
} }
/****************************************************************/ /****************************************************************/
void WinEDA_SchematicFrame::ReCreateOptToolbar(void) void WinEDA_SchematicFrame::ReCreateOptToolbar( void )
/****************************************************************/ /****************************************************************/
/* Create Vertical Left Toolbar (Option Toolbar) /* Create Vertical Left Toolbar (Option Toolbar)
*/ */
{ {
if( m_OptionsToolBar )
return;
if ( m_OptionsToolBar ) return; // creation du tool bar options
m_OptionsToolBar = new WinEDA_Toolbar( TOOLBAR_OPTION, this, ID_OPT_TOOLBAR, FALSE );
// creation du tool bar options m_OptionsToolBar->AddTool( ID_TB_OPTIONS_SHOW_GRID, wxEmptyString,
m_OptionsToolBar = new WinEDA_Toolbar(TOOLBAR_OPTION, this, ID_OPT_TOOLBAR, FALSE); BITMAP( grid_xpm ),
_( "Display Grid OFF" ), wxITEM_CHECK );
m_OptionsToolBar->AddTool(ID_TB_OPTIONS_SHOW_GRID, wxEmptyString, m_OptionsToolBar->AddTool( ID_TB_OPTIONS_SELECT_UNIT_INCH, wxEmptyString,
BITMAP(grid_xpm), BITMAP( unit_inch_xpm ),
_("Display Grid OFF"), wxITEM_CHECK ); _( "Units = Inch" ), wxITEM_CHECK );
m_OptionsToolBar->AddTool(ID_TB_OPTIONS_SELECT_UNIT_INCH, wxEmptyString, m_OptionsToolBar->AddTool( ID_TB_OPTIONS_SELECT_UNIT_MM, wxEmptyString,
BITMAP(unit_inch_xpm), BITMAP( unit_mm_xpm ),
_("Units = Inch"), wxITEM_CHECK ); _( "Units = mm" ), wxITEM_CHECK );
m_OptionsToolBar->AddTool(ID_TB_OPTIONS_SELECT_UNIT_MM, wxEmptyString,
BITMAP(unit_mm_xpm),
_("Units = mm"), wxITEM_CHECK );
m_OptionsToolBar->AddTool(ID_TB_OPTIONS_SELECT_CURSOR, wxEmptyString, m_OptionsToolBar->AddTool( ID_TB_OPTIONS_SELECT_CURSOR, wxEmptyString,
BITMAP(cursor_shape_xpm), BITMAP( cursor_shape_xpm ),
_("Change Cursor Shape"), wxITEM_CHECK ); _( "Change Cursor Shape" ), wxITEM_CHECK );
m_OptionsToolBar->AddSeparator(); m_OptionsToolBar->AddSeparator();
m_OptionsToolBar->AddTool(ID_TB_OPTIONS_HIDDEN_PINS, wxEmptyString, m_OptionsToolBar->AddTool( ID_TB_OPTIONS_HIDDEN_PINS, wxEmptyString,
BITMAP(hidden_pin_xpm), BITMAP( hidden_pin_xpm ),
_("Show Hidden Pins"), wxITEM_CHECK ); _( "Show Hidden Pins" ), wxITEM_CHECK );
m_OptionsToolBar->AddSeparator(); m_OptionsToolBar->AddSeparator();
m_OptionsToolBar->AddTool(ID_TB_OPTIONS_BUS_WIRES_ORIENT, wxEmptyString, m_OptionsToolBar->AddTool( ID_TB_OPTIONS_BUS_WIRES_ORIENT, wxEmptyString,
BITMAP(lines90_xpm), BITMAP( lines90_xpm ),
_("HV orientation for Wires and Bus"), wxITEM_CHECK ); _( "HV orientation for Wires and Bus" ), wxITEM_CHECK );
m_OptionsToolBar->Realize(); m_OptionsToolBar->Realize();
SetToolbars(); SetToolbars();
} }
/*******************************************************************************************/ /*******************************************************************************************/
void WinEDA_SchematicFrame::OnSelectOptionToolbar(wxCommandEvent& event) void WinEDA_SchematicFrame::OnSelectOptionToolbar( wxCommandEvent& event )
/*******************************************************************************************/ /*******************************************************************************************/
{ {
if ( DrawPanel == NULL ) return; if( DrawPanel == NULL )
return;
int id = event.GetId();
wxClientDC dc(DrawPanel); int id = event.GetId();
wxClientDC dc( DrawPanel );
DrawPanel->PrepareGraphicContext(&dc);
switch ( id ) DrawPanel->PrepareGraphicContext( &dc );
{
case ID_TB_OPTIONS_SHOW_GRID: switch( id )
g_ShowGrid = m_Draw_Grid = m_OptionsToolBar->GetToolState(id); {
ReDrawPanel(); case ID_TB_OPTIONS_SHOW_GRID:
break; g_ShowGrid = m_Draw_Grid = m_OptionsToolBar->GetToolState( id );
ReDrawPanel();
case ID_TB_OPTIONS_SELECT_UNIT_MM: break;
g_UnitMetric = MILLIMETRE;
Affiche_Status_Box(); /* Reaffichage des coord curseur */ case ID_TB_OPTIONS_SELECT_UNIT_MM:
break; g_UnitMetric = MILLIMETRE;
Affiche_Status_Box(); /* Reaffichage des coord curseur */
case ID_TB_OPTIONS_SELECT_UNIT_INCH: break;
g_UnitMetric = INCHES;
Affiche_Status_Box(); /* Reaffichage des coord curseur */ case ID_TB_OPTIONS_SELECT_UNIT_INCH:
break; g_UnitMetric = INCHES;
Affiche_Status_Box(); /* Reaffichage des coord curseur */
case ID_TB_OPTIONS_SELECT_CURSOR: break;
DrawPanel->CursorOff(&dc);
g_CursorShape = m_OptionsToolBar->GetToolState(id); case ID_TB_OPTIONS_SELECT_CURSOR:
DrawPanel->CursorOn(&dc); DrawPanel->CursorOff( &dc );
break; g_CursorShape = m_OptionsToolBar->GetToolState( id );
DrawPanel->CursorOn( &dc );
case ID_TB_OPTIONS_HIDDEN_PINS: break;
g_ShowAllPins = m_OptionsToolBar->GetToolState(id);
DrawPanel->ReDraw(&dc, TRUE); case ID_TB_OPTIONS_HIDDEN_PINS:
break; g_ShowAllPins = m_OptionsToolBar->GetToolState( id );
DrawPanel->ReDraw( &dc, TRUE );
case ID_TB_OPTIONS_BUS_WIRES_ORIENT: break;
g_HVLines = m_OptionsToolBar->GetToolState(id);
break; case ID_TB_OPTIONS_BUS_WIRES_ORIENT:
g_HVLines = m_OptionsToolBar->GetToolState( id );
default: break;
DisplayError(this, wxT("OnSelectOptionToolbar() error") );
break; default:
} DisplayError( this, wxT( "OnSelectOptionToolbar() error" ) );
break;
SetToolbars(); }
SetToolbars();
} }
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
COMMON_GLOBL wxString g_BuildVersion COMMON_GLOBL wxString g_BuildVersion
#ifdef EDA_BASE #ifdef EDA_BASE
(wxT("(2007-08-21)")) (wxT("(2007-08-30)"))
#endif #endif
; ;
......
/*******************/ /*******************/
/* hotkeys_basic.h */ /* hotkeys_basic.h */
/*******************/ /*******************/
/* Some functions to handle hotkeys in kicad /* Some functions to handle hotkeys in kicad
*/ */
#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( ".key" )
/* define default path for config key file */ /* define default path for config key file */
#ifdef __WINDOWS__ #ifdef __WINDOWS__
#define DEFAULT_HOTKEY_FILENAME_PATH EDA_Appl->m_BinDir + wxT("../template/") #define DEFAULT_HOTKEY_FILENAME_PATH EDA_Appl->m_BinDir + wxT( "../template/" )
#else #else
#define DEFAULT_HOTKEY_FILENAME_PATH wxGetHomeDir() + wxT("/") #define DEFAULT_HOTKEY_FILENAME_PATH wxGetHomeDir() + wxT( "/" )
#endif #endif
/* Class to handle hotkey commnands. hotkeys have a default value /* 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) * This class allows (for the future..) the real key code changed by user(from a key code list file, TODO)
*/ */
class Ki_HotkeyInfo class Ki_HotkeyInfo
{ {
public: public:
int m_KeyCode; // Key code (ascii value for ascii keys or wxWidgets code for function key int m_KeyCode; // Key code (ascii value for ascii keys or wxWidgets code for function key
wxString m_InfoMsg; // info message. wxString m_InfoMsg; // info message.
int m_Idcommand; // internal id for the corresponding command (see hotkey_id_commnand list) int m_Idcommand; // internal id for the corresponding command (see hotkey_id_commnand list)
public: public:
Ki_HotkeyInfo(const wxChar * infomsg, int idcommand, int keycode); Ki_HotkeyInfo( const wxChar* infomsg, int idcommand, int keycode );
}; };
/* Functions: /* Functions:
*/ */
wxString ReturnKeyNameFromKeyCode(int keycode); wxString ReturnKeyNameFromKeyCode( int keycode );
void DisplayHotkeyList(WinEDA_DrawFrame * frame, Ki_HotkeyInfo ** List); wxString ReturnKeyNameFromCommandId( Ki_HotkeyInfo** List, int CommandId );
int GetCommandCodeFromHotkey(int key, Ki_HotkeyInfo ** List); wxString AddHotkeyName( const wxString& text, Ki_HotkeyInfo** List, int CommandId );
void DisplayHotkeyList( WinEDA_DrawFrame* frame, Ki_HotkeyInfo** List );
int GetCommandCodeFromHotkey( int key, Ki_HotkeyInfo** List );
#endif // HOTKEYS_BASIC_H #endif // HOTKEYS_BASIC_H
No preview for this file type
...@@ -2,7 +2,7 @@ msgid "" ...@@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: kicad\n" "Project-Id-Version: kicad\n"
"POT-Creation-Date: \n" "POT-Creation-Date: \n"
"PO-Revision-Date: 2007-08-27 11:02+0100\n" "PO-Revision-Date: 2007-08-30 11:16+0100\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: kicad team <jean-pierre.charras@ujf-grenoble.fr>\n" "Language-Team: kicad team <jean-pierre.charras@ujf-grenoble.fr>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
...@@ -132,8 +132,8 @@ msgstr "Ok" ...@@ -132,8 +132,8 @@ msgstr "Ok"
#: eeschema/libedit_onrightclick.cpp:83 #: eeschema/libedit_onrightclick.cpp:83
#: eeschema/sheetlab.cpp:105 #: eeschema/sheetlab.cpp:105
#: eeschema/optionsframe.cpp:155 #: eeschema/optionsframe.cpp:155
#: eeschema/onrightclick.cpp:113 #: eeschema/onrightclick.cpp:114
#: eeschema/onrightclick.cpp:128 #: eeschema/onrightclick.cpp:129
#: eeschema/options.cpp:114 #: eeschema/options.cpp:114
#: eeschema/libedpart.cpp:219 #: eeschema/libedpart.cpp:219
#: gerbview/options.cpp:175 #: gerbview/options.cpp:175
...@@ -197,6 +197,7 @@ msgstr "Orientation" ...@@ -197,6 +197,7 @@ msgstr "Orientation"
#: pcbnew/dialog_edit_module.cpp:291 #: pcbnew/dialog_edit_module.cpp:291
#: eeschema/dialog_options.cpp:229 #: eeschema/dialog_options.cpp:229
#: eeschema/editpart.cpp:323 #: eeschema/editpart.cpp:323
#: eeschema/onrightclick.cpp:299
#: eeschema/options.cpp:177 #: eeschema/options.cpp:177
#: eeschema/dialog_edit_component_in_schematic.cpp:182 #: eeschema/dialog_edit_component_in_schematic.cpp:182
msgid "Normal" msgid "Normal"
...@@ -372,7 +373,7 @@ msgid "Do not Show Zones" ...@@ -372,7 +373,7 @@ msgid "Do not Show Zones"
msgstr "Ne pas monter Zones" msgstr "Ne pas monter Zones"
#: pcbnew/pcbframe.cpp:420 #: pcbnew/pcbframe.cpp:420
#: pcbnew/tool_pcb.cpp:352 #: pcbnew/tool_pcb.cpp:361
#: pcbnew/set_color.cpp:387 #: pcbnew/set_color.cpp:387
msgid "Show Zones" msgid "Show Zones"
msgstr "Monter Zones" msgstr "Monter Zones"
...@@ -398,7 +399,7 @@ msgid "Normal Contrast Mode Display" ...@@ -398,7 +399,7 @@ msgid "Normal Contrast Mode Display"
msgstr "Mode d'affichage Contraste normal" msgstr "Mode d'affichage Contraste normal"
#: pcbnew/pcbframe.cpp:441 #: pcbnew/pcbframe.cpp:441
#: pcbnew/tool_pcb.cpp:365 #: pcbnew/tool_pcb.cpp:374
msgid "Hight Contrast Mode Display" msgid "Hight Contrast Mode Display"
msgstr "Mode d'affichage Haut Contraste" msgstr "Mode d'affichage Haut Contraste"
...@@ -563,7 +564,7 @@ msgid "Import Module:" ...@@ -563,7 +564,7 @@ msgid "Import Module:"
msgstr "Importer Module:" msgstr "Importer Module:"
#: pcbnew/librairi.cpp:62 #: pcbnew/librairi.cpp:62
#: pcbnew/files.cpp:184 #: pcbnew/files.cpp:183
#: cvpcb/readschematicnetlist.cpp:51 #: cvpcb/readschematicnetlist.cpp:51
#: cvpcb/rdpcad.cpp:45 #: cvpcb/rdpcad.cpp:45
#, c-format #, c-format
...@@ -641,7 +642,7 @@ msgstr "Module [%s] non trouv ...@@ -641,7 +642,7 @@ msgstr "Module [%s] non trouv
#: eeschema/plothpgl.cpp:560 #: eeschema/plothpgl.cpp:560
#: cvpcb/genequiv.cpp:42 #: cvpcb/genequiv.cpp:42
#: gerbview/export_to_pcbnew.cpp:58 #: gerbview/export_to_pcbnew.cpp:58
#: common/hotkeys_basic.cpp:261 #: common/hotkeys_basic.cpp:341
msgid "Unable to create " msgid "Unable to create "
msgstr "Impossible de crer " msgstr "Impossible de crer "
...@@ -866,7 +867,7 @@ msgstr "Ajouter Pastilles" ...@@ -866,7 +867,7 @@ msgstr "Ajouter Pastilles"
#: pcbnew/globaleditpad.cpp:96 #: pcbnew/globaleditpad.cpp:96
#: pcbnew/menubarpcb.cpp:215 #: pcbnew/menubarpcb.cpp:215
#: pcbnew/menubarmodedit.cpp:45 #: pcbnew/menubarmodedit.cpp:45
#: pcbnew/tool_modedit.cpp:125 #: pcbnew/tool_modedit.cpp:133
msgid "Pad Settings" msgid "Pad Settings"
msgstr "Caract pads" msgstr "Caract pads"
...@@ -876,7 +877,7 @@ msgid "Add Drawing" ...@@ -876,7 +877,7 @@ msgid "Add Drawing"
msgstr "Ajout d'lments graphiques" msgstr "Ajout d'lments graphiques"
#: pcbnew/modedit.cpp:330 #: pcbnew/modedit.cpp:330
#: pcbnew/tool_modedit.cpp:175 #: pcbnew/tool_modedit.cpp:185
msgid "Place anchor" msgid "Place anchor"
msgstr "Place Ancre" msgstr "Place Ancre"
...@@ -900,7 +901,7 @@ msgstr "Forme" ...@@ -900,7 +901,7 @@ msgstr "Forme"
#: pcbnew/classpcb.cpp:186 #: pcbnew/classpcb.cpp:186
#: pcbnew/dialog_pad_edit.cpp:176 #: pcbnew/dialog_pad_edit.cpp:176
#: pcbnew/dialog_pad_edit.cpp:198 #: pcbnew/dialog_pad_edit.cpp:196
#: pcbnew/class_track.cpp:680 #: pcbnew/class_track.cpp:680
msgid "Circle" msgid "Circle"
msgstr "Cercle" msgstr "Cercle"
...@@ -921,7 +922,7 @@ msgstr "Segment" ...@@ -921,7 +922,7 @@ msgstr "Segment"
#: pcbnew/class_text_mod.cpp:349 #: pcbnew/class_text_mod.cpp:349
#: pcbnew/class_pcb_text.cpp:167 #: pcbnew/class_pcb_text.cpp:167
#: pcbnew/class_module.cpp:1116 #: pcbnew/class_module.cpp:1116
#: pcbnew/class_pad.cpp:909 #: pcbnew/class_pad.cpp:907
#: pcbnew/class_track.cpp:710 #: pcbnew/class_track.cpp:710
#: gerbview/affiche.cpp:109 #: gerbview/affiche.cpp:109
msgid "Layer" msgid "Layer"
...@@ -1112,7 +1113,7 @@ msgid "Add Tracks" ...@@ -1112,7 +1113,7 @@ msgid "Add Tracks"
msgstr "Addition de pistes" msgstr "Addition de pistes"
#: pcbnew/edit.cpp:574 #: pcbnew/edit.cpp:574
#: pcbnew/tool_pcb.cpp:420 #: pcbnew/tool_pcb.cpp:429
msgid "Add Zones" msgid "Add Zones"
msgstr "Addition de Zones" msgstr "Addition de Zones"
...@@ -1133,8 +1134,8 @@ msgid "Add Graphic" ...@@ -1133,8 +1134,8 @@ msgid "Add Graphic"
msgstr "Addition lments graphiques" msgstr "Addition lments graphiques"
#: pcbnew/edit.cpp:597 #: pcbnew/edit.cpp:597
#: pcbnew/tool_pcb.cpp:437 #: pcbnew/tool_pcb.cpp:446
#: pcbnew/tool_modedit.cpp:170 #: pcbnew/tool_modedit.cpp:180
#: eeschema/schedit.cpp:313 #: eeschema/schedit.cpp:313
#: eeschema/libframe.cpp:487 #: eeschema/libframe.cpp:487
#: gerbview/tool_gerber.cpp:361 #: gerbview/tool_gerber.cpp:361
...@@ -1146,7 +1147,7 @@ msgid "Add Modules" ...@@ -1146,7 +1147,7 @@ msgid "Add Modules"
msgstr "Addition de Modules" msgstr "Addition de Modules"
#: pcbnew/edit.cpp:605 #: pcbnew/edit.cpp:605
#: pcbnew/tool_pcb.cpp:442 #: pcbnew/tool_pcb.cpp:451
msgid "Add Cotation" msgid "Add Cotation"
msgstr "Addition de Cotations" msgstr "Addition de Cotations"
...@@ -1320,7 +1321,7 @@ msgstr "Largeur Texte Module" ...@@ -1320,7 +1321,7 @@ msgstr "Largeur Texte Module"
#: pcbnew/dialog_initpcb.cpp:161 #: pcbnew/dialog_initpcb.cpp:161
#: pcbnew/dialog_display_options.cpp:280 #: pcbnew/dialog_display_options.cpp:280
#: pcbnew/set_grid.cpp:171 #: pcbnew/set_grid.cpp:171
#: pcbnew/dialog_pad_edit.cpp:221 #: pcbnew/dialog_pad_edit.cpp:217
#: pcbnew/dialog_track_options.cpp:181 #: pcbnew/dialog_track_options.cpp:181
#: pcbnew/dialog_general_options.cpp:364 #: pcbnew/dialog_general_options.cpp:364
#: eeschema/sheet.cpp:221 #: eeschema/sheet.cpp:221
...@@ -1343,7 +1344,7 @@ msgstr "&OK" ...@@ -1343,7 +1344,7 @@ msgstr "&OK"
#: pcbnew/dialog_display_options.cpp:284 #: pcbnew/dialog_display_options.cpp:284
#: pcbnew/zones.cpp:216 #: pcbnew/zones.cpp:216
#: pcbnew/set_grid.cpp:176 #: pcbnew/set_grid.cpp:176
#: pcbnew/dialog_pad_edit.cpp:225 #: pcbnew/dialog_pad_edit.cpp:221
#: pcbnew/dialog_track_options.cpp:185 #: pcbnew/dialog_track_options.cpp:185
#: pcbnew/dialog_general_options.cpp:368 #: pcbnew/dialog_general_options.cpp:368
#: eeschema/sheet.cpp:216 #: eeschema/sheet.cpp:216
...@@ -1366,7 +1367,7 @@ msgstr "Fenetre 3D d ...@@ -1366,7 +1367,7 @@ msgstr "Fenetre 3D d
msgid "3D Viewer" msgid "3D Viewer"
msgstr "Visu 3D" msgstr "Visu 3D"
#: pcbnew/tool_pcb.cpp:50 #: pcbnew/tool_pcb.cpp:52
msgid "" msgid ""
"Show active layer selections\n" "Show active layer selections\n"
"and select layer pair for route and place via" "and select layer pair for route and place via"
...@@ -1374,182 +1375,171 @@ msgstr "" ...@@ -1374,182 +1375,171 @@ msgstr ""
"Affiche selections couche active\n" "Affiche selections couche active\n"
"et selection paire de couches pour routage and placement via" "et selection paire de couches pour routage and placement via"
#: pcbnew/tool_pcb.cpp:236 #: pcbnew/tool_pcb.cpp:239
msgid "New Board" msgid "New Board"
msgstr "Nouveau Circuit Imprim" msgstr "Nouveau Circuit Imprim"
#: pcbnew/tool_pcb.cpp:238 #: pcbnew/tool_pcb.cpp:241
msgid "Open existing Board" msgid "Open existing Board"
msgstr "Ouvrir C.I. existant" msgstr "Ouvrir C.I. existant"
#: pcbnew/tool_pcb.cpp:239 #: pcbnew/tool_pcb.cpp:242
msgid "Save Board" msgid "Save Board"
msgstr "Sauver Circuit Imprim" msgstr "Sauver Circuit Imprim"
#: pcbnew/tool_pcb.cpp:243 #: pcbnew/tool_pcb.cpp:246
#: eeschema/tool_sch.cpp:61 #: eeschema/tool_sch.cpp:65
#: gerbview/tool_gerber.cpp:217 #: gerbview/tool_gerber.cpp:217
msgid "page settings (size, texts)" msgid "page settings (size, texts)"
msgstr "Ajustage de la feuille de dessin (dimensions, textes)" msgstr "Ajustage de la feuille de dessin (dimensions, textes)"
#: pcbnew/tool_pcb.cpp:247 #: pcbnew/tool_pcb.cpp:250
msgid "Open Module Editor" msgid "Open Module Editor"
msgstr "Ouvrir Editeur de modules" msgstr "Ouvrir Editeur de modules"
#: pcbnew/tool_pcb.cpp:250 #: pcbnew/tool_pcb.cpp:253
#: eeschema/tool_sch.cpp:77 #: eeschema/tool_sch.cpp:81
#: gerbview/tool_gerber.cpp:228 #: gerbview/tool_gerber.cpp:228
msgid "Cut selected item" msgid "Cut selected item"
msgstr "Suppression des lments slectionns" msgstr "Suppression des lments slectionns"
#: pcbnew/tool_pcb.cpp:254 #: pcbnew/tool_pcb.cpp:257
#: eeschema/tool_sch.cpp:80 #: eeschema/tool_sch.cpp:84
#: gerbview/tool_gerber.cpp:233 #: gerbview/tool_gerber.cpp:233
msgid "Copy selected item" msgid "Copy selected item"
msgstr "Copie des lments slectionns" msgstr "Copie des lments slectionns"
#: pcbnew/tool_pcb.cpp:256 #: pcbnew/tool_pcb.cpp:259
#: eeschema/tool_sch.cpp:83 #: eeschema/tool_sch.cpp:87
#: gerbview/tool_gerber.cpp:239 #: gerbview/tool_gerber.cpp:239
msgid "Paste" msgid "Paste"
msgstr "Copie des lments sauvegards" msgstr "Copie des lments sauvegards"
#: pcbnew/tool_pcb.cpp:259 #: pcbnew/tool_pcb.cpp:262
#: gerbview/tool_gerber.cpp:246 #: gerbview/tool_gerber.cpp:246
msgid "Undelete" msgid "Undelete"
msgstr "Annulation du dernier effacement" msgstr "Annulation du dernier effacement"
#: pcbnew/tool_pcb.cpp:262 #: pcbnew/tool_pcb.cpp:265
msgid "Print Board" msgid "Print Board"
msgstr "Imprimer C.I." msgstr "Imprimer C.I."
#: pcbnew/tool_pcb.cpp:264 #: pcbnew/tool_pcb.cpp:267
#: pcbnew/menubarpcb.cpp:93 #: pcbnew/menubarpcb.cpp:93
msgid "Plot (HPGL, PostScript, or GERBER format)" msgid "Plot (HPGL, PostScript, or GERBER format)"
msgstr "Tracer en format HPGL, POSTSCRIPT ou GERBER" msgstr "Tracer en format HPGL, POSTSCRIPT ou GERBER"
#: pcbnew/tool_pcb.cpp:268
#: pcbnew/tool_modedit.cpp:111
#: eeschema/tool_sch.cpp:104
#: eeschema/tool_lib.cpp:170
#: eeschema/tool_viewlib.cpp:70
#: cvpcb/displayframe.cpp:118
#: gerbview/tool_gerber.cpp:260
#: 3d-viewer/3d_toolbar.cpp:43
msgid "zoom + (F1)"
msgstr "zoom + (F1)"
#: pcbnew/tool_pcb.cpp:270 #: pcbnew/tool_pcb.cpp:270
#: pcbnew/tool_modedit.cpp:114 #: pcbnew/tool_modedit.cpp:115
#: eeschema/tool_sch.cpp:107 #: eeschema/tool_sch.cpp:107
#: eeschema/tool_lib.cpp:170
msgid "zoom +"
msgstr "zoom +"
#: pcbnew/tool_pcb.cpp:274
#: pcbnew/tool_modedit.cpp:119
#: eeschema/tool_sch.cpp:111
#: eeschema/tool_lib.cpp:174 #: eeschema/tool_lib.cpp:174
#: eeschema/tool_viewlib.cpp:74 msgid "zoom -"
#: cvpcb/displayframe.cpp:121 msgstr "zoom -"
#: gerbview/tool_gerber.cpp:266
#: 3d-viewer/3d_toolbar.cpp:46
msgid "zoom - (F2)"
msgstr "zoom - (F2)"
#: pcbnew/tool_pcb.cpp:272 #: pcbnew/tool_pcb.cpp:278
#: pcbnew/tool_modedit.cpp:117 #: pcbnew/tool_modedit.cpp:123
#: eeschema/tool_sch.cpp:110 #: eeschema/tool_sch.cpp:115
#: eeschema/tool_lib.cpp:178 #: eeschema/tool_lib.cpp:178
#: eeschema/tool_viewlib.cpp:78 msgid "redraw"
#: cvpcb/displayframe.cpp:124 msgstr "Redessin"
#: gerbview/tool_gerber.cpp:272
#: 3d-viewer/3d_toolbar.cpp:49
msgid "redraw (F3)"
msgstr "Redessin (F3)"
#: pcbnew/tool_pcb.cpp:275 #: pcbnew/tool_pcb.cpp:283
#: pcbnew/tool_modedit.cpp:120 #: pcbnew/tool_modedit.cpp:128
#: eeschema/tool_sch.cpp:113 #: eeschema/tool_sch.cpp:120
#: eeschema/tool_lib.cpp:182 #: eeschema/tool_lib.cpp:184
#: gerbview/tool_gerber.cpp:278 #: gerbview/tool_gerber.cpp:278
#: 3d-viewer/3d_toolbar.cpp:52 #: 3d-viewer/3d_toolbar.cpp:52
msgid "auto zoom" msgid "auto zoom"
msgstr "Zoom automatique" msgstr "Zoom automatique"
#: pcbnew/tool_pcb.cpp:279 #: pcbnew/tool_pcb.cpp:286
msgid "Find components and texts (Ctrl-F)" #: eeschema/tool_sch.cpp:124
msgstr "Recherche de composants et textes (Ctrl F)" msgid "Find components and texts"
msgstr "Recherche de composants et textes"
#: pcbnew/tool_pcb.cpp:283 #: pcbnew/tool_pcb.cpp:292
msgid "Read Netlist" msgid "Read Netlist"
msgstr "Lire Netliste" msgstr "Lire Netliste"
#: pcbnew/tool_pcb.cpp:285 #: pcbnew/tool_pcb.cpp:294
msgid "Pcb Design Rules Check" msgid "Pcb Design Rules Check"
msgstr "Controle des rgles de conception" msgstr "Controle des rgles de conception"
#: pcbnew/tool_pcb.cpp:296 #: pcbnew/tool_pcb.cpp:305
msgid "Mode Module: Manual and Automatic Move or Place for modules" msgid "Mode Module: Manual and Automatic Move or Place for modules"
msgstr "Mode Module: Dplacements ou Placement Manuel ou Automatique des modules" msgstr "Mode Module: Dplacements ou Placement Manuel ou Automatique des modules"
#: pcbnew/tool_pcb.cpp:299 #: pcbnew/tool_pcb.cpp:308
msgid "Mode Track and Autorouting" msgid "Mode Track and Autorouting"
msgstr "Mode Pistes and Autoroutage" msgstr "Mode Pistes and Autoroutage"
#: pcbnew/tool_pcb.cpp:323 #: pcbnew/tool_pcb.cpp:332
msgid "Drc OFF" msgid "Drc OFF"
msgstr "Drc DESACTIVEE" msgstr "Drc DESACTIVEE"
#: pcbnew/tool_pcb.cpp:325 #: pcbnew/tool_pcb.cpp:334
#: pcbnew/tool_modedit.cpp:201 #: pcbnew/tool_modedit.cpp:212
#: eeschema/tool_sch.cpp:246 #: eeschema/tool_sch.cpp:256
#: gerbview/tool_gerber.cpp:389 #: gerbview/tool_gerber.cpp:389
msgid "Display Grid OFF" msgid "Display Grid OFF"
msgstr "Suppression de l'affichage de la grille" msgstr "Suppression de l'affichage de la grille"
#: pcbnew/tool_pcb.cpp:328 #: pcbnew/tool_pcb.cpp:337
#: pcbnew/tool_modedit.cpp:205 #: pcbnew/tool_modedit.cpp:216
#: gerbview/tool_gerber.cpp:395 #: gerbview/tool_gerber.cpp:395
msgid "Display Polar Coord ON" msgid "Display Polar Coord ON"
msgstr "Activer affichage coord Polaires" msgstr "Activer affichage coord Polaires"
#: pcbnew/tool_pcb.cpp:330 #: pcbnew/tool_pcb.cpp:339
#: pcbnew/tool_modedit.cpp:209 #: pcbnew/tool_modedit.cpp:220
#: eeschema/tool_sch.cpp:250 #: eeschema/tool_sch.cpp:260
#: gerbview/tool_gerber.cpp:399 #: gerbview/tool_gerber.cpp:399
msgid "Units = Inch" msgid "Units = Inch"
msgstr "Units = pouce" msgstr "Units = pouce"
#: pcbnew/tool_pcb.cpp:332 #: pcbnew/tool_pcb.cpp:341
#: pcbnew/tool_modedit.cpp:213 #: pcbnew/tool_modedit.cpp:224
#: eeschema/tool_sch.cpp:254 #: eeschema/tool_sch.cpp:264
#: gerbview/tool_gerber.cpp:403 #: gerbview/tool_gerber.cpp:403
msgid "Units = mm" msgid "Units = mm"
msgstr "Units = mm" msgstr "Units = mm"
#: pcbnew/tool_pcb.cpp:335 #: pcbnew/tool_pcb.cpp:344
#: pcbnew/tool_modedit.cpp:219 #: pcbnew/tool_modedit.cpp:230
#: eeschema/tool_sch.cpp:258 #: eeschema/tool_sch.cpp:268
#: gerbview/tool_gerber.cpp:409 #: gerbview/tool_gerber.cpp:409
msgid "Change Cursor Shape" msgid "Change Cursor Shape"
msgstr "Slection de la forme du curseur" msgstr "Slection de la forme du curseur"
#: pcbnew/tool_pcb.cpp:340 #: pcbnew/tool_pcb.cpp:349
msgid "Show General Ratsnest" msgid "Show General Ratsnest"
msgstr "Monter le chevelu gnral" msgstr "Monter le chevelu gnral"
#: pcbnew/tool_pcb.cpp:343 #: pcbnew/tool_pcb.cpp:352
msgid "Show Module Ratsnest when moving" msgid "Show Module Ratsnest when moving"
msgstr "Monter le chevelu du module pendant dplacement" msgstr "Monter le chevelu du module pendant dplacement"
#: pcbnew/tool_pcb.cpp:348 #: pcbnew/tool_pcb.cpp:357
msgid "Enable Auto Del Track" msgid "Enable Auto Del Track"
msgstr "Autoriser l'effacement automatique des pistes" msgstr "Autoriser l'effacement automatique des pistes"
#: pcbnew/tool_pcb.cpp:357 #: pcbnew/tool_pcb.cpp:366
#: pcbnew/tool_modedit.cpp:227 #: pcbnew/tool_modedit.cpp:238
msgid "Show Pads Sketch" msgid "Show Pads Sketch"
msgstr "Afficher pastilles en contour" msgstr "Afficher pastilles en contour"
#: pcbnew/tool_pcb.cpp:361 #: pcbnew/tool_pcb.cpp:370
msgid "Show Tracks Sketch" msgid "Show Tracks Sketch"
msgstr "Afficher pistes en contour" msgstr "Afficher pistes en contour"
#: pcbnew/tool_pcb.cpp:374 #: pcbnew/tool_pcb.cpp:383
msgid "" msgid ""
"Display auxiliary vertical toolbar (tools for micro wave applications)\n" "Display auxiliary vertical toolbar (tools for micro wave applications)\n"
" This is a very experimental feature (under development)" " This is a very experimental feature (under development)"
...@@ -1557,98 +1547,98 @@ msgstr "" ...@@ -1557,98 +1547,98 @@ msgstr ""
"Affiche toolbar vertical auxiliaire (outils pour applications micro-ondes)\n" "Affiche toolbar vertical auxiliaire (outils pour applications micro-ondes)\n"
"C'est un outil exprimental (en cours de dveloppement)" "C'est un outil exprimental (en cours de dveloppement)"
#: pcbnew/tool_pcb.cpp:403 #: pcbnew/tool_pcb.cpp:412
msgid "Net highlight" msgid "Net highlight"
msgstr "Surbrillance des quipotentielles" msgstr "Surbrillance des quipotentielles"
#: pcbnew/tool_pcb.cpp:407 #: pcbnew/tool_pcb.cpp:416
msgid "Display local ratsnest (pad or module)" msgid "Display local ratsnest (pad or module)"
msgstr "Afficher le chevelu local (pastilles ou modules)" msgstr "Afficher le chevelu local (pastilles ou modules)"
#: pcbnew/tool_pcb.cpp:412 #: pcbnew/tool_pcb.cpp:421
msgid "Add modules" msgid "Add modules"
msgstr "Addition de Modules" msgstr "Addition de Modules"
#: pcbnew/tool_pcb.cpp:416 #: pcbnew/tool_pcb.cpp:425
msgid "Add Tracks an vias" msgid "Add Tracks an vias"
msgstr "Ajouter pistes et vias" msgstr "Ajouter pistes et vias"
#: pcbnew/tool_pcb.cpp:425 #: pcbnew/tool_pcb.cpp:434
#: pcbnew/tool_modedit.cpp:158 #: pcbnew/tool_modedit.cpp:168
#: eeschema/tool_sch.cpp:216 #: eeschema/tool_sch.cpp:225
msgid "Add graphic line or polygon" msgid "Add graphic line or polygon"
msgstr "Addition de lignes ou polygones graphiques" msgstr "Addition de lignes ou polygones graphiques"
#: pcbnew/tool_pcb.cpp:429 #: pcbnew/tool_pcb.cpp:438
#: pcbnew/tool_modedit.cpp:162 #: pcbnew/tool_modedit.cpp:172
msgid "Add graphic circle" msgid "Add graphic circle"
msgstr "Addition de graphiques (Cercle)" msgstr "Addition de graphiques (Cercle)"
#: pcbnew/tool_pcb.cpp:433 #: pcbnew/tool_pcb.cpp:442
#: pcbnew/tool_modedit.cpp:166 #: pcbnew/tool_modedit.cpp:176
msgid "Add graphic arc" msgid "Add graphic arc"
msgstr "Addition de graphiques (Arc de Cercle)" msgstr "Addition de graphiques (Arc de Cercle)"
#: pcbnew/tool_pcb.cpp:446 #: pcbnew/tool_pcb.cpp:455
#: gerbview/tool_gerber.cpp:354 #: gerbview/tool_gerber.cpp:354
msgid "Add Mires" msgid "Add Mires"
msgstr "Addition de Mires de superposition" msgstr "Addition de Mires de superposition"
#: pcbnew/tool_pcb.cpp:451 #: pcbnew/tool_pcb.cpp:460
#: pcbnew/tool_modedit.cpp:180 #: pcbnew/tool_modedit.cpp:190
#: eeschema/tool_sch.cpp:225 #: eeschema/tool_sch.cpp:234
#: eeschema/tool_lib.cpp:92 #: eeschema/tool_lib.cpp:93
#: gerbview/tool_gerber.cpp:369 #: gerbview/tool_gerber.cpp:369
msgid "Delete items" msgid "Delete items"
msgstr "Suppression d'lments" msgstr "Suppression d'lments"
#: pcbnew/tool_pcb.cpp:456 #: pcbnew/tool_pcb.cpp:465
msgid "Offset adjust for drill and place files" msgid "Offset adjust for drill and place files"
msgstr "Ajuste offset pour fichier de perage et placement" msgstr "Ajuste offset pour fichier de perage et placement"
#: pcbnew/tool_pcb.cpp:481 #: pcbnew/tool_pcb.cpp:490
msgid "Create line of specified length for microwave applications" msgid "Create line of specified length for microwave applications"
msgstr "Creation de lignes de longueur spcifie (pour applications micro-ondes)" msgstr "Creation de lignes de longueur spcifie (pour applications micro-ondes)"
#: pcbnew/tool_pcb.cpp:487 #: pcbnew/tool_pcb.cpp:496
msgid "Create gap of specified length for microwave applications" msgid "Create gap of specified length for microwave applications"
msgstr "Creation de gaps de longueur spcifie (pour applications micro-ondes)" msgstr "Creation de gaps de longueur spcifie (pour applications micro-ondes)"
#: pcbnew/tool_pcb.cpp:495 #: pcbnew/tool_pcb.cpp:504
msgid "Create stub of specified length for microwave applications" msgid "Create stub of specified length for microwave applications"
msgstr "Creation de stub de longueur spcifie (pour applications micro-ondes)" msgstr "Creation de stub de longueur spcifie (pour applications micro-ondes)"
#: pcbnew/tool_pcb.cpp:501 #: pcbnew/tool_pcb.cpp:510
msgid "Create stub (arc) of specified length for microwave applications" msgid "Create stub (arc) of specified length for microwave applications"
msgstr "Creation de stub (arc) de longueur spcifie (pour applications micro-ondes)" msgstr "Creation de stub (arc) de longueur spcifie (pour applications micro-ondes)"
#: pcbnew/tool_pcb.cpp:508 #: pcbnew/tool_pcb.cpp:517
msgid "Create a polynomial shape for microwave applications" msgid "Create a polynomial shape for microwave applications"
msgstr "Creation de formes polynomiales (pour applications micro-ondes)" msgstr "Creation de formes polynomiales (pour applications micro-ondes)"
#: pcbnew/tool_pcb.cpp:558 #: pcbnew/tool_pcb.cpp:567
#: pcbnew/tool_modedit.cpp:273 #: pcbnew/tool_modedit.cpp:285
#: eeschema/plotps.cpp:169 #: eeschema/plotps.cpp:169
#: share/zoom.cpp:368 #: share/zoom.cpp:368
msgid "Auto" msgid "Auto"
msgstr "Auto" msgstr "Auto"
#: pcbnew/tool_pcb.cpp:562 #: pcbnew/tool_pcb.cpp:571
msgid "Zoom " msgid "Zoom "
msgstr "Zoom " msgstr "Zoom "
#: pcbnew/tool_pcb.cpp:576 #: pcbnew/tool_pcb.cpp:585
#: pcbnew/set_color.cpp:378 #: pcbnew/set_color.cpp:378
#: gerbview/set_color.h:246 #: gerbview/set_color.h:246
msgid "Grid" msgid "Grid"
msgstr "Grille" msgstr "Grille"
#: pcbnew/tool_pcb.cpp:592 #: pcbnew/tool_pcb.cpp:601
#: pcbnew/tool_modedit.cpp:299 #: pcbnew/tool_modedit.cpp:314
msgid "User Grid" msgid "User Grid"
msgstr "Grille perso" msgstr "Grille perso"
#: pcbnew/tool_pcb.cpp:645 #: pcbnew/tool_pcb.cpp:654
msgid "+/- to switch" msgid "+/- to switch"
msgstr "+/- pour commuter" msgstr "+/- pour commuter"
...@@ -1661,18 +1651,18 @@ msgstr "Valeur incorrecte pour per ...@@ -1661,18 +1651,18 @@ msgstr "Valeur incorrecte pour per
msgid "Delete Pad (module %s %s) " msgid "Delete Pad (module %s %s) "
msgstr "Effacer Pad (module %s %s) " msgstr "Effacer Pad (module %s %s) "
#: pcbnew/hotkeys.cpp:263 #: pcbnew/hotkeys.cpp:372
#, c-format #, c-format
msgid "Footprint %s found, but locked" msgid "Footprint %s found, but locked"
msgstr "Module %s trouv, mais verrouill" msgstr "Module %s trouv, mais verrouill"
#: pcbnew/hotkeys.cpp:409 #: pcbnew/hotkeys.cpp:532
msgid "Delete module?" msgid "Delete module?"
msgstr "Effacer Module?" msgstr "Effacer Module?"
#: pcbnew/dialog_netlist.cpp:133 #: pcbnew/dialog_netlist.cpp:133
#: eeschema/editpart.cpp:741 #: eeschema/editpart.cpp:741
#: eeschema/onrightclick.cpp:303 #: eeschema/onrightclick.cpp:311
#: eeschema/dialog_create_component.cpp:164 #: eeschema/dialog_create_component.cpp:164
#: eeschema/eelayer.cpp:99 #: eeschema/eelayer.cpp:99
#: eeschema/edit_component_in_schematic.cpp:744 #: eeschema/edit_component_in_schematic.cpp:744
...@@ -1921,7 +1911,7 @@ msgstr "Via %.3f" ...@@ -1921,7 +1911,7 @@ msgstr "Via %.3f"
#: pcbnew/onrightclick.cpp:169 #: pcbnew/onrightclick.cpp:169
#: pcbnew/modedit_onclick.cpp:205 #: pcbnew/modedit_onclick.cpp:205
#: eeschema/libedit_onrightclick.cpp:73 #: eeschema/libedit_onrightclick.cpp:73
#: eeschema/onrightclick.cpp:117 #: eeschema/onrightclick.cpp:118
#: gerbview/onrightclick.cpp:42 #: gerbview/onrightclick.cpp:42
msgid "End Tool" msgid "End Tool"
msgstr "Fin Outil" msgstr "Fin Outil"
...@@ -2105,7 +2095,7 @@ msgstr "Lire Donn ...@@ -2105,7 +2095,7 @@ msgstr "Lire Donn
#: pcbnew/onrightclick.cpp:486 #: pcbnew/onrightclick.cpp:486
#: pcbnew/modedit_onclick.cpp:215 #: pcbnew/modedit_onclick.cpp:215
#: eeschema/libedit_onrightclick.cpp:251 #: eeschema/libedit_onrightclick.cpp:251
#: eeschema/onrightclick.cpp:567 #: eeschema/onrightclick.cpp:575
#: gerbview/onrightclick.cpp:51 #: gerbview/onrightclick.cpp:51
msgid "Cancel Block" msgid "Cancel Block"
msgstr "Annuler Bloc" msgstr "Annuler Bloc"
...@@ -2119,7 +2109,7 @@ msgstr "Zoom Bloc (drag+bouton milieu)" ...@@ -2119,7 +2109,7 @@ msgstr "Zoom Bloc (drag+bouton milieu)"
#: pcbnew/onrightclick.cpp:491 #: pcbnew/onrightclick.cpp:491
#: pcbnew/modedit_onclick.cpp:220 #: pcbnew/modedit_onclick.cpp:220
#: eeschema/libedit_onrightclick.cpp:259 #: eeschema/libedit_onrightclick.cpp:259
#: eeschema/onrightclick.cpp:575 #: eeschema/onrightclick.cpp:583
#: gerbview/onrightclick.cpp:54 #: gerbview/onrightclick.cpp:54
msgid "Place Block" msgid "Place Block"
msgstr "Place Bloc" msgstr "Place Bloc"
...@@ -2127,7 +2117,7 @@ msgstr "Place Bloc" ...@@ -2127,7 +2117,7 @@ msgstr "Place Bloc"
#: pcbnew/onrightclick.cpp:493 #: pcbnew/onrightclick.cpp:493
#: pcbnew/modedit_onclick.cpp:222 #: pcbnew/modedit_onclick.cpp:222
#: eeschema/libedit_onrightclick.cpp:265 #: eeschema/libedit_onrightclick.cpp:265
#: eeschema/onrightclick.cpp:584 #: eeschema/onrightclick.cpp:592
msgid "Copy Block (shift + drag mouse)" msgid "Copy Block (shift + drag mouse)"
msgstr "Copie Bloc (shift + drag mouse)" msgstr "Copie Bloc (shift + drag mouse)"
...@@ -2295,7 +2285,7 @@ msgid "Rotate + (R)" ...@@ -2295,7 +2285,7 @@ msgid "Rotate + (R)"
msgstr "Rotation + (R)" msgstr "Rotation + (R)"
#: pcbnew/onrightclick.cpp:659 #: pcbnew/onrightclick.cpp:659
#: eeschema/onrightclick.cpp:289 #: eeschema/onrightclick.cpp:294
msgid "Rotate -" msgid "Rotate -"
msgstr "Rotation -" msgstr "Rotation -"
...@@ -2307,7 +2297,7 @@ msgstr "Change face (S)" ...@@ -2307,7 +2297,7 @@ msgstr "Change face (S)"
#: pcbnew/onrightclick.cpp:712 #: pcbnew/onrightclick.cpp:712
#: pcbnew/onrightclick.cpp:785 #: pcbnew/onrightclick.cpp:785
#: pcbnew/modedit_onclick.cpp:315 #: pcbnew/modedit_onclick.cpp:315
#: eeschema/onrightclick.cpp:298 #: eeschema/onrightclick.cpp:306
msgid "Edit" msgid "Edit"
msgstr "Editer" msgstr "Editer"
...@@ -2395,11 +2385,11 @@ msgstr "Diam per ...@@ -2395,11 +2385,11 @@ msgstr "Diam per
msgid "Pad Orient (0.1 deg)" msgid "Pad Orient (0.1 deg)"
msgstr "Orient Pad (0.1 deg)" msgstr "Orient Pad (0.1 deg)"
#: pcbnew/editpads.cpp:339 #: pcbnew/editpads.cpp:333
msgid "Incorrect value for pad drill: pad drill bigger than pad size" msgid "Incorrect value for pad drill: pad drill bigger than pad size"
msgstr "Valeur incorrecte pour diametre de perage.percage plus grand que la taille du pad" msgstr "Valeur incorrecte pour diametre de perage.percage plus grand que la taille du pad"
#: pcbnew/editpads.cpp:345 #: pcbnew/editpads.cpp:339
msgid "Incorrect value for pad offset" msgid "Incorrect value for pad offset"
msgstr "Valeur incorrecte pour offset du pad" msgstr "Valeur incorrecte pour offset du pad"
...@@ -2794,7 +2784,7 @@ msgid "Current Value" ...@@ -2794,7 +2784,7 @@ msgid "Current Value"
msgstr "Valeur courante" msgstr "Valeur courante"
#: pcbnew/xchgmod.cpp:156 #: pcbnew/xchgmod.cpp:156
#: pcbnew/tool_modedit.cpp:65 #: pcbnew/tool_modedit.cpp:70
msgid "New Module" msgid "New Module"
msgstr "Nouveau Module" msgstr "Nouveau Module"
...@@ -2938,15 +2928,15 @@ msgid "Pad Net Name :" ...@@ -2938,15 +2928,15 @@ msgid "Pad Net Name :"
msgstr "NetName Pad:" msgstr "NetName Pad:"
#: pcbnew/dialog_pad_edit.cpp:177 #: pcbnew/dialog_pad_edit.cpp:177
#: pcbnew/dialog_pad_edit.cpp:199 #: pcbnew/dialog_pad_edit.cpp:197
msgid "Oval" msgid "Oval"
msgstr "Ovale" msgstr "Ovale"
#: pcbnew/dialog_pad_edit.cpp:179 #: pcbnew/dialog_pad_edit.cpp:178
msgid "Drill Shape:" msgid "Drill Shape:"
msgstr "Forme du perage:" msgstr "Forme du perage:"
#: pcbnew/dialog_pad_edit.cpp:187 #: pcbnew/dialog_pad_edit.cpp:186
#: pcbnew/clean.cpp:422 #: pcbnew/clean.cpp:422
#: eeschema/dialog_erc.cpp:192 #: eeschema/dialog_erc.cpp:192
#: eeschema/dialog_erc.cpp:196 #: eeschema/dialog_erc.cpp:196
...@@ -2954,120 +2944,120 @@ msgstr "Forme du per ...@@ -2954,120 +2944,120 @@ msgstr "Forme du per
msgid "0" msgid "0"
msgstr "0" msgstr "0"
#: pcbnew/dialog_pad_edit.cpp:188 #: pcbnew/dialog_pad_edit.cpp:187
msgid "90" msgid "90"
msgstr "90" msgstr "90"
#: pcbnew/dialog_pad_edit.cpp:189 #: pcbnew/dialog_pad_edit.cpp:188
#: eeschema/dialog_edit_component_in_schematic.cpp:175 #: eeschema/dialog_edit_component_in_schematic.cpp:175
msgid "-90" msgid "-90"
msgstr "-90" msgstr "-90"
#: pcbnew/dialog_pad_edit.cpp:190 #: pcbnew/dialog_pad_edit.cpp:189
#: eeschema/dialog_edit_component_in_schematic.cpp:174 #: eeschema/dialog_edit_component_in_schematic.cpp:174
msgid "180" msgid "180"
msgstr "180" msgstr "180"
#: pcbnew/dialog_pad_edit.cpp:191 #: pcbnew/dialog_pad_edit.cpp:190
#: pcbnew/dialog_edit_module.cpp:245 #: pcbnew/dialog_edit_module.cpp:245
msgid "User" msgid "User"
msgstr "User" msgstr "User"
#: pcbnew/dialog_pad_edit.cpp:193 #: pcbnew/dialog_pad_edit.cpp:191
msgid "Pad Orient:" msgid "Pad Orient:"
msgstr "Orient pad:" msgstr "Orient pad:"
#: pcbnew/dialog_pad_edit.cpp:200 #: pcbnew/dialog_pad_edit.cpp:198
msgid "Rect" msgid "Rect"
msgstr "Rect" msgstr "Rect"
#: pcbnew/dialog_pad_edit.cpp:201 #: pcbnew/dialog_pad_edit.cpp:199
msgid "Trapezoidal" msgid "Trapezoidal"
msgstr "Trapezoidal" msgstr "Trapezoidal"
#: pcbnew/dialog_pad_edit.cpp:203 #: pcbnew/dialog_pad_edit.cpp:200
msgid "Pad Shape:" msgid "Pad Shape:"
msgstr "Forme Pad:" msgstr "Forme Pad:"
#: pcbnew/dialog_pad_edit.cpp:208 #: pcbnew/dialog_pad_edit.cpp:205
#: pcbnew/class_track.cpp:682 #: pcbnew/class_track.cpp:682
msgid "Standard" msgid "Standard"
msgstr "Standard" msgstr "Standard"
#: pcbnew/dialog_pad_edit.cpp:209 #: pcbnew/dialog_pad_edit.cpp:206
msgid "SMD" msgid "SMD"
msgstr "CMS" msgstr "CMS"
#: pcbnew/dialog_pad_edit.cpp:210 #: pcbnew/dialog_pad_edit.cpp:207
#: eeschema/netlist.cpp:146 #: eeschema/netlist.cpp:146
msgid "Conn" msgid "Conn"
msgstr "Conn" msgstr "Conn"
#: pcbnew/dialog_pad_edit.cpp:211 #: pcbnew/dialog_pad_edit.cpp:208
msgid "Hole" msgid "Hole"
msgstr "Hole" msgstr "Hole"
#: pcbnew/dialog_pad_edit.cpp:212 #: pcbnew/dialog_pad_edit.cpp:209
msgid "Mechanical" msgid "Mechanical"
msgstr "Mechanical" msgstr "Mechanical"
#: pcbnew/dialog_pad_edit.cpp:214 #: pcbnew/dialog_pad_edit.cpp:210
msgid "Pad Type:" msgid "Pad Type:"
msgstr "Type Pad:" msgstr "Type Pad:"
#: pcbnew/dialog_pad_edit.cpp:229 #: pcbnew/dialog_pad_edit.cpp:225
msgid "Layers:" msgid "Layers:"
msgstr "Couches:" msgstr "Couches:"
#: pcbnew/dialog_pad_edit.cpp:233 #: pcbnew/dialog_pad_edit.cpp:229
msgid "Copper layer" msgid "Copper layer"
msgstr "Couches Cuivre" msgstr "Couches Cuivre"
#: pcbnew/dialog_pad_edit.cpp:237 #: pcbnew/dialog_pad_edit.cpp:233
msgid "Comp layer" msgid "Comp layer"
msgstr "Couche Cmp" msgstr "Couche Cmp"
#: pcbnew/dialog_pad_edit.cpp:243 #: pcbnew/dialog_pad_edit.cpp:239
msgid "Adhesive Cmp" msgid "Adhesive Cmp"
msgstr "Adhesive Cmp" msgstr "Adhesive Cmp"
#: pcbnew/dialog_pad_edit.cpp:247 #: pcbnew/dialog_pad_edit.cpp:243
msgid "Adhesive Copper" msgid "Adhesive Copper"
msgstr "Adhesive Cu" msgstr "Adhesive Cu"
#: pcbnew/dialog_pad_edit.cpp:251 #: pcbnew/dialog_pad_edit.cpp:247
msgid "Solder paste Cmp" msgid "Solder paste Cmp"
msgstr "Pate souder Cmp" msgstr "Pate souder Cmp"
#: pcbnew/dialog_pad_edit.cpp:255 #: pcbnew/dialog_pad_edit.cpp:251
msgid "Solder paste Copper" msgid "Solder paste Copper"
msgstr "Pate souder cuivre" msgstr "Pate souder cuivre"
#: pcbnew/dialog_pad_edit.cpp:259 #: pcbnew/dialog_pad_edit.cpp:255
msgid "Silkscreen Cmp" msgid "Silkscreen Cmp"
msgstr "Srigr Cmp" msgstr "Srigr Cmp"
#: pcbnew/dialog_pad_edit.cpp:263 #: pcbnew/dialog_pad_edit.cpp:259
msgid "Silkscreen Copper" msgid "Silkscreen Copper"
msgstr "Srigr Cu " msgstr "Srigr Cu "
#: pcbnew/dialog_pad_edit.cpp:267 #: pcbnew/dialog_pad_edit.cpp:263
msgid "Solder mask Cmp" msgid "Solder mask Cmp"
msgstr "Masque soudure Cmp" msgstr "Masque soudure Cmp"
#: pcbnew/dialog_pad_edit.cpp:271 #: pcbnew/dialog_pad_edit.cpp:267
msgid "Solder mask Copper" msgid "Solder mask Copper"
msgstr "Masque soudure cuivre" msgstr "Masque soudure cuivre"
#: pcbnew/dialog_pad_edit.cpp:275 #: pcbnew/dialog_pad_edit.cpp:271
msgid "E.C.O.1 layer" msgid "E.C.O.1 layer"
msgstr "couche E.C.O.1" msgstr "couche E.C.O.1"
#: pcbnew/dialog_pad_edit.cpp:279 #: pcbnew/dialog_pad_edit.cpp:275
msgid "E.C.O.2 layer" msgid "E.C.O.2 layer"
msgstr "couche E.C.O.2" msgstr "couche E.C.O.2"
#: pcbnew/dialog_pad_edit.cpp:283 #: pcbnew/dialog_pad_edit.cpp:279
msgid "Draft layer" msgid "Draft layer"
msgstr "Couche dessin" msgstr "Couche dessin"
...@@ -3430,7 +3420,7 @@ msgstr "Ouvrir Editeur de modules" ...@@ -3430,7 +3420,7 @@ msgstr "Ouvrir Editeur de modules"
#: pcbnew/dialog_edit_module.cpp:195 #: pcbnew/dialog_edit_module.cpp:195
#: eeschema/fieldedi.cpp:283 #: eeschema/fieldedi.cpp:283
#: eeschema/onrightclick.cpp:334 #: eeschema/onrightclick.cpp:342
#: eeschema/dialog_edit_component_in_lib.cpp:203 #: eeschema/dialog_edit_component_in_lib.cpp:203
#: eeschema/libedpart.cpp:246 #: eeschema/libedpart.cpp:246
msgid "Doc" msgid "Doc"
...@@ -3449,7 +3439,7 @@ msgid "Add Field" ...@@ -3449,7 +3439,7 @@ msgid "Add Field"
msgstr "Ajouter Champ" msgstr "Ajouter Champ"
#: pcbnew/dialog_edit_module.cpp:224 #: pcbnew/dialog_edit_module.cpp:224
#: eeschema/onrightclick.cpp:264 #: eeschema/onrightclick.cpp:265
msgid "Edit Field" msgid "Edit Field"
msgstr "Editer Champ" msgstr "Editer Champ"
...@@ -3470,7 +3460,7 @@ msgstr "Cuivre" ...@@ -3470,7 +3460,7 @@ msgstr "Cuivre"
#: pcbnew/class_text_mod.cpp:359 #: pcbnew/class_text_mod.cpp:359
#: pcbnew/class_pcb_text.cpp:178 #: pcbnew/class_pcb_text.cpp:178
#: pcbnew/class_module.cpp:1139 #: pcbnew/class_module.cpp:1139
#: pcbnew/class_pad.cpp:955 #: pcbnew/class_pad.cpp:949
#: eeschema/affiche.cpp:117 #: eeschema/affiche.cpp:117
#: gerbview/affiche.cpp:49 #: gerbview/affiche.cpp:49
msgid "Orient" msgid "Orient"
...@@ -3737,7 +3727,7 @@ msgstr "Outils" ...@@ -3737,7 +3727,7 @@ msgstr "Outils"
#: pcbnew/gendrill.cpp:400 #: pcbnew/gendrill.cpp:400
#: pcbnew/gendrill.cpp:1009 #: pcbnew/gendrill.cpp:1009
#: pcbnew/gendrill.cpp:1522 #: pcbnew/gendrill.cpp:1522
#: pcbnew/class_pad.cpp:936 #: pcbnew/class_pad.cpp:930
#: pcbnew/class_track.cpp:725 #: pcbnew/class_track.cpp:725
#: pcbnew/class_track.cpp:730 #: pcbnew/class_track.cpp:730
msgid "Drill" msgid "Drill"
...@@ -3772,7 +3762,7 @@ msgstr "Ref." ...@@ -3772,7 +3762,7 @@ msgstr "Ref."
#: pcbnew/class_edge_mod.cpp:286 #: pcbnew/class_edge_mod.cpp:286
#: eeschema/editpart.cpp:776 #: eeschema/editpart.cpp:776
#: eeschema/component_class.cpp:50 #: eeschema/component_class.cpp:50
#: eeschema/onrightclick.cpp:302 #: eeschema/onrightclick.cpp:310
#: eeschema/eelayer.cpp:105 #: eeschema/eelayer.cpp:105
#: eeschema/edit_component_in_schematic.cpp:783 #: eeschema/edit_component_in_schematic.cpp:783
msgid "Value" msgid "Value"
...@@ -3786,21 +3776,21 @@ msgstr "Texte" ...@@ -3786,21 +3776,21 @@ msgstr "Texte"
#: pcbnew/class_text_mod.cpp:326 #: pcbnew/class_text_mod.cpp:326
#: pcbnew/class_edge_mod.cpp:285 #: pcbnew/class_edge_mod.cpp:285
#: pcbnew/class_module.cpp:1142 #: pcbnew/class_module.cpp:1142
#: pcbnew/class_pad.cpp:820 #: pcbnew/class_pad.cpp:818
#: cvpcb/setvisu.cpp:29 #: cvpcb/setvisu.cpp:29
msgid "Module" msgid "Module"
msgstr "Module" msgstr "Module"
#: pcbnew/class_text_mod.cpp:365 #: pcbnew/class_text_mod.cpp:365
#: pcbnew/class_pcb_text.cpp:184 #: pcbnew/class_pcb_text.cpp:184
#: pcbnew/class_pad.cpp:926 #: pcbnew/class_pad.cpp:920
#: gerbview/affiche.cpp:55 #: gerbview/affiche.cpp:55
msgid "H Size" msgid "H Size"
msgstr "Taille H" msgstr "Taille H"
#: pcbnew/class_text_mod.cpp:368 #: pcbnew/class_text_mod.cpp:368
#: pcbnew/class_pcb_text.cpp:187 #: pcbnew/class_pcb_text.cpp:187
#: pcbnew/class_pad.cpp:930 #: pcbnew/class_pad.cpp:924
#: gerbview/affiche.cpp:58 #: gerbview/affiche.cpp:58
msgid "V Size" msgid "V Size"
msgstr "Taille V" msgstr "Taille V"
...@@ -4169,19 +4159,17 @@ msgid "Read options from a selected config file" ...@@ -4169,19 +4159,17 @@ msgid "Read options from a selected config file"
msgstr "Lire options d'un fichier de configuration choisi" msgstr "Lire options d'un fichier de configuration choisi"
#: pcbnew/menubarpcb.cpp:186 #: pcbnew/menubarpcb.cpp:186
#: eeschema/menubar.cpp:150 msgid "Create Pcbnew &Hotkey config file"
msgid "Create Eeschema &Hotkey config file" msgstr "Crer les fichiers configuration des &Hotkeys de Pcbnew"
msgstr "Crer les fichiers configuration des &Hotkeys de Eeschema "
#: pcbnew/menubarpcb.cpp:187 #: pcbnew/menubarpcb.cpp:187
#: eeschema/menubar.cpp:151 #: eeschema/menubar.cpp:151
msgid "Create or Recreate the hotkey config file from current hotkey list" msgid "Create or Recreate the hotkey config file from current hotkey list"
msgstr "Crer ou recrer les fichiers configuration des Hotkeys de Eeschema " msgstr "Crer ou recrer les fichiers configuration des Hotkeys a partir de la liste courante"
#: pcbnew/menubarpcb.cpp:190 #: pcbnew/menubarpcb.cpp:190
#: eeschema/menubar.cpp:154 msgid "Reread &Pcbnew Hotkey config file"
msgid "Reread &Eeschema Hotkey config file" msgstr "Relire les fichiers configuration des Hotkeys de &Pcbnew"
msgstr "Relire les fichiers configuration des Hotkeys de &Eeschema "
#: pcbnew/menubarpcb.cpp:191 #: pcbnew/menubarpcb.cpp:191
#: eeschema/menubar.cpp:155 #: eeschema/menubar.cpp:155
...@@ -4407,27 +4395,27 @@ msgstr "Connect" ...@@ -4407,27 +4395,27 @@ msgstr "Connect"
msgid "NoConn" msgid "NoConn"
msgstr "Non Conn" msgstr "Non Conn"
#: pcbnew/class_pad.cpp:734 #: pcbnew/class_pad.cpp:732
msgid "Unknown Pad shape" msgid "Unknown Pad shape"
msgstr "Forme pad inconnue" msgstr "Forme pad inconnue"
#: pcbnew/class_pad.cpp:823 #: pcbnew/class_pad.cpp:821
msgid "RefP" msgid "RefP"
msgstr "RefP" msgstr "RefP"
#: pcbnew/class_pad.cpp:826 #: pcbnew/class_pad.cpp:824
msgid "Net" msgid "Net"
msgstr "Net" msgstr "Net"
#: pcbnew/class_pad.cpp:944 #: pcbnew/class_pad.cpp:938
msgid "Drill X / Y" msgid "Drill X / Y"
msgstr "Perage X/Y" msgstr "Perage X/Y"
#: pcbnew/class_pad.cpp:959 #: pcbnew/class_pad.cpp:953
msgid "X Pos" msgid "X Pos"
msgstr "X Pos" msgstr "X Pos"
#: pcbnew/class_pad.cpp:963 #: pcbnew/class_pad.cpp:957
msgid "Y pos" msgid "Y pos"
msgstr "Y pos" msgstr "Y pos"
...@@ -4727,95 +4715,95 @@ msgstr " Pads magn ...@@ -4727,95 +4715,95 @@ msgstr " Pads magn
msgid "control the capture of the pcb cursor when the mouse cursor enters a pad area" msgid "control the capture of the pcb cursor when the mouse cursor enters a pad area"
msgstr "Controle la capture du curseur pcb quand le curseuir souris est sur le pad" msgstr "Controle la capture du curseur pcb quand le curseuir souris est sur le pad"
#: pcbnew/tool_modedit.cpp:48 #: pcbnew/tool_modedit.cpp:53
#: eeschema/tool_lib.cpp:119 #: eeschema/tool_lib.cpp:123
msgid "Select working library" msgid "Select working library"
msgstr "Slection de la librairie de travail" msgstr "Slection de la librairie de travail"
#: pcbnew/tool_modedit.cpp:51 #: pcbnew/tool_modedit.cpp:56
msgid "Save Module in working library" msgid "Save Module in working library"
msgstr "Sauver Module en librairie de travail" msgstr "Sauver Module en librairie de travail"
#: pcbnew/tool_modedit.cpp:55 #: pcbnew/tool_modedit.cpp:60
msgid "Create new library and save current module" msgid "Create new library and save current module"
msgstr "Crer une nouvelle librairie et y sauver le composant" msgstr "Crer une nouvelle librairie et y sauver le composant"
#: pcbnew/tool_modedit.cpp:60 #: pcbnew/tool_modedit.cpp:65
#: eeschema/tool_lib.cpp:122 #: eeschema/tool_lib.cpp:126
msgid "Delete part in current library" msgid "Delete part in current library"
msgstr "Supprimer composant en librairie de travail" msgstr "Supprimer composant en librairie de travail"
#: pcbnew/tool_modedit.cpp:69 #: pcbnew/tool_modedit.cpp:74
msgid "Load module from lib" msgid "Load module from lib"
msgstr "Charger un module a partir d'une librairie" msgstr "Charger un module a partir d'une librairie"
#: pcbnew/tool_modedit.cpp:74 #: pcbnew/tool_modedit.cpp:79
msgid "Load module from current board" msgid "Load module from current board"
msgstr "Charger module a partir du C.I." msgstr "Charger module a partir du C.I."
#: pcbnew/tool_modedit.cpp:78 #: pcbnew/tool_modedit.cpp:83
msgid "Update module in current board" msgid "Update module in current board"
msgstr "Remplacer module dans le C.I." msgstr "Remplacer module dans le C.I."
#: pcbnew/tool_modedit.cpp:82 #: pcbnew/tool_modedit.cpp:87
msgid "Insert module into current board" msgid "Insert module into current board"
msgstr "Placer module dans le C.I." msgstr "Placer module dans le C.I."
#: pcbnew/tool_modedit.cpp:87 #: pcbnew/tool_modedit.cpp:92
msgid "import module" msgid "import module"
msgstr "Importer Module" msgstr "Importer Module"
#: pcbnew/tool_modedit.cpp:91 #: pcbnew/tool_modedit.cpp:96
msgid "export module" msgid "export module"
msgstr "Exporter Module" msgstr "Exporter Module"
#: pcbnew/tool_modedit.cpp:96 #: pcbnew/tool_modedit.cpp:101
#: eeschema/tool_sch.cpp:87 #: eeschema/tool_sch.cpp:91
#: eeschema/tool_lib.cpp:147 #: eeschema/tool_lib.cpp:151
msgid "Undo last edition" msgid "Undo last edition"
msgstr "Defait dernire dition" msgstr "Defait dernire dition"
#: pcbnew/tool_modedit.cpp:98 #: pcbnew/tool_modedit.cpp:103
#: eeschema/tool_sch.cpp:89 #: eeschema/tool_sch.cpp:93
#: eeschema/tool_lib.cpp:149 #: eeschema/tool_lib.cpp:153
msgid "Redo the last undo command" msgid "Redo the last undo command"
msgstr "Refait la dernire commande defaite" msgstr "Refait la dernire commande defaite"
#: pcbnew/tool_modedit.cpp:103 #: pcbnew/tool_modedit.cpp:108
msgid "Module Properties" msgid "Module Properties"
msgstr "Proprits du Module" msgstr "Proprits du Module"
#: pcbnew/tool_modedit.cpp:107 #: pcbnew/tool_modedit.cpp:112
msgid "Print Module" msgid "Print Module"
msgstr "Imprimer Module" msgstr "Imprimer Module"
#: pcbnew/tool_modedit.cpp:129 #: pcbnew/tool_modedit.cpp:137
msgid "Module Check" msgid "Module Check"
msgstr "Test module" msgstr "Test module"
#: pcbnew/tool_modedit.cpp:153 #: pcbnew/tool_modedit.cpp:163
msgid "Add Pads" msgid "Add Pads"
msgstr "Addition de \"pins\"" msgstr "Addition de \"pins\""
#: pcbnew/tool_modedit.cpp:234 #: pcbnew/tool_modedit.cpp:245
msgid "Show Texts Sketch" msgid "Show Texts Sketch"
msgstr "Afficher textes en contour" msgstr "Afficher textes en contour"
#: pcbnew/tool_modedit.cpp:241 #: pcbnew/tool_modedit.cpp:252
msgid "Show Edges Sketch" msgid "Show Edges Sketch"
msgstr "Afficher Modules en contour" msgstr "Afficher Modules en contour"
#: pcbnew/tool_modedit.cpp:277 #: pcbnew/tool_modedit.cpp:289
#, c-format #, c-format
msgid "Zoom %d" msgid "Zoom %d"
msgstr "Zoom %d" msgstr "Zoom %d"
#: pcbnew/tool_modedit.cpp:294 #: pcbnew/tool_modedit.cpp:308
#, c-format #, c-format
msgid "Grid %.1f" msgid "Grid %.1f"
msgstr "Grille %.1f" msgstr "Grille %.1f"
#: pcbnew/tool_modedit.cpp:296 #: pcbnew/tool_modedit.cpp:310
#, c-format #, c-format
msgid "Grid %.3f" msgid "Grid %.3f"
msgstr "Grille %.3f" msgstr "Grille %.3f"
...@@ -5050,7 +5038,7 @@ msgid "Rect Delete" ...@@ -5050,7 +5038,7 @@ msgid "Rect Delete"
msgstr "Supprimer Rect" msgstr "Supprimer Rect"
#: eeschema/libedit_onrightclick.cpp:148 #: eeschema/libedit_onrightclick.cpp:148
#: eeschema/onrightclick.cpp:398 #: eeschema/onrightclick.cpp:406
msgid "Move Text" msgid "Move Text"
msgstr "Dplacer Texte" msgstr "Dplacer Texte"
...@@ -5087,7 +5075,7 @@ msgid "Segment Delete" ...@@ -5087,7 +5075,7 @@ msgid "Segment Delete"
msgstr "Supprimer segment" msgstr "Supprimer segment"
#: eeschema/libedit_onrightclick.cpp:192 #: eeschema/libedit_onrightclick.cpp:192
#: eeschema/onrightclick.cpp:262 #: eeschema/onrightclick.cpp:263
msgid "Move Field" msgid "Move Field"
msgstr "Dplace Champ" msgstr "Dplace Champ"
...@@ -5140,7 +5128,7 @@ msgid "Pin Num Size to others" ...@@ -5140,7 +5128,7 @@ msgid "Pin Num Size to others"
msgstr "Change taille Num pin autres pins" msgstr "Change taille Num pin autres pins"
#: eeschema/libedit_onrightclick.cpp:255 #: eeschema/libedit_onrightclick.cpp:255
#: eeschema/onrightclick.cpp:573 #: eeschema/onrightclick.cpp:581
msgid "Win. Zoom (Midd butt drag mouse)" msgid "Win. Zoom (Midd butt drag mouse)"
msgstr "Win. Zoom (Midd butt drag mouse)" msgstr "Win. Zoom (Midd butt drag mouse)"
...@@ -5153,146 +5141,142 @@ msgid "Mirror Block (ctrl + drag mouse)" ...@@ -5153,146 +5141,142 @@ msgid "Mirror Block (ctrl + drag mouse)"
msgstr "Bloc Miroir (ctrl + drag mouse)" msgstr "Bloc Miroir (ctrl + drag mouse)"
#: eeschema/libedit_onrightclick.cpp:268 #: eeschema/libedit_onrightclick.cpp:268
#: eeschema/onrightclick.cpp:588 #: eeschema/onrightclick.cpp:596
msgid "Del. Block (shift+ctrl + drag mouse)" msgid "Del. Block (shift+ctrl + drag mouse)"
msgstr "Effacement Bloc (shift+ctrl + drag mouse)" msgstr "Effacement Bloc (shift+ctrl + drag mouse)"
#: eeschema/hotkeys.cpp:160 #: eeschema/hotkeys.cpp:184
#: eeschema/schedit.cpp:337 #: eeschema/schedit.cpp:337
msgid "Add Component" msgid "Add Component"
msgstr "Ajout Composant" msgstr "Ajout Composant"
#: eeschema/hotkeys.cpp:178 #: eeschema/hotkeys.cpp:206
#: eeschema/schedit.cpp:289 #: eeschema/schedit.cpp:289
msgid "Add Wire" msgid "Add Wire"
msgstr "Ajouter Fils" msgstr "Ajouter Fils"
#: eeschema/tool_sch.cpp:51 #: eeschema/tool_sch.cpp:55
msgid "New schematic project" msgid "New schematic project"
msgstr "Nouveau Projet schmatique" msgstr "Nouveau Projet schmatique"
#: eeschema/tool_sch.cpp:54 #: eeschema/tool_sch.cpp:58
msgid "Open schematic project" msgid "Open schematic project"
msgstr "Ouvrir un Projet schmatique" msgstr "Ouvrir un Projet schmatique"
#: eeschema/tool_sch.cpp:57 #: eeschema/tool_sch.cpp:61
msgid "Save schematic project" msgid "Save schematic project"
msgstr "Sauver le Projet schmatique" msgstr "Sauver le Projet schmatique"
#: eeschema/tool_sch.cpp:65 #: eeschema/tool_sch.cpp:69
msgid "go to library editor" msgid "go to library editor"
msgstr "Appel de l'editeur de librairies et de composants" msgstr "Appel de l'editeur de librairies et de composants"
#: eeschema/tool_sch.cpp:68 #: eeschema/tool_sch.cpp:72
msgid "go to library browse" msgid "go to library browse"
msgstr "Appel du visualisateur des contenus de librairies" msgstr "Appel du visualisateur des contenus de librairies"
#: eeschema/tool_sch.cpp:72 #: eeschema/tool_sch.cpp:76
msgid "Schematic Hierarchy Navigator" msgid "Schematic Hierarchy Navigator"
msgstr "Navigation dans la hierarchie" msgstr "Navigation dans la hierarchie"
#: eeschema/tool_sch.cpp:93 #: eeschema/tool_sch.cpp:97
msgid "Print schematic" msgid "Print schematic"
msgstr "Impression des feuilles de schma" msgstr "Impression des feuilles de schma"
#: eeschema/tool_sch.cpp:97 #: eeschema/tool_sch.cpp:101
msgid "Run Cvpcb" msgid "Run Cvpcb"
msgstr "Appel de CvPcb (Gestion des associations composants/module)" msgstr "Appel de CvPcb (Gestion des associations composants/module)"
#: eeschema/tool_sch.cpp:100 #: eeschema/tool_sch.cpp:104
msgid "Run Pcbnew" msgid "Run Pcbnew"
msgstr "Appel de Pcbnew (Editeur de Circuits Imprims)" msgstr "Appel de Pcbnew (Editeur de Circuits Imprims)"
#: eeschema/tool_sch.cpp:117 #: eeschema/tool_sch.cpp:128
msgid "Find components and texts"
msgstr "Recherche de composants et textes"
#: eeschema/tool_sch.cpp:121
msgid "Netlist generation" msgid "Netlist generation"
msgstr "Gnration de la netliste" msgstr "Gnration de la netliste"
#: eeschema/tool_sch.cpp:124 #: eeschema/tool_sch.cpp:131
msgid "Schematic Annotation" msgid "Schematic Annotation"
msgstr "Annotation des composants" msgstr "Annotation des composants"
#: eeschema/tool_sch.cpp:127 #: eeschema/tool_sch.cpp:134
msgid "Schematic Electric Rules Check" msgid "Schematic Electric Rules Check"
msgstr "Controle des regles lectriques" msgstr "Controle des regles lectriques"
#: eeschema/tool_sch.cpp:130 #: eeschema/tool_sch.cpp:137
msgid "Bill of material and/or Crossreferences" msgid "Bill of material and/or Crossreferences"
msgstr "Liste des composants et rfrences croises" msgstr "Liste des composants et rfrences croises"
#: eeschema/tool_sch.cpp:155 #: eeschema/tool_sch.cpp:164
msgid "Hierarchy Push/Pop" msgid "Hierarchy Push/Pop"
msgstr "Navigation dans la hierarchie" msgstr "Navigation dans la hierarchie"
#: eeschema/tool_sch.cpp:160 #: eeschema/tool_sch.cpp:169
msgid "Add components" msgid "Add components"
msgstr "Ajouter composants" msgstr "Ajouter composants"
#: eeschema/tool_sch.cpp:164 #: eeschema/tool_sch.cpp:173
msgid "Add powers" msgid "Add powers"
msgstr "Add Alims" msgstr "Add Alims"
#: eeschema/tool_sch.cpp:169 #: eeschema/tool_sch.cpp:178
msgid "Add wires" msgid "Add wires"
msgstr "Addition de fils de connexion" msgstr "Addition de fils de connexion"
#: eeschema/tool_sch.cpp:173 #: eeschema/tool_sch.cpp:182
msgid "Add bus" msgid "Add bus"
msgstr "Addition de Bus" msgstr "Addition de Bus"
#: eeschema/tool_sch.cpp:177 #: eeschema/tool_sch.cpp:186
msgid "Add wire to bus entry" msgid "Add wire to bus entry"
msgstr "Addition d'entres de bus (type fil vers bus)" msgstr "Addition d'entres de bus (type fil vers bus)"
#: eeschema/tool_sch.cpp:181 #: eeschema/tool_sch.cpp:190
msgid "Add bus to bus entry" msgid "Add bus to bus entry"
msgstr "Addition d'entres de bus (type bus vers bus)" msgstr "Addition d'entres de bus (type bus vers bus)"
#: eeschema/tool_sch.cpp:186 #: eeschema/tool_sch.cpp:195
msgid "Add no connect flag" msgid "Add no connect flag"
msgstr "Addition de symboles de non connexion" msgstr "Addition de symboles de non connexion"
#: eeschema/tool_sch.cpp:190 #: eeschema/tool_sch.cpp:199
msgid "Add wire or bus label" msgid "Add wire or bus label"
msgstr "Addition de labels sur fils ou bus" msgstr "Addition de labels sur fils ou bus"
#: eeschema/tool_sch.cpp:194 #: eeschema/tool_sch.cpp:203
#: eeschema/onrightclick.cpp:477 #: eeschema/onrightclick.cpp:485
#: eeschema/onrightclick.cpp:509 #: eeschema/onrightclick.cpp:517
msgid "Add global label" msgid "Add global label"
msgstr "Addition de labels globaux" msgstr "Addition de labels globaux"
#: eeschema/tool_sch.cpp:198 #: eeschema/tool_sch.cpp:207
#: eeschema/onrightclick.cpp:471 #: eeschema/onrightclick.cpp:479
#: eeschema/onrightclick.cpp:503 #: eeschema/onrightclick.cpp:511
msgid "Add junction" msgid "Add junction"
msgstr "Addition de jonctions" msgstr "Addition de jonctions"
#: eeschema/tool_sch.cpp:203 #: eeschema/tool_sch.cpp:212
msgid "Add hierarchical symbol (sheet)" msgid "Add hierarchical symbol (sheet)"
msgstr "Addition d'un symbole de feuille de hirarchie" msgstr "Addition d'un symbole de feuille de hirarchie"
#: eeschema/tool_sch.cpp:207 #: eeschema/tool_sch.cpp:216
msgid "import glabel from sheet & create pinsheet" msgid "import glabel from sheet & create pinsheet"
msgstr "Importation de labels globaux et cration des pins correspondantes" msgstr "Importation de labels globaux et cration des pins correspondantes"
#: eeschema/tool_sch.cpp:211 #: eeschema/tool_sch.cpp:220
msgid "Add hierachical pin to sheet" msgid "Add hierachical pin to sheet"
msgstr "Addition de pins de hierarchie dans les symboles de hierarchie" msgstr "Addition de pins de hierarchie dans les symboles de hierarchie"
#: eeschema/tool_sch.cpp:220 #: eeschema/tool_sch.cpp:229
msgid "Add graphic text (comment)" msgid "Add graphic text (comment)"
msgstr "Addition de textes graphiques (commentaires)" msgstr "Addition de textes graphiques (commentaires)"
#: eeschema/tool_sch.cpp:263 #: eeschema/tool_sch.cpp:273
#: eeschema/schframe.cpp:275 #: eeschema/schframe.cpp:275
msgid "Show Hidden Pins" msgid "Show Hidden Pins"
msgstr "Force affichage des pins invisibles" msgstr "Force affichage des pins invisibles"
#: eeschema/tool_sch.cpp:268 #: eeschema/tool_sch.cpp:278
msgid "HV orientation for Wires and Bus" msgid "HV orientation for Wires and Bus"
msgstr "Force direction H, V et X pour les fils et bus" msgstr "Force direction H, V et X pour les fils et bus"
...@@ -5320,99 +5304,99 @@ msgstr "Commun aux Unit ...@@ -5320,99 +5304,99 @@ msgstr "Commun aux Unit
msgid "Common to convert" msgid "Common to convert"
msgstr "Commun a converti" msgstr "Commun a converti"
#: eeschema/tool_lib.cpp:47 #: eeschema/tool_lib.cpp:48
msgid "deselect current tool" msgid "deselect current tool"
msgstr "Dslection outil courant" msgstr "Dslection outil courant"
#: eeschema/tool_lib.cpp:53 #: eeschema/tool_lib.cpp:54
msgid "Add Pins" msgid "Add Pins"
msgstr "Addition de \"pins\"" msgstr "Addition de \"pins\""
#: eeschema/tool_lib.cpp:57 #: eeschema/tool_lib.cpp:58
msgid "Add graphic text" msgid "Add graphic text"
msgstr "Addition de textes graphiques (commentaires)" msgstr "Addition de textes graphiques (commentaires)"
#: eeschema/tool_lib.cpp:61 #: eeschema/tool_lib.cpp:62
msgid "Add rectangles" msgid "Add rectangles"
msgstr "Addition de rectangles" msgstr "Addition de rectangles"
#: eeschema/tool_lib.cpp:65 #: eeschema/tool_lib.cpp:66
msgid "Add circles" msgid "Add circles"
msgstr "Addition de cercles" msgstr "Addition de cercles"
#: eeschema/tool_lib.cpp:69 #: eeschema/tool_lib.cpp:70
msgid "Add arcs" msgid "Add arcs"
msgstr "Addition d'arc" msgstr "Addition d'arc"
#: eeschema/tool_lib.cpp:73 #: eeschema/tool_lib.cpp:74
msgid "Add lines and polygons" msgid "Add lines and polygons"
msgstr "Addition de lignes ou polygones graphiques" msgstr "Addition de lignes ou polygones graphiques"
#: eeschema/tool_lib.cpp:78 #: eeschema/tool_lib.cpp:79
msgid "Move part anchor" msgid "Move part anchor"
msgstr "Positionner l'ancre du composant" msgstr "Positionner l'ancre du composant"
#: eeschema/tool_lib.cpp:83 #: eeschema/tool_lib.cpp:84
msgid "Import existing drawings" msgid "Import existing drawings"
msgstr "Importer des dessins existants" msgstr "Importer des dessins existants"
#: eeschema/tool_lib.cpp:87 #: eeschema/tool_lib.cpp:88
msgid "Export current drawing" msgid "Export current drawing"
msgstr "Exporter le dessin en cours" msgstr "Exporter le dessin en cours"
#: eeschema/tool_lib.cpp:116 #: eeschema/tool_lib.cpp:120
msgid "Save current loaded library on disk (file update)" msgid "Save current loaded library on disk (file update)"
msgstr "Sauver librairie charge courante sur disque (mise jour du fichier)" msgstr "Sauver librairie charge courante sur disque (mise jour du fichier)"
#: eeschema/tool_lib.cpp:126 #: eeschema/tool_lib.cpp:130
msgid "New part" msgid "New part"
msgstr "Nouveau composant" msgstr "Nouveau composant"
#: eeschema/tool_lib.cpp:129 #: eeschema/tool_lib.cpp:133
msgid "Select part to edit" msgid "Select part to edit"
msgstr "Slectionner le composant a diter" msgstr "Slectionner le composant a diter"
#: eeschema/tool_lib.cpp:133 #: eeschema/tool_lib.cpp:137
msgid "Save current part into current loaded library (in memory)" msgid "Save current part into current loaded library (in memory)"
msgstr "Sauver le composant courant en librairie courante (en mmoire)" msgstr "Sauver le composant courant en librairie courante (en mmoire)"
#: eeschema/tool_lib.cpp:136 #: eeschema/tool_lib.cpp:140
msgid "import part" msgid "import part"
msgstr "Importer un composant" msgstr "Importer un composant"
#: eeschema/tool_lib.cpp:139 #: eeschema/tool_lib.cpp:143
msgid "export part" msgid "export part"
msgstr "Exporter un composant" msgstr "Exporter un composant"
#: eeschema/tool_lib.cpp:143 #: eeschema/tool_lib.cpp:147
msgid "Create a new library an save current part into" msgid "Create a new library an save current part into"
msgstr "Crer une nouvelle librairie et y sauver le composant" msgstr "Crer une nouvelle librairie et y sauver le composant"
#: eeschema/tool_lib.cpp:156 #: eeschema/tool_lib.cpp:160
msgid "Edit Part Properties" msgid "Edit Part Properties"
msgstr "Editer les proprits du composant" msgstr "Editer les proprits du composant"
#: eeschema/tool_lib.cpp:163 #: eeschema/tool_lib.cpp:167
msgid "Test duplicate pins" msgid "Test duplicate pins"
msgstr "Test duplicate pins" msgstr "Test duplicate pins"
#: eeschema/tool_lib.cpp:187 #: eeschema/tool_lib.cpp:189
msgid "show as \"De Morgan\" normal part" msgid "show as \"De Morgan\" normal part"
msgstr "Afficher sous reprsentation normale" msgstr "Afficher sous reprsentation normale"
#: eeschema/tool_lib.cpp:193 #: eeschema/tool_lib.cpp:195
msgid "show as \"De Morgan\" convert part" msgid "show as \"De Morgan\" convert part"
msgstr "Afficher sous prsentation \" De Morgan\"" msgstr "Afficher sous prsentation \" De Morgan\""
#: eeschema/tool_lib.cpp:202 #: eeschema/tool_lib.cpp:204
msgid "Documents" msgid "Documents"
msgstr "Documents" msgstr "Documents"
#: eeschema/tool_lib.cpp:219 #: eeschema/tool_lib.cpp:221
msgid "Edit pins part per part (Carefully use!)" msgid "Edit pins part per part (Carefully use!)"
msgstr "Editer pins unit par unit (Utiliser en connaissance de cause)" msgstr "Editer pins unit par unit (Utiliser en connaissance de cause)"
#: eeschema/tool_lib.cpp:240 #: eeschema/tool_lib.cpp:241
#: eeschema/tool_viewlib.cpp:131 #: eeschema/tool_viewlib.cpp:131
#, c-format #, c-format
msgid "Part %c" msgid "Part %c"
...@@ -5853,7 +5837,7 @@ msgstr "Le composant %s existe, Le changer ?" ...@@ -5853,7 +5837,7 @@ msgstr "Le composant %s existe, Le changer ?"
msgid "Component %s saved in %s" msgid "Component %s saved in %s"
msgstr "Composant %s sauv en %s" msgstr "Composant %s sauv en %s"
#: eeschema/eeschema.cpp:56 #: eeschema/eeschema.cpp:57
msgid "Eeschema is already running, Continue?" msgid "Eeschema is already running, Continue?"
msgstr "Eeschema est est cours d'excution. Continuer ?" msgstr "Eeschema est est cours d'excution. Continuer ?"
...@@ -5932,7 +5916,7 @@ msgid "Pos" ...@@ -5932,7 +5916,7 @@ msgid "Pos"
msgstr "Pos" msgstr "Pos"
#: eeschema/editpart.cpp:293 #: eeschema/editpart.cpp:293
#: eeschema/onrightclick.cpp:319 #: eeschema/onrightclick.cpp:327
#: eeschema/affiche.cpp:172 #: eeschema/affiche.cpp:172
msgid "Unit" msgid "Unit"
msgstr "Unit" msgstr "Unit"
...@@ -5948,6 +5932,7 @@ msgid "Orient:" ...@@ -5948,6 +5932,7 @@ msgid "Orient:"
msgstr "Orient:" msgstr "Orient:"
#: eeschema/editpart.cpp:323 #: eeschema/editpart.cpp:323
#: eeschema/onrightclick.cpp:295
#: eeschema/dialog_edit_component_in_schematic.cpp:183 #: eeschema/dialog_edit_component_in_schematic.cpp:183
msgid "Mirror --" msgid "Mirror --"
msgstr "Miroir--" msgstr "Miroir--"
...@@ -5962,7 +5947,7 @@ msgid "Mirror:" ...@@ -5962,7 +5947,7 @@ msgid "Mirror:"
msgstr "Miroir:" msgstr "Miroir:"
#: eeschema/editpart.cpp:336 #: eeschema/editpart.cpp:336
#: eeschema/onrightclick.cpp:306 #: eeschema/onrightclick.cpp:314
#: eeschema/affiche.cpp:182 #: eeschema/affiche.cpp:182
#: eeschema/dialog_edit_component_in_schematic.cpp:193 #: eeschema/dialog_edit_component_in_schematic.cpp:193
msgid "Convert" msgid "Convert"
...@@ -6093,253 +6078,245 @@ msgstr " Convert" ...@@ -6093,253 +6078,245 @@ msgstr " Convert"
msgid " Normal" msgid " Normal"
msgstr " Normal" msgstr " Normal"
#: eeschema/onrightclick.cpp:139 #: eeschema/onrightclick.cpp:140
msgid "Leave Sheet" msgid "Leave Sheet"
msgstr "Quitter sous-feuille" msgstr "Quitter sous-feuille"
#: eeschema/onrightclick.cpp:155 #: eeschema/onrightclick.cpp:156
msgid "delete noconn" msgid "delete noconn"
msgstr "Supprimer non connexion" msgstr "Supprimer non connexion"
#: eeschema/onrightclick.cpp:165 #: eeschema/onrightclick.cpp:166
msgid "Move bus entry" msgid "Move bus entry"
msgstr "Dplacer entre de bus" msgstr "Dplacer entre de bus"
#: eeschema/onrightclick.cpp:167 #: eeschema/onrightclick.cpp:168
msgid "set bus entry /" msgid "set bus entry /"
msgstr "Entre de bus /" msgstr "Entre de bus /"
#: eeschema/onrightclick.cpp:169 #: eeschema/onrightclick.cpp:170
msgid "set bus entry \\" msgid "set bus entry \\"
msgstr "Entre de bus \\" msgstr "Entre de bus \\"
#: eeschema/onrightclick.cpp:171 #: eeschema/onrightclick.cpp:172
msgid "delete bus entry" msgid "delete bus entry"
msgstr "Supprimer entre de bus" msgstr "Supprimer entre de bus"
#: eeschema/onrightclick.cpp:175 #: eeschema/onrightclick.cpp:176
msgid "delete Marker" msgid "delete Marker"
msgstr "Supprimer Marqueur" msgstr "Supprimer Marqueur"
#: eeschema/onrightclick.cpp:225 #: eeschema/onrightclick.cpp:226
msgid "End drawing" msgid "End drawing"
msgstr "Fin trac" msgstr "Fin trac"
#: eeschema/onrightclick.cpp:227 #: eeschema/onrightclick.cpp:228
msgid "Delete drawing" msgid "Delete drawing"
msgstr "Supprimer Trac" msgstr "Supprimer Trac"
#: eeschema/onrightclick.cpp:263 #: eeschema/onrightclick.cpp:264
msgid "Rotate Field" msgid "Rotate Field"
msgstr "Rotation Champ" msgstr "Rotation Champ"
#: eeschema/onrightclick.cpp:282 #: eeschema/onrightclick.cpp:284
msgid "Move Component (M)" msgid "Move Component"
msgstr "Dplace Composant \t(M)" msgstr "Dplace Composant"
#: eeschema/onrightclick.cpp:288
msgid "Rotate + (R)"
msgstr "Rotation + (R)"
#: eeschema/onrightclick.cpp:290
msgid "Mirror -- (X)"
msgstr "Miroir-- (X)"
#: eeschema/onrightclick.cpp:291 #: eeschema/onrightclick.cpp:291
msgid "Mirror || (Y)" msgid "Rotate +"
msgstr "Miroir || (Y)" msgstr "Rotation +"
#: eeschema/onrightclick.cpp:292 #: eeschema/onrightclick.cpp:297
msgid "Normal (N)" msgid "Mirror ||"
msgstr "Normal (N)" msgstr "Miroir ||"
#: eeschema/onrightclick.cpp:295 #: eeschema/onrightclick.cpp:303
msgid "Orient Component" msgid "Orient Component"
msgstr "Oriente Composant" msgstr "Oriente Composant"
#: eeschema/onrightclick.cpp:313 #: eeschema/onrightclick.cpp:321
#, c-format #, c-format
msgid "Unit %d %c" msgid "Unit %d %c"
msgstr "Unit %d %c" msgstr "Unit %d %c"
#: eeschema/onrightclick.cpp:324 #: eeschema/onrightclick.cpp:332
msgid "Edit Component" msgid "Edit Component"
msgstr "Edite Composant" msgstr "Edite Composant"
#: eeschema/onrightclick.cpp:328 #: eeschema/onrightclick.cpp:336
msgid "Copy Component" msgid "Copy Component"
msgstr "Copie composant" msgstr "Copie composant"
#: eeschema/onrightclick.cpp:329 #: eeschema/onrightclick.cpp:337
msgid "Delete Component" msgid "Delete Component"
msgstr "Supprime Composant" msgstr "Supprime Composant"
#: eeschema/onrightclick.cpp:348 #: eeschema/onrightclick.cpp:356
msgid "Move Glabel" msgid "Move Glabel"
msgstr "Dplace Label Global" msgstr "Dplace Label Global"
#: eeschema/onrightclick.cpp:349 #: eeschema/onrightclick.cpp:357
msgid "Rotate GLabel (R)" msgid "Rotate GLabel (R)"
msgstr "Rot. Label Global (R)" msgstr "Rot. Label Global (R)"
#: eeschema/onrightclick.cpp:350 #: eeschema/onrightclick.cpp:358
msgid "Edit GLabel" msgid "Edit GLabel"
msgstr "Editer Label Global" msgstr "Editer Label Global"
#: eeschema/onrightclick.cpp:351 #: eeschema/onrightclick.cpp:359
msgid "Delete Glabel" msgid "Delete Glabel"
msgstr "Supprimer Label Global" msgstr "Supprimer Label Global"
#: eeschema/onrightclick.cpp:355 #: eeschema/onrightclick.cpp:363
#: eeschema/onrightclick.cpp:405 #: eeschema/onrightclick.cpp:413
msgid "Change to Label" msgid "Change to Label"
msgstr "Change en Label" msgstr "Change en Label"
#: eeschema/onrightclick.cpp:357 #: eeschema/onrightclick.cpp:365
#: eeschema/onrightclick.cpp:382 #: eeschema/onrightclick.cpp:390
msgid "Change to Text" msgid "Change to Text"
msgstr "Change en Texte" msgstr "Change en Texte"
#: eeschema/onrightclick.cpp:359 #: eeschema/onrightclick.cpp:367
#: eeschema/onrightclick.cpp:384 #: eeschema/onrightclick.cpp:392
#: eeschema/onrightclick.cpp:409 #: eeschema/onrightclick.cpp:417
msgid "Change Type" msgid "Change Type"
msgstr "Change Type" msgstr "Change Type"
#: eeschema/onrightclick.cpp:373 #: eeschema/onrightclick.cpp:381
msgid "Move Label" msgid "Move Label"
msgstr "Dplace Label" msgstr "Dplace Label"
#: eeschema/onrightclick.cpp:374 #: eeschema/onrightclick.cpp:382
msgid "Rotate Label (R)" msgid "Rotate Label (R)"
msgstr "Rot. Label (R)" msgstr "Rot. Label (R)"
#: eeschema/onrightclick.cpp:375 #: eeschema/onrightclick.cpp:383
msgid "Edit Label" msgid "Edit Label"
msgstr "Editer Label" msgstr "Editer Label"
#: eeschema/onrightclick.cpp:376 #: eeschema/onrightclick.cpp:384
msgid "Delete Label" msgid "Delete Label"
msgstr "Supprimer Label:" msgstr "Supprimer Label:"
#: eeschema/onrightclick.cpp:380 #: eeschema/onrightclick.cpp:388
#: eeschema/onrightclick.cpp:407 #: eeschema/onrightclick.cpp:415
msgid "Change to Glabel" msgid "Change to Glabel"
msgstr "Change en Label Global" msgstr "Change en Label Global"
#: eeschema/onrightclick.cpp:399 #: eeschema/onrightclick.cpp:407
msgid "Rotate Text (R)" msgid "Rotate Text (R)"
msgstr "Rot. Texte (R)" msgstr "Rot. Texte (R)"
#: eeschema/onrightclick.cpp:400 #: eeschema/onrightclick.cpp:408
msgid "Edit Text" msgid "Edit Text"
msgstr "Editer Texte" msgstr "Editer Texte"
#: eeschema/onrightclick.cpp:401 #: eeschema/onrightclick.cpp:409
msgid "Delete Text" msgid "Delete Text"
msgstr "Supprimer Texte" msgstr "Supprimer Texte"
#: eeschema/onrightclick.cpp:427 #: eeschema/onrightclick.cpp:435
#: eeschema/onrightclick.cpp:467 #: eeschema/onrightclick.cpp:475
msgid "Break Wire" msgid "Break Wire"
msgstr "Briser fil" msgstr "Briser fil"
#: eeschema/onrightclick.cpp:430 #: eeschema/onrightclick.cpp:438
msgid "delete junction" msgid "delete junction"
msgstr "Supprimer jonction" msgstr "Supprimer jonction"
#: eeschema/onrightclick.cpp:435 #: eeschema/onrightclick.cpp:443
#: eeschema/onrightclick.cpp:461 #: eeschema/onrightclick.cpp:469
msgid "Delete node" msgid "Delete node"
msgstr "Supprimer Noeud" msgstr "Supprimer Noeud"
#: eeschema/onrightclick.cpp:437 #: eeschema/onrightclick.cpp:445
#: eeschema/onrightclick.cpp:463 #: eeschema/onrightclick.cpp:471
msgid "Delete connection" msgid "Delete connection"
msgstr "Supprimer connexion" msgstr "Supprimer connexion"
#: eeschema/onrightclick.cpp:454 #: eeschema/onrightclick.cpp:462
msgid "End Wire" msgid "End Wire"
msgstr "Fin Fil" msgstr "Fin Fil"
#: eeschema/onrightclick.cpp:456 #: eeschema/onrightclick.cpp:464
msgid "Delete Wire" msgid "Delete Wire"
msgstr "Supprimer Fil" msgstr "Supprimer Fil"
#: eeschema/onrightclick.cpp:472 #: eeschema/onrightclick.cpp:480
#: eeschema/onrightclick.cpp:504 #: eeschema/onrightclick.cpp:512
msgid "Add label" msgid "Add label"
msgstr "Ajout Label" msgstr "Ajout Label"
#: eeschema/onrightclick.cpp:493 #: eeschema/onrightclick.cpp:501
msgid "End Bus" msgid "End Bus"
msgstr "Fin Bus" msgstr "Fin Bus"
#: eeschema/onrightclick.cpp:496 #: eeschema/onrightclick.cpp:504
msgid "Delete Bus" msgid "Delete Bus"
msgstr "Supprimer Bus" msgstr "Supprimer Bus"
#: eeschema/onrightclick.cpp:500 #: eeschema/onrightclick.cpp:508
msgid "Break Bus" msgid "Break Bus"
msgstr "Briser Bus" msgstr "Briser Bus"
#: eeschema/onrightclick.cpp:522 #: eeschema/onrightclick.cpp:530
msgid "Enter Sheet" msgid "Enter Sheet"
msgstr "Enter dans Feuille" msgstr "Enter dans Feuille"
#: eeschema/onrightclick.cpp:524 #: eeschema/onrightclick.cpp:532
msgid "Move Sheet" msgid "Move Sheet"
msgstr "Dplace Feuille" msgstr "Dplace Feuille"
#: eeschema/onrightclick.cpp:529 #: eeschema/onrightclick.cpp:537
msgid "Place Sheet" msgid "Place Sheet"
msgstr "Place Feuille" msgstr "Place Feuille"
#: eeschema/onrightclick.cpp:533 #: eeschema/onrightclick.cpp:541
msgid "Edit Sheet" msgid "Edit Sheet"
msgstr "Edite Feuille" msgstr "Edite Feuille"
#: eeschema/onrightclick.cpp:534 #: eeschema/onrightclick.cpp:542
msgid "Resize Sheet" msgid "Resize Sheet"
msgstr "Redimensionne feuille" msgstr "Redimensionne feuille"
#: eeschema/onrightclick.cpp:537 #: eeschema/onrightclick.cpp:545
msgid "Cleanup PinSheets" msgid "Cleanup PinSheets"
msgstr "Nettoyage de la feuille" msgstr "Nettoyage de la feuille"
#: eeschema/onrightclick.cpp:538 #: eeschema/onrightclick.cpp:546
msgid "Delete Sheet" msgid "Delete Sheet"
msgstr "Supprimer Feuille" msgstr "Supprimer Feuille"
#: eeschema/onrightclick.cpp:551 #: eeschema/onrightclick.cpp:559
msgid "Move PinSheet" msgid "Move PinSheet"
msgstr "Dplace Connecteur de hirarchie" msgstr "Dplace Connecteur de hirarchie"
#: eeschema/onrightclick.cpp:553 #: eeschema/onrightclick.cpp:561
msgid "Edit PinSheet" msgid "Edit PinSheet"
msgstr "Edit Connecteur de hirarchie" msgstr "Edit Connecteur de hirarchie"
#: eeschema/onrightclick.cpp:556 #: eeschema/onrightclick.cpp:564
msgid "Delete PinSheet" msgid "Delete PinSheet"
msgstr "Supprimer Connecteur de hirarchie" msgstr "Supprimer Connecteur de hirarchie"
#: eeschema/onrightclick.cpp:581 #: eeschema/onrightclick.cpp:589
msgid "Other block commands" msgid "Other block commands"
msgstr "Autres commandes de bloc" msgstr "Autres commandes de bloc"
#: eeschema/onrightclick.cpp:582 #: eeschema/onrightclick.cpp:590
msgid "Save Block" msgid "Save Block"
msgstr "Sauver Bloc" msgstr "Sauver Bloc"
#: eeschema/onrightclick.cpp:586 #: eeschema/onrightclick.cpp:594
msgid "Drag Block (ctrl + drag mouse)" msgid "Drag Block (ctrl + drag mouse)"
msgstr "Drag Bloc (ctrl + drag mouse)" msgstr "Drag Bloc (ctrl + drag mouse)"
#: eeschema/onrightclick.cpp:590 #: eeschema/onrightclick.cpp:598
msgid "Mirror Block ||" msgid "Mirror Block ||"
msgstr "Miroir Bloc ||" msgstr "Miroir Bloc ||"
#: eeschema/onrightclick.cpp:594 #: eeschema/onrightclick.cpp:602
msgid "Copy to Clipboard" msgid "Copy to Clipboard"
msgstr "Copie dans Presse papier" msgstr "Copie dans Presse papier"
...@@ -6741,6 +6718,27 @@ msgstr "Afficher composant pr ...@@ -6741,6 +6718,27 @@ msgstr "Afficher composant pr
msgid "Display next part" msgid "Display next part"
msgstr "Afficher composant suivant" msgstr "Afficher composant suivant"
#: eeschema/tool_viewlib.cpp:70
#: cvpcb/displayframe.cpp:118
#: gerbview/tool_gerber.cpp:260
#: 3d-viewer/3d_toolbar.cpp:43
msgid "zoom + (F1)"
msgstr "zoom + (F1)"
#: eeschema/tool_viewlib.cpp:74
#: cvpcb/displayframe.cpp:121
#: gerbview/tool_gerber.cpp:266
#: 3d-viewer/3d_toolbar.cpp:46
msgid "zoom - (F2)"
msgstr "zoom - (F2)"
#: eeschema/tool_viewlib.cpp:78
#: cvpcb/displayframe.cpp:124
#: gerbview/tool_gerber.cpp:272
#: 3d-viewer/3d_toolbar.cpp:49
msgid "redraw (F3)"
msgstr "Redessin (F3)"
#: eeschema/tool_viewlib.cpp:82 #: eeschema/tool_viewlib.cpp:82
#: cvpcb/displayframe.cpp:127 #: cvpcb/displayframe.cpp:127
#: cvpcb/displayframe.cpp:131 #: cvpcb/displayframe.cpp:131
...@@ -8011,6 +8009,14 @@ msgstr "&Sauver Eeschema Options" ...@@ -8011,6 +8009,14 @@ msgstr "&Sauver Eeschema Options"
msgid "Save options in <project>.pro" msgid "Save options in <project>.pro"
msgstr "Sauver les options en <projet>.pro" msgstr "Sauver les options en <projet>.pro"
#: eeschema/menubar.cpp:150
msgid "Create Eeschema &Hotkey config file"
msgstr "Crer les fichiers configuration des &Hotkeys de Eeschema "
#: eeschema/menubar.cpp:154
msgid "Reread &Eeschema Hotkey config file"
msgstr "Relire les fichiers configuration des Hotkeys de &Eeschema "
#: eeschema/menubar.cpp:162 #: eeschema/menubar.cpp:162
msgid "Open the eeschema manual" msgid "Open the eeschema manual"
msgstr "Ouvrir la documentation de eeschema" msgstr "Ouvrir la documentation de eeschema"
...@@ -9411,7 +9417,7 @@ msgstr "Contour Pcb" ...@@ -9411,7 +9417,7 @@ msgstr "Contour Pcb"
msgid "--- " msgid "--- "
msgstr "--- " msgstr "--- "
#: common/hotkeys_basic.cpp:191 #: common/hotkeys_basic.cpp:262
msgid "" msgid ""
"Current hotkey list:\n" "Current hotkey list:\n"
"\n" "\n"
...@@ -9419,20 +9425,20 @@ msgstr "" ...@@ -9419,20 +9425,20 @@ msgstr ""
"Liste des Hotkeys courantes:\n" "Liste des Hotkeys courantes:\n"
"\n" "\n"
#: common/hotkeys_basic.cpp:195 #: common/hotkeys_basic.cpp:267
msgid "key " msgid "key "
msgstr "touche: " msgstr "touche: "
#: common/hotkeys_basic.cpp:243 #: common/hotkeys_basic.cpp:322
#: common/hotkeys_basic.cpp:336 #: common/hotkeys_basic.cpp:424
msgid "Hotkey configuration file:" msgid "Hotkey configuration file:"
msgstr "Fichier configuration des Hotkeys:" msgstr "Fichier configuration des Hotkeys:"
#: common/hotkeys_basic.cpp:274 #: common/hotkeys_basic.cpp:354
msgid "Allowed keys:\n" msgid "Allowed keys:\n"
msgstr "Touches autorises:\n" msgstr "Touches autorises:\n"
#: common/hotkeys_basic.cpp:354 #: common/hotkeys_basic.cpp:443
msgid "Unable to read " msgid "Unable to read "
msgstr "Impossible de lire " msgstr "Impossible de lire "
...@@ -9894,7 +9900,7 @@ msgstr "Propri ...@@ -9894,7 +9900,7 @@ msgstr "Propri
msgid "Fill Zones Options" msgid "Fill Zones Options"
msgstr "Options de remplissage de Zone" msgstr "Options de remplissage de Zone"
#: pcbnew/dialog_pad_edit.h:44 #: pcbnew/dialog_pad_edit.h:62
msgid "Pad properties" msgid "Pad properties"
msgstr "Proprits des Pads" msgstr "Proprits des Pads"
......
...@@ -25,16 +25,16 @@ ...@@ -25,16 +25,16 @@
/* classe D_PAD : constructeur */ /* classe D_PAD : constructeur */
/*******************************/ /*******************************/
D_PAD::D_PAD( MODULE* parent ) : D_PAD::D_PAD( MODULE* parent ) :
BOARD_ITEM( parent, TYPEPAD ) BOARD_ITEM( parent, TYPEPAD )
{ {
m_NumPadName = 0; m_NumPadName = 0;
m_Masque_Layer = CUIVRE_LAYER; m_Masque_Layer = CUIVRE_LAYER;
m_NetCode = 0; /* Numero de net pour comparaisons rapides */ m_NetCode = 0; /* Numero de net pour comparaisons rapides */
m_DrillShape = CIRCLE; // Drill shape = circle m_DrillShape = CIRCLE; // Drill shape = circle
m_Size.x = m_Size.y = 500; m_Size.x = m_Size.y = 500;
if( m_Parent && (m_Parent->m_StructType == TYPEMODULE) ) if( m_Parent && (m_Parent->m_StructType == TYPEMODULE) )
{ {
m_Pos = ( (MODULE*) m_Parent )->m_Pos; m_Pos = ( (MODULE*) m_Parent )->m_Pos;
...@@ -73,7 +73,6 @@ void D_PAD::ComputeRayon( void ) ...@@ -73,7 +73,6 @@ void D_PAD::ComputeRayon( void )
break; break;
case RECT: case RECT:
case SPECIAL_PAD:
case TRAPEZE: case TRAPEZE:
m_Rayon = (int) (sqrt( (float) m_Size.y * m_Size.y m_Rayon = (int) (sqrt( (float) m_Size.y * m_Size.y
+ (float) m_Size.x * m_Size.x ) / 2); + (float) m_Size.x * m_Size.x ) / 2);
...@@ -90,16 +89,16 @@ const wxPoint D_PAD::ReturnShapePos( void ) ...@@ -90,16 +89,16 @@ const wxPoint D_PAD::ReturnShapePos( void )
{ {
if( (m_Offset.x == 0) && (m_Offset.y == 0) ) if( (m_Offset.x == 0) && (m_Offset.y == 0) )
return m_Pos; return m_Pos;
wxPoint shape_pos; wxPoint shape_pos;
int dX, dY; int dX, dY;
dX = m_Offset.x; dX = m_Offset.x;
dY = m_Offset.y; dY = m_Offset.y;
RotatePoint( &dX, &dY, m_Orient ); RotatePoint( &dX, &dY, m_Orient );
shape_pos.x = m_Pos.x + dX; shape_pos.x = m_Pos.x + dX;
shape_pos.y = m_Pos.y + dY; shape_pos.y = m_Pos.y + dY;
return shape_pos; return shape_pos;
...@@ -410,7 +409,6 @@ void D_PAD::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int ...@@ -410,7 +409,6 @@ void D_PAD::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int
break; break;
case RECT: case RECT:
case SPECIAL_PAD:
case TRAPEZE: case TRAPEZE:
{ {
int ddx, ddy; int ddx, ddy;
...@@ -464,7 +462,7 @@ void D_PAD::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int ...@@ -464,7 +462,7 @@ void D_PAD::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int
} }
} }
break; break;
default: default:
break; break;
...@@ -486,7 +484,7 @@ void D_PAD::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int ...@@ -486,7 +484,7 @@ void D_PAD::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int
switch( m_DrillShape ) switch( m_DrillShape )
{ {
case CIRCLE: case CIRCLE:
if( (hole / zoom) > 1 ) /* draw hole if its size is enought */ if( (hole / zoom) > 1 ) /* draw hole if its size is enought */
GRFilledCircle( &panel->m_ClipBox, DC, cx0, cy0, hole, 0, color, color ); GRFilledCircle( &panel->m_ClipBox, DC, cx0, cy0, hole, 0, color, color );
break; break;
...@@ -517,7 +515,7 @@ void D_PAD::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int ...@@ -517,7 +515,7 @@ void D_PAD::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int
} }
GRSetDrawMode( DC, draw_mode ); GRSetDrawMode( DC, draw_mode );
/* Trace du symbole "No connect" ( / ou \ ou croix en X) si necessaire : */ /* Trace du symbole "No connect" ( / ou \ ou croix en X) si necessaire : */
if( m_Netname.IsEmpty() && DisplayOpt.DisplayPadNoConn ) if( m_Netname.IsEmpty() && DisplayOpt.DisplayPadNoConn )
{ {
...@@ -531,26 +529,26 @@ void D_PAD::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int ...@@ -531,26 +529,26 @@ void D_PAD::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int
GRLine( &panel->m_ClipBox, DC, cx0 + dx0, cy0 - dx0, GRLine( &panel->m_ClipBox, DC, cx0 + dx0, cy0 - dx0,
cx0 - dx0, cy0 + dx0, 0, nc_color ); cx0 - dx0, cy0 + dx0, 0, nc_color );
} }
/* Trace de la reference */ /* Trace de la reference */
if( !frame->m_DisplayPadNum ) if( !frame->m_DisplayPadNum )
return; return;
dx = MIN( m_Size.x, m_Size.y ); /* dx = text size */ dx = MIN( m_Size.x, m_Size.y ); /* dx = text size */
if( (dx / zoom) > 12 ) /* size must be enought to draw 2 chars */ if( (dx / zoom) > 12 ) /* size must be enought to draw 2 chars */
{ {
wxString buffer; wxString buffer;
ReturnStringPadName( buffer ); ReturnStringPadName( buffer );
dy = buffer.Len(); dy = buffer.Len();
/* Draw text with an angle between -90 deg and + 90 deg */ /* Draw text with an angle between -90 deg and + 90 deg */
NORMALIZE_ANGLE_90( angle ); NORMALIZE_ANGLE_90( angle );
if( dy < 2 ) if( dy < 2 )
dy = 2; /* text min size is 2 char */ dy = 2; /* text min size is 2 char */
dx = (dx * 9 ) / (dy * 13 ); /* Text size ajusted to pad size */ dx = (dx * 9 ) / (dy * 13 ); /* Text size ajusted to pad size */
DrawGraphicText( panel, DC, wxPoint( ux0, uy0 ), DrawGraphicText( panel, DC, wxPoint( ux0, uy0 ),
WHITE, buffer, angle, wxSize( dx, dx ), WHITE, buffer, angle, wxSize( dx, dx ),
GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER ); GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER );
...@@ -795,7 +793,7 @@ void D_PAD::Display_Infos( WinEDA_DrawFrame* frame ) ...@@ -795,7 +793,7 @@ void D_PAD::Display_Infos( WinEDA_DrawFrame* frame )
MODULE* Module; MODULE* Module;
wxString Line; wxString Line;
int pos = 1; int pos = 1;
/* Pad messages */ /* Pad messages */
static const wxString Msg_Pad_Shape[6] = static const wxString Msg_Pad_Shape[6] =
{ wxT( "??? " ), wxT( "Circ" ), wxT( "Rect" ), wxT( "Oval" ), wxT( "trap" ), wxT( "spec" ) }; { wxT( "??? " ), wxT( "Circ" ), wxT( "Rect" ), wxT( "Oval" ), wxT( "trap" ), wxT( "spec" ) };
...@@ -805,7 +803,7 @@ void D_PAD::Display_Infos( WinEDA_DrawFrame* frame ) ...@@ -805,7 +803,7 @@ void D_PAD::Display_Infos( WinEDA_DrawFrame* frame )
wxT( "??? " ), wxT( "cmp " ), wxT( "cu " ), wxT( "cmp+cu " ), wxT( "int " ), wxT( "??? " ), wxT( "cmp " ), wxT( "cu " ), wxT( "cmp+cu " ), wxT( "int " ),
wxT( "cmp+int " ), wxT( "cu+int " ), wxT( "all " ), wxT( "No copp" ) wxT( "cmp+int " ), wxT( "cu+int " ), wxT( "all " ), wxT( "No copp" )
}; };
static const wxString Msg_Pad_Attribut[5] = static const wxString Msg_Pad_Attribut[5] =
{ wxT( "norm" ), wxT( "smd " ), wxT( "conn" ), wxT( "hole" ), wxT( "????" ) }; { wxT( "norm" ), wxT( "smd " ), wxT( "conn" ), wxT( "hole" ), wxT( "????" ) };
...@@ -910,16 +908,12 @@ void D_PAD::Display_Infos( WinEDA_DrawFrame* frame ) ...@@ -910,16 +908,12 @@ void D_PAD::Display_Infos( WinEDA_DrawFrame* frame )
pos += 6; pos += 6;
Affiche_1_Parametre( frame, pos, Msg_Pad_Shape[m_PadShape], wxEmptyString, DARKGREEN ); Affiche_1_Parametre( frame, pos, Msg_Pad_Shape[m_PadShape], wxEmptyString, DARKGREEN );
/* Affichage en couleur diff si pad stack ou non */
if( m_Attribut & PAD_STACK ) Affiche_1_Parametre( frame,
Affiche_1_Parametre( frame, -1, wxEmptyString, Msg_Pad_Attribut[m_Attribut & 15], RED ); -1,
else wxEmptyString,
Affiche_1_Parametre( frame, Msg_Pad_Attribut[m_Attribut & 15],
-1, DARKGREEN );
wxEmptyString,
Msg_Pad_Attribut[m_Attribut & 15],
DARKGREEN );
valeur_param( m_Size.x, Line ); valeur_param( m_Size.x, Line );
pos += 6; pos += 6;
...@@ -978,12 +972,12 @@ bool D_PAD::HitTest( const wxPoint& ref_pos ) ...@@ -978,12 +972,12 @@ bool D_PAD::HitTest( const wxPoint& ref_pos )
wxPoint shape_pos = ReturnShapePos(); wxPoint shape_pos = ReturnShapePos();
deltaX = ref_pos.x - shape_pos.x; deltaX = ref_pos.x - shape_pos.x;
deltaY = ref_pos.y - shape_pos.y; deltaY = ref_pos.y - shape_pos.y;
/* Test rapide: le point a tester doit etre a l'interieur du cercle exinscrit ... */ /* Test rapide: le point a tester doit etre a l'interieur du cercle exinscrit ... */
if( (abs( deltaX ) > m_Rayon ) if( (abs( deltaX ) > m_Rayon )
|| (abs( deltaY ) > m_Rayon) ) || (abs( deltaY ) > m_Rayon) )
return false; return false;
/* calcul des demi dim dx et dy */ /* calcul des demi dim dx et dy */
...@@ -1006,35 +1000,38 @@ bool D_PAD::HitTest( const wxPoint& ref_pos ) ...@@ -1006,35 +1000,38 @@ bool D_PAD::HitTest( const wxPoint& ref_pos )
return true; return true;
break; break;
} }
return false; return false;
} }
#if defined(DEBUG) #if defined (DEBUG)
/** /**
* Function Show * Function Show
* is used to output the object tree, currently for debugging only. * is used to output the object tree, currently for debugging only.
* @param nestLevel An aid to prettier tree indenting, and is the level * @param nestLevel An aid to prettier tree indenting, and is the level
* of nesting of this object within the overall tree. * of nesting of this object within the overall tree.
* @param os The ostream& to output to. * @param os The ostream& to output to.
*/ */
void D_PAD::Show( int nestLevel, std::ostream& os ) void D_PAD::Show( int nestLevel, std::ostream& os )
{ {
char padname[5] = { m_Padname[0], m_Padname[1], m_Padname[2], m_Padname[3], 0 }; char padname[5] = { m_Padname[0], m_Padname[1], m_Padname[2], m_Padname[3], 0 };
char layerMask[16]; char layerMask[16];
sprintf( layerMask, "0x%08X", m_Masque_Layer ); sprintf( layerMask, "0x%08X", m_Masque_Layer );
// for now, make it look like XML: // for now, make it look like XML:
NestedSpace( nestLevel, os ) << '<' << GetClass().Lower().mb_str() << NestedSpace( nestLevel, os ) << '<' << GetClass().Lower().mb_str() <<
" num=\"" << padname << '"' << " num=\"" << padname << '"' <<
" net=\"" << m_Netname.mb_str() << '"' << " net=\"" << m_Netname.mb_str() << '"' <<
" layerMask=\"" << layerMask << '"' << m_Pos << "/>\n"; " layerMask=\"" << layerMask << '"' << m_Pos << "/>\n";
// NestedSpace( nestLevel+1, os ) << m_Text.mb_str() << '\n'; // NestedSpace( nestLevel+1, os ) << m_Text.mb_str() << '\n';
// NestedSpace( nestLevel, os ) << "</" << GetClass().Lower().mb_str() << ">\n"; // NestedSpace( nestLevel, os ) << "</" << GetClass().Lower().mb_str() << ">\n";
} }
#endif #endif
...@@ -4,20 +4,19 @@ ...@@ -4,20 +4,19 @@
class Pcb3D_GLCanvas; class Pcb3D_GLCanvas;
/* forme des pastilles : (parametre .forme) */ /* Pad shape id : ( .m_PadShape member) */
#define CIRCLE 1 #define CIRCLE 1
#define RECT 2 #define RECT 2
#define OVALE 3 #define OVALE 3
#define TRAPEZE 4 // trapeze: traversante ou surfacique #define TRAPEZE 4 // trapezoid
#define SPECIAL_PAD 5 // description libre
/* Attributs des PADS */ /* PADS attributes */
#define STANDARD 0 // pad classique #define STANDARD 0 // Usual pad
#define SMD 1 // surfacique, generation d'un masque d'empatement #define SMD 1 // Smd pad, appears on the layer paste (default)
#define CONN 2 // surfacique, peut etre dore #define CONN 2 // Like smd, does not appear on the layer paste (default)
// reserved, but not yet really used:
#define P_HOLE 3 // trou simple, utile sur pad stack #define P_HOLE 3 // trou simple, utile sur pad stack
#define MECA 4 // PAD "mecanique" (fixation, zone cuivre...) #define MECA 4 // PAD "mecanique" (fixation, zone cuivre...)
#define PAD_STACK 0x80 // bit 7 de .attrib (flag)
/* Definition type Structure d'un pad */ /* Definition type Structure d'un pad */
class D_PAD : public BOARD_ITEM class D_PAD : public BOARD_ITEM
...@@ -26,41 +25,41 @@ public: ...@@ -26,41 +25,41 @@ public:
union union
{ {
unsigned long m_NumPadName; unsigned long m_NumPadName;
char m_Padname[4]; /* nom (numero) de la pastille (assimilable a un long)*/ char m_Padname[4]; /* Pad name (4 char) or a long identifier
* (used in pad name comparisons because this is faster than string comparison)
*/
}; };
wxString m_Netname; /* Net Name */ wxString m_Netname; /* Net Name */
int m_Masque_Layer; // (Bit a Bit :1= cuivre, 15= cmp, int m_Masque_Layer; // Bitwise layer :1= copper layer, 15= cmp,
// 2..14 = interne // 2..14 = internal layers
// 16 .. 31 = couches non cuivre // 16 .. 31 = technical layers
int m_PadShape; // forme CERCLE, RECT, OVALE, TRAPEZE ou libre int m_PadShape; // Shape: CIRCLE, RECT, OVAL, TRAPEZOID
int m_DrillShape; // forme CERCLE, OVAL int m_DrillShape; // Shape CIRCLE, OVAL
wxPoint m_Pos; // Position de reference du pad wxPoint m_Pos; // pad Position on board
wxSize m_Drill; // Drill diam (drill shape = CIRCLE) or drill size(shape = OVAL)
wxSize m_Drill; // Drill diam (drill shape = CIRCLE) or drill size(shape = OVAL)
// for drill shape = CIRCLE, drill diam = m_Drill.x // for drill shape = CIRCLE, drill diam = m_Drill.x
wxSize m_Offset; // Offset de la forme (pastilles excentrees) wxSize m_Offset; // Offset de la forme (pastilles excentrees)
wxSize m_Size; // Dimensions X et Y ( si orient 0 x = axe X wxSize m_Size; // X and Y size ( relative to orient 0)
// y = axe Y
wxSize m_DeltaSize; // delta sur formes rectangle -> trapezes
wxSize m_DeltaSize; // delta sur formes rectangle -> trapezes
wxPoint m_Pos0; // Initial Pad position (i.e. pas position relative to the module anchor, orientation 0
wxPoint m_Pos0; // Coord relatives a l'ancre du pad en orientation 0
int m_Rayon; // rayon du cercle exinscrit du pad
int m_Rayon; // rayon du cercle exinscrit du pad int m_Attribut; // NORMAL, SMD, CONN
int m_Attribut; // NORMAL, SMD, CONN, Bit 7 = STACK int m_Orient; // in 1/10 degrees
int m_Orient; // en 1/10 degres
int m_NetCode; // Net number for fast comparisons
int m_NetCode; /* Numero de net pour comparaisons rapides */ int m_logical_connexion; // variable used in rastnest computations
int m_logical_connexion; // variable utilisee lors du calcul du chevelu: // handle block number in ratsnet connection
// contient de numero de block pour une connexion type ratsnet
int m_physical_connexion; // variable used in rastnest computations
int m_physical_connexion; // variable utilisee lors du calcul de la connexit� // handle block number in track connection
// contient de numero de block pour une connexion type piste
public: public:
D_PAD( MODULE* parent ); D_PAD( MODULE* parent );
...@@ -69,9 +68,9 @@ public: ...@@ -69,9 +68,9 @@ public:
void Copy( D_PAD* source ); void Copy( D_PAD* source );
D_PAD* Next( void ) { return (D_PAD*) Pnext; } D_PAD* Next( void ) { return (D_PAD*) Pnext; }
/* supprime du chainage la structure Struct */ /* remove from linked list */
void UnLink( void ); void UnLink( void );
/* Reading and writing data on files */ /* Reading and writing data on files */
...@@ -82,11 +81,11 @@ public: ...@@ -82,11 +81,11 @@ public:
void Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int draw_mode ); void Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int draw_mode );
void Draw3D( Pcb3D_GLCanvas* glcanvas ); void Draw3D( Pcb3D_GLCanvas* glcanvas );
// autres // others
void SetPadName( const wxString& name ); // Change pad name void SetPadName( const wxString& name ); // Change pad name
wxString ReturnStringPadName( void ); // Return pad name as string in a wxString wxString ReturnStringPadName( void ); // Return pad name as string in a wxString
void ReturnStringPadName( wxString& text ); // Return pad name as string in a buffer void ReturnStringPadName( wxString& text ); // Return pad name as string in a buffer
void ComputeRayon( void ); // met a jour m_Rayon, rayon du cercle exinscrit void ComputeRayon( void ); // compute m_Rayon, rayon du cercle exinscrit
const wxPoint ReturnShapePos( void ); // retourne la position const wxPoint ReturnShapePos( void ); // retourne la position
/** /**
...@@ -95,9 +94,9 @@ public: ...@@ -95,9 +94,9 @@ public:
* about this object into the frame's message panel. * about this object into the frame's message panel.
* Is virtual from EDA_BaseStruct. * Is virtual from EDA_BaseStruct.
* @param frame A WinEDA_BasePcbFrame in which to print status information. * @param frame A WinEDA_BasePcbFrame in which to print status information.
*/ */
void Display_Infos( WinEDA_DrawFrame* frame ); void Display_Infos( WinEDA_DrawFrame* frame );
/** /**
* Function HitTest * Function HitTest
* tests if the given wxPoint is within the bounds of this object. * tests if the given wxPoint is within the bounds of this object.
...@@ -105,8 +104,9 @@ public: ...@@ -105,8 +104,9 @@ public:
* @return bool - true if a hit, else false * @return bool - true if a hit, else false
*/ */
bool HitTest( const wxPoint& refPos ); bool HitTest( const wxPoint& refPos );
#if defined(DEBUG) #if defined (DEBUG)
/** /**
* Function GetClass * Function GetClass
* returns the class name. * returns the class name.
...@@ -117,16 +117,17 @@ public: ...@@ -117,16 +117,17 @@ public:
return wxT( "PAD" ); return wxT( "PAD" );
} }
/** /**
* Function Show * Function Show
* is used to output the object tree, currently for debugging only. * is used to output the object tree, currently for debugging only.
* @param nestLevel An aid to prettier tree indenting, and is the level * @param nestLevel An aid to prettier tree indenting, and is the level
* of nesting of this object within the overall tree. * of nesting of this object within the overall tree.
* @param os The ostream& to output to. * @param os The ostream& to output to.
*/ */
virtual void Show( int nestLevel, std::ostream& os ); virtual void Show( int nestLevel, std::ostream& os );
#endif #endif
}; };
typedef class D_PAD * LISTE_PAD; typedef class D_PAD * LISTE_PAD;
...@@ -215,51 +215,6 @@ void WinEDA_BasePcbFrame::GeneralControle( wxDC* DC, wxPoint Mouse ) ...@@ -215,51 +215,6 @@ void WinEDA_BasePcbFrame::GeneralControle( wxDC* DC, wxPoint Mouse )
switch( g_KeyPressed ) switch( g_KeyPressed )
{ {
case WXK_NUMPAD_SUBTRACT:
case WXK_SUBTRACT:
case '-':
ll = GetScreen()->m_Active_Layer;
if( ll > CMP_N )
break;
if( ll <= CUIVRE_N )
break;
if( m_Pcb->m_BoardSettings->m_CopperLayerCount <= 1 ) // Single layer
ll = CUIVRE_N;
if( ll == CMP_N )
ll = MAX( CUIVRE_N, m_Pcb->m_BoardSettings->m_CopperLayerCount - 2 );
else if( ll > CUIVRE_N )
ll--;
GetScreen()->m_Active_Layer = ll;
if( DisplayOpt.ContrastModeDisplay )
DrawPanel->Refresh( TRUE );
break;
case WXK_NUMPAD_ADD:
case WXK_ADD:
case '+':
ll = GetScreen()->m_Active_Layer;
if( ll >= CMP_N )
break;
ll++;
if( ll >= m_Pcb->m_BoardSettings->m_CopperLayerCount - 1 )
ll = CMP_N;
if( m_Pcb->m_BoardSettings->m_CopperLayerCount <= 1 ) // Single layer
ll = CUIVRE_N;
GetScreen()->m_Active_Layer = ll;
if( DisplayOpt.ContrastModeDisplay )
DrawPanel->Refresh( TRUE );
break;
case WXK_NUMPAD0:
case WXK_PAGEUP:
SwitchLayer( DC, CMP_N );
break;
case WXK_NUMPAD9:
case WXK_PAGEDOWN:
SwitchLayer( DC, CUIVRE_N );
break;
case EDA_PANNING_UP_KEY: case EDA_PANNING_UP_KEY:
OnZoom( ID_ZOOM_PANNING_UP ); OnZoom( ID_ZOOM_PANNING_UP );
curpos = m_CurrentScreen->m_Curseur; curpos = m_CurrentScreen->m_Curseur;
...@@ -281,51 +236,20 @@ void WinEDA_BasePcbFrame::GeneralControle( wxDC* DC, wxPoint Mouse ) ...@@ -281,51 +236,20 @@ void WinEDA_BasePcbFrame::GeneralControle( wxDC* DC, wxPoint Mouse )
break; break;
case EDA_ZOOM_IN_FROM_MOUSE: case EDA_ZOOM_IN_FROM_MOUSE:
case WXK_F1:
OnZoom( ID_ZOOM_PLUS_KEY ); OnZoom( ID_ZOOM_PLUS_KEY );
oldpos = curpos = GetScreen()->m_Curseur; oldpos = curpos = GetScreen()->m_Curseur;
break; break;
case EDA_ZOOM_OUT_FROM_MOUSE: case EDA_ZOOM_OUT_FROM_MOUSE:
case WXK_F2:
OnZoom( ID_ZOOM_MOINS_KEY ); OnZoom( ID_ZOOM_MOINS_KEY );
oldpos = curpos = GetScreen()->m_Curseur; oldpos = curpos = GetScreen()->m_Curseur;
break; break;
case WXK_F3:
OnZoom( ID_ZOOM_REDRAW_KEY );
break;
case EDA_ZOOM_CENTER_FROM_MOUSE: case EDA_ZOOM_CENTER_FROM_MOUSE:
case WXK_F4:
OnZoom( ID_ZOOM_CENTER_KEY ); OnZoom( ID_ZOOM_CENTER_KEY );
oldpos = curpos = GetScreen()->m_Curseur; oldpos = curpos = GetScreen()->m_Curseur;
break; break;
case WXK_F5:
SwitchLayer( DC, LAYER_N_2 );
break;
case WXK_F6:
SwitchLayer( DC, LAYER_N_3 );
break;
case WXK_F7:
SwitchLayer( DC, LAYER_N_4 );
break;
case WXK_F8:
SwitchLayer( DC, LAYER_N_5 );
break;
case WXK_F9:
SwitchLayer( DC, LAYER_N_6 );
break;
case WXK_F10:
SwitchLayer( DC, LAYER_N_7 );
break;
case WXK_NUMPAD8: /* Deplacement curseur vers le haut */ case WXK_NUMPAD8: /* Deplacement curseur vers le haut */
case WXK_UP: case WXK_UP:
Mouse.y -= delta.y; Mouse.y -= delta.y;
......
...@@ -123,7 +123,7 @@ bool WinEDA_PadPropertiesFrame::Create( wxWindow* parent, wxWindowID id, const w ...@@ -123,7 +123,7 @@ bool WinEDA_PadPropertiesFrame::Create( wxWindow* parent, wxWindowID id, const w
////@end WinEDA_PadPropertiesFrame member initialisation ////@end WinEDA_PadPropertiesFrame member initialisation
////@begin WinEDA_PadPropertiesFrame creation ////@begin WinEDA_PadPropertiesFrame creation
SetExtraStyle(GetExtraStyle()|wxWS_EX_BLOCK_EVENTS); SetExtraStyle(wxWS_EX_BLOCK_EVENTS);
wxDialog::Create( parent, id, caption, pos, size, style ); wxDialog::Create( parent, id, caption, pos, size, style );
CreateControls(); CreateControls();
...@@ -144,7 +144,7 @@ void WinEDA_PadPropertiesFrame::CreateControls() ...@@ -144,7 +144,7 @@ void WinEDA_PadPropertiesFrame::CreateControls()
{ {
SetFont(*g_DialogFont); SetFont(*g_DialogFont);
////@begin WinEDA_PadPropertiesFrame content construction ////@begin WinEDA_PadPropertiesFrame content construction
// Generated by DialogBlocks, 03/08/2006 10:35:29 (unregistered) // Generated by DialogBlocks, 27/08/2007 21:03:59 (unregistered)
WinEDA_PadPropertiesFrame* itemDialog1 = this; WinEDA_PadPropertiesFrame* itemDialog1 = this;
...@@ -172,46 +172,42 @@ void WinEDA_PadPropertiesFrame::CreateControls() ...@@ -172,46 +172,42 @@ void WinEDA_PadPropertiesFrame::CreateControls()
m_DrillShapeBoxSizer = new wxBoxSizer(wxVERTICAL); m_DrillShapeBoxSizer = new wxBoxSizer(wxVERTICAL);
itemBoxSizer2->Add(m_DrillShapeBoxSizer, 0, wxGROW|wxTOP, 5); itemBoxSizer2->Add(m_DrillShapeBoxSizer, 0, wxGROW|wxTOP, 5);
wxString m_DrillShapeCtrlStrings[] = { wxArrayString m_DrillShapeCtrlStrings;
_("Circle"), m_DrillShapeCtrlStrings.Add(_("Circle"));
_("Oval") m_DrillShapeCtrlStrings.Add(_("Oval"));
}; m_DrillShapeCtrl = new wxRadioBox( itemDialog1, ID_RADIOBOX_DRILL_SHAPE, _("Drill Shape:"), wxDefaultPosition, wxDefaultSize, m_DrillShapeCtrlStrings, 1, wxRA_SPECIFY_COLS );
m_DrillShapeCtrl = new wxRadioBox( itemDialog1, ID_RADIOBOX_DRILL_SHAPE, _("Drill Shape:"), wxDefaultPosition, wxDefaultSize, 2, m_DrillShapeCtrlStrings, 1, wxRA_SPECIFY_COLS );
m_DrillShapeCtrl->SetSelection(0); m_DrillShapeCtrl->SetSelection(0);
m_DrillShapeBoxSizer->Add(m_DrillShapeCtrl, 0, wxGROW|wxALL, 5); m_DrillShapeBoxSizer->Add(m_DrillShapeCtrl, 0, wxGROW|wxALL, 5);
m_PadOptSizer = new wxBoxSizer(wxVERTICAL); m_PadOptSizer = new wxBoxSizer(wxVERTICAL);
itemBoxSizer2->Add(m_PadOptSizer, 0, wxGROW|wxALL, 5); itemBoxSizer2->Add(m_PadOptSizer, 0, wxGROW|wxALL, 5);
wxString m_PadOrientStrings[] = { wxArrayString m_PadOrientStrings;
_("0"), m_PadOrientStrings.Add(_("0"));
_("90"), m_PadOrientStrings.Add(_("90"));
_("-90"), m_PadOrientStrings.Add(_("-90"));
_("180"), m_PadOrientStrings.Add(_("180"));
_("User") m_PadOrientStrings.Add(_("User"));
}; m_PadOrient = new wxRadioBox( itemDialog1, ID_LISTBOX_ORIENT_PAD, _("Pad Orient:"), wxDefaultPosition, wxDefaultSize, m_PadOrientStrings, 1, wxRA_SPECIFY_COLS );
m_PadOrient = new wxRadioBox( itemDialog1, ID_LISTBOX_ORIENT_PAD, _("Pad Orient:"), wxDefaultPosition, wxDefaultSize, 5, m_PadOrientStrings, 1, wxRA_SPECIFY_COLS );
m_PadOrient->SetSelection(0); m_PadOrient->SetSelection(0);
m_PadOptSizer->Add(m_PadOrient, 0, wxGROW|wxALL, 5); m_PadOptSizer->Add(m_PadOrient, 0, wxGROW|wxALL, 5);
wxString m_PadShapeStrings[] = { wxArrayString m_PadShapeStrings;
_("Circle"), m_PadShapeStrings.Add(_("Circle"));
_("Oval"), m_PadShapeStrings.Add(_("Oval"));
_("Rect"), m_PadShapeStrings.Add(_("Rect"));
_("Trapezoidal") m_PadShapeStrings.Add(_("Trapezoidal"));
}; m_PadShape = new wxRadioBox( itemDialog1, ID_LISTBOX_SHAPE_PAD, _("Pad Shape:"), wxDefaultPosition, wxDefaultSize, m_PadShapeStrings, 1, wxRA_SPECIFY_COLS );
m_PadShape = new wxRadioBox( itemDialog1, ID_LISTBOX_SHAPE_PAD, _("Pad Shape:"), wxDefaultPosition, wxDefaultSize, 4, m_PadShapeStrings, 1, wxRA_SPECIFY_COLS );
m_PadShape->SetSelection(0); m_PadShape->SetSelection(0);
m_PadOptSizer->Add(m_PadShape, 0, wxGROW|wxALL, 5); m_PadOptSizer->Add(m_PadShape, 0, wxGROW|wxALL, 5);
wxString m_PadTypeStrings[] = { wxArrayString m_PadTypeStrings;
_("Standard"), m_PadTypeStrings.Add(_("Standard"));
_("SMD"), m_PadTypeStrings.Add(_("SMD"));
_("Conn"), m_PadTypeStrings.Add(_("Conn"));
_("Hole"), m_PadTypeStrings.Add(_("Hole"));
_("Mechanical") m_PadTypeStrings.Add(_("Mechanical"));
}; m_PadType = new wxRadioBox( itemDialog1, ID_LISTBOX_TYPE_PAD, _("Pad Type:"), wxDefaultPosition, wxDefaultSize, m_PadTypeStrings, 1, wxRA_SPECIFY_COLS );
m_PadType = new wxRadioBox( itemDialog1, ID_LISTBOX_TYPE_PAD, _("Pad Type:"), wxDefaultPosition, wxDefaultSize, 5, m_PadTypeStrings, 1, wxRA_SPECIFY_COLS );
m_PadType->SetSelection(0); m_PadType->SetSelection(0);
m_PadOptSizer->Add(m_PadType, 0, wxGROW|wxALL, 5); m_PadOptSizer->Add(m_PadType, 0, wxGROW|wxALL, 5);
...@@ -228,61 +224,61 @@ void WinEDA_PadPropertiesFrame::CreateControls() ...@@ -228,61 +224,61 @@ void WinEDA_PadPropertiesFrame::CreateControls()
wxStaticBox* itemStaticBoxSizer18Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Layers:")); wxStaticBox* itemStaticBoxSizer18Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Layers:"));
wxStaticBoxSizer* itemStaticBoxSizer18 = new wxStaticBoxSizer(itemStaticBoxSizer18Static, wxVERTICAL); wxStaticBoxSizer* itemStaticBoxSizer18 = new wxStaticBoxSizer(itemStaticBoxSizer18Static, wxVERTICAL);
itemBoxSizer15->Add(itemStaticBoxSizer18, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); itemBoxSizer15->Add(itemStaticBoxSizer18, 0, wxALIGN_CENTER_HORIZONTAL|wxLEFT|wxRIGHT, 5);
m_PadLayerCu = new wxCheckBox( itemDialog1, ID_CHECKBOX, _("Copper layer"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE ); m_PadLayerCu = new wxCheckBox( itemDialog1, ID_CHECKBOX, _("Copper layer"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );
m_PadLayerCu->SetValue(false); m_PadLayerCu->SetValue(false);
itemStaticBoxSizer18->Add(m_PadLayerCu, 0, wxGROW|wxALL, 5); itemStaticBoxSizer18->Add(m_PadLayerCu, 0, wxGROW|wxLEFT|wxRIGHT|wxTOP, 5);
m_PadLayerCmp = new wxCheckBox( itemDialog1, ID_CHECKBOX1, _("Comp layer"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE ); m_PadLayerCmp = new wxCheckBox( itemDialog1, ID_CHECKBOX1, _("Comp layer"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );
m_PadLayerCmp->SetValue(false); m_PadLayerCmp->SetValue(false);
itemStaticBoxSizer18->Add(m_PadLayerCmp, 0, wxGROW|wxALL, 5); itemStaticBoxSizer18->Add(m_PadLayerCmp, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
itemStaticBoxSizer18->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); itemStaticBoxSizer18->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
m_PadLayerAdhCmp = new wxCheckBox( itemDialog1, ID_CHECKBOX2, _("Adhesive Cmp"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE ); m_PadLayerAdhCmp = new wxCheckBox( itemDialog1, ID_CHECKBOX2, _("Adhesive Cmp"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );
m_PadLayerAdhCmp->SetValue(false); m_PadLayerAdhCmp->SetValue(false);
itemStaticBoxSizer18->Add(m_PadLayerAdhCmp, 0, wxGROW|wxALL, 5); itemStaticBoxSizer18->Add(m_PadLayerAdhCmp, 0, wxGROW|wxLEFT|wxRIGHT|wxTOP, 5);
m_PadLayerAdhCu = new wxCheckBox( itemDialog1, ID_CHECKBOX3, _("Adhesive Copper"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE ); m_PadLayerAdhCu = new wxCheckBox( itemDialog1, ID_CHECKBOX3, _("Adhesive Copper"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );
m_PadLayerAdhCu->SetValue(false); m_PadLayerAdhCu->SetValue(false);
itemStaticBoxSizer18->Add(m_PadLayerAdhCu, 0, wxGROW|wxALL, 5); itemStaticBoxSizer18->Add(m_PadLayerAdhCu, 0, wxGROW|wxLEFT|wxRIGHT, 5);
m_PadLayerPateCmp = new wxCheckBox( itemDialog1, ID_CHECKBOX4, _("Solder paste Cmp"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE ); m_PadLayerPateCmp = new wxCheckBox( itemDialog1, ID_CHECKBOX4, _("Solder paste Cmp"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );
m_PadLayerPateCmp->SetValue(false); m_PadLayerPateCmp->SetValue(false);
itemStaticBoxSizer18->Add(m_PadLayerPateCmp, 0, wxGROW|wxALL, 5); itemStaticBoxSizer18->Add(m_PadLayerPateCmp, 0, wxGROW|wxLEFT|wxRIGHT, 5);
m_PadLayerPateCu = new wxCheckBox( itemDialog1, ID_CHECKBOX5, _("Solder paste Copper"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE ); m_PadLayerPateCu = new wxCheckBox( itemDialog1, ID_CHECKBOX5, _("Solder paste Copper"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );
m_PadLayerPateCu->SetValue(false); m_PadLayerPateCu->SetValue(false);
itemStaticBoxSizer18->Add(m_PadLayerPateCu, 0, wxGROW|wxALL, 5); itemStaticBoxSizer18->Add(m_PadLayerPateCu, 0, wxGROW|wxLEFT|wxRIGHT, 5);
m_PadLayerSilkCmp = new wxCheckBox( itemDialog1, ID_CHECKBOX6, _("Silkscreen Cmp"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE ); m_PadLayerSilkCmp = new wxCheckBox( itemDialog1, ID_CHECKBOX6, _("Silkscreen Cmp"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );
m_PadLayerSilkCmp->SetValue(false); m_PadLayerSilkCmp->SetValue(false);
itemStaticBoxSizer18->Add(m_PadLayerSilkCmp, 0, wxGROW|wxALL, 5); itemStaticBoxSizer18->Add(m_PadLayerSilkCmp, 0, wxGROW|wxLEFT|wxRIGHT, 5);
m_PadLayerSilkCu = new wxCheckBox( itemDialog1, ID_CHECKBOX7, _("Silkscreen Copper"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE ); m_PadLayerSilkCu = new wxCheckBox( itemDialog1, ID_CHECKBOX7, _("Silkscreen Copper"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );
m_PadLayerSilkCu->SetValue(false); m_PadLayerSilkCu->SetValue(false);
itemStaticBoxSizer18->Add(m_PadLayerSilkCu, 0, wxGROW|wxALL, 5); itemStaticBoxSizer18->Add(m_PadLayerSilkCu, 0, wxGROW|wxLEFT|wxRIGHT, 5);
m_PadLayerMaskCmp = new wxCheckBox( itemDialog1, ID_CHECKBOX8, _("Solder mask Cmp"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE ); m_PadLayerMaskCmp = new wxCheckBox( itemDialog1, ID_CHECKBOX8, _("Solder mask Cmp"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );
m_PadLayerMaskCmp->SetValue(false); m_PadLayerMaskCmp->SetValue(false);
itemStaticBoxSizer18->Add(m_PadLayerMaskCmp, 0, wxGROW|wxALL, 5); itemStaticBoxSizer18->Add(m_PadLayerMaskCmp, 0, wxGROW|wxLEFT|wxRIGHT, 5);
m_PadLayerMaskCu = new wxCheckBox( itemDialog1, ID_CHECKBOX9, _("Solder mask Copper"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE ); m_PadLayerMaskCu = new wxCheckBox( itemDialog1, ID_CHECKBOX9, _("Solder mask Copper"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );
m_PadLayerMaskCu->SetValue(false); m_PadLayerMaskCu->SetValue(false);
itemStaticBoxSizer18->Add(m_PadLayerMaskCu, 0, wxGROW|wxALL, 5); itemStaticBoxSizer18->Add(m_PadLayerMaskCu, 0, wxGROW|wxLEFT|wxRIGHT, 5);
m_PadLayerECO1 = new wxCheckBox( itemDialog1, ID_CHECKBOX10, _("E.C.O.1 layer"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE ); m_PadLayerECO1 = new wxCheckBox( itemDialog1, ID_CHECKBOX10, _("E.C.O.1 layer"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );
m_PadLayerECO1->SetValue(false); m_PadLayerECO1->SetValue(false);
itemStaticBoxSizer18->Add(m_PadLayerECO1, 0, wxGROW|wxALL, 5); itemStaticBoxSizer18->Add(m_PadLayerECO1, 0, wxGROW|wxLEFT|wxRIGHT, 5);
m_PadLayerECO2 = new wxCheckBox( itemDialog1, ID_CHECKBOX11, _("E.C.O.2 layer"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE ); m_PadLayerECO2 = new wxCheckBox( itemDialog1, ID_CHECKBOX11, _("E.C.O.2 layer"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );
m_PadLayerECO2->SetValue(false); m_PadLayerECO2->SetValue(false);
itemStaticBoxSizer18->Add(m_PadLayerECO2, 0, wxGROW|wxALL, 5); itemStaticBoxSizer18->Add(m_PadLayerECO2, 0, wxGROW|wxLEFT|wxRIGHT, 5);
m_PadLayerDraft = new wxCheckBox( itemDialog1, ID_CHECKBOX12, _("Draft layer"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE ); m_PadLayerDraft = new wxCheckBox( itemDialog1, ID_CHECKBOX12, _("Draft layer"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );
m_PadLayerDraft->SetValue(false); m_PadLayerDraft->SetValue(false);
itemStaticBoxSizer18->Add(m_PadLayerDraft, 0, wxGROW|wxALL, 5); itemStaticBoxSizer18->Add(m_PadLayerDraft, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
////@end WinEDA_PadPropertiesFrame content construction ////@end WinEDA_PadPropertiesFrame content construction
...@@ -381,11 +377,6 @@ void WinEDA_PadPropertiesFrame::OnListboxShapePadSelected( wxCommandEvent& event ...@@ -381,11 +377,6 @@ void WinEDA_PadPropertiesFrame::OnListboxShapePadSelected( wxCommandEvent& event
m_PadDeltaSizeCtrl->Enable(TRUE, TRUE); m_PadDeltaSizeCtrl->Enable(TRUE, TRUE);
m_PadSizeCtrl->Enable(TRUE, TRUE); m_PadSizeCtrl->Enable(TRUE, TRUE);
break; break;
case 4: //SPECIAL_PAD:
m_PadDeltaSizeCtrl->Enable(FALSE, FALSE);
m_PadSizeCtrl->Enable(TRUE, TRUE);
break;
} }
} }
......
...@@ -39,12 +39,6 @@ class wxBoxSizer; ...@@ -39,12 +39,6 @@ class wxBoxSizer;
////@begin control identifiers ////@begin control identifiers
#define ID_DIALOG 10000 #define ID_DIALOG 10000
// #define SYMBOL_WINEDA_PADPROPERTIESFRAME_STYLE wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX
#define SYMBOL_WINEDA_PADPROPERTIESFRAME_STYLE wxCAPTION|wxSYSTEM_MENU|wxCLOSE_BOX
#define SYMBOL_WINEDA_PADPROPERTIESFRAME_TITLE _("Pad properties")
#define SYMBOL_WINEDA_PADPROPERTIESFRAME_IDNAME ID_DIALOG
#define SYMBOL_WINEDA_PADPROPERTIESFRAME_SIZE wxSize(400, 300)
#define SYMBOL_WINEDA_PADPROPERTIESFRAME_POSITION wxDefaultPosition
#define ID_TEXTCTRL_PADNUM 10001 #define ID_TEXTCTRL_PADNUM 10001
#define ID_TEXTCTRL_NETNAME 10002 #define ID_TEXTCTRL_NETNAME 10002
#define ID_RADIOBOX_DRILL_SHAPE 10019 #define ID_RADIOBOX_DRILL_SHAPE 10019
...@@ -64,6 +58,11 @@ class wxBoxSizer; ...@@ -64,6 +58,11 @@ class wxBoxSizer;
#define ID_CHECKBOX10 10016 #define ID_CHECKBOX10 10016
#define ID_CHECKBOX11 10017 #define ID_CHECKBOX11 10017
#define ID_CHECKBOX12 10018 #define ID_CHECKBOX12 10018
#define SYMBOL_WINEDA_PADPROPERTIESFRAME_STYLE wxCAPTION|wxSYSTEM_MENU|wxCLOSE_BOX
#define SYMBOL_WINEDA_PADPROPERTIESFRAME_TITLE _("Pad properties")
#define SYMBOL_WINEDA_PADPROPERTIESFRAME_IDNAME ID_DIALOG
#define SYMBOL_WINEDA_PADPROPERTIESFRAME_SIZE wxSize(400, 300)
#define SYMBOL_WINEDA_PADPROPERTIESFRAME_POSITION wxDefaultPosition
////@end control identifiers ////@end control identifiers
/*! /*!
......
<?xml version="1.0" encoding="windows-1252"?> <?xml version="1.0" encoding="UTF-8"?>
<anthemion-project version="1.0.0.0" xmlns="http://www.anthemion.co.uk"> <anthemion-project version="1.0.0.0" xmlns="http://www.anthemion.co.uk">
<header> <header>
<long name="name_counter">0</long> <long name="name_counter">0</long>
...@@ -6,7 +6,6 @@ ...@@ -6,7 +6,6 @@
<string name="title">""</string> <string name="title">""</string>
<string name="author">""</string> <string name="author">""</string>
<string name="description">""</string> <string name="description">""</string>
<long name="doc_count">39</long>
<string name="xrc_filename">""</string> <string name="xrc_filename">""</string>
<bool name="convert_images_to_xpm">0</bool> <bool name="convert_images_to_xpm">0</bool>
<bool name="inline_images">0</bool> <bool name="inline_images">0</bool>
...@@ -18,6 +17,7 @@ ...@@ -18,6 +17,7 @@
<string name="copyright_string">"License GNU"</string> <string name="copyright_string">"License GNU"</string>
<string name="resource_prefix">""</string> <string name="resource_prefix">""</string>
<bool name="use_two_step_construction">0</bool> <bool name="use_two_step_construction">0</bool>
<bool name="use_enums">0</bool>
<string name="current_platform">"&lt;All platforms&gt;"</string> <string name="current_platform">"&lt;All platforms&gt;"</string>
<string name="target_wx_version">"&lt;Any&gt;"</string> <string name="target_wx_version">"&lt;Any&gt;"</string>
<string name="cpp_header_comment">"///////////////////////////////////////////////////////////////////////////// <string name="cpp_header_comment">"/////////////////////////////////////////////////////////////////////////////
...@@ -43,12 +43,6 @@ ...@@ -43,12 +43,6 @@
// Licence: // Licence:
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
"</string>
<string name="cpp_function_comment">"
/*!
* %BODY%
*/
"</string> "</string>
<string name="cpp_symbols_file_comment">"///////////////////////////////////////////////////////////////////////////// <string name="cpp_symbols_file_comment">"/////////////////////////////////////////////////////////////////////////////
// Name: %SYMBOLS-FILENAME% // Name: %SYMBOLS-FILENAME%
...@@ -82,6 +76,14 @@ ...@@ -82,6 +76,14 @@
#include &quot;wx/wx.h&quot; #include &quot;wx/wx.h&quot;
#endif #endif
"</string>
<string name="cpp_function_declaration_comment">" /// %BODY%
"</string>
<string name="cpp_function_implementation_comment">"
/*!
* %BODY%
*/
"</string> "</string>
<string name="resource_file_header">"app_resources.h"</string> <string name="resource_file_header">"app_resources.h"</string>
<string name="resource_file_implementation">"app_resources.cpp"</string> <string name="resource_file_implementation">"app_resources.cpp"</string>
...@@ -93,17 +95,20 @@ ...@@ -93,17 +95,20 @@
<string name="external_symbol_filenames">""</string> <string name="external_symbol_filenames">""</string>
<string name="configuration">"&lt;None&gt;"</string> <string name="configuration">"&lt;None&gt;"</string>
<string name="source_encoding">"&lt;System&gt;"</string> <string name="source_encoding">"&lt;System&gt;"</string>
<string name="xrc_encoding">"utf-8"</string>
<string name="project_encoding">"&lt;System&gt;"</string> <string name="project_encoding">"&lt;System&gt;"</string>
<string name="resource_archive">""</string> <string name="resource_archive">""</string>
<long name="text_file_type">0</long> <long name="text_file_type">0</long>
<bool name="use_tabs">0</bool> <bool name="use_tabs">0</bool>
<long name="indent_size">4</long> <long name="indent_size">4</long>
<string name="whitespace_after_return_type">" "</string>
<string name="resource_xrc_cpp">""</string> <string name="resource_xrc_cpp">""</string>
<bool name="use_resource_archive">0</bool> <bool name="use_resource_archive">0</bool>
<bool name="use_generated_xrc_cpp">0</bool> <bool name="use_generated_xrc_cpp">0</bool>
<bool name="always_generate_xrc">1</bool> <bool name="always_generate_xrc">1</bool>
<bool name="archive_xrc_files">1</bool> <bool name="archive_xrc_files">1</bool>
<bool name="archive_image_files">1</bool> <bool name="archive_image_files">1</bool>
<bool name="archive_all_image_files">0</bool>
<bool name="xrc_retain_relative_paths">1</bool> <bool name="xrc_retain_relative_paths">1</bool>
</header> </header>
<data> <data>
...@@ -181,7 +186,7 @@ ...@@ -181,7 +186,7 @@
<long name="is-transient">1</long> <long name="is-transient">1</long>
<long name="owns-file">1</long> <long name="owns-file">1</long>
<long name="title-mode">0</long> <long name="title-mode">0</long>
<long name="locked">0</long> <long name="locked">1</long>
<document> <document>
<string name="title">"Windows"</string> <string name="title">"Windows"</string>
<string name="type">"html-document"</string> <string name="type">"html-document"</string>
...@@ -205,6 +210,8 @@ ...@@ -205,6 +210,8 @@
<long name="base-id">10000</long> <long name="base-id">10000</long>
<bool name="use-id-prefix">0</bool> <bool name="use-id-prefix">0</bool>
<string name="id-prefix">""</string> <string name="id-prefix">""</string>
<bool name="use-id-suffix">0</bool>
<string name="id-suffix">""</string>
<long name="use-xrc">0</long> <long name="use-xrc">0</long>
<string name="proxy-Id name">"ID_DIALOG"</string> <string name="proxy-Id name">"ID_DIALOG"</string>
<long name="proxy-Id value">10000</long> <long name="proxy-Id value">10000</long>
...@@ -258,6 +265,7 @@ ...@@ -258,6 +265,7 @@
<long name="proxy-Y">-1</long> <long name="proxy-Y">-1</long>
<long name="proxy-Width">400</long> <long name="proxy-Width">400</long>
<long name="proxy-Height">300</long> <long name="proxy-Height">300</long>
<bool name="proxy-AUI manager">0</bool>
<string name="proxy-Event sources">""</string> <string name="proxy-Event sources">""</string>
<document> <document>
<string name="title">"wxBoxSizer H"</string> <string name="title">"wxBoxSizer H"</string>
...@@ -314,6 +322,11 @@ ...@@ -314,6 +322,11 @@
<string name="proxy-Id name">"wxID_STATIC"</string> <string name="proxy-Id name">"wxID_STATIC"</string>
<long name="proxy-Id value">5105</long> <long name="proxy-Id value">5105</long>
<string name="proxy-Class">"wxStaticText"</string> <string name="proxy-Class">"wxStaticText"</string>
<string name="proxy-Base class">"wxStaticText"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">""</string> <string name="proxy-Member variable name">""</string>
<string name="proxy-Label">"Pad Num :"</string> <string name="proxy-Label">"Pad Num :"</string>
<long name="proxy-Wrapping width">-1</long> <long name="proxy-Wrapping width">-1</long>
...@@ -373,6 +386,11 @@ ...@@ -373,6 +386,11 @@
<string name="proxy-Id name">"ID_TEXTCTRL_PADNUM"</string> <string name="proxy-Id name">"ID_TEXTCTRL_PADNUM"</string>
<long name="proxy-Id value">10001</long> <long name="proxy-Id value">10001</long>
<string name="proxy-Class">"wxTextCtrl"</string> <string name="proxy-Class">"wxTextCtrl"</string>
<string name="proxy-Base class">"wxTextCtrl"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_PadNumCtrl"</string> <string name="proxy-Member variable name">"m_PadNumCtrl"</string>
<string name="proxy-Initial value">""</string> <string name="proxy-Initial value">""</string>
<long name="proxy-Max length">0</long> <long name="proxy-Max length">0</long>
...@@ -399,7 +417,7 @@ ...@@ -399,7 +417,7 @@
<bool name="proxy-wxTE_CENTRE">0</bool> <bool name="proxy-wxTE_CENTRE">0</bool>
<bool name="proxy-wxTE_RIGHT">0</bool> <bool name="proxy-wxTE_RIGHT">0</bool>
<bool name="proxy-wxHSCROLL">0</bool> <bool name="proxy-wxHSCROLL">0</bool>
<bool name="proxy-wxTE_LINEWRAP">0</bool> <bool name="proxy-wxTE_CHARWRAP">0</bool>
<bool name="proxy-wxTE_WORDWRAP">0</bool> <bool name="proxy-wxTE_WORDWRAP">0</bool>
<bool name="proxy-wxNO_BORDER">0</bool> <bool name="proxy-wxNO_BORDER">0</bool>
<bool name="proxy-wxSIMPLE_BORDER">0</bool> <bool name="proxy-wxSIMPLE_BORDER">0</bool>
...@@ -428,6 +446,7 @@ ...@@ -428,6 +446,7 @@
<bool name="proxy-wxFIXED_MINSIZE">0</bool> <bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Custom arguments">""</string> <string name="proxy-Custom arguments">""</string>
<string name="proxy-Custom ctor arguments">""</string> <string name="proxy-Custom ctor arguments">""</string>
<bool name="proxy-wxTE_LINEWRAP">0</bool>
</document> </document>
<document> <document>
<string name="title">"wxStaticText: wxID_STATIC"</string> <string name="title">"wxStaticText: wxID_STATIC"</string>
...@@ -443,6 +462,11 @@ ...@@ -443,6 +462,11 @@
<string name="proxy-Id name">"wxID_STATIC"</string> <string name="proxy-Id name">"wxID_STATIC"</string>
<long name="proxy-Id value">5105</long> <long name="proxy-Id value">5105</long>
<string name="proxy-Class">"wxStaticText"</string> <string name="proxy-Class">"wxStaticText"</string>
<string name="proxy-Base class">"wxStaticText"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">""</string> <string name="proxy-Member variable name">""</string>
<string name="proxy-Label">"Pad Net Name :"</string> <string name="proxy-Label">"Pad Net Name :"</string>
<long name="proxy-Wrapping width">-1</long> <long name="proxy-Wrapping width">-1</long>
...@@ -502,6 +526,11 @@ ...@@ -502,6 +526,11 @@
<string name="proxy-Id name">"ID_TEXTCTRL_NETNAME"</string> <string name="proxy-Id name">"ID_TEXTCTRL_NETNAME"</string>
<long name="proxy-Id value">10002</long> <long name="proxy-Id value">10002</long>
<string name="proxy-Class">"wxTextCtrl"</string> <string name="proxy-Class">"wxTextCtrl"</string>
<string name="proxy-Base class">"wxTextCtrl"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_PadNetNameCtrl"</string> <string name="proxy-Member variable name">"m_PadNetNameCtrl"</string>
<string name="proxy-Initial value">""</string> <string name="proxy-Initial value">""</string>
<long name="proxy-Max length">0</long> <long name="proxy-Max length">0</long>
...@@ -528,7 +557,7 @@ ...@@ -528,7 +557,7 @@
<bool name="proxy-wxTE_CENTRE">0</bool> <bool name="proxy-wxTE_CENTRE">0</bool>
<bool name="proxy-wxTE_RIGHT">0</bool> <bool name="proxy-wxTE_RIGHT">0</bool>
<bool name="proxy-wxHSCROLL">0</bool> <bool name="proxy-wxHSCROLL">0</bool>
<bool name="proxy-wxTE_LINEWRAP">0</bool> <bool name="proxy-wxTE_CHARWRAP">0</bool>
<bool name="proxy-wxTE_WORDWRAP">0</bool> <bool name="proxy-wxTE_WORDWRAP">0</bool>
<bool name="proxy-wxNO_BORDER">0</bool> <bool name="proxy-wxNO_BORDER">0</bool>
<bool name="proxy-wxSIMPLE_BORDER">0</bool> <bool name="proxy-wxSIMPLE_BORDER">0</bool>
...@@ -557,6 +586,7 @@ ...@@ -557,6 +586,7 @@
<bool name="proxy-wxFIXED_MINSIZE">0</bool> <bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Custom arguments">""</string> <string name="proxy-Custom arguments">""</string>
<string name="proxy-Custom ctor arguments">""</string> <string name="proxy-Custom ctor arguments">""</string>
<bool name="proxy-wxTE_LINEWRAP">0</bool>
</document> </document>
<document> <document>
<string name="title">"wxBoxSizer V"</string> <string name="title">"wxBoxSizer V"</string>
...@@ -625,6 +655,11 @@ ...@@ -625,6 +655,11 @@
<string name="proxy-Id name">"ID_RADIOBOX_DRILL_SHAPE"</string> <string name="proxy-Id name">"ID_RADIOBOX_DRILL_SHAPE"</string>
<long name="proxy-Id value">10019</long> <long name="proxy-Id value">10019</long>
<string name="proxy-Class">"wxRadioBox"</string> <string name="proxy-Class">"wxRadioBox"</string>
<string name="proxy-Base class">"wxRadioBox"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_DrillShapeCtrl"</string> <string name="proxy-Member variable name">"m_DrillShapeCtrl"</string>
<string name="proxy-Label">"Drill Shape:"</string> <string name="proxy-Label">"Drill Shape:"</string>
<long name="proxy-Major dimension count">1</long> <long name="proxy-Major dimension count">1</long>
...@@ -705,6 +740,11 @@ ...@@ -705,6 +740,11 @@
<string name="proxy-Id name">"ID_LISTBOX_ORIENT_PAD"</string> <string name="proxy-Id name">"ID_LISTBOX_ORIENT_PAD"</string>
<long name="proxy-Id value">10003</long> <long name="proxy-Id value">10003</long>
<string name="proxy-Class">"wxRadioBox"</string> <string name="proxy-Class">"wxRadioBox"</string>
<string name="proxy-Base class">"wxRadioBox"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_PadOrient"</string> <string name="proxy-Member variable name">"m_PadOrient"</string>
<string name="proxy-Label">"Pad Orient:"</string> <string name="proxy-Label">"Pad Orient:"</string>
<long name="proxy-Major dimension count">1</long> <long name="proxy-Major dimension count">1</long>
...@@ -759,6 +799,11 @@ ...@@ -759,6 +799,11 @@
<string name="proxy-Id name">"ID_LISTBOX_SHAPE_PAD"</string> <string name="proxy-Id name">"ID_LISTBOX_SHAPE_PAD"</string>
<long name="proxy-Id value">10004</long> <long name="proxy-Id value">10004</long>
<string name="proxy-Class">"wxRadioBox"</string> <string name="proxy-Class">"wxRadioBox"</string>
<string name="proxy-Base class">"wxRadioBox"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_PadShape"</string> <string name="proxy-Member variable name">"m_PadShape"</string>
<string name="proxy-Label">"Pad Shape:"</string> <string name="proxy-Label">"Pad Shape:"</string>
<long name="proxy-Major dimension count">1</long> <long name="proxy-Major dimension count">1</long>
...@@ -813,6 +858,11 @@ ...@@ -813,6 +858,11 @@
<string name="proxy-Id name">"ID_LISTBOX_TYPE_PAD"</string> <string name="proxy-Id name">"ID_LISTBOX_TYPE_PAD"</string>
<long name="proxy-Id value">10005</long> <long name="proxy-Id value">10005</long>
<string name="proxy-Class">"wxRadioBox"</string> <string name="proxy-Class">"wxRadioBox"</string>
<string name="proxy-Base class">"wxRadioBox"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_PadType"</string> <string name="proxy-Member variable name">"m_PadType"</string>
<string name="proxy-Label">"Pad Type:"</string> <string name="proxy-Label">"Pad Type:"</string>
<long name="proxy-Major dimension count">1</long> <long name="proxy-Major dimension count">1</long>
...@@ -893,6 +943,11 @@ ...@@ -893,6 +943,11 @@
<string name="proxy-Id name">"wxID_OK"</string> <string name="proxy-Id name">"wxID_OK"</string>
<long name="proxy-Id value">5100</long> <long name="proxy-Id value">5100</long>
<string name="proxy-Class">"wxButton"</string> <string name="proxy-Class">"wxButton"</string>
<string name="proxy-Base class">"wxButton"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">""</string> <string name="proxy-Member variable name">""</string>
<string name="proxy-Label">"&amp;OK"</string> <string name="proxy-Label">"&amp;OK"</string>
<bool name="proxy-Default">0</bool> <bool name="proxy-Default">0</bool>
...@@ -947,6 +1002,11 @@ ...@@ -947,6 +1002,11 @@
<string name="proxy-Id name">"wxID_CANCEL"</string> <string name="proxy-Id name">"wxID_CANCEL"</string>
<long name="proxy-Id value">5101</long> <long name="proxy-Id value">5101</long>
<string name="proxy-Class">"wxButton"</string> <string name="proxy-Class">"wxButton"</string>
<string name="proxy-Base class">"wxButton"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">""</string> <string name="proxy-Member variable name">""</string>
<string name="proxy-Label">"&amp;Cancel"</string> <string name="proxy-Label">"&amp;Cancel"</string>
<bool name="proxy-Default">0</bool> <bool name="proxy-Default">0</bool>
...@@ -1000,21 +1060,22 @@ ...@@ -1000,21 +1060,22 @@
<string name="proxy-Id name">"wxID_ANY"</string> <string name="proxy-Id name">"wxID_ANY"</string>
<string name="proxy-Id value">"-1"</string> <string name="proxy-Id value">"-1"</string>
<string name="proxy-Label">"Layers:"</string> <string name="proxy-Label">"Layers:"</string>
<string name="proxy-Member variable name">""</string>
<string name="proxy-Sizer member variable name">""</string> <string name="proxy-Sizer member variable name">""</string>
<string name="proxy-Foreground colour">""</string> <string name="proxy-Foreground colour">""</string>
<string name="proxy-Font">""</string> <string name="proxy-Font">""</string>
<bool name="proxy-Hidden">0</bool> <bool name="proxy-Hidden">0</bool>
<bool name="proxy-Enabled">1</bool> <bool name="proxy-Enabled">1</bool>
<string name="proxy-Static box class">"wxStaticBox"</string>
<string name="proxy-Orientation">"Vertical"</string> <string name="proxy-Orientation">"Vertical"</string>
<string name="proxy-Member variable name">""</string>
<string name="proxy-AlignH">"Centre"</string> <string name="proxy-AlignH">"Centre"</string>
<string name="proxy-AlignV">"Centre"</string> <string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long> <long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long> <long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool> <bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool> <bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool> <bool name="proxy-wxTOP">0</bool>
<bool name="proxy-wxBOTTOM">1</bool> <bool name="proxy-wxBOTTOM">0</bool>
<bool name="proxy-wxSHAPED">0</bool> <bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool> <bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool> <bool name="proxy-wxFIXED_MINSIZE">0</bool>
...@@ -1033,6 +1094,11 @@ ...@@ -1033,6 +1094,11 @@
<string name="proxy-Id name">"ID_CHECKBOX"</string> <string name="proxy-Id name">"ID_CHECKBOX"</string>
<long name="proxy-Id value">10006</long> <long name="proxy-Id value">10006</long>
<string name="proxy-Class">"wxCheckBox"</string> <string name="proxy-Class">"wxCheckBox"</string>
<string name="proxy-Base class">"wxCheckBox"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_PadLayerCu"</string> <string name="proxy-Member variable name">"m_PadLayerCu"</string>
<string name="proxy-Label">"Copper layer"</string> <string name="proxy-Label">"Copper layer"</string>
<bool name="proxy-Initial value">0</bool> <bool name="proxy-Initial value">0</bool>
...@@ -1065,7 +1131,7 @@ ...@@ -1065,7 +1131,7 @@
<bool name="proxy-wxLEFT">1</bool> <bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool> <bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool> <bool name="proxy-wxTOP">1</bool>
<bool name="proxy-wxBOTTOM">1</bool> <bool name="proxy-wxBOTTOM">0</bool>
<bool name="proxy-wxSHAPED">0</bool> <bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool> <bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool> <bool name="proxy-wxFIXED_MINSIZE">0</bool>
...@@ -1086,6 +1152,11 @@ ...@@ -1086,6 +1152,11 @@
<string name="proxy-Id name">"ID_CHECKBOX1"</string> <string name="proxy-Id name">"ID_CHECKBOX1"</string>
<long name="proxy-Id value">10007</long> <long name="proxy-Id value">10007</long>
<string name="proxy-Class">"wxCheckBox"</string> <string name="proxy-Class">"wxCheckBox"</string>
<string name="proxy-Base class">"wxCheckBox"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_PadLayerCmp"</string> <string name="proxy-Member variable name">"m_PadLayerCmp"</string>
<string name="proxy-Label">"Comp layer"</string> <string name="proxy-Label">"Comp layer"</string>
<bool name="proxy-Initial value">0</bool> <bool name="proxy-Initial value">0</bool>
...@@ -1117,7 +1188,7 @@ ...@@ -1117,7 +1188,7 @@
<long name="proxy-Border">5</long> <long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool> <bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool> <bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool> <bool name="proxy-wxTOP">0</bool>
<bool name="proxy-wxBOTTOM">1</bool> <bool name="proxy-wxBOTTOM">1</bool>
<bool name="proxy-wxSHAPED">0</bool> <bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool> <bool name="proxy-wxADJUST_MINSIZE">0</bool>
...@@ -1165,6 +1236,11 @@ ...@@ -1165,6 +1236,11 @@
<string name="proxy-Id name">"ID_CHECKBOX2"</string> <string name="proxy-Id name">"ID_CHECKBOX2"</string>
<long name="proxy-Id value">10008</long> <long name="proxy-Id value">10008</long>
<string name="proxy-Class">"wxCheckBox"</string> <string name="proxy-Class">"wxCheckBox"</string>
<string name="proxy-Base class">"wxCheckBox"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_PadLayerAdhCmp"</string> <string name="proxy-Member variable name">"m_PadLayerAdhCmp"</string>
<string name="proxy-Label">"Adhesive Cmp"</string> <string name="proxy-Label">"Adhesive Cmp"</string>
<bool name="proxy-Initial value">0</bool> <bool name="proxy-Initial value">0</bool>
...@@ -1197,7 +1273,7 @@ ...@@ -1197,7 +1273,7 @@
<bool name="proxy-wxLEFT">1</bool> <bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool> <bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool> <bool name="proxy-wxTOP">1</bool>
<bool name="proxy-wxBOTTOM">1</bool> <bool name="proxy-wxBOTTOM">0</bool>
<bool name="proxy-wxSHAPED">0</bool> <bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool> <bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool> <bool name="proxy-wxFIXED_MINSIZE">0</bool>
...@@ -1218,6 +1294,11 @@ ...@@ -1218,6 +1294,11 @@
<string name="proxy-Id name">"ID_CHECKBOX3"</string> <string name="proxy-Id name">"ID_CHECKBOX3"</string>
<long name="proxy-Id value">10009</long> <long name="proxy-Id value">10009</long>
<string name="proxy-Class">"wxCheckBox"</string> <string name="proxy-Class">"wxCheckBox"</string>
<string name="proxy-Base class">"wxCheckBox"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_PadLayerAdhCu"</string> <string name="proxy-Member variable name">"m_PadLayerAdhCu"</string>
<string name="proxy-Label">"Adhesive Copper"</string> <string name="proxy-Label">"Adhesive Copper"</string>
<bool name="proxy-Initial value">0</bool> <bool name="proxy-Initial value">0</bool>
...@@ -1249,8 +1330,8 @@ ...@@ -1249,8 +1330,8 @@
<long name="proxy-Border">5</long> <long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool> <bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool> <bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool> <bool name="proxy-wxTOP">0</bool>
<bool name="proxy-wxBOTTOM">1</bool> <bool name="proxy-wxBOTTOM">0</bool>
<bool name="proxy-wxSHAPED">0</bool> <bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool> <bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool> <bool name="proxy-wxFIXED_MINSIZE">0</bool>
...@@ -1271,6 +1352,11 @@ ...@@ -1271,6 +1352,11 @@
<string name="proxy-Id name">"ID_CHECKBOX4"</string> <string name="proxy-Id name">"ID_CHECKBOX4"</string>
<long name="proxy-Id value">10010</long> <long name="proxy-Id value">10010</long>
<string name="proxy-Class">"wxCheckBox"</string> <string name="proxy-Class">"wxCheckBox"</string>
<string name="proxy-Base class">"wxCheckBox"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_PadLayerPateCmp"</string> <string name="proxy-Member variable name">"m_PadLayerPateCmp"</string>
<string name="proxy-Label">"Solder paste Cmp"</string> <string name="proxy-Label">"Solder paste Cmp"</string>
<bool name="proxy-Initial value">0</bool> <bool name="proxy-Initial value">0</bool>
...@@ -1302,8 +1388,8 @@ ...@@ -1302,8 +1388,8 @@
<long name="proxy-Border">5</long> <long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool> <bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool> <bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool> <bool name="proxy-wxTOP">0</bool>
<bool name="proxy-wxBOTTOM">1</bool> <bool name="proxy-wxBOTTOM">0</bool>
<bool name="proxy-wxSHAPED">0</bool> <bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool> <bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool> <bool name="proxy-wxFIXED_MINSIZE">0</bool>
...@@ -1324,6 +1410,11 @@ ...@@ -1324,6 +1410,11 @@
<string name="proxy-Id name">"ID_CHECKBOX5"</string> <string name="proxy-Id name">"ID_CHECKBOX5"</string>
<long name="proxy-Id value">10011</long> <long name="proxy-Id value">10011</long>
<string name="proxy-Class">"wxCheckBox"</string> <string name="proxy-Class">"wxCheckBox"</string>
<string name="proxy-Base class">"wxCheckBox"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_PadLayerPateCu"</string> <string name="proxy-Member variable name">"m_PadLayerPateCu"</string>
<string name="proxy-Label">"Solder paste Copper"</string> <string name="proxy-Label">"Solder paste Copper"</string>
<bool name="proxy-Initial value">0</bool> <bool name="proxy-Initial value">0</bool>
...@@ -1355,8 +1446,8 @@ ...@@ -1355,8 +1446,8 @@
<long name="proxy-Border">5</long> <long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool> <bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool> <bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool> <bool name="proxy-wxTOP">0</bool>
<bool name="proxy-wxBOTTOM">1</bool> <bool name="proxy-wxBOTTOM">0</bool>
<bool name="proxy-wxSHAPED">0</bool> <bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool> <bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool> <bool name="proxy-wxFIXED_MINSIZE">0</bool>
...@@ -1377,6 +1468,11 @@ ...@@ -1377,6 +1468,11 @@
<string name="proxy-Id name">"ID_CHECKBOX6"</string> <string name="proxy-Id name">"ID_CHECKBOX6"</string>
<long name="proxy-Id value">10012</long> <long name="proxy-Id value">10012</long>
<string name="proxy-Class">"wxCheckBox"</string> <string name="proxy-Class">"wxCheckBox"</string>
<string name="proxy-Base class">"wxCheckBox"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_PadLayerSilkCmp"</string> <string name="proxy-Member variable name">"m_PadLayerSilkCmp"</string>
<string name="proxy-Label">"Silkscreen Cmp"</string> <string name="proxy-Label">"Silkscreen Cmp"</string>
<bool name="proxy-Initial value">0</bool> <bool name="proxy-Initial value">0</bool>
...@@ -1408,8 +1504,8 @@ ...@@ -1408,8 +1504,8 @@
<long name="proxy-Border">5</long> <long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool> <bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool> <bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool> <bool name="proxy-wxTOP">0</bool>
<bool name="proxy-wxBOTTOM">1</bool> <bool name="proxy-wxBOTTOM">0</bool>
<bool name="proxy-wxSHAPED">0</bool> <bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool> <bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool> <bool name="proxy-wxFIXED_MINSIZE">0</bool>
...@@ -1430,6 +1526,11 @@ ...@@ -1430,6 +1526,11 @@
<string name="proxy-Id name">"ID_CHECKBOX7"</string> <string name="proxy-Id name">"ID_CHECKBOX7"</string>
<long name="proxy-Id value">10013</long> <long name="proxy-Id value">10013</long>
<string name="proxy-Class">"wxCheckBox"</string> <string name="proxy-Class">"wxCheckBox"</string>
<string name="proxy-Base class">"wxCheckBox"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_PadLayerSilkCu"</string> <string name="proxy-Member variable name">"m_PadLayerSilkCu"</string>
<string name="proxy-Label">"Silkscreen Copper"</string> <string name="proxy-Label">"Silkscreen Copper"</string>
<bool name="proxy-Initial value">0</bool> <bool name="proxy-Initial value">0</bool>
...@@ -1461,8 +1562,8 @@ ...@@ -1461,8 +1562,8 @@
<long name="proxy-Border">5</long> <long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool> <bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool> <bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool> <bool name="proxy-wxTOP">0</bool>
<bool name="proxy-wxBOTTOM">1</bool> <bool name="proxy-wxBOTTOM">0</bool>
<bool name="proxy-wxSHAPED">0</bool> <bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool> <bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool> <bool name="proxy-wxFIXED_MINSIZE">0</bool>
...@@ -1483,6 +1584,11 @@ ...@@ -1483,6 +1584,11 @@
<string name="proxy-Id name">"ID_CHECKBOX8"</string> <string name="proxy-Id name">"ID_CHECKBOX8"</string>
<long name="proxy-Id value">10014</long> <long name="proxy-Id value">10014</long>
<string name="proxy-Class">"wxCheckBox"</string> <string name="proxy-Class">"wxCheckBox"</string>
<string name="proxy-Base class">"wxCheckBox"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_PadLayerMaskCmp"</string> <string name="proxy-Member variable name">"m_PadLayerMaskCmp"</string>
<string name="proxy-Label">"Solder mask Cmp"</string> <string name="proxy-Label">"Solder mask Cmp"</string>
<bool name="proxy-Initial value">0</bool> <bool name="proxy-Initial value">0</bool>
...@@ -1514,8 +1620,8 @@ ...@@ -1514,8 +1620,8 @@
<long name="proxy-Border">5</long> <long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool> <bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool> <bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool> <bool name="proxy-wxTOP">0</bool>
<bool name="proxy-wxBOTTOM">1</bool> <bool name="proxy-wxBOTTOM">0</bool>
<bool name="proxy-wxSHAPED">0</bool> <bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool> <bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool> <bool name="proxy-wxFIXED_MINSIZE">0</bool>
...@@ -1536,6 +1642,11 @@ ...@@ -1536,6 +1642,11 @@
<string name="proxy-Id name">"ID_CHECKBOX9"</string> <string name="proxy-Id name">"ID_CHECKBOX9"</string>
<long name="proxy-Id value">10015</long> <long name="proxy-Id value">10015</long>
<string name="proxy-Class">"wxCheckBox"</string> <string name="proxy-Class">"wxCheckBox"</string>
<string name="proxy-Base class">"wxCheckBox"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_PadLayerMaskCu"</string> <string name="proxy-Member variable name">"m_PadLayerMaskCu"</string>
<string name="proxy-Label">"Solder mask Copper"</string> <string name="proxy-Label">"Solder mask Copper"</string>
<bool name="proxy-Initial value">0</bool> <bool name="proxy-Initial value">0</bool>
...@@ -1567,8 +1678,8 @@ ...@@ -1567,8 +1678,8 @@
<long name="proxy-Border">5</long> <long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool> <bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool> <bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool> <bool name="proxy-wxTOP">0</bool>
<bool name="proxy-wxBOTTOM">1</bool> <bool name="proxy-wxBOTTOM">0</bool>
<bool name="proxy-wxSHAPED">0</bool> <bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool> <bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool> <bool name="proxy-wxFIXED_MINSIZE">0</bool>
...@@ -1589,6 +1700,11 @@ ...@@ -1589,6 +1700,11 @@
<string name="proxy-Id name">"ID_CHECKBOX10"</string> <string name="proxy-Id name">"ID_CHECKBOX10"</string>
<long name="proxy-Id value">10016</long> <long name="proxy-Id value">10016</long>
<string name="proxy-Class">"wxCheckBox"</string> <string name="proxy-Class">"wxCheckBox"</string>
<string name="proxy-Base class">"wxCheckBox"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_PadLayerECO1"</string> <string name="proxy-Member variable name">"m_PadLayerECO1"</string>
<string name="proxy-Label">"E.C.O.1 layer"</string> <string name="proxy-Label">"E.C.O.1 layer"</string>
<bool name="proxy-Initial value">0</bool> <bool name="proxy-Initial value">0</bool>
...@@ -1620,8 +1736,8 @@ ...@@ -1620,8 +1736,8 @@
<long name="proxy-Border">5</long> <long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool> <bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool> <bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool> <bool name="proxy-wxTOP">0</bool>
<bool name="proxy-wxBOTTOM">1</bool> <bool name="proxy-wxBOTTOM">0</bool>
<bool name="proxy-wxSHAPED">0</bool> <bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool> <bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool> <bool name="proxy-wxFIXED_MINSIZE">0</bool>
...@@ -1642,6 +1758,11 @@ ...@@ -1642,6 +1758,11 @@
<string name="proxy-Id name">"ID_CHECKBOX11"</string> <string name="proxy-Id name">"ID_CHECKBOX11"</string>
<long name="proxy-Id value">10017</long> <long name="proxy-Id value">10017</long>
<string name="proxy-Class">"wxCheckBox"</string> <string name="proxy-Class">"wxCheckBox"</string>
<string name="proxy-Base class">"wxCheckBox"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_PadLayerECO2"</string> <string name="proxy-Member variable name">"m_PadLayerECO2"</string>
<string name="proxy-Label">"E.C.O.2 layer"</string> <string name="proxy-Label">"E.C.O.2 layer"</string>
<bool name="proxy-Initial value">0</bool> <bool name="proxy-Initial value">0</bool>
...@@ -1673,8 +1794,8 @@ ...@@ -1673,8 +1794,8 @@
<long name="proxy-Border">5</long> <long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool> <bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool> <bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool> <bool name="proxy-wxTOP">0</bool>
<bool name="proxy-wxBOTTOM">1</bool> <bool name="proxy-wxBOTTOM">0</bool>
<bool name="proxy-wxSHAPED">0</bool> <bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool> <bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool> <bool name="proxy-wxFIXED_MINSIZE">0</bool>
...@@ -1695,6 +1816,11 @@ ...@@ -1695,6 +1816,11 @@
<string name="proxy-Id name">"ID_CHECKBOX12"</string> <string name="proxy-Id name">"ID_CHECKBOX12"</string>
<long name="proxy-Id value">10018</long> <long name="proxy-Id value">10018</long>
<string name="proxy-Class">"wxCheckBox"</string> <string name="proxy-Class">"wxCheckBox"</string>
<string name="proxy-Base class">"wxCheckBox"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_PadLayerDraft"</string> <string name="proxy-Member variable name">"m_PadLayerDraft"</string>
<string name="proxy-Label">"Draft layer"</string> <string name="proxy-Label">"Draft layer"</string>
<bool name="proxy-Initial value">0</bool> <bool name="proxy-Initial value">0</bool>
...@@ -1726,7 +1852,7 @@ ...@@ -1726,7 +1852,7 @@
<long name="proxy-Border">5</long> <long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool> <bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool> <bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool> <bool name="proxy-wxTOP">0</bool>
<bool name="proxy-wxBOTTOM">1</bool> <bool name="proxy-wxBOTTOM">1</bool>
<bool name="proxy-wxSHAPED">0</bool> <bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool> <bool name="proxy-wxADJUST_MINSIZE">0</bool>
......
...@@ -160,12 +160,6 @@ int tmp; ...@@ -160,12 +160,6 @@ int tmp;
m_PadSizeCtrl->Enable(TRUE, TRUE); m_PadSizeCtrl->Enable(TRUE, TRUE);
m_PadShape->SetSelection(3); m_PadShape->SetSelection(3);
break; break;
case SPECIAL_PAD:
m_PadDeltaSizeCtrl->Enable(FALSE, FALSE);
m_PadSizeCtrl->Enable(TRUE, TRUE);
m_PadShape->SetSelection(4);
break;
} }
// Selection du type // Selection du type
...@@ -416,9 +410,6 @@ bool error = FALSE; ...@@ -416,9 +410,6 @@ bool error = FALSE;
case TRAPEZE: case TRAPEZE:
break; break;
case SPECIAL_PAD:
break;
} }
switch ( CurrentPad->m_Attribut ) switch ( CurrentPad->m_Attribut )
......
...@@ -174,9 +174,8 @@ int WinEDA_PcbFrame::LoadOnePcbFile( const wxString& FullFileName, wxDC* DC, boo ...@@ -174,9 +174,8 @@ int WinEDA_PcbFrame::LoadOnePcbFile( const wxString& FullFileName, wxDC* DC, boo
else else
GetScreen()->m_FileName = FullFileName; GetScreen()->m_FileName = FullFileName;
///////////////////////// /* Start read PCB file
/* Lecture Fichier PCB */ */
/////////////////////////
source = wxFopen( GetScreen()->m_FileName, wxT( "rt" ) ); source = wxFopen( GetScreen()->m_FileName, wxT( "rt" ) );
if( source == NULL ) if( source == NULL )
...@@ -187,7 +186,7 @@ int WinEDA_PcbFrame::LoadOnePcbFile( const wxString& FullFileName, wxDC* DC, boo ...@@ -187,7 +186,7 @@ int WinEDA_PcbFrame::LoadOnePcbFile( const wxString& FullFileName, wxDC* DC, boo
} }
/* Lecture de l'entete et TEST si PCB format ASCII */ /* Read header and TEST if it is a PCB file format */
GetLine( source, cbuf, &ii ); GetLine( source, cbuf, &ii );
if( strncmp( cbuf, "PCBNEW-BOARD", 12 ) != 0 ) if( strncmp( cbuf, "PCBNEW-BOARD", 12 ) != 0 )
{ {
...@@ -199,7 +198,7 @@ int WinEDA_PcbFrame::LoadOnePcbFile( const wxString& FullFileName, wxDC* DC, boo ...@@ -199,7 +198,7 @@ int WinEDA_PcbFrame::LoadOnePcbFile( const wxString& FullFileName, wxDC* DC, boo
SetTitle( GetScreen()->m_FileName ); SetTitle( GetScreen()->m_FileName );
SetLastProject( GetScreen()->m_FileName ); SetLastProject( GetScreen()->m_FileName );
// Rechargement de la configuration: // Reload the corresponding configuration file:
wxSetWorkingDirectory( wxPathOnly( GetScreen()->m_FileName ) ); wxSetWorkingDirectory( wxPathOnly( GetScreen()->m_FileName ) );
if( Append ) if( Append )
ReadPcbFile( DC, source, TRUE ); ReadPcbFile( DC, source, TRUE );
...@@ -207,7 +206,7 @@ int WinEDA_PcbFrame::LoadOnePcbFile( const wxString& FullFileName, wxDC* DC, boo ...@@ -207,7 +206,7 @@ int WinEDA_PcbFrame::LoadOnePcbFile( const wxString& FullFileName, wxDC* DC, boo
{ {
Read_Config( GetScreen()->m_FileName ); Read_Config( GetScreen()->m_FileName );
// Mise a jour du toolbar d'options // Update the option toolbar
m_DisplayPcbTrackFill = DisplayOpt.DisplayPcbTrackFill; m_DisplayPcbTrackFill = DisplayOpt.DisplayPcbTrackFill;
m_DisplayModText = DisplayOpt.DisplayModText; m_DisplayModText = DisplayOpt.DisplayModText;
m_DisplayModEdge = DisplayOpt.DisplayModEdge; m_DisplayModEdge = DisplayOpt.DisplayModEdge;
...@@ -227,11 +226,12 @@ int WinEDA_PcbFrame::LoadOnePcbFile( const wxString& FullFileName, wxDC* DC, boo ...@@ -227,11 +226,12 @@ int WinEDA_PcbFrame::LoadOnePcbFile( const wxString& FullFileName, wxDC* DC, boo
wxGetCwd().GetData(), DIR_SEP, PcbExtBuffer.GetData() ); wxGetCwd().GetData(), DIR_SEP, PcbExtBuffer.GetData() );
} }
/* liste des pads recalculee avec Affichage des messages d'erreur */ /* Rebuild the new pad list (for drc and ratsnet control ...) */
build_liste_pads(); build_liste_pads();
m_Pcb->Display_Infos( this ); m_Pcb->Display_Infos( this );
/* reset the auto save timer */
g_SaveTime = time( NULL ); g_SaveTime = time( NULL );
......
...@@ -9,78 +9,110 @@ ...@@ -9,78 +9,110 @@
#include "common.h" #include "common.h"
#include "pcbnew.h" #include "pcbnew.h"
#include "id.h" #include "id.h"
#include "hotkeys_basic.h" #include "hotkeys.h"
#include "protos.h" #include "protos.h"
/* Routines locales */ /* How to add a new hotkey:
* add a new id in the enum hotkey_id_commnand like MY_NEW_ID_FUNCTION.
enum hotkey_id_commnand { * add a new Ki_HotkeyInfo entry like:
HK_NOT_FOUND = 0, * static Ki_HotkeyInfo HkMyNewEntry(wxT("Command Label"), MY_NEW_ID_FUNCTION, default key value);
HK_RESET_LOCAL_COORD, * "Command Label" is the name used in hotkey list display, and the identifier in the hotkey list file
HK_HELP, * MY_NEW_ID_FUNCTION is an equivalent id function used in the switch in OnHotKey() function.
HK_ZOOM_IN, * default key value is the default hotkey for this command. Can be overrided by the user hotkey list file
HK_ZOOM_OUT, * add the HkMyNewEntry pointer in the s_board_edit_Hotkey_List list ( or/and the s_module_edit_Hotkey_List list)
HK_ZOOM_REDRAW, * Add the new code in the switch in OnHotKey() function.
HK_ZOOM_CENTER, * when the variable PopupOn is true, an item is currently edited.
HK_DELETE, * This can be usefull if the new function cannot be executed while an item is currently being edited
HK_BACK_SPACE, * ( For example, one cannot start a new wire when a component is moving.)
HK_ROTATE_FOOTPRINT, *
HK_MOVE_FOOTPRINT, * Note: If an hotkey is a special key be sure the corresponding wxWidget keycode (WXK_XXXX)
HK_DRAG_FOOTPRINT, * is handled in the hotkey_name_descr s_Hotkey_Name_List list (see hotkeys_basic.cpp)
HK_FLIP_FOOTPRINT, * and see this list for some ascii keys (space ...)
HK_LOCK_UNLOCK_FOOTPRINT, */
HK_ADD_VIA, HK_END_TRACK,
HK_SAVE_BOARD, HK_LOAD_BOARD,
HK_SWITCH_UNITS, HK_SWITCH_TRACK_DISPLAY_MODE,
HK_FIND_ITEM
};
/* local variables */ /* local variables */
/* Hotkey list: */ /* Hotkey list: */
static Ki_HotkeyInfo HkSavefile(wxT("Save board"), HK_SAVE_BOARD, 'S' + GR_KB_CTRL); static Ki_HotkeyInfo HkSwitch2CopperLayer( wxT(
static Ki_HotkeyInfo HkLoadfile(wxT("Load board"), HK_LOAD_BOARD, 'L' + GR_KB_CTRL); "Switch to Copper layer" ),
static Ki_HotkeyInfo HkFindItem(wxT("Find Item"), HK_FIND_ITEM, 'F' + GR_KB_CTRL); HK_SWITCH_LAYER_TO_COPPER, '-' );
static Ki_HotkeyInfo HkBackspace(wxT("Delete track segment"), HK_BACK_SPACE, WXK_BACK); static Ki_HotkeyInfo HkSwitch2ComponentLayer( wxT(
static Ki_HotkeyInfo HkAddVia(wxT("Add Via"), HK_ADD_VIA, 'V'); "Switch to Component layer" ),
static Ki_HotkeyInfo HkEndTrack(wxT("End Track"), HK_END_TRACK, WXK_END); HK_SWITCH_LAYER_TO_COMPONENT, '+' );
static Ki_HotkeyInfo HkFlipFootprint(wxT("Flip Footprint"), HK_FLIP_FOOTPRINT, 'F'); static Ki_HotkeyInfo HkSwitch2InnerLayer1( wxT(
static Ki_HotkeyInfo HkRotateFootprint(wxT("Rotate Footprint"), HK_ROTATE_FOOTPRINT, 'R'); "Switch to Inner layer 1" ),
static Ki_HotkeyInfo HkMoveFootprint(wxT("Move Footprint"), HK_MOVE_FOOTPRINT, 'M'); HK_SWITCH_LAYER_TO_INNER1, WXK_F5 );
static Ki_HotkeyInfo HkDragFootprint(wxT("Drag Footprint"), HK_DRAG_FOOTPRINT, 'G'); static Ki_HotkeyInfo HkSwitch2InnerLayer2( wxT(
static Ki_HotkeyInfo HkLock_Unlock_Footprint(wxT("Lock/Unlock Footprint"), HK_LOCK_UNLOCK_FOOTPRINT, 'L'); "Switch to Inner layer 2" ),
static Ki_HotkeyInfo HkDelete(wxT("Delete Track or Footprint"), HK_DELETE, WXK_DELETE); HK_SWITCH_LAYER_TO_INNER2, WXK_F6 );
static Ki_HotkeyInfo HkResetLocalCoord(wxT("Reset local coord."), HK_RESET_LOCAL_COORD, ' '); static Ki_HotkeyInfo HkSwitch2InnerLayer3( wxT(
static Ki_HotkeyInfo HkZoomCenter(wxT("Zoom Center"), HK_ZOOM_CENTER, WXK_F4); "Switch to Inner layer 3" ),
static Ki_HotkeyInfo HkZoomRedraw(wxT("Zoom Redraw"), HK_ZOOM_REDRAW, WXK_F3); HK_SWITCH_LAYER_TO_INNER3, WXK_F7 );
static Ki_HotkeyInfo HkZoomOut(wxT("Zoom Out"), HK_ZOOM_OUT, WXK_F2); static Ki_HotkeyInfo HkSwitch2InnerLayer4( wxT(
static Ki_HotkeyInfo HkZoomIn(wxT("Zoom In"), HK_ZOOM_IN, WXK_F1); "Switch to Inner layer 4" ),
static Ki_HotkeyInfo HkHelp(wxT("Help: this message"), HK_HELP, '?'); HK_SWITCH_LAYER_TO_INNER4, WXK_F8 );
static Ki_HotkeyInfo HkSwitchUnits(wxT("Switch Units"), HK_SWITCH_UNITS, 'U'); static Ki_HotkeyInfo HkSwitch2InnerLayer5( wxT(
static Ki_HotkeyInfo HkTrackDisplayMode(wxT("Track Display Mode"), HK_SWITCH_TRACK_DISPLAY_MODE, 'F'); "Switch to Inner layer 5" ),
HK_SWITCH_LAYER_TO_INNER5, WXK_F9 );
static Ki_HotkeyInfo HkSwitch2InnerLayer6( wxT(
"Switch to Inner layer 6" ),
HK_SWITCH_LAYER_TO_INNER6, WXK_F10 );
static Ki_HotkeyInfo HkSavefile( wxT( "Save board" ), HK_SAVE_BOARD, 'S' + GR_KB_CTRL );
static Ki_HotkeyInfo HkLoadfile( wxT( "Load board" ), HK_LOAD_BOARD, 'L' + GR_KB_CTRL );
static Ki_HotkeyInfo HkFindItem( wxT( "Find Item" ), HK_FIND_ITEM, 'F' + GR_KB_CTRL );
static Ki_HotkeyInfo HkBackspace( wxT( "Delete track segment" ), HK_BACK_SPACE, WXK_BACK );
static Ki_HotkeyInfo HkAddVia( wxT( "Add Via" ), HK_ADD_VIA, 'V' );
static Ki_HotkeyInfo HkEndTrack( wxT( "End Track" ), HK_END_TRACK, WXK_END );
static Ki_HotkeyInfo HkFlipFootprint( wxT( "Flip Footprint" ), HK_FLIP_FOOTPRINT, 'F' );
static Ki_HotkeyInfo HkRotateFootprint( wxT( "Rotate Footprint" ), HK_ROTATE_FOOTPRINT, 'R' );
static Ki_HotkeyInfo HkMoveFootprint( wxT( "Move Footprint" ), HK_MOVE_FOOTPRINT, 'M' );
static Ki_HotkeyInfo HkDragFootprint( wxT( "Drag Footprint" ), HK_DRAG_FOOTPRINT, 'G' );
static Ki_HotkeyInfo HkLock_Unlock_Footprint( wxT(
"Lock/Unlock Footprint" ),
HK_LOCK_UNLOCK_FOOTPRINT, 'L' );
static Ki_HotkeyInfo HkDelete( wxT( "Delete Track or Footprint" ), HK_DELETE, WXK_DELETE );
static Ki_HotkeyInfo HkResetLocalCoord( wxT( "Reset local coord." ), HK_RESET_LOCAL_COORD, ' ' );
static Ki_HotkeyInfo HkZoomCenter( wxT( "Zoom Center" ), HK_ZOOM_CENTER, WXK_F4 );
static Ki_HotkeyInfo HkZoomRedraw( wxT( "Zoom Redraw" ), HK_ZOOM_REDRAW, WXK_F3 );
static Ki_HotkeyInfo HkZoomOut( wxT( "Zoom Out" ), HK_ZOOM_OUT, WXK_F2 );
static Ki_HotkeyInfo HkZoomIn( wxT( "Zoom In" ), HK_ZOOM_IN, WXK_F1 );
static Ki_HotkeyInfo HkHelp( wxT( "Help: this message" ), HK_HELP, '?' );
static Ki_HotkeyInfo HkSwitchUnits( wxT( "Switch Units" ), HK_SWITCH_UNITS, 'U' );
static Ki_HotkeyInfo HkTrackDisplayMode( wxT(
"Track Display Mode" ),
HK_SWITCH_TRACK_DISPLAY_MODE, 'F' );
// List of hotkey descriptors for pcbnew // List of hotkey descriptors for pcbnew
Ki_HotkeyInfo *s_board_edit_Hotkey_List[] = { Ki_HotkeyInfo* s_board_edit_Hotkey_List[] = {
&HkHelp, &HkHelp,
&HkZoomIn, &HkZoomOut, &HkZoomRedraw, &HkZoomCenter, &HkZoomIn, &HkZoomOut, &HkZoomRedraw, &HkZoomCenter,
&HkResetLocalCoord, &HkSwitchUnits, &HkTrackDisplayMode, &HkResetLocalCoord, &HkSwitchUnits, &HkTrackDisplayMode,
&HkDelete, &HkBackspace, &HkDelete, &HkBackspace,
&HkAddVia, &HkEndTrack, &HkAddVia, &HkEndTrack,
&HkMoveFootprint, &HkFlipFootprint, &HkMoveFootprint, &HkFlipFootprint,
&HkRotateFootprint, &HkDragFootprint, &HkRotateFootprint, &HkDragFootprint,
&HkLock_Unlock_Footprint, &HkLock_Unlock_Footprint,
&HkSavefile, &HkLoadfile, &HkFindItem, &HkSavefile, &HkLoadfile, &HkFindItem,
NULL &HkSwitch2CopperLayer,
&HkSwitch2InnerLayer1,
&HkSwitch2InnerLayer2,
&HkSwitch2InnerLayer3,
&HkSwitch2InnerLayer4,
&HkSwitch2InnerLayer5,
&HkSwitch2InnerLayer6,
&HkSwitch2ComponentLayer,
NULL
}; };
Ki_HotkeyInfo *s_module_edit_Hotkey_List[] = { // List of hotkey descriptors for the module editor
&HkHelp, Ki_HotkeyInfo* s_module_edit_Hotkey_List[] = {
&HkZoomIn, &HkZoomOut, &HkZoomRedraw, &HkZoomCenter, &HkHelp,
&HkSwitchUnits, &HkResetLocalCoord, &HkZoomIn, &HkZoomOut, &HkZoomRedraw, &HkZoomCenter,
&HkDelete, &HkBackspace, &HkSwitchUnits, &HkResetLocalCoord,
NULL &HkDelete, &HkBackspace,
NULL
}; };
...@@ -88,16 +120,19 @@ Ki_HotkeyInfo *s_module_edit_Hotkey_List[] = { ...@@ -88,16 +120,19 @@ Ki_HotkeyInfo *s_module_edit_Hotkey_List[] = {
void WinEDA_PcbFrame::OnHotKey( wxDC* DC, int hotkey, void WinEDA_PcbFrame::OnHotKey( wxDC* DC, int hotkey,
EDA_BaseStruct* DrawStruct ) EDA_BaseStruct* DrawStruct )
/***********************************************************/ /***********************************************************/
/* Hot keys. Some commands are relatives to the item under the mouse cursor /* Hot keys. Some commands are relatives to the item under the mouse cursor
Commands are case insensitive * Commands are case insensitive
Zoom commands are not managed here * Zoom commands are not managed here
*/ * @param DC = current device context
* @param hotkey = hothey code (ascii or wxWidget code for special keys)
* @param DrawStruct = NULL or pointer on a EDA_BaseStruct under the mouse cursor
*/
{ {
bool PopupOn = GetScreen()->GetCurItem() bool PopupOn = GetScreen()->GetCurItem()
&& GetScreen()->GetCurItem()->m_Flags; && GetScreen()->GetCurItem()->m_Flags;
bool ItemFree = (GetScreen()->GetCurItem() == 0 ) bool ItemFree = (GetScreen()->GetCurItem() == 0 )
|| (GetScreen()->GetCurItem()->m_Flags == 0); || (GetScreen()->GetCurItem()->m_Flags == 0);
...@@ -106,214 +141,290 @@ void WinEDA_PcbFrame::OnHotKey( wxDC* DC, int hotkey, ...@@ -106,214 +141,290 @@ void WinEDA_PcbFrame::OnHotKey( wxDC* DC, int hotkey,
MODULE* module = NULL; MODULE* module = NULL;
// Remap the control key Ctrl A (0x01) to GR_KB_CTRL + 'A' (easier to handle...) // Remap the control key Ctrl A (0x01) to GR_KB_CTRL + 'A' (easier to handle...)
if ( (hotkey & GR_KB_CTRL) != 0 ) hotkey += 'A' - 1; if( (hotkey & GR_KB_CTRL) != 0 )
/* Convert lower to upper case (the usual toupper function has problem with non ascii codes like function keys */ hotkey += 'A' - 1;
if( (hotkey >= 'a') && (hotkey <= 'z') ) hotkey += 'A' - 'a'; /* Convert lower to upper case (the usual toupper function has problem with non ascii codes like function keys */
if( (hotkey >= 'a') && (hotkey <= 'z') )
int CommandCode = GetCommandCodeFromHotkey(hotkey, s_board_edit_Hotkey_List); hotkey += 'A' - 'a';
int CommandCode = GetCommandCodeFromHotkey( hotkey, s_board_edit_Hotkey_List );
int ll;
switch( CommandCode ) switch( CommandCode )
{ {
default: default:
case HK_NOT_FOUND: case HK_NOT_FOUND:
return; return;
break; break;
case HK_HELP: // Display Current hotkey list case HK_SWITCH_LAYER_TO_PREVIOUS:
DisplayHotkeyList(this, s_board_edit_Hotkey_List); ll = GetScreen()->m_Active_Layer;
break; if( ll > CMP_N )
break;
case HK_ZOOM_IN: if( ll <= CUIVRE_N )
case HK_ZOOM_OUT: break;
case HK_ZOOM_REDRAW: if( m_Pcb->m_BoardSettings->m_CopperLayerCount <= 1 ) // Single layer
case HK_ZOOM_CENTER: ll = CUIVRE_N;
break; if( ll == CMP_N )
ll = MAX( CUIVRE_N, m_Pcb->m_BoardSettings->m_CopperLayerCount - 2 );
case HK_RESET_LOCAL_COORD: /*Reset the relative coord */ else if( ll > CUIVRE_N )
GetScreen()->m_O_Curseur = GetScreen()->m_Curseur; ll--;
break; SwitchLayer( DC, ll );
break;
case HK_SWITCH_UNITS: case HK_SWITCH_LAYER_TO_NEXT:
g_UnitMetric = (g_UnitMetric == INCHES ) ? MILLIMETRE : INCHES; ll = GetScreen()->m_Active_Layer;
break; if( ll >= CMP_N )
break;
case HK_SWITCH_TRACK_DISPLAY_MODE: ll++;
DisplayOpt.DisplayPcbTrackFill ^= 1; DisplayOpt.DisplayPcbTrackFill &= 1; if( ll >= m_Pcb->m_BoardSettings->m_CopperLayerCount - 1 )
GetScreen()->SetRefreshReq(); ll = CMP_N;
break; if( m_Pcb->m_BoardSettings->m_CopperLayerCount <= 1 ) // Single layer
ll = CUIVRE_N;
case HK_DELETE: SwitchLayer( DC, ll );
OnHotkeyDeleteItem( DC, DrawStruct ); break;
break;
case HK_SWITCH_LAYER_TO_COMPONENT:
case HK_BACK_SPACE: SwitchLayer( DC, CMP_N );
if( m_ID_current_state == ID_TRACK_BUTT && GetScreen()->m_Active_Layer <= CMP_N ) break;
{
bool ItemFree = (GetScreen()->GetCurItem() == NULL ) case HK_SWITCH_LAYER_TO_COPPER:
|| (GetScreen()->GetCurItem()->m_Flags == 0); SwitchLayer( DC, CUIVRE_N );
if( ItemFree ) break;
{
// no track is currently being edited - select a segment and remove it. case HK_SWITCH_LAYER_TO_INNER1:
DrawStruct = PcbGeneralLocateAndDisplay(); SwitchLayer( DC, LAYER_N_2 );
break;
// don't let backspace delete modules!!
if( DrawStruct && (DrawStruct->m_StructType == TYPETRACK case HK_SWITCH_LAYER_TO_INNER2:
|| DrawStruct->m_StructType == TYPEVIA) ) SwitchLayer( DC, LAYER_N_3 );
Delete_Segment( DC, (TRACK*) DrawStruct ); break;
GetScreen()->SetModify();
} case HK_SWITCH_LAYER_TO_INNER3:
else if( GetScreen()->GetCurItem()->m_StructType == TYPETRACK ) SwitchLayer( DC, LAYER_N_4 );
{ break;
// then an element is being edited - remove the last segment.
GetScreen()->SetCurItem(Delete_Segment( DC, (TRACK*) GetScreen()->GetCurItem() ) ); case HK_SWITCH_LAYER_TO_INNER4:
GetScreen()->SetModify(); SwitchLayer( DC, LAYER_N_5 );
} break;
}
break; case HK_SWITCH_LAYER_TO_INNER5:
SwitchLayer( DC, LAYER_N_6 );
case HK_END_TRACK: break;
DrawPanel->MouseToCursorSchema();
End_Route( (TRACK*) (GetScreen()->GetCurItem()), DC ); case HK_SWITCH_LAYER_TO_INNER6:
break; SwitchLayer( DC, LAYER_N_7 );
break;
case HK_FIND_ITEM:
{ case HK_HELP: // Display Current hotkey list
wxCommandEvent evt; DisplayHotkeyList( this, s_board_edit_Hotkey_List );
evt.SetId( ID_FIND_ITEMS ); break;
Process_Special_Functions( evt );
} case HK_ZOOM_IN:
break; OnZoom( ID_ZOOM_PLUS_KEY );
break;
case HK_LOAD_BOARD:
{ case HK_ZOOM_OUT:
// try not to duplicate save, load code etc. OnZoom( ID_ZOOM_MOINS_KEY );
wxCommandEvent evt; break;
evt.SetId( ID_LOAD_FILE );
Files_io( evt ); case HK_ZOOM_REDRAW:
} OnZoom( ID_ZOOM_REDRAW_KEY );
break; break;
case HK_SAVE_BOARD: case HK_ZOOM_CENTER:
{ OnZoom( ID_ZOOM_CENTER_KEY );
// try not to duplicate save, load code etc. break;
wxCommandEvent evt;
evt.SetId( ID_SAVE_BOARD );
Files_io( evt ); case HK_RESET_LOCAL_COORD: /*Reset the relative coord */
} GetScreen()->m_O_Curseur = GetScreen()->m_Curseur;
break; break;
case HK_ADD_VIA: // Switch to alternate layer and Place a via if a track is in progress
if( m_ID_current_state != ID_TRACK_BUTT ) case HK_SWITCH_UNITS:
return; g_UnitMetric = (g_UnitMetric == INCHES ) ? MILLIMETRE : INCHES;
if( ItemFree ) break;
{
Other_Layer_Route( NULL, DC ); case HK_SWITCH_TRACK_DISPLAY_MODE:
break; DisplayOpt.DisplayPcbTrackFill ^= 1; DisplayOpt.DisplayPcbTrackFill &= 1;
} GetScreen()->SetRefreshReq();
if( GetScreen()->GetCurItem()->m_StructType != TYPETRACK ) break;
return;
if( (GetScreen()->GetCurItem()->m_Flags & IS_NEW) == 0 ) case HK_DELETE:
return; OnHotkeyDeleteItem( DC, DrawStruct );
Other_Layer_Route( (TRACK*) GetScreen()->GetCurItem(), DC ); break;
if( DisplayOpt.ContrastModeDisplay )
GetScreen()->SetRefreshReq(); case HK_BACK_SPACE:
break; if( m_ID_current_state == ID_TRACK_BUTT && GetScreen()->m_Active_Layer <= CMP_N )
{
// Footprint edition: bool ItemFree = (GetScreen()->GetCurItem() == NULL )
case HK_LOCK_UNLOCK_FOOTPRINT: // toggle module "MODULE_is_LOCKED" status: || (GetScreen()->GetCurItem()->m_Flags == 0);
// get any module, locked or not locked and toggle its locked status if( ItemFree )
if( ItemFree ) {
module = Locate_Prefered_Module( m_Pcb, CURSEUR_OFF_GRILLE | VISIBLE_ONLY ); // no track is currently being edited - select a segment and remove it.
else if( GetScreen()->GetCurItem()->m_StructType == TYPEMODULE ) DrawStruct = PcbGeneralLocateAndDisplay();
module = (MODULE*) GetScreen()->GetCurItem();
if( module ) // don't let backspace delete modules!!
{ if( DrawStruct && (DrawStruct->m_StructType == TYPETRACK
GetScreen()->SetCurItem(module); || DrawStruct->m_StructType == TYPEVIA) )
module->SetLocked( !module->IsLocked() ); Delete_Segment( DC, (TRACK*) DrawStruct );
module->Display_Infos( this ); GetScreen()->SetModify();
} }
break; else if( GetScreen()->GetCurItem()->m_StructType == TYPETRACK )
{
case HK_DRAG_FOOTPRINT: // Start move (and drag) module // then an element is being edited - remove the last segment.
case HK_MOVE_FOOTPRINT: // Start move module GetScreen()->SetCurItem( Delete_Segment( DC, (TRACK*) GetScreen()->GetCurItem() ) );
if( PopupOn ) GetScreen()->SetModify();
break; }
}
case HK_ROTATE_FOOTPRINT: // Rotation break;
case HK_FLIP_FOOTPRINT: // move to other side
if( ItemFree ) case HK_END_TRACK:
{ DrawPanel->MouseToCursorSchema();
module = Locate_Prefered_Module( m_Pcb, End_Route( (TRACK*) ( GetScreen()->GetCurItem() ), DC );
CURSEUR_OFF_GRILLE | IGNORE_LOCKED | VISIBLE_ONLY break;
#if defined (USE_MATCH_LAYER)
| MATCH_LAYER case HK_FIND_ITEM:
#endif {
); wxCommandEvent evt;
if( module == NULL ) // no footprint found evt.SetId( ID_FIND_ITEMS );
{ Process_Special_Functions( evt );
module = Locate_Prefered_Module( m_Pcb, CURSEUR_OFF_GRILLE ); }
if( module ) break;
{
// a footprint is found, but locked or on an other layer case HK_LOAD_BOARD:
if( module->IsLocked() ) {
{ // try not to duplicate save, load code etc.
wxString msg; wxCommandEvent evt;
evt.SetId( ID_LOAD_FILE );
msg.Printf( _("Footprint %s found, but locked"), Files_io( evt );
module->m_Reference->m_Text.GetData() ); }
break;
DisplayInfo( this, msg );
} case HK_SAVE_BOARD:
module = NULL; {
} // try not to duplicate save, load code etc.
} wxCommandEvent evt;
} evt.SetId( ID_SAVE_BOARD );
else if( GetScreen()->GetCurItem()->m_StructType == TYPEMODULE ) Files_io( evt );
{ }
module = (MODULE*) GetScreen()->GetCurItem(); break;
// @todo: might need to add a layer check in if() below case HK_ADD_VIA: // Switch to alternate layer and Place a via if a track is in progress
if( (GetScreen()->GetCurItem()->m_Flags == 0) if( m_ID_current_state != ID_TRACK_BUTT )
&& module->IsLocked() ) return;
module = NULL; // do not move, rotate ... it. if( ItemFree )
} {
if( module == NULL ) Other_Layer_Route( NULL, DC );
break; break;
}
/* I'd like to make sending to EESCHEMA edge triggered, but the if( GetScreen()->GetCurItem()->m_StructType != TYPETRACK )
simple mouse click on a module when the arrow icon is in play return;
does not set GetCurItem() at this time, nor does a mouse click if( (GetScreen()->GetCurItem()->m_Flags & IS_NEW) == 0 )
when the local ratsnest icon is in play set GetCurItem(), and these return;
actions also call SendMessageToEESCHEMA(). Other_Layer_Route( (TRACK*) GetScreen()->GetCurItem(), DC );
if( GetScreen()->GetCurItem() != module ) if( DisplayOpt.ContrastModeDisplay )
*/ GetScreen()->SetRefreshReq();
{ break;
// Send the module via socket to EESCHEMA's search facility.
SendMessageToEESCHEMA( module ); // Footprint edition:
case HK_LOCK_UNLOCK_FOOTPRINT: // toggle module "MODULE_is_LOCKED" status:
GetScreen()->SetCurItem(module); // get any module, locked or not locked and toggle its locked status
} if( ItemFree )
module = Locate_Prefered_Module( m_Pcb, CURSEUR_OFF_GRILLE | VISIBLE_ONLY );
switch( CommandCode ) else if( GetScreen()->GetCurItem()->m_StructType == TYPEMODULE )
{ module = (MODULE*) GetScreen()->GetCurItem();
case HK_ROTATE_FOOTPRINT: // Rotation if( module )
Rotate_Module( DC, module, 900, TRUE ); {
break; GetScreen()->SetCurItem( module );
module->SetLocked( !module->IsLocked() );
case HK_FLIP_FOOTPRINT: // move to other side module->Display_Infos( this );
Change_Side_Module( module, DC ); }
break; break;
case HK_DRAG_FOOTPRINT: // Start move (and drag) module case HK_DRAG_FOOTPRINT: // Start move (and drag) module
g_Drag_Pistes_On = TRUE; case HK_MOVE_FOOTPRINT: // Start move module
// fall through if( PopupOn )
case HK_MOVE_FOOTPRINT: // Start move module break;
StartMove_Module( module, DC );
break; case HK_ROTATE_FOOTPRINT: // Rotation
} case HK_FLIP_FOOTPRINT: // move to other side
module->Display_Infos( this ); if( ItemFree )
break; {
module = Locate_Prefered_Module( m_Pcb,
CURSEUR_OFF_GRILLE | IGNORE_LOCKED | VISIBLE_ONLY
#if defined (USE_MATCH_LAYER)
| MATCH_LAYER
#endif
);
if( module == NULL ) // no footprint found
{
module = Locate_Prefered_Module( m_Pcb, CURSEUR_OFF_GRILLE );
if( module )
{
// a footprint is found, but locked or on an other layer
if( module->IsLocked() )
{
wxString msg;
msg.Printf( _( "Footprint %s found, but locked" ),
module->m_Reference->m_Text.GetData() );
DisplayInfo( this, msg );
}
module = NULL;
}
}
}
else if( GetScreen()->GetCurItem()->m_StructType == TYPEMODULE )
{
module = (MODULE*) GetScreen()->GetCurItem();
// @todo: might need to add a layer check in if() below
if( (GetScreen()->GetCurItem()->m_Flags == 0)
&& module->IsLocked() )
module = NULL; // do not move, rotate ... it.
}
if( module == NULL )
break;
/* I'd like to make sending to EESCHEMA edge triggered, but the
* simple mouse click on a module when the arrow icon is in play
* does not set GetCurItem() at this time, nor does a mouse click
* when the local ratsnest icon is in play set GetCurItem(), and these
* actions also call SendMessageToEESCHEMA().
* if( GetScreen()->GetCurItem() != module )
*/
{
// Send the module via socket to EESCHEMA's search facility.
SendMessageToEESCHEMA( module );
GetScreen()->SetCurItem( module );
}
switch( CommandCode )
{
case HK_ROTATE_FOOTPRINT: // Rotation
Rotate_Module( DC, module, 900, TRUE );
break;
case HK_FLIP_FOOTPRINT: // move to other side
Change_Side_Module( module, DC );
break;
case HK_DRAG_FOOTPRINT: // Start move (and drag) module
g_Drag_Pistes_On = TRUE;
// fall through
case HK_MOVE_FOOTPRINT: // Start move module
StartMove_Module( module, DC );
break;
}
module->Display_Infos( this );
break;
} }
} }
...@@ -331,35 +442,47 @@ void WinEDA_ModuleEditFrame::OnHotKey( wxDC* DC, int hotkey, ...@@ -331,35 +442,47 @@ void WinEDA_ModuleEditFrame::OnHotKey( wxDC* DC, int hotkey,
if( hotkey == 0 ) if( hotkey == 0 )
return; return;
/* Convert lower to upper case (the usual toupper function has problem with non ascii codes like function keys */ /* Convert lower to upper case (the usual toupper function has problem with non ascii codes like function keys */
if( (hotkey >= 'a') && (hotkey <= 'z') ) hotkey += 'A' - 'a'; if( (hotkey >= 'a') && (hotkey <= 'z') )
hotkey += 'A' - 'a';
int CommandCode = GetCommandCodeFromHotkey( hotkey, s_module_edit_Hotkey_List );
int CommandCode = GetCommandCodeFromHotkey(hotkey, s_module_edit_Hotkey_List);
switch( CommandCode ) switch( CommandCode )
{ {
default: default:
case HK_NOT_FOUND: case HK_NOT_FOUND:
return; return;
break; break;
case HK_HELP: // Display Current hotkey list case HK_HELP: // Display Current hotkey list
DisplayHotkeyList(this, s_module_edit_Hotkey_List); DisplayHotkeyList( this, s_module_edit_Hotkey_List );
break; break;
case HK_RESET_LOCAL_COORD: /*Reset the relative coord */ case HK_RESET_LOCAL_COORD: /*Reset the relative coord */
GetScreen()->m_O_Curseur = GetScreen()->m_Curseur; GetScreen()->m_O_Curseur = GetScreen()->m_Curseur;
break; break;
case HK_SWITCH_UNITS: case HK_SWITCH_UNITS:
g_UnitMetric = (g_UnitMetric == INCHES ) ? MILLIMETRE : INCHES; g_UnitMetric = (g_UnitMetric == INCHES ) ? MILLIMETRE : INCHES;
break; break;
case HK_ZOOM_IN: case HK_ZOOM_IN:
case HK_ZOOM_OUT: OnZoom( ID_ZOOM_PLUS_KEY );
case HK_ZOOM_REDRAW: break;
case HK_ZOOM_CENTER:
break; case HK_ZOOM_OUT:
OnZoom( ID_ZOOM_MOINS_KEY );
break;
case HK_ZOOM_REDRAW:
OnZoom( ID_ZOOM_REDRAW_KEY );
break;
case HK_ZOOM_CENTER:
OnZoom( ID_ZOOM_CENTER_KEY );
break;
} }
} }
...@@ -419,6 +542,6 @@ bool WinEDA_PcbFrame::OnHotkeyDeleteItem( wxDC* DC, EDA_BaseStruct* DrawStruct ) ...@@ -419,6 +542,6 @@ bool WinEDA_PcbFrame::OnHotkeyDeleteItem( wxDC* DC, EDA_BaseStruct* DrawStruct )
} }
GetScreen()->SetModify(); GetScreen()->SetModify();
GetScreen()->SetCurItem(NULL); GetScreen()->SetCurItem( NULL );
return TRUE; return TRUE;
} }
/***************/
/* hotkeys.h */
/***************/
#ifndef KOTKEYS_H
#define KOTKEYS_H
#include "hotkeys_basic.h"
enum hotkey_id_commnand {
HK_NOT_FOUND = 0,
HK_RESET_LOCAL_COORD,
HK_HELP,
HK_ZOOM_IN,
HK_ZOOM_OUT,
HK_ZOOM_REDRAW,
HK_ZOOM_CENTER,
HK_DELETE,
HK_BACK_SPACE,
HK_ROTATE_FOOTPRINT,
HK_MOVE_FOOTPRINT,
HK_DRAG_FOOTPRINT,
HK_FLIP_FOOTPRINT,
HK_LOCK_UNLOCK_FOOTPRINT,
HK_ADD_VIA, HK_END_TRACK,
HK_SAVE_BOARD, HK_LOAD_BOARD,
HK_SWITCH_UNITS, HK_SWITCH_TRACK_DISPLAY_MODE,
HK_FIND_ITEM,
HK_SWITCH_LAYER_TO_COPPER,
HK_SWITCH_LAYER_TO_COMPONENT,
HK_SWITCH_LAYER_TO_NEXT,
HK_SWITCH_LAYER_TO_PREVIOUS,
HK_SWITCH_LAYER_TO_INNER1,
HK_SWITCH_LAYER_TO_INNER2,
HK_SWITCH_LAYER_TO_INNER3,
HK_SWITCH_LAYER_TO_INNER4,
HK_SWITCH_LAYER_TO_INNER5,
HK_SWITCH_LAYER_TO_INNER6
};
// List of hotkey descriptors for pcbnew
extern Ki_HotkeyInfo* s_board_edit_Hotkey_List[];
// List of hotkey descriptors for the module editor
extern Ki_HotkeyInfo* s_module_edit_Hotkey_List[];
#endif // KOTKEYS_H
...@@ -183,11 +183,11 @@ wxMenuBar * menuBar = GetMenuBar(); ...@@ -183,11 +183,11 @@ wxMenuBar * menuBar = GetMenuBar();
configmenu->Append(item); configmenu->Append(item);
configmenu->AppendSeparator(); configmenu->AppendSeparator();
item = new wxMenuItem(configmenu, ID_PREFERENCES_CREATE_CONFIG_HOTKEYS, _("Create Eeschema &Hotkey config file"), item = new wxMenuItem(configmenu, ID_PREFERENCES_CREATE_CONFIG_HOTKEYS, _("Create Pcbnew &Hotkey config file"),
_("Create or Recreate the hotkey config file from current hotkey list") ); _("Create or Recreate the hotkey config file from current hotkey list") );
item->SetBitmap(save_setup_xpm); item->SetBitmap(save_setup_xpm);
configmenu->Append(item); configmenu->Append(item);
item = new wxMenuItem(configmenu, ID_PREFERENCES_READ_CONFIG_HOTKEYS, _("Reread &Eeschema Hotkey config file"), item = new wxMenuItem(configmenu, ID_PREFERENCES_READ_CONFIG_HOTKEYS, _("Reread &Pcbnew Hotkey config file"),
_("Reread the hotkey config file") ); _("Reread the hotkey config file") );
item->SetBitmap( reload_xpm); item->SetBitmap( reload_xpm);
configmenu->Append(item); configmenu->Append(item);
......
...@@ -58,6 +58,10 @@ bool WinEDA_App::OnInit( void ) ...@@ -58,6 +58,10 @@ bool WinEDA_App::OnInit( void )
Read_Config( FFileName ); Read_Config( FFileName );
g_DrawBgColor = BLACK; g_DrawBgColor = BLACK;
Read_Hotkey_Config( m_PcbFrame, false ); /* Must be called before creating the main frame
* in order to display the real hotkeys
* in menus or tool tips */
/* allocation de la memoire pour le fichier et autres buffers: */ /* allocation de la memoire pour le fichier et autres buffers: */
/* On reserve BUFMEMSIZE octets de ram pour calcul */ /* On reserve BUFMEMSIZE octets de ram pour calcul */
...@@ -79,7 +83,6 @@ bool WinEDA_App::OnInit( void ) ...@@ -79,7 +83,6 @@ bool WinEDA_App::OnInit( void )
SetTopWindow( m_PcbFrame ); SetTopWindow( m_PcbFrame );
m_PcbFrame->Show( TRUE ); m_PcbFrame->Show( TRUE );
Read_Hotkey_Config(m_PcbFrame, false);
if( CreateServer( m_PcbFrame, KICAD_PCB_PORT_SERVICE_NUMBER ) ) if( CreateServer( m_PcbFrame, KICAD_PCB_PORT_SERVICE_NUMBER ) )
{ {
......
/*****************************************************************/ /*****************************************************************/
/* too_modeit.cpp: construction du menu de l'editeur de modules */ /* too_modeit.cpp: construction du menu de l'editeur de modules */
/*****************************************************************/ /*****************************************************************/
#include "fctsys.h" #include "fctsys.h"
#include "gr_basic.h" #include "gr_basic.h"
...@@ -16,6 +16,8 @@ ...@@ -16,6 +16,8 @@
#include "id.h" #include "id.h"
#include "hotkeys.h"
#include "Module_Check.xpm" #include "Module_Check.xpm"
#include "Import_Module.xpm" #include "Import_Module.xpm"
#include "Export_Module.xpm" #include "Export_Module.xpm"
...@@ -32,277 +34,284 @@ ...@@ -32,277 +34,284 @@
#endif #endif
/***************************************************/ /***************************************************/
void WinEDA_ModuleEditFrame::ReCreateHToolbar(void) void WinEDA_ModuleEditFrame::ReCreateHToolbar( void )
/***************************************************/ /***************************************************/
/* Create the main horizontal toolbar for the footprint editor */
{ {
// Cecreate the toolbar if( m_HToolBar != NULL )
if ( m_HToolBar != NULL ) return; return;
m_HToolBar = new WinEDA_Toolbar(TOOLBAR_MAIN, this, ID_H_TOOLBAR, TRUE); wxString msg;
SetToolBar(m_HToolBar); m_HToolBar = new WinEDA_Toolbar( TOOLBAR_MAIN, this, ID_H_TOOLBAR, TRUE );
// Set up toolbar SetToolBar( m_HToolBar );
m_HToolBar->AddTool(ID_LIBEDIT_SELECT_CURRENT_LIB, wxEmptyString,
BITMAP(open_library_xpm), // Set up toolbar
_("Select working library")); m_HToolBar->AddTool( ID_LIBEDIT_SELECT_CURRENT_LIB, wxEmptyString,
BITMAP( open_library_xpm ),
m_HToolBar->AddTool(ID_MODEDIT_SAVE_LIBMODULE, wxEmptyString, BITMAP(save_library_xpm), _( "Select working library" ) );
_("Save Module in working library"));
m_HToolBar->AddTool( ID_MODEDIT_SAVE_LIBMODULE, wxEmptyString, BITMAP( save_library_xpm ),
m_HToolBar->AddTool(ID_LIBEDIT_CREATE_NEW_LIB_AND_SAVE_CURRENT_PART, wxEmptyString, _( "Save Module in working library" ) );
BITMAP(new_library_xpm),
_("Create new library and save current module")); m_HToolBar->AddTool( ID_LIBEDIT_CREATE_NEW_LIB_AND_SAVE_CURRENT_PART, wxEmptyString,
BITMAP( new_library_xpm ),
m_HToolBar->AddSeparator(); _( "Create new library and save current module" ) );
m_HToolBar->AddTool(ID_LIBEDIT_DELETE_PART, wxEmptyString,
BITMAP(delete_xpm), m_HToolBar->AddSeparator();
_("Delete part in current library")); m_HToolBar->AddTool( ID_LIBEDIT_DELETE_PART, wxEmptyString,
BITMAP( delete_xpm ),
m_HToolBar->AddSeparator(); _( "Delete part in current library" ) );
m_HToolBar->AddTool(ID_MODEDIT_NEW_MODULE, wxEmptyString,
BITMAP(new_footprint_xpm), m_HToolBar->AddSeparator();
_("New Module")); m_HToolBar->AddTool( ID_MODEDIT_NEW_MODULE, wxEmptyString,
BITMAP( new_footprint_xpm ),
m_HToolBar->AddTool(ID_MODEDIT_LOAD_MODULE, wxEmptyString, _( "New Module" ) );
BITMAP(module_xpm),
_("Load module from lib")); m_HToolBar->AddTool( ID_MODEDIT_LOAD_MODULE, wxEmptyString,
BITMAP( module_xpm ),
m_HToolBar->AddSeparator(); _( "Load module from lib" ) );
m_HToolBar->AddTool(ID_MODEDIT_LOAD_MODULE_FROM_BOARD, wxEmptyString,
BITMAP(load_module_board_xpm), m_HToolBar->AddSeparator();
_("Load module from current board")); m_HToolBar->AddTool( ID_MODEDIT_LOAD_MODULE_FROM_BOARD, wxEmptyString,
BITMAP( load_module_board_xpm ),
m_HToolBar->AddTool(ID_MODEDIT_UPDATE_MODULE_IN_BOARD, wxEmptyString, _( "Load module from current board" ) );
BITMAP(update_module_board_xpm),
_("Update module in current board")); m_HToolBar->AddTool( ID_MODEDIT_UPDATE_MODULE_IN_BOARD, wxEmptyString,
BITMAP( update_module_board_xpm ),
m_HToolBar->AddTool(ID_MODEDIT_INSERT_MODULE_IN_BOARD, wxEmptyString, _( "Update module in current board" ) );
BITMAP(insert_module_board_xpm),
_("Insert module into current board")); m_HToolBar->AddTool( ID_MODEDIT_INSERT_MODULE_IN_BOARD, wxEmptyString,
BITMAP( insert_module_board_xpm ),
m_HToolBar->AddSeparator(); _( "Insert module into current board" ) );
m_HToolBar->AddTool(ID_LIBEDIT_IMPORT_PART, wxEmptyString,
BITMAP(import_module_xpm), m_HToolBar->AddSeparator();
_("import module")); m_HToolBar->AddTool( ID_LIBEDIT_IMPORT_PART, wxEmptyString,
BITMAP( import_module_xpm ),
m_HToolBar->AddTool(ID_LIBEDIT_EXPORT_PART, wxEmptyString, _( "import module" ) );
BITMAP(export_module_xpm),
_("export module")); m_HToolBar->AddTool( ID_LIBEDIT_EXPORT_PART, wxEmptyString,
BITMAP( export_module_xpm ),
_( "export module" ) );
m_HToolBar->AddSeparator();
m_HToolBar->AddTool(ID_MODEDIT_UNDO, wxEmptyString, BITMAP(undo_xpm),
_("Undo last edition")); m_HToolBar->AddSeparator();
m_HToolBar->AddTool(ID_MODEDIT_REDO, wxEmptyString, BITMAP(redo_xpm), m_HToolBar->AddTool( ID_MODEDIT_UNDO, wxEmptyString, BITMAP( undo_xpm ),
_("Redo the last undo command")); _( "Undo last edition" ) );
m_HToolBar->AddTool( ID_MODEDIT_REDO, wxEmptyString, BITMAP( redo_xpm ),
m_HToolBar->AddSeparator(); _( "Redo the last undo command" ) );
m_HToolBar->AddTool(ID_MODEDIT_EDIT_MODULE_PROPERTIES, wxEmptyString,
BITMAP(module_options_xpm), m_HToolBar->AddSeparator();
_("Module Properties")); m_HToolBar->AddTool( ID_MODEDIT_EDIT_MODULE_PROPERTIES, wxEmptyString,
BITMAP( module_options_xpm ),
m_HToolBar->AddSeparator(); _( "Module Properties" ) );
m_HToolBar->AddTool(ID_GEN_PRINT, wxEmptyString, BITMAP(print_button),
_("Print Module")); m_HToolBar->AddSeparator();
m_HToolBar->AddTool( ID_GEN_PRINT, wxEmptyString, BITMAP( print_button ),
m_HToolBar->AddSeparator(); _( "Print Module" ) );
m_HToolBar->AddTool(ID_ZOOM_PLUS_BUTT, wxEmptyString, BITMAP(zoom_in_xpm),
_("zoom + (F1)")); m_HToolBar->AddSeparator();
msg = AddHotkeyName( _( "zoom +" ), s_module_edit_Hotkey_List, HK_ZOOM_IN );
m_HToolBar->AddTool(ID_ZOOM_MOINS_BUTT, wxEmptyString,BITMAP(zoom_out_xpm), m_HToolBar->AddTool( ID_ZOOM_PLUS_BUTT, wxEmptyString, BITMAP( zoom_in_xpm ),
_("zoom - (F2)")); msg );
m_HToolBar->AddTool(ID_ZOOM_REDRAW_BUTT, wxEmptyString,BITMAP(repaint_xpm), msg = AddHotkeyName( _( "zoom -" ), s_module_edit_Hotkey_List, HK_ZOOM_OUT );
_("redraw (F3)")); m_HToolBar->AddTool( ID_ZOOM_MOINS_BUTT, wxEmptyString, BITMAP( zoom_out_xpm ),
msg );
m_HToolBar->AddTool(ID_ZOOM_PAGE_BUTT, wxEmptyString,BITMAP(zoom_optimal_xpm),
_("auto zoom")); msg = AddHotkeyName( _( "redraw" ), s_module_edit_Hotkey_List, HK_ZOOM_REDRAW );
m_HToolBar->AddTool( ID_ZOOM_REDRAW_BUTT, wxEmptyString, BITMAP( repaint_xpm ),
m_HToolBar->AddSeparator(); msg );
m_HToolBar->AddTool(ID_MODEDIT_PAD_SETTINGS, wxEmptyString,
BITMAP(options_pad_xpm), m_HToolBar->AddTool( ID_ZOOM_PAGE_BUTT, wxEmptyString, BITMAP( zoom_optimal_xpm ),
_("Pad Settings")); _( "auto zoom" ) );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
m_HToolBar->AddTool(ID_MODEDIT_CHECK, wxEmptyString, BITMAP(module_check_xpm), m_HToolBar->AddTool( ID_MODEDIT_PAD_SETTINGS, wxEmptyString,
_("Module Check")); BITMAP( options_pad_xpm ),
_( "Pad Settings" ) );
// after adding the buttons to the toolbar, must call Realize() to reflect
// the changes m_HToolBar->AddSeparator();
m_HToolBar->Realize(); m_HToolBar->AddTool( ID_MODEDIT_CHECK, wxEmptyString, BITMAP( module_check_xpm ),
SetToolbars(); _( "Module Check" ) );
// after adding the buttons to the toolbar, must call Realize() to reflect
// the changes
m_HToolBar->Realize();
SetToolbars();
} }
/********************************************************/ /********************************************************/
void WinEDA_ModuleEditFrame::ReCreateVToolbar(void) void WinEDA_ModuleEditFrame::ReCreateVToolbar( void )
/********************************************************/ /********************************************************/
{ {
if( m_VToolBar ) return; if( m_VToolBar )
return;
m_VToolBar = new WinEDA_Toolbar(TOOLBAR_TOOL, this, ID_V_TOOLBAR, FALSE); m_VToolBar = new WinEDA_Toolbar( TOOLBAR_TOOL, this, ID_V_TOOLBAR, FALSE );
// Set up toolbar // Set up toolbar
m_VToolBar->AddTool(ID_NO_SELECT_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_NO_SELECT_BUTT, wxEmptyString,
BITMAP(cursor_xpm), wxEmptyString, wxITEM_CHECK ); BITMAP( cursor_xpm ), wxEmptyString, wxITEM_CHECK );
m_VToolBar->ToggleTool(ID_NO_SELECT_BUTT, TRUE); m_VToolBar->ToggleTool( ID_NO_SELECT_BUTT, TRUE );
m_VToolBar->AddSeparator(); m_VToolBar->AddSeparator();
m_VToolBar->AddTool(ID_MODEDIT_ADD_PAD, wxEmptyString, m_VToolBar->AddTool( ID_MODEDIT_ADD_PAD, wxEmptyString,
BITMAP(pad_xpm), BITMAP( pad_xpm ),
_("Add Pads"), wxITEM_CHECK); _( "Add Pads" ), wxITEM_CHECK );
m_VToolBar->AddSeparator(); m_VToolBar->AddSeparator();
m_VToolBar->AddTool(ID_LINE_COMMENT_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_LINE_COMMENT_BUTT, wxEmptyString,
BITMAP(add_polygon_xpm), BITMAP( add_polygon_xpm ),
_("Add graphic line or polygon"), wxITEM_CHECK); _( "Add graphic line or polygon" ), wxITEM_CHECK );
m_VToolBar->AddTool(ID_PCB_CIRCLE_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_PCB_CIRCLE_BUTT, wxEmptyString,
BITMAP(add_circle_xpm), BITMAP( add_circle_xpm ),
_("Add graphic circle"), wxITEM_CHECK); _( "Add graphic circle" ), wxITEM_CHECK );
m_VToolBar->AddTool(ID_PCB_ARC_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_PCB_ARC_BUTT, wxEmptyString,
BITMAP(add_arc_xpm), BITMAP( add_arc_xpm ),
_("Add graphic arc"), wxITEM_CHECK); _( "Add graphic arc" ), wxITEM_CHECK );
m_VToolBar->AddTool(ID_TEXT_COMMENT_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_TEXT_COMMENT_BUTT, wxEmptyString,
BITMAP(add_text_xpm), BITMAP( add_text_xpm ),
_("Add Text"), wxITEM_CHECK); _( "Add Text" ), wxITEM_CHECK );
m_VToolBar->AddSeparator(); m_VToolBar->AddSeparator();
m_VToolBar->AddTool(ID_MODEDIT_PLACE_ANCHOR, wxEmptyString, m_VToolBar->AddTool( ID_MODEDIT_PLACE_ANCHOR, wxEmptyString,
BITMAP(anchor_xpm), BITMAP( anchor_xpm ),
_("Place anchor"), wxITEM_CHECK); _( "Place anchor" ), wxITEM_CHECK );
m_VToolBar->AddSeparator(); m_VToolBar->AddSeparator();
m_VToolBar->AddTool(ID_MODEDIT_DELETE_ITEM_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_MODEDIT_DELETE_ITEM_BUTT, wxEmptyString,
BITMAP(delete_body_xpm), BITMAP( delete_body_xpm ),
_("Delete items"), wxITEM_CHECK); _( "Delete items" ), wxITEM_CHECK );
m_VToolBar->Realize(); m_VToolBar->Realize();
SetToolbars(); SetToolbars();
} }
/*********************************************************/ /*********************************************************/
void WinEDA_ModuleEditFrame::ReCreateOptToolbar(void) void WinEDA_ModuleEditFrame::ReCreateOptToolbar( void )
/*********************************************************/ /*********************************************************/
{ {
if( m_OptionsToolBar )
if ( m_OptionsToolBar ) return; return;
// creation du tool bar options // creation du tool bar options
m_OptionsToolBar = new WinEDA_Toolbar(TOOLBAR_OPTION, this, ID_OPT_TOOLBAR, FALSE); m_OptionsToolBar = new WinEDA_Toolbar( TOOLBAR_OPTION, this, ID_OPT_TOOLBAR, FALSE );
m_OptionsToolBar->AddTool(ID_TB_OPTIONS_SHOW_GRID, BITMAP(grid_xpm), m_OptionsToolBar->AddTool( ID_TB_OPTIONS_SHOW_GRID, BITMAP( grid_xpm ),
wxNullBitmap, wxNullBitmap,
TRUE, TRUE,
-1, -1, (wxObject *) NULL, -1, -1, (wxObject*) NULL,
_("Display Grid OFF")); _( "Display Grid OFF" ) );
m_OptionsToolBar->AddTool(ID_TB_OPTIONS_SHOW_POLAR_COORD, wxEmptyString, m_OptionsToolBar->AddTool( ID_TB_OPTIONS_SHOW_POLAR_COORD, wxEmptyString,
BITMAP(polar_coord_xpm), BITMAP( polar_coord_xpm ),
_("Display Polar Coord ON"), wxITEM_CHECK); _( "Display Polar Coord ON" ), wxITEM_CHECK );
m_OptionsToolBar->AddTool(ID_TB_OPTIONS_SELECT_UNIT_INCH, wxEmptyString, m_OptionsToolBar->AddTool( ID_TB_OPTIONS_SELECT_UNIT_INCH, wxEmptyString,
BITMAP(unit_inch_xpm), BITMAP( unit_inch_xpm ),
_("Units = Inch"), wxITEM_CHECK ); _( "Units = Inch" ), wxITEM_CHECK );
m_OptionsToolBar->AddTool(ID_TB_OPTIONS_SELECT_UNIT_MM, wxEmptyString, m_OptionsToolBar->AddTool( ID_TB_OPTIONS_SELECT_UNIT_MM, wxEmptyString,
BITMAP(unit_mm_xpm), BITMAP( unit_mm_xpm ),
_("Units = mm"), wxITEM_CHECK ); _( "Units = mm" ), wxITEM_CHECK );
m_OptionsToolBar->AddTool(ID_TB_OPTIONS_SELECT_CURSOR, BITMAP(cursor_shape_xpm), m_OptionsToolBar->AddTool( ID_TB_OPTIONS_SELECT_CURSOR, BITMAP( cursor_shape_xpm ),
wxNullBitmap, wxNullBitmap,
TRUE, TRUE,
-1, -1, (wxObject *) NULL, -1, -1, (wxObject*) NULL,
_("Change Cursor Shape")); _( "Change Cursor Shape" ) );
m_OptionsToolBar->AddSeparator(); m_OptionsToolBar->AddSeparator();
m_OptionsToolBar->AddTool(ID_TB_OPTIONS_SHOW_PADS_SKETCH, m_OptionsToolBar->AddTool( ID_TB_OPTIONS_SHOW_PADS_SKETCH,
BITMAP(pad_sketch_xpm), BITMAP( pad_sketch_xpm ),
wxNullBitmap, wxNullBitmap,
TRUE, TRUE,
-1, -1, (wxObject *) NULL, -1, -1, (wxObject*) NULL,
_("Show Pads Sketch")); _( "Show Pads Sketch" ) );
m_OptionsToolBar->AddTool(ID_TB_OPTIONS_SHOW_MODULE_TEXT_SKETCH, m_OptionsToolBar->AddTool( ID_TB_OPTIONS_SHOW_MODULE_TEXT_SKETCH,
BITMAP(text_sketch_xpm), BITMAP( text_sketch_xpm ),
wxNullBitmap, wxNullBitmap,
TRUE, TRUE,
-1, -1, (wxObject *) NULL, -1, -1, (wxObject*) NULL,
_("Show Texts Sketch")); _( "Show Texts Sketch" ) );
m_OptionsToolBar->AddTool(ID_TB_OPTIONS_SHOW_MODULE_EDGE_SKETCH, m_OptionsToolBar->AddTool( ID_TB_OPTIONS_SHOW_MODULE_EDGE_SKETCH,
BITMAP(show_mod_edge_xpm), BITMAP( show_mod_edge_xpm ),
wxNullBitmap, wxNullBitmap,
TRUE, TRUE,
-1, -1, (wxObject *) NULL, -1, -1, (wxObject*) NULL,
_("Show Edges Sketch")); _( "Show Edges Sketch" ) );
m_OptionsToolBar->Realize(); m_OptionsToolBar->Realize();
SetToolbars(); SetToolbars();
} }
/*********************************************************/ /*********************************************************/
void WinEDA_ModuleEditFrame::ReCreateAuxiliaryToolbar(void) void WinEDA_ModuleEditFrame::ReCreateAuxiliaryToolbar( void )
/*********************************************************/ /*********************************************************/
{ {
int ii; int ii;
wxString msg; wxString msg;
if ( m_AuxiliaryToolBar == NULL ) if( m_AuxiliaryToolBar == NULL )
{ {
m_AuxiliaryToolBar = new WinEDA_Toolbar(TOOLBAR_AUX, this, ID_AUX_TOOLBAR, TRUE); m_AuxiliaryToolBar = new WinEDA_Toolbar( TOOLBAR_AUX, this, ID_AUX_TOOLBAR, TRUE );
// Set up toolbar // Set up toolbar
m_AuxiliaryToolBar->AddSeparator(); m_AuxiliaryToolBar->AddSeparator();
// Boite de selection du pas de grille // Boite de selection du pas de grille
m_SelGridBox = new WinEDAChoiceBox(m_AuxiliaryToolBar, m_SelGridBox = new WinEDAChoiceBox( m_AuxiliaryToolBar,
ID_ON_GRID_SELECT, ID_ON_GRID_SELECT,
wxPoint(-1,-1), wxSize(LISTBOX_WIDTH , -1)); wxPoint( -1, -1 ), wxSize( LISTBOX_WIDTH, -1 ) );
m_AuxiliaryToolBar->AddControl( m_SelGridBox); m_AuxiliaryToolBar->AddControl( m_SelGridBox );
// Boite de selection du Zoom // Boite de selection du Zoom
m_AuxiliaryToolBar->AddSeparator(); m_AuxiliaryToolBar->AddSeparator();
m_SelZoomBox = new WinEDAChoiceBox(m_AuxiliaryToolBar, m_SelZoomBox = new WinEDAChoiceBox( m_AuxiliaryToolBar,
ID_ON_ZOOM_SELECT, ID_ON_ZOOM_SELECT,
wxPoint(-1,-1), wxSize(LISTBOX_WIDTH , -1)); wxPoint( -1, -1 ), wxSize( LISTBOX_WIDTH, -1 ) );
msg = _("Auto"); msg = _( "Auto" );
m_SelZoomBox->Append(msg); m_SelZoomBox->Append( msg );
for ( int jj = 0, ii = 1; ii <= m_ZoomMaxValue; ii <<= 1, jj++ ) for( int jj = 0, ii = 1; ii <= m_ZoomMaxValue; ii <<= 1, jj++ )
{ {
msg.Printf(_("Zoom %d"), ii); msg.Printf( _( "Zoom %d" ), ii );
m_SelZoomBox->Append(msg); m_SelZoomBox->Append( msg );
} }
m_SelZoomBox->Append(wxT(""));
m_SelZoomBox->Append( wxT( "" ) );
m_AuxiliaryToolBar->AddControl( m_SelZoomBox);
// after adding the buttons to the toolbar, must call Realize() to reflect m_AuxiliaryToolBar->AddControl( m_SelZoomBox );
// the changes
m_AuxiliaryToolBar->Realize(); // after adding the buttons to the toolbar, must call Realize() to reflect
} // the changes
m_AuxiliaryToolBar->Realize();
// mise a jour des affichages }
m_SelGridBox->Clear();
for ( ii = 0; g_GridList[ii].x > 0; ii++ ) // mise a jour des affichages
{ m_SelGridBox->Clear();
double value = To_User_Unit(g_UnitMetric, g_GridList[ii].x, PCB_INTERNAL_UNIT); for( ii = 0; g_GridList[ii].x > 0; ii++ )
if ( g_UnitMetric == INCHES ) {
msg.Printf(_("Grid %.1f"), value * 1000); double value = To_User_Unit( g_UnitMetric, g_GridList[ii].x, PCB_INTERNAL_UNIT );
else if( g_UnitMetric == INCHES )
msg.Printf(_("Grid %.3f"), value); msg.Printf( _( "Grid %.1f" ), value * 1000 );
m_SelGridBox->Append(msg); else
} msg.Printf( _( "Grid %.3f" ), value );
m_SelGridBox->Append( _("User Grid") ); m_SelGridBox->Append( msg );
}
SetToolbars();
m_SelGridBox->Append( _( "User Grid" ) );
SetToolbars();
} }
...@@ -25,6 +25,8 @@ ...@@ -25,6 +25,8 @@
#include "wx/ownerdrw.h" #include "wx/ownerdrw.h"
#include "wx/menuitem.h" #include "wx/menuitem.h"
#include "hotkeys.h"
#define MUWAVE_ENBL #define MUWAVE_ENBL
#include "mw_Add_Stub.xpm" #include "mw_Add_Stub.xpm"
...@@ -50,7 +52,7 @@ ...@@ -50,7 +52,7 @@
"Show active layer selections\nand select layer pair for route and place via" ) "Show active layer selections\nand select layer pair for route and place via" )
/* Data to build the layer pair indicator button */ /* Data to build the layer pair indicator button */
static wxBitmap* LayerPairBitmap = NULL; static wxBitmap* LayerPairBitmap = NULL;
static const char s_BitmapLayerIcon[16][16] = { static const char s_BitmapLayerIcon[16][16] = {
// 0 = draw pixel with active layer color // 0 = draw pixel with active layer color
// 1 = draw pixel with top layer color (top/bottom layer used in autoroute and place via) // 1 = draw pixel with top layer color (top/bottom layer used in autoroute and place via)
...@@ -166,7 +168,7 @@ void WinEDA_PcbFrame::PrepareLayerIndicator( void ) ...@@ -166,7 +168,7 @@ void WinEDA_PcbFrame::PrepareLayerIndicator( void )
ColorRefs[color].m_Red, ColorRefs[color].m_Red,
ColorRefs[color].m_Green, ColorRefs[color].m_Green,
ColorRefs[color].m_Blue ColorRefs[color].m_Blue
); );
iconDC.SetPen( pen ); iconDC.SetPen( pen );
} }
iconDC.DrawPoint( jj, ii ); iconDC.DrawPoint( jj, ii );
...@@ -199,9 +201,10 @@ void WinEDA_PcbFrame::PrepareLayerIndicator( void ) ...@@ -199,9 +201,10 @@ void WinEDA_PcbFrame::PrepareLayerIndicator( void )
void WinEDA_PcbFrame::ReCreateHToolbar( void ) void WinEDA_PcbFrame::ReCreateHToolbar( void )
/******************************************/ /******************************************/
// Create the main horizontal toolbar /* Create the main horizontal toolbar for the board editor */
{ {
int ii; int ii;
wxString msg;
if( m_HToolBar != NULL ) if( m_HToolBar != NULL )
{ // simple mise a jour de la liste des fichiers anciens { // simple mise a jour de la liste des fichiers anciens
...@@ -264,19 +267,25 @@ void WinEDA_PcbFrame::ReCreateHToolbar( void ) ...@@ -264,19 +267,25 @@ void WinEDA_PcbFrame::ReCreateHToolbar( void )
_( "Plot (HPGL, PostScript, or GERBER format)" ) ); _( "Plot (HPGL, PostScript, or GERBER format)" ) );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
msg = AddHotkeyName( _( "zoom +" ), s_board_edit_Hotkey_List, HK_ZOOM_IN );
m_HToolBar->AddTool( ID_ZOOM_PLUS_BUTT, wxEmptyString, BITMAP( zoom_in_xpm ), m_HToolBar->AddTool( ID_ZOOM_PLUS_BUTT, wxEmptyString, BITMAP( zoom_in_xpm ),
_( "zoom + (F1)" ) ); msg );
msg = AddHotkeyName( _( "zoom -" ), s_board_edit_Hotkey_List, HK_ZOOM_OUT );
m_HToolBar->AddTool( ID_ZOOM_MOINS_BUTT, wxEmptyString, BITMAP( zoom_out_xpm ), m_HToolBar->AddTool( ID_ZOOM_MOINS_BUTT, wxEmptyString, BITMAP( zoom_out_xpm ),
_( "zoom - (F2)" ) ); msg );
msg = AddHotkeyName( _( "redraw" ), s_board_edit_Hotkey_List, HK_ZOOM_REDRAW );
m_HToolBar->AddTool( ID_ZOOM_REDRAW_BUTT, wxEmptyString, BITMAP( repaint_xpm ), m_HToolBar->AddTool( ID_ZOOM_REDRAW_BUTT, wxEmptyString, BITMAP( repaint_xpm ),
_( "redraw (F3)" ) ); msg );
m_HToolBar->AddTool( ID_ZOOM_PAGE_BUTT, wxEmptyString, BITMAP( zoom_optimal_xpm ), m_HToolBar->AddTool( ID_ZOOM_PAGE_BUTT, wxEmptyString, BITMAP( zoom_optimal_xpm ),
_( "auto zoom" ) ); _( "auto zoom" ) );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
msg = AddHotkeyName( _( "Find components and texts" ), s_board_edit_Hotkey_List, HK_FIND_ITEM );
m_HToolBar->AddTool( ID_FIND_ITEMS, wxEmptyString, BITMAP( find_xpm ), m_HToolBar->AddTool( ID_FIND_ITEMS, wxEmptyString, BITMAP( find_xpm ),
_( "Find components and texts (Ctrl-F)" ) ); msg );
m_HToolBar->AddSeparator(); m_HToolBar->AddSeparator();
m_HToolBar->AddTool( ID_GET_NETLIST, wxEmptyString, BITMAP( netlist_xpm ), m_HToolBar->AddTool( ID_GET_NETLIST, wxEmptyString, BITMAP( netlist_xpm ),
...@@ -499,7 +508,7 @@ void WinEDA_PcbFrame::ReCreateAuxVToolbar( void ) ...@@ -499,7 +508,7 @@ void WinEDA_PcbFrame::ReCreateAuxVToolbar( void )
wxNullBitmap, TRUE, wxNullBitmap, TRUE,
-1, -1, (wxObject*) NULL, -1, -1, (wxObject*) NULL,
_( "Create stub (arc) of specified length for microwave applications" ) _( "Create stub (arc) of specified length for microwave applications" )
); );
m_AuxVToolBar->AddTool( ID_PCB_MUWAVE_TOOL_FUNCTION_SHAPE_CMD, m_AuxVToolBar->AddTool( ID_PCB_MUWAVE_TOOL_FUNCTION_SHAPE_CMD,
BITMAP( mw_Add_Shape_xpm ), BITMAP( mw_Add_Shape_xpm ),
......
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