diff --git a/change_log.txt b/change_log.txt index 1c20a15112..fec70b98bb 100644 --- a/change_log.txt +++ b/change_log.txt @@ -4,6 +4,17 @@ Started 2007-June-11 Please add newer entries at the top, list the date and your name with email address. +2007-aug-20 UPDATE Jean-Pierre Charras +================================================================================ ++ eeschema & pcbnew + modify hotkeys.cpp code (large modifications). + Added: common code in hotkeys_basic.cpp (in common) and hotkeys_basic.h (in include) + In the future, i hope hotkeys will be programmed by a config file + ++ pcbnew + filename drc_dialog.prj changed to dialog_drc.prj + (according to the fulename dialog_drc.cpp and dialog_drc.h created by dialogblock from the .prj) + 2007-Aug-19 UPDATE Dick Hollenbeck ================================================================================ diff --git a/common/eda_dde.cpp b/common/eda_dde.cpp index 38de845e74..f6679d0838 100644 --- a/common/eda_dde.cpp +++ b/common/eda_dde.cpp @@ -29,15 +29,13 @@ wxString HOSTNAME( wxT( "localhost" ) ); // buffers for read and write data in socket connections #define IPC_BUF_SIZE 4096 -char client_ipc_buffer[IPC_BUF_SIZE]; -char server_ipc_buffer[IPC_BUF_SIZE]; +static char client_ipc_buffer[IPC_BUF_SIZE]; +static char server_ipc_buffer[IPC_BUF_SIZE]; -wxServer* server; +static wxServer* server; void (*RemoteFct)(const char* cmd); -char buffcar[1024]; - void SetupServerFunction( void (*remotefct)(const char* remotecmd) ) { RemoteFct = remotefct; diff --git a/common/hotkeys_basic.cpp b/common/hotkeys_basic.cpp new file mode 100644 index 0000000000..c733ccf50c --- /dev/null +++ b/common/hotkeys_basic.cpp @@ -0,0 +1,152 @@ + /*********************/ + /* hotkeys_basic.cpp */ + /*********************/ + +/* Some functions to handle hotkeys in kicad +*/ +#include "fctsys.h" +#include "common.h" +#include "hotkeys_basic.h" + +/* Class to handle hotkey commnands. hotkeys have a default value +This class allows (for the future..) the real key code changed by user(from a key code list file, TODO) +*/ + +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_InfoMsg = infomsg; // info message. + m_Idcommand = idcommand; // internal id for the corresponding command (see hotkey_id_commnand list) +} + +/****************************************************/ +wxString ReturnKeyNameFromKeyCode(int keycode) +/****************************************************/ +/* + * return the key name from the key code + * Only some wxWidgets key values are handled for function key + * @param key = key code (ascii value, or wxWidgets value for function keys) + * @return the key name in a wxString +*/ +{ +wxString keyname, modifier, fullkeyname; + + if ( (keycode & GR_KB_CTRL) != 0 ) modifier << wxT("Ctrl "); + if ( (keycode & GR_KB_ALT) != 0 ) modifier << wxT("Alt "); + if ( (keycode & GR_KB_SHIFT) != 0 ) modifier << wxT("Shift "); + + switch ( keycode) + { + default: + keycode &= ~(GR_KB_CTRL|GR_KB_ALT|GR_KB_SHIFT); + keyname.Printf(wxT("%c"), keycode); + break; + + case WXK_ESCAPE: + keyname = wxT("Esc"); + break; + + case WXK_F1: + case WXK_F2: + case WXK_F3: + case WXK_F4: + case WXK_F5: + case WXK_F6: + case WXK_F7: + case WXK_F8: + case WXK_F9: + case WXK_F10: + case WXK_F11: + case WXK_F12: + keyname.Printf(wxT("F%d"), keycode - WXK_F1 + 1); + break; + + case ' ': + keyname = wxT("space"); + break; + + case '\t': + keyname = wxT("Tab"); + break; + + case WXK_DELETE: + keyname = wxT("Delete"); + break; + + case WXK_BACK: + keyname = wxT("Backspace"); + break; + + case WXK_INSERT: + keyname = wxT("Insert"); + break; + + case WXK_END: + keyname = wxT("End"); + break; + + case WXK_PAGEUP: + keyname = wxT("Page Up"); + break; + + case WXK_PAGEDOWN: + keyname = wxT("Page Down"); + break; + + case WXK_ADD: + keyname = wxT("+"); + break; + + case WXK_SUBTRACT: + keyname = wxT("-"); + break; + + } + + fullkeyname = modifier + keyname; + return fullkeyname; +} + +/****************************************************************************/ +void DisplayHotkeyList(WinEDA_DrawFrame * frame, Ki_HotkeyInfo ** List) +/*****************************************************************************/ +/* + * Displays the current hotkey list + * @param frame = current open frame + * @param List = pointer to a Ki_HotkeyInfo list of commands + * @return none +*/ +{ +wxString keyname; + + wxString msg = _("Current hotkey list:\n\n"); + for ( ; * List != NULL; List++ ) + { + Ki_HotkeyInfo * hk_decr = * List; + if ( hk_decr->m_InfoMsg.IsEmpty() ) break; + msg += _("key "); + keyname = ReturnKeyNameFromKeyCode(hk_decr->m_KeyCode); + msg += keyname + wxT(": ") + hk_decr->m_InfoMsg + wxT("\n"); + } + DisplayInfo(frame, msg); +} + +/******************************************************************/ +int GetCommandCodeFromHotkey(int key, Ki_HotkeyInfo ** List) +/******************************************************************/ +/* + * Return an id identifier fron a key code for OnHotKey() function + * @param key = key code (ascii value, or wxWidgets value for function keys + * @param List = pointer to a Ki_HotkeyInfo list of commands + * @return the corresponding function identifier from the Ki_HotkeyInfo List +*/ +{ + for ( ; * List != NULL; List++ ) + { + Ki_HotkeyInfo * hk_decr = * List; + if ( hk_decr->m_KeyCode == key ) return hk_decr->m_Idcommand; + } + + return 0; +} + diff --git a/common/makefile.include b/common/makefile.include index caec07027e..90409c4029 100644 --- a/common/makefile.include +++ b/common/makefile.include @@ -12,6 +12,7 @@ OBJECTS= \ common_plot_functions.o\ common_plotPS_functions.o\ common_plotHPGL_functions.o\ + hotkeys_basic.o\ drawtxt.o \ wxwineda.o \ string.o \ @@ -43,6 +44,8 @@ gr_basic.o: gr_basic.cpp ../include/gr_basic.h $(DEPEND) confirm.o: confirm.cpp $(COMMON) +hotkeys_basic.o: hotkeys_basic.cpp ../include/hotkeys_basic.h $(COMMON) + worksheet.o: worksheet.cpp ../include/worksheet.h $(COMMON) selcolor.o: selcolor.cpp ../include/colors.h $(COMMON) diff --git a/eeschema/find.cpp b/eeschema/find.cpp index 96daffb9f4..ed65ffd477 100644 --- a/eeschema/find.cpp +++ b/eeschema/find.cpp @@ -3,8 +3,8 @@ /****************************************************************/ /* - * Search a text (text, value, reference) withing e composent or - * search a composant in libraries, a marker ..., + * Search a text (text, value, reference) within a component or + * search a component in libraries, a marker ..., * in current sheet or whole the project */ #include "fctsys.h" @@ -40,7 +40,7 @@ void InstallFindFrame( WinEDA_SchematicFrame* parent, wxPoint& pos ) void WinEDA_FindFrame::FindMarker( wxCommandEvent& event ) /**************************************************************/ -/* Search de markers in whole the hierarchy. +/* Search markers in whole hierarchy. * Mouse cursor is put on the marker * search the first marker, or next marker */ @@ -144,7 +144,7 @@ EDA_BaseStruct* WinEDA_SchematicFrame::FindMarker( int SearchType ) curpos.x -= m_CurrentScreen->m_StartVisu.x; curpos.y -= m_CurrentScreen->m_StartVisu.y; - /* Il y a peut-etre necessite de recadrer le dessin: */ + // reposition the window if the chosen marker is off screen. if( (curpos.x <= 0) || (curpos.x >= size.x - 1) || (curpos.y <= 0) || (curpos.y >= size.y) || force_recadre ) { @@ -289,9 +289,9 @@ EDA_BaseStruct* WinEDA_SchematicFrame::FindSchematicItem( break; } - if( NotFound == FALSE ) /* Element trouve */ + if( NotFound == FALSE ) /* Item found ! */ { - if( FirstScreen == NULL ) /* 1er element trouve */ + if( FirstScreen == NULL ) /* First Item found */ { FirstScreen = Screen; firstpos = pos; @@ -340,9 +340,9 @@ EDA_BaseStruct* WinEDA_SchematicFrame::FindSchematicItem( force_recadre = TRUE; } - /* Si la struct localisee est du type DRAW_LIB_ITEM_STRUCT_TYPE, - * Les coordonnes sont a recalculer en fonction de la matrice - * d'orientation */ + /* If the struct found is a DRAW_LIB_ITEM_STRUCT_TYPE type, + * coordinates must be computed according to its orientation matrix + */ if( Struct->m_StructType == DRAW_LIB_ITEM_STRUCT_TYPE ) { EDA_SchComponentStruct* pSch = (EDA_SchComponentStruct*) Struct; diff --git a/eeschema/hotkeys.cpp b/eeschema/hotkeys.cpp index 8b7f63a4d2..7cd9e52d99 100644 --- a/eeschema/hotkeys.cpp +++ b/eeschema/hotkeys.cpp @@ -1,6 +1,6 @@ -/***************/ -/* hotkeys.cpp */ -/***************/ + /***************/ + /* hotkeys.cpp */ + /***************/ #include "fctsys.h" @@ -13,477 +13,314 @@ #include "id.h" +#include "hotkeys_basic.h" + #include "protos.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 + 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 }; -/* 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) - */ -class Ki_HotkeyInfo -{ -public: - int m_KeyCode; // Key code (ascii value for ascii keys or wxWidgets code for function key - wxString m_InfoMsg; // info message. - hotkey_id_commnand m_Idcommand; // internal id for the corresponding command (see hotkey_id_commnand list) - -public: - Ki_HotkeyInfo( const wxChar* infomsg, hotkey_id_commnand idcommand, int keycode ); -}; - -Ki_HotkeyInfo::Ki_HotkeyInfo( const wxChar* infomsg, hotkey_id_commnand idcommand, int keycode ) -{ - m_KeyCode = keycode; // Key code (ascii value for ascii keys or wxWidgets code for function key - m_InfoMsg = infomsg; // info message. - m_Idcommand = idcommand; // internal id for the corresponding command (see hotkey_id_commnand list) -} - /* local variables */ /* Hotkey list: */ -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 HkMirrorYComponent( wxT( "Mirror Y Component" ), HK_MIRROR_Y_COMPONENT, - 'Y' ); -static Ki_HotkeyInfo HkMirrorXComponent( wxT( "Mirror X Component" ), HK_MIRROR_X_COMPONENT, - 'X' ); -static Ki_HotkeyInfo HkOrientNormalComponent( wxT( "Orient Normal Component" ), - HK_ORIENT_NORMAL_COMPONENT, 'N' ); -static Ki_HotkeyInfo HkRotateComponent( wxT( "Rotate Component" ), HK_ROTATE_COMPONENT, 'R' ); -static Ki_HotkeyInfo HkMoveComponent( wxT( "Move Component" ), HK_MOVE_COMPONENT, 'M' ); -static Ki_HotkeyInfo HkMove2Drag( wxT( "Switch move block to drag block" ), - HK_MOVEBLOCK_TO_DRAGBLOCK, '\t' ); -static Ki_HotkeyInfo HkInsert( wxT( "Repeat Last Item" ), HK_REPEAT_LAST, WXK_INSERT ); -static Ki_HotkeyInfo HkDelete( wxT( "Delete Item" ), HK_DELETE, WXK_DELETE ); -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, '?' ); +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 HkMirrorYComponent(wxT("Mirror Y Component"), HK_MIRROR_Y_COMPONENT, 'Y'); +static Ki_HotkeyInfo HkMirrorXComponent(wxT("Mirror X Component"), HK_MIRROR_X_COMPONENT, 'X'); +static Ki_HotkeyInfo HkOrientNormalComponent(wxT("Orient Normal Component"), HK_ORIENT_NORMAL_COMPONENT, 'N'); +static Ki_HotkeyInfo HkRotateComponent(wxT("Rotate Component"), HK_ROTATE_COMPONENT, 'R'); +static Ki_HotkeyInfo HkMoveComponent(wxT("Move Component"), HK_MOVE_COMPONENT, 'M'); +static Ki_HotkeyInfo HkMove2Drag(wxT("Switch move block to drag block"), HK_MOVEBLOCK_TO_DRAGBLOCK, '\t'); +static Ki_HotkeyInfo HkInsert(wxT("Repeat Last Item"), HK_REPEAT_LAST, WXK_INSERT); +static Ki_HotkeyInfo HkDelete(wxT("Delete Item"), HK_DELETE, WXK_DELETE); +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 -static Ki_HotkeyInfo* s_Schematic_Hotkey_List[] = { - &HkHelp, - &HkZoomIn, &HkZoomOut, &HkZoomRedraw, &HkZoomCenter, - &HkNextSearch, &HkResetLocalCoord, - &HkDelete, &HkInsert, &HkMove2Drag, - &HkMoveComponent, &HkAddComponent, - &HkRotateComponent, &HkMirrorXComponent, &HkMirrorYComponent, &HkOrientNormalComponent, - &HkBeginWire, - NULL +static Ki_HotkeyInfo *s_Schematic_Hotkey_List[] = { + &HkHelp, + &HkZoomIn, &HkZoomOut, &HkZoomRedraw, &HkZoomCenter, + &HkNextSearch, &HkResetLocalCoord, + &HkDelete, &HkInsert, &HkMove2Drag, + &HkMoveComponent, &HkAddComponent, + &HkRotateComponent, &HkMirrorXComponent, &HkMirrorYComponent, & HkOrientNormalComponent, + &HkBeginWire, + NULL }; // 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 -static Ki_HotkeyInfo* s_LibEdit_Hotkey_List[] = +static Ki_HotkeyInfo *s_LibEdit_Hotkey_List[] = { - &HkHelp, - &HkZoomIn, &HkZoomOut, &HkZoomRedraw, &HkZoomCenter, - &HkResetLocalCoord, - &HkInsertPin, - NULL + &HkHelp, + &HkZoomIn, &HkZoomOut, &HkZoomRedraw, &HkZoomCenter, + &HkResetLocalCoord, + &HkInsertPin, + NULL }; - -/****************************************************/ -static wxString ReturnKeyNameFromKeyCode( int keycode ) -/****************************************************/ - -/* - * return the key name from the key code - * Only some wxWidgets key values are handled for function key - * @param key = key code (ascii value, or wxWidgets value for function keys) - * @return the key name wxString - */ -{ - wxString keyname, modifier, fullkeyname; - - if( keycode & GR_KB_CTRL ) - modifier << wxT( "Ctrl " ); - if( keycode & GR_KB_ALT ) - modifier << wxT( "Alt " ); - if( keycode & GR_KB_SHIFT ) - modifier << wxT( "Shift " ); - keycode &= ~(GR_KB_CTRL | GR_KB_ALT | GR_KB_SHIFT); - - switch( keycode ) - { - default: - keyname.Printf( wxT( "%c" ), keycode ); - break; - - case WXK_F1: - case WXK_F2: - case WXK_F3: - case WXK_F4: - case WXK_F5: - case WXK_F6: - case WXK_F7: - case WXK_F8: - case WXK_F9: - case WXK_F10: - case WXK_F11: - case WXK_F12: - keyname.Printf( wxT( "F%d" ), keycode - WXK_F1 + 1 ); - break; - - case ' ': - keyname = wxT( "space" ); - break; - - case '\t': - keyname = wxT( "Tab" ); - break; - - case WXK_DELETE: - keyname = wxT( "Delete" ); - break; - - case WXK_INSERT: - keyname = wxT( "Insert" ); - break; - } - - fullkeyname = modifier + keyname; - return keyname; -} - - -/****************************************************************************/ -static void DisplayHotkeyList( WinEDA_DrawFrame* frame, Ki_HotkeyInfo** List ) -/*****************************************************************************/ - -/* - * Displays the current hotkey list - * @param frame = current open frame - * @param List = pointer to a Ki_HotkeyInfo list of commands - * @return none - */ -{ - wxString keyname; - - wxString msg = _( "Current hotkey list:\n\n" ); - - for( ; *List != NULL; List++ ) - { - Ki_HotkeyInfo* hk_decr = *List; - if( hk_decr->m_InfoMsg.IsEmpty() ) - break; - msg += _( "key " ); - keyname = ReturnKeyNameFromKeyCode( hk_decr->m_KeyCode ); - msg += keyname + wxT( ": " ) + hk_decr->m_InfoMsg + wxT( "\n" ); - } - - DisplayInfo( frame, msg ); -} - - -/******************************************************************/ -static int GetCommandCodeFromHotkey( int key, Ki_HotkeyInfo** List ) -/******************************************************************/ - -/* - * Return an id identifier fron a key code for OnHotKey() function - * @param key = key code (ascii value, or wxWidgets value for function keys - * @param List = pointer to a Ki_HotkeyInfo list of commands - * @return the corresponding function identifier from the Ki_HotkeyInfo List - */ -{ - for( ; *List != NULL; List++ ) - { - Ki_HotkeyInfo* hk_decr = *List; - if( hk_decr->m_KeyCode == key ) - return hk_decr->m_Idcommand; - } - - return HK_NOT_FOUND; -} - - /***********************************************************/ -void WinEDA_SchematicFrame::OnHotKey( wxDC* DC, int hotkey, - EDA_BaseStruct* DrawStruct ) +void WinEDA_SchematicFrame::OnHotKey(wxDC * DC, int hotkey, + EDA_BaseStruct * DrawStruct) /***********************************************************/ - /* Hot keys. Some commands are relatives to the item under the mouse cursor - * Commands are case insensitive - * Zoom commands are not managed here - */ + Commands are case insensitive + Zoom commands are not managed here +*/ { - bool PopupOn = m_CurrentScreen->GetCurItem() - && m_CurrentScreen->GetCurItem()->m_Flags; - bool RefreshToolBar = FALSE; // We must refresh tool bar when the undo/redo tool state is modified - - if( hotkey == 0 ) - return; - - 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'; - - // Search commnd from key : - switch( GetCommandCodeFromHotkey( hotkey, s_Schematic_Hotkey_List ) ) - { - default: - case HK_NOT_FOUND: - return; - break; - - case HK_HELP: // Display Current hotkey list - DisplayHotkeyList( this, s_Schematic_Hotkey_List ); - break; - - case HK_ZOOM_IN: - case HK_ZOOM_OUT: - case HK_ZOOM_REDRAW: - case HK_ZOOM_CENTER: - case HK_RESET_LOCAL_COORD: - break; - - case HK_MOVEBLOCK_TO_DRAGBLOCK: // Switch to drag mode, when block moving - HandleBlockEndByPopUp( BLOCK_DRAG, DC ); - break; - - case HK_DELETE: - if( PopupOn ) - break; - RefreshToolBar = LocateAndDeleteItem( this, DC ); - m_CurrentScreen->SetModify(); - m_CurrentScreen->SetCurItem( NULL ); - TestDanglingEnds( m_CurrentScreen->EEDrawList, DC ); - break; - - case HK_REPEAT_LAST: - if( g_ItemToRepeat && (g_ItemToRepeat->m_Flags == 0) ) - { - RepeatDrawItem( DC ); - } - else - wxBell(); - break; - - case HK_NEXT_SEARCH: - if( g_LastSearchIsMarker ) - WinEDA_SchematicFrame::FindMarker( 1 ); - else - FindSchematicItem( wxEmptyString, 2 ); - break; - - case HK_ADD_NEW_COMPONENT: // Add component - if( DrawStruct && DrawStruct->m_Flags ) - break; - - // 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" ) ); - OnLeftClick( DC, MousePos ); - break; - - case HK_BEGIN_WIRE: // Add wire - if( DrawStruct ) // An item is selected. If edited and not a wire, a new command is not possible - { - if( DrawStruct->m_Flags ) // Item selected and edition in progress - { - if( DrawStruct->m_StructType == DRAW_SEGMENT_STRUCT_TYPE ) - { - EDA_DrawLineStruct* segment = (EDA_DrawLineStruct*) DrawStruct; - if( segment->m_Layer != LAYER_WIRE ) - break; - } - 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; - - case HK_ROTATE_COMPONENT: // Component Rotation - if( DrawStruct == NULL ) - { - DrawStruct = PickStruct( GetScreen()->m_Curseur, - GetScreen()->EEDrawList, LIBITEM | TEXTITEM | LABELITEM ); - if( DrawStruct == NULL ) - break; - if( DrawStruct->m_StructType == DRAW_LIB_ITEM_STRUCT_TYPE ) - DrawStruct = LocateSmallestComponent( GetScreen() ); - if( DrawStruct == NULL ) - break; - } - - switch( DrawStruct->m_StructType ) - { - case DRAW_LIB_ITEM_STRUCT_TYPE: - if( DrawStruct->m_Flags == 0 ) - { - SaveCopyInUndoList( DrawStruct, IS_CHANGED ); - RefreshToolBar = TRUE; - } - - CmpRotationMiroir( - (EDA_SchComponentStruct*) DrawStruct, DC, CMP_ROTATE_COUNTERCLOCKWISE ); +bool PopupOn = m_CurrentScreen->GetCurItem() && + m_CurrentScreen->GetCurItem()->m_Flags; +bool RefreshToolBar = FALSE; // We must refresh tool bar when the undo/redo tool state is modified + + if ( hotkey == 0 ) return; + +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; + /* 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'; + + // Search command from key : + int CommandCode = GetCommandCodeFromHotkey(hotkey, s_Schematic_Hotkey_List); + switch( CommandCode ) + { + default: + case HK_NOT_FOUND: + return; + break; + + case HK_HELP: // Display Current hotkey list + DisplayHotkeyList(this, s_Schematic_Hotkey_List); + break; + + case HK_ZOOM_IN: + case HK_ZOOM_OUT: + case HK_ZOOM_REDRAW: + case HK_ZOOM_CENTER: + case HK_RESET_LOCAL_COORD: + break; + + case HK_MOVEBLOCK_TO_DRAGBLOCK: // Switch to drag mode, when block moving + HandleBlockEndByPopUp(BLOCK_DRAG, DC); + break; + + case HK_DELETE: + if ( PopupOn ) break; + RefreshToolBar = LocateAndDeleteItem(this, DC); + m_CurrentScreen->SetModify(); + m_CurrentScreen->SetCurItem( NULL); + TestDanglingEnds(m_CurrentScreen->EEDrawList, DC); + break; + + case HK_REPEAT_LAST: + if ( g_ItemToRepeat && (g_ItemToRepeat->m_Flags == 0) ) + { + RepeatDrawItem(DC); + } + else wxBell(); + break; + + case HK_NEXT_SEARCH : + if ( g_LastSearchIsMarker ) WinEDA_SchematicFrame::FindMarker(1); + else FindSchematicItem(wxEmptyString, 2); + break; + + case HK_ADD_NEW_COMPONENT: // Add component + if ( DrawStruct && DrawStruct->m_Flags ) break; + // 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")); + OnLeftClick(DC, MousePos); + break; + + case HK_BEGIN_WIRE: // Add wire + if ( DrawStruct ) // An item is selected. If edited and not a wire, a new command is not possible + { + if ( DrawStruct->m_Flags ) // Item selected and edition in progress + { + if (DrawStruct->m_StructType == DRAW_SEGMENT_STRUCT_TYPE ) + { + EDA_DrawLineStruct * segment = (EDA_DrawLineStruct *)DrawStruct; + if ( segment->m_Layer != LAYER_WIRE ) break; + } + 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; - case DRAW_TEXT_STRUCT_TYPE: - case DRAW_LABEL_STRUCT_TYPE: - case DRAW_GLOBAL_LABEL_STRUCT_TYPE: - if( DrawStruct->m_Flags == 0 ) - { - SaveCopyInUndoList( DrawStruct, IS_CHANGED ); - RefreshToolBar = TRUE; - } - ChangeTextOrient( (DrawTextStruct*) DrawStruct, DC ); - break; - } - - break; - - case HK_MIRROR_Y_COMPONENT: // Mirror Y (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_MIROIR_Y ); - } - break; - - case HK_MIRROR_X_COMPONENT: // Mirror X (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_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(); + case HK_ROTATE_COMPONENT: // Component Rotation + if ( DrawStruct == NULL ) + { + DrawStruct = PickStruct( GetScreen()->m_Curseur, + GetScreen()->EEDrawList, LIBITEM|TEXTITEM|LABELITEM ); + if ( DrawStruct == NULL ) break; + if ( DrawStruct->m_StructType == DRAW_LIB_ITEM_STRUCT_TYPE ) + DrawStruct = LocateSmallestComponent( GetScreen() ); + if ( DrawStruct == NULL ) break; + } + switch (DrawStruct->m_StructType) + { + case DRAW_LIB_ITEM_STRUCT_TYPE: + if ( DrawStruct->m_Flags == 0 ) + { + SaveCopyInUndoList(DrawStruct, IS_CHANGED); + RefreshToolBar = TRUE; + } + + CmpRotationMiroir( + (EDA_SchComponentStruct *) DrawStruct, DC, CMP_ROTATE_COUNTERCLOCKWISE ); + break; + + case DRAW_TEXT_STRUCT_TYPE: + case DRAW_LABEL_STRUCT_TYPE: + case DRAW_GLOBAL_LABEL_STRUCT_TYPE: + if ( DrawStruct->m_Flags == 0 ) + { + SaveCopyInUndoList(DrawStruct, IS_CHANGED); + RefreshToolBar = TRUE; + } + ChangeTextOrient( (DrawTextStruct*)DrawStruct, DC); + break; + } + break; + + case HK_MIRROR_Y_COMPONENT: // Mirror Y (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_MIROIR_Y ); + } + break; + + case HK_MIRROR_X_COMPONENT: // Mirror X (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_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, - EDA_BaseStruct* DrawStruct ) +void WinEDA_LibeditFrame::OnHotKey(wxDC * DC, int hotkey, + EDA_BaseStruct * DrawStruct) /***********************************************************/ - /* Hot keys for the component editot. Some commands are relatives to the item under the mouse cursor - * Commands are case insensitive - * Zoom commands are not managed here - */ + Commands are case insensitive + Zoom commands are not managed here +*/ { - bool PopupOn = m_CurrentScreen->GetCurItem() - && m_CurrentScreen->GetCurItem()->m_Flags; - - bool RefreshToolBar = FALSE; // We must refresh tool bar when the undo/redo tool state is modified - - if( hotkey == 0 ) - return; - - 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'; - - switch( GetCommandCodeFromHotkey( hotkey, s_LibEdit_Hotkey_List ) ) - { - default: - case HK_NOT_FOUND: - return; - break; - - case HK_HELP: // Display Current hotkey list - DisplayHotkeyList( this, s_LibEdit_Hotkey_List ); - break; - - case HK_ZOOM_IN: - case HK_ZOOM_OUT: - case HK_ZOOM_REDRAW: - case HK_ZOOM_CENTER: - case HK_RESET_LOCAL_COORD: - break; - - case HK_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(); +bool RefreshToolBar = FALSE; // We must refresh tool bar when the undo/redo tool state is modified + + if ( hotkey == 0 ) return; + +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); + switch( CommandCode ) + { + default: + case HK_NOT_FOUND: + return; + break; + + case HK_HELP: // Display Current hotkey list + DisplayHotkeyList(this, s_LibEdit_Hotkey_List); + break; + + case HK_ZOOM_IN: + case HK_ZOOM_OUT: + case HK_ZOOM_REDRAW: + case HK_ZOOM_CENTER: + case HK_RESET_LOCAL_COORD: + break; + + case HK_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(); } + diff --git a/include/build_version.h b/include/build_version.h index 4411bc499c..84219f782d 100644 --- a/include/build_version.h +++ b/include/build_version.h @@ -5,7 +5,7 @@ COMMON_GLOBL wxString g_BuildVersion #ifdef EDA_BASE - (wxT("(2007-08-09)")) + (wxT("(2007-08-19)")) #endif ; diff --git a/include/hotkeys_basic.h b/include/hotkeys_basic.h new file mode 100644 index 0000000000..842891b3a2 --- /dev/null +++ b/include/hotkeys_basic.h @@ -0,0 +1,33 @@ + /*******************/ + /* hotkeys_basic.h */ + /*******************/ + +/* Some functions to handle hotkeys in kicad +*/ + +#ifndef HOTKEYS_BASIC_H +#define HOTKEYS_BASIC_H + +/* Class to handle hotkey commnands. hotkeys have a default value +This class allows (for the future..) the real key code changed by user(from a key code list file, TODO) +*/ +class Ki_HotkeyInfo +{ +public: + int m_KeyCode; // Key code (ascii value for ascii keys or wxWidgets code for function key + wxString m_InfoMsg; // info message. + int m_Idcommand; // internal id for the corresponding command (see hotkey_id_commnand list) + +public: + Ki_HotkeyInfo(const wxChar * infomsg, int idcommand, int keycode); +}; + +/* Functions: +*/ +wxString ReturnKeyNameFromKeyCode(int keycode); +void DisplayHotkeyList(WinEDA_DrawFrame * frame, Ki_HotkeyInfo ** List); +int GetCommandCodeFromHotkey(int key, Ki_HotkeyInfo ** List); + + +#endif // HOTKEYS_BASIC_H + diff --git a/internat/fr/kicad.mo b/internat/fr/kicad.mo index 513c3e5cbc..ddb17324ce 100644 Binary files a/internat/fr/kicad.mo and b/internat/fr/kicad.mo differ diff --git a/internat/fr/kicad.po b/internat/fr/kicad.po index 53f6c946ff..9a10d5aa4a 100644 --- a/internat/fr/kicad.po +++ b/internat/fr/kicad.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: kicad\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2007-08-08 11:30+0100\n" +"PO-Revision-Date: 2007-08-19 16:13+0100\n" "Last-Translator: \n" "Language-Team: kicad team \n" "MIME-Version: 1.0\n" @@ -36,6 +36,108 @@ msgstr "Editer TOUTES Vias" msgid "Edit All Track Sizes" msgstr "Editer TOUTES Pistes" +#: pcbnew/ioascii.cpp:184 +msgid "Error: Unexpected end of file !" +msgstr "Erreur: Fin de fichier inattendue !" + +#: pcbnew/edit_track_width.cpp:85 +msgid "Change track width (entire NET) ?" +msgstr "Change largeur piste ( NET complet) ?" + +#: pcbnew/clean.cpp:163 +msgid "Delete unconnected tracks:" +msgstr "Suppression Pistes non connectées" + +#: pcbnew/clean.cpp:181 +msgid "ViaDef" +msgstr "ViaDef" + +#: pcbnew/clean.cpp:332 +msgid "Clean Null Segments" +msgstr "Nettoyage segments nulls" + +#: pcbnew/clean.cpp:420 +msgid "Merging Segments:" +msgstr "Associe Segment" + +#: pcbnew/clean.cpp:422 +msgid "Merge" +msgstr "Merge" + +#: pcbnew/clean.cpp:422 +#: pcbnew/dialog_pad_edit.cpp:187 +#: eeschema/dialog_erc.cpp:192 +#: eeschema/dialog_erc.cpp:196 +#: eeschema/dialog_edit_component_in_schematic.cpp:172 +msgid "0" +msgstr "0" + +#: pcbnew/clean.cpp:435 +msgid "Merge: " +msgstr "Merge: " + +#: pcbnew/clean.cpp:647 +msgid "DRC Control:" +msgstr "Controle DRC:" + +#: pcbnew/clean.cpp:652 +msgid "NetCtr" +msgstr "NetCtr" + +#: pcbnew/clean.cpp:886 +msgid "Centre" +msgstr "Centre" + +#: pcbnew/clean.cpp:886 +msgid "0 " +msgstr "0" + +#: pcbnew/clean.cpp:897 +msgid "Pads: " +msgstr "Pastilles: " + +#: pcbnew/clean.cpp:900 +msgid "Max" +msgstr "Max" + +#: pcbnew/clean.cpp:902 +msgid "Segm" +msgstr "Segm" + +#: pcbnew/loadcmp.cpp:94 +msgid "Module name:" +msgstr "Nom module:" + +#: pcbnew/loadcmp.cpp:201 +#: eeschema/eelibs_read_libraryfiles.cpp:66 +#, c-format +msgid "Library <%s> not found" +msgstr "Librairie %s non trouvée" + +#: pcbnew/loadcmp.cpp:206 +#, c-format +msgid "Scan Lib: %s" +msgstr "Examen Lib: %s" + +#: pcbnew/loadcmp.cpp:215 +msgid "File is Not a library" +msgstr "Le fichier n'est pas une librairie eeschema" + +#: pcbnew/loadcmp.cpp:277 +#, c-format +msgid "Module <%s> not found" +msgstr "Module <%s> non trouvé" + +#: pcbnew/loadcmp.cpp:342 +msgid "Library: " +msgstr "Librairie: " + +#: pcbnew/loadcmp.cpp:401 +#: pcbnew/loadcmp.cpp:534 +#, c-format +msgid "Modules (%d items)" +msgstr "Modules (%d éléments)" + #: pcbnew/edit.cpp:165 msgid "Graphic not autorized on Copper layers" msgstr "Graphique non autorisé sur couches cuivre" @@ -48,37 +150,37 @@ msgstr "Pistes sur couches cuivre seulement" msgid "Cotation not autorized on Copper layers" msgstr "Cotation non autorisée sur couches cuivre" -#: pcbnew/edit.cpp:466 +#: pcbnew/edit.cpp:489 #: pcbnew/editmod.cpp:43 msgid "Module Editor" msgstr "Ouvrir Editeur de modules" -#: pcbnew/edit.cpp:546 +#: pcbnew/edit.cpp:569 msgid "Add Tracks" msgstr "Addition de pistes" -#: pcbnew/edit.cpp:555 +#: pcbnew/edit.cpp:578 #: pcbnew/tool_pcb.cpp:420 msgid "Add Zones" msgstr "Addition de Zones" -#: pcbnew/edit.cpp:557 +#: pcbnew/edit.cpp:580 msgid "Warning: Display Zone is OFF!!!" msgstr "Attention: Affichage zones désactivé !!!" -#: pcbnew/edit.cpp:564 +#: pcbnew/edit.cpp:587 msgid "Add Mire" msgstr "Ajouter Mires de superposition" -#: pcbnew/edit.cpp:568 +#: pcbnew/edit.cpp:591 msgid "Adjust Zero" msgstr "Ajuster Zéro" -#: pcbnew/edit.cpp:574 +#: pcbnew/edit.cpp:597 msgid "Add Graphic" msgstr "Addition éléments graphiques" -#: pcbnew/edit.cpp:578 +#: pcbnew/edit.cpp:601 #: pcbnew/tool_pcb.cpp:437 #: pcbnew/tool_modedit.cpp:170 #: eeschema/schedit.cpp:309 @@ -87,100 +189,30 @@ msgstr "Addition msgid "Add Text" msgstr "Ajout de Texte" -#: pcbnew/edit.cpp:582 +#: pcbnew/edit.cpp:605 msgid "Add Modules" msgstr "Addition de Modules" -#: pcbnew/edit.cpp:586 +#: pcbnew/edit.cpp:609 #: pcbnew/tool_pcb.cpp:442 msgid "Add Cotation" msgstr "Addition de Cotations" -#: pcbnew/edit.cpp:594 +#: pcbnew/edit.cpp:617 msgid "Net Highlight" msgstr "Surbrillance des équipotentielles" -#: pcbnew/edit.cpp:598 +#: pcbnew/edit.cpp:621 msgid "Local Ratsnest" msgstr "Monter le chevelu général" -#: pcbnew/edit.cpp:755 +#: pcbnew/edit.cpp:778 #: pcbnew/modedit.cpp:327 #: eeschema/schedit.cpp:443 #: eeschema/libframe.cpp:554 msgid "Delete item" msgstr "Suppression d'éléments" -#: pcbnew/edit_track_width.cpp:85 -msgid "Change track width (entire NET) ?" -msgstr "Changelargeur piste ( NET complet) ?" - -#: pcbnew/autoplac.cpp:104 -msgid "Footprints NOT LOCKED will be moved" -msgstr "Les modules NON FIXES vont être déplacés" - -#: pcbnew/autoplac.cpp:109 -msgid "Footprints NOT PLACED will be moved" -msgstr "Les modules NON PLACES vont être déplacés" - -#: pcbnew/autoplac.cpp:385 -msgid "No edge PCB, Unknown board size!" -msgstr "Pas de contour PCB, la taille du PCB est inconnue!" - -#: pcbnew/autoplac.cpp:406 -msgid "Cols" -msgstr "Cols" - -#: pcbnew/autoplac.cpp:408 -msgid "Lines" -msgstr "Lignes" - -#: pcbnew/autoplac.cpp:410 -msgid "Cells." -msgstr "Cells." - -#: pcbnew/autoplac.cpp:466 -msgid "Loop" -msgstr "Itération" - -#: pcbnew/autoplac.cpp:611 -msgid "Ok to abort ?" -msgstr "Ok pour arrêter ?" - -#: pcbnew/loadcmp.cpp:94 -msgid "Module name:" -msgstr "Nom module:" - -#: pcbnew/loadcmp.cpp:201 -#: eeschema/eelibs_read_libraryfiles.cpp:66 -#, c-format -msgid "Library <%s> not found" -msgstr "Librairie %s non trouvée" - -#: pcbnew/loadcmp.cpp:206 -#, c-format -msgid "Scan Lib: %s" -msgstr "Examen Lib: %s" - -#: pcbnew/loadcmp.cpp:215 -msgid "File is Not a library" -msgstr "Le fichier n'est pas une librairie eeschema" - -#: pcbnew/loadcmp.cpp:277 -#, c-format -msgid "Module <%s> not found" -msgstr "Module <%s> non trouvé" - -#: pcbnew/loadcmp.cpp:342 -msgid "Library: " -msgstr "Librairie: " - -#: pcbnew/loadcmp.cpp:401 -#: pcbnew/loadcmp.cpp:534 -#, c-format -msgid "Modules (%d items)" -msgstr "Modules (%d éléments)" - #: pcbnew/pcbcfg.cpp:67 #: eeschema/eeconfig.cpp:55 #: cvpcb/menucfg.cpp:170 @@ -308,9 +340,44 @@ msgstr "Fichiers Librairies" msgid "Library exists! No Change" msgstr "Librairie existante! Pas de changement" -#: pcbnew/ioascii.cpp:184 -msgid "Error: Unexpected end of file !" -msgstr "Erreur: Fin de fichier inattendue !" +#: pcbnew/find.cpp:140 +msgid "Marker found" +msgstr "Marqueur trouvé" + +#: pcbnew/find.cpp:142 +#, c-format +msgid "<%s> Found" +msgstr "<%s> trouvé" + +#: pcbnew/find.cpp:150 +msgid "Marker not found" +msgstr "Marqueur non trouvé" + +#: pcbnew/find.cpp:152 +#, c-format +msgid "<%s> Not Found" +msgstr "<%s> Non trouvé" + +#: pcbnew/find.cpp:258 +#: eeschema/dialog_find.cpp:107 +msgid "Item to find:" +msgstr "Elément a chercher:" + +#: pcbnew/find.cpp:279 +msgid "Find Item" +msgstr "Chercher Item" + +#: pcbnew/find.cpp:285 +msgid "Find Next Item" +msgstr "Chercher Item Suivant" + +#: pcbnew/find.cpp:294 +msgid "Find Marker" +msgstr "Chercher Marqueur" + +#: pcbnew/find.cpp:300 +msgid "Find Next Marker" +msgstr "Marqueur Suivant" #: pcbnew/librairi.cpp:47 msgid "Import Module:" @@ -365,7 +432,7 @@ msgstr "Librairie " #: pcbnew/librairi.cpp:190 #: pcbnew/files.cpp:57 #: eeschema/libedit.cpp:113 -#: eeschema/find.cpp:423 +#: eeschema/find.cpp:482 #: gerbview/dcode.cpp:260 #: gerbview/readgerb.cpp:141 #: common/eda_doc.cpp:144 @@ -385,8 +452,8 @@ msgstr "Module [%s] non trouv #: pcbnew/librairi.cpp:377 #: pcbnew/librairi.cpp:518 #: pcbnew/librairi.cpp:712 +#: pcbnew/files.cpp:314 #: pcbnew/export_gencad.cpp:79 -#: pcbnew/files.cpp:311 #: pcbnew/gen_modules_placefile.cpp:82 #: pcbnew/gen_modules_placefile.cpp:93 #: pcbnew/gen_modules_placefile.cpp:239 @@ -514,7 +581,7 @@ msgstr " (pouce):" #: pcbnew/muonde.cpp:189 #: pcbnew/muonde.cpp:202 -#: pcbnew/gen_self.h:226 +#: pcbnew/gen_self.h:231 msgid "Incorrect number, abort" msgstr "Nombre incorrect, arret" @@ -528,7 +595,7 @@ msgstr "Formr complexe" #: pcbnew/muonde.cpp:351 #: pcbnew/pcbtexte.cpp:113 -#: pcbnew/zones.cpp:873 +#: pcbnew/zones.cpp:981 #: pcbnew/block.cpp:117 #: pcbnew/cotation.cpp:109 #: pcbnew/mirepcb.cpp:102 @@ -551,11 +618,11 @@ msgstr "Ok" #: pcbnew/swap_layers.cpp:86 #: pcbnew/pcbpiste.cpp:87 #: pcbnew/mirepcb.cpp:106 +#: pcbnew/sel_layer.cpp:136 +#: pcbnew/sel_layer.cpp:267 #: pcbnew/dialog_edit_module.cpp:124 #: pcbnew/onrightclick.cpp:153 #: pcbnew/onrightclick.cpp:172 -#: pcbnew/sel_layer.cpp:123 -#: pcbnew/sel_layer.cpp:250 #: eeschema/libedit_onrightclick.cpp:68 #: eeschema/libedit_onrightclick.cpp:83 #: eeschema/optionsframe.cpp:155 @@ -646,66 +713,6 @@ msgstr "Gap (mm):" msgid "Gap (inch):" msgstr "Gap (inch):" -#: pcbnew/clean.cpp:152 -msgid "Delete unconnected tracks:" -msgstr "Suppression Pistes non connectées" - -#: pcbnew/clean.cpp:169 -msgid "ViaDef" -msgstr "ViaDef" - -#: pcbnew/clean.cpp:314 -msgid "Clean Null Segments" -msgstr "Nettoyage segments nulls" - -#: pcbnew/clean.cpp:396 -msgid "Merging Segments:" -msgstr "Associe Segment" - -#: pcbnew/clean.cpp:398 -msgid "Merge" -msgstr "Merge" - -#: pcbnew/clean.cpp:398 -#: pcbnew/dialog_pad_edit.cpp:187 -#: eeschema/dialog_erc.cpp:192 -#: eeschema/dialog_erc.cpp:196 -#: eeschema/dialog_edit_component_in_schematic.cpp:172 -msgid "0" -msgstr "0" - -#: pcbnew/clean.cpp:411 -msgid "Merge: " -msgstr "Merge: " - -#: pcbnew/clean.cpp:603 -msgid "DRC Control:" -msgstr "Controle ERC:" - -#: pcbnew/clean.cpp:607 -msgid "NetCtr" -msgstr "NetCtr" - -#: pcbnew/clean.cpp:815 -msgid "Centre" -msgstr "Centre" - -#: pcbnew/clean.cpp:815 -msgid "0 " -msgstr "0" - -#: pcbnew/clean.cpp:826 -msgid "Pads: " -msgstr "Pastilles: " - -#: pcbnew/clean.cpp:829 -msgid "Max" -msgstr "Max" - -#: pcbnew/clean.cpp:831 -msgid "Segm" -msgstr "Segm" - #: pcbnew/gendrill.cpp:146 msgid "Drill tools" msgstr "Outils de perçage" @@ -879,9 +886,9 @@ msgstr "Outils" #: pcbnew/gendrill.cpp:399 #: pcbnew/gendrill.cpp:1008 #: pcbnew/gendrill.cpp:1521 -#: pcbnew/class_pad.cpp:931 #: pcbnew/affiche.cpp:208 #: pcbnew/affiche.cpp:210 +#: pcbnew/class_pad.cpp:935 msgid "Drill" msgstr "Perçage" @@ -903,7 +910,6 @@ msgstr "" "Le tracé utilise des cercles pour quelques valeurs " #: pcbnew/gendrill.cpp:1444 -#: pcbnew/dialog_drc.cpp:347 msgid "Drill Report file" msgstr "Fichier rapport de perçage:" @@ -911,31 +917,123 @@ msgstr "Fichier rapport de per msgid "Pcbnew is already running, Continue?" msgstr "Pcbnew est est cours d'exécution. Continuer ?" -#: pcbnew/pcbtexte.cpp:90 -msgid "TextPCB properties" -msgstr "Propriétés des textes PCB" +#: pcbnew/drc.cpp:78 +msgid "Look for active routes\n" +msgstr "Recherche des chevelus actifs\n" -#: pcbnew/pcbtexte.cpp:122 -#: pcbnew/dialog_edit_mod_text.cpp:314 -#: eeschema/sheetlab.cpp:108 -#: common/confirm.cpp:131 -msgid "Text:" -msgstr "Texte:" +#: pcbnew/drc.cpp:90 +msgid "Unconnected found:\n" +msgstr "Non connecté trouvé:\n" -#: pcbnew/pcbtexte.cpp:132 -#: pcbnew/dialog_edit_mod_text.cpp:204 -#: pcbnew/cotation.cpp:133 -#: pcbnew/affiche.cpp:50 -#: pcbnew/affiche.cpp:106 -#: pcbnew/affiche.cpp:212 -#: pcbnew/affiche.cpp:248 -#: pcbnew/affiche.cpp:279 -#: pcbnew/mirepcb.cpp:116 -#: eeschema/dialog_cmp_graphic_properties.cpp:188 -#: eeschema/affiche.cpp:147 -#: gerbview/affiche.cpp:46 -#: gerbview/affiche.cpp:106 -msgid "Width" +#: pcbnew/drc.cpp:95 +#, c-format +msgid "%d > Pad %s (%s) @ %.4f,%.4f and " +msgstr "%d > Pad %s (%s) @ %.4f,%.4f et " + +#: pcbnew/drc.cpp:106 +#, c-format +msgid "Pad %s (%s) @ %.4f,%.4f\n" +msgstr "Pad %s (%s) @ %.4f,%.4f\n" + +#: pcbnew/drc.cpp:115 +#, c-format +msgid "Active routes: %d\n" +msgstr "Active routes: %d\n" + +#: pcbnew/drc.cpp:117 +msgid "OK! (No active routes)\n" +msgstr "OK! (Pas de chevelu actif)\n" + +#: pcbnew/drc.cpp:168 +#, c-format +msgid "** End Drc: %d errors **\n" +msgstr "** FinDrc: %d erreurs **\n" + +#: pcbnew/drc.cpp:170 +msgid "** End Drc: No Error **\n" +msgstr "** Fin Drc: Aucune Erreur **\n" + +#: pcbnew/drc.cpp:178 +#, c-format +msgid "Report file <%s> created\n" +msgstr "Fichier rapport <%s> créé\n" + +#: pcbnew/drc.cpp:264 +msgid "Tst Pad to Pad\n" +msgstr "Tst Pad to Pad\n" + +#: pcbnew/drc.cpp:309 +#: pcbnew/drc.cpp:382 +msgid "SegmNb" +msgstr "SegmNb" + +#: pcbnew/drc.cpp:310 +msgid "Track Err" +msgstr "Err Pistes" + +#: pcbnew/drc.cpp:314 +msgid "Tst Tracks\n" +msgstr "Tst Pistes\n" + +#: pcbnew/drc.cpp:344 +#: pcbnew/drc.cpp:417 +#: eeschema/eelayer.cpp:141 +msgid "Netname" +msgstr "NetName" + +#: pcbnew/drc.cpp:383 +msgid "Zone Err" +msgstr "Err. Zone" + +#: pcbnew/drc.cpp:386 +msgid "Tst Zones\n" +msgstr "Test Zones\n" + +#: pcbnew/drc.cpp:1323 +#, c-format +msgid "%d Drc Err %d %s (net %s)and PAD %s (%s) net %s @ %d,%d\n" +msgstr "%d Err Drc %d %s (net %s) et PAD %s (%s) net %s @ %d,%d\n" + +#: pcbnew/drc.cpp:1339 +#, c-format +msgid "%d Err type %d: %s (net %s) and VIA (net %s) @ %d,%d\n" +msgstr "%d Err type %d: %s (net %s) et VIA (net %s) @ %d,%d\n" + +#: pcbnew/drc.cpp:1354 +#, c-format +msgid "%d Err type %d: %s (net %s) and track (net %s) @ %d,%d\n" +msgstr "%d Err type %d: %s (net %s) et piste (net %s) @ %d,%d\n" + +#: pcbnew/drc.cpp:1408 +#, c-format +msgid "%d Drc Err: PAD %s (%s) net %s @ %d,%d and PAD %s (%s) net %s @ %d,%d\n" +msgstr "%d Err Drc: PAD %s (%s) net %s @ %d,%d et PAD %s (%s) net %s @ %d,%d\n" + +#: pcbnew/pcbtexte.cpp:90 +msgid "TextPCB properties" +msgstr "Propriétés des textes PCB" + +#: pcbnew/pcbtexte.cpp:122 +#: pcbnew/dialog_edit_mod_text.cpp:314 +#: eeschema/sheetlab.cpp:108 +#: common/confirm.cpp:131 +msgid "Text:" +msgstr "Texte:" + +#: pcbnew/pcbtexte.cpp:132 +#: pcbnew/dialog_edit_mod_text.cpp:204 +#: pcbnew/cotation.cpp:133 +#: pcbnew/affiche.cpp:50 +#: pcbnew/affiche.cpp:106 +#: pcbnew/affiche.cpp:212 +#: pcbnew/affiche.cpp:248 +#: pcbnew/affiche.cpp:279 +#: pcbnew/mirepcb.cpp:116 +#: eeschema/dialog_cmp_graphic_properties.cpp:188 +#: eeschema/affiche.cpp:147 +#: gerbview/affiche.cpp:46 +#: gerbview/affiche.cpp:106 +msgid "Width" msgstr "Epaisseur" #: pcbnew/pcbtexte.cpp:136 @@ -988,6 +1086,157 @@ msgstr "Pas de memoire pour autoroutage" msgid "Place Cells" msgstr "Place Cells" +#: pcbnew/files.cpp:57 +msgid "Recovery file " +msgstr "Fichier de secours " + +#: pcbnew/files.cpp:63 +msgid "Ok to load Recovery file " +msgstr "Ok pour charger le fichier de secours" + +#: pcbnew/files.cpp:143 +msgid "Board Modified: Continue ?" +msgstr "Circuit imprimé modifié, Continuer ?" + +#: pcbnew/files.cpp:161 +#: pcbnew/files.cpp:263 +msgid "Board files:" +msgstr "Fichiers C.I.:" + +#: pcbnew/files.cpp:299 +msgid "Warning: unable to create bakfile " +msgstr "Attention: Impossible de créer fichier backup " + +#: pcbnew/files.cpp:335 +msgid "Backup file: " +msgstr "Fichier backup: " + +#: pcbnew/files.cpp:340 +msgid "Write Board file: " +msgstr "Ecriture fichier CI: " + +#: pcbnew/files.cpp:342 +msgid "Failed to create " +msgstr "Impossible de créer fichier " + +#: pcbnew/surbrill.cpp:35 +#: pcbnew/pcbpiste.cpp:241 +msgid "Filter for net names:" +msgstr "Filtre pour nets:" + +#: pcbnew/surbrill.cpp:39 +#: pcbnew/pcbpiste.cpp:244 +msgid "List Nets" +msgstr "Liste équipots" + +#: pcbnew/modules.cpp:81 +msgid "Footprint name:" +msgstr "Nom Module: " + +#: pcbnew/modules.cpp:281 +#: pcbnew/onrightclick.cpp:640 +msgid "Delete Module" +msgstr "Supprimer Module" + +#: pcbnew/modules.cpp:282 +msgid "Value " +msgstr "Valeur " + +#: pcbnew/dialog_graphic_items_options.cpp:192 +msgid "Graphics:" +msgstr "Eléments graphiques;" + +#: pcbnew/dialog_graphic_items_options.cpp:196 +msgid "Graphic segm Width" +msgstr "Epaiss. segm graphique" + +#: pcbnew/dialog_graphic_items_options.cpp:202 +msgid "Board Edges Width" +msgstr "Epaiss. contour pcb" + +#: pcbnew/dialog_graphic_items_options.cpp:208 +msgid "Copper Text Width" +msgstr "Epaisseur Texte sur cuivre" + +#: pcbnew/dialog_graphic_items_options.cpp:214 +msgid "Text Size V" +msgstr "Hauteur texte" + +#: pcbnew/dialog_graphic_items_options.cpp:220 +msgid "Text Size H" +msgstr "Largeur texte" + +#: pcbnew/dialog_graphic_items_options.cpp:228 +msgid "Modules:" +msgstr "Modules: " + +#: pcbnew/dialog_graphic_items_options.cpp:232 +msgid "Edges Module Width" +msgstr "Epaiss. contor module" + +#: pcbnew/dialog_graphic_items_options.cpp:238 +msgid "Text Module Width" +msgstr "Epaisseur Texte Module" + +#: pcbnew/dialog_graphic_items_options.cpp:244 +msgid "Text Module Size V" +msgstr "Hauteur Texte Module" + +#: pcbnew/dialog_graphic_items_options.cpp:250 +msgid "Text Module Size H" +msgstr "Largeur Texte Module" + +#: pcbnew/dialog_graphic_items_options.cpp:261 +#: pcbnew/dialog_edit_mod_text.cpp:213 +#: pcbnew/dialog_initpcb.cpp:161 +#: pcbnew/dialog_track_options.cpp:181 +#: pcbnew/dialog_display_options.cpp:280 +#: pcbnew/set_grid.cpp:171 +#: pcbnew/dialog_pad_edit.cpp:221 +#: pcbnew/dialog_general_options.cpp:364 +#: eeschema/symbtext.cpp:174 +#: eeschema/dialog_options.cpp:274 +#: eeschema/sheet.cpp:187 +#: eeschema/dialog_edit_component_in_lib.cpp:218 +#: eeschema/dialog_edit_label.cpp:176 +#: eeschema/dialog_create_component.cpp:195 +#: eeschema/dialog_edit_component_in_schematic.cpp:243 +#: eeschema/dialog_cmp_graphic_properties.cpp:178 +#: eeschema/pinedit-dialog.cpp:308 +#: cvpcb/dialog_cvpcb_config.cpp:135 +#: share/setpage.cpp:232 +msgid "&OK" +msgstr "&OK" + +#: pcbnew/dialog_graphic_items_options.cpp:265 +#: pcbnew/dialog_edit_mod_text.cpp:217 +#: pcbnew/dialog_initpcb.cpp:164 +#: pcbnew/zones.cpp:216 +#: pcbnew/dialog_track_options.cpp:185 +#: pcbnew/dialog_display_options.cpp:284 +#: pcbnew/set_grid.cpp:176 +#: pcbnew/dialog_pad_edit.cpp:225 +#: pcbnew/dialog_general_options.cpp:368 +#: eeschema/symbtext.cpp:178 +#: eeschema/dialog_options.cpp:278 +#: eeschema/sheet.cpp:183 +#: eeschema/dialog_edit_component_in_lib.cpp:214 +#: eeschema/dialog_create_component.cpp:200 +#: eeschema/dialog_cmp_graphic_properties.cpp:182 +#: eeschema/pinedit-dialog.cpp:304 +#: eeschema/plothpgl.cpp:274 +#: share/setpage.cpp:237 +msgid "&Cancel" +msgstr "&Annuler" + +#: pcbnew/basepcbframe.cpp:94 +msgid "3D Frame already opened" +msgstr "Fenetre 3D déjà ouverte" + +#: pcbnew/basepcbframe.cpp:97 +msgid "3D Viewer" +msgstr "Visu 3D" + #: pcbnew/tool_pcb.cpp:50 msgid "" "Show active layer selections\n" @@ -1285,183 +1534,6 @@ msgstr "Grille perso" msgid "+/- to switch" msgstr "+/- pour commuter" -#: pcbnew/dialog_graphic_items_options.cpp:192 -msgid "Graphics:" -msgstr "Eléments graphiques;" - -#: pcbnew/dialog_graphic_items_options.cpp:196 -msgid "Graphic segm Width" -msgstr "Epaiss. segm graphique" - -#: pcbnew/dialog_graphic_items_options.cpp:202 -msgid "Board Edges Width" -msgstr "Epaiss. contour pcb" - -#: pcbnew/dialog_graphic_items_options.cpp:208 -msgid "Copper Text Width" -msgstr "Epaisseur Texte sur cuivre" - -#: pcbnew/dialog_graphic_items_options.cpp:214 -msgid "Text Size V" -msgstr "Hauteur texte" - -#: pcbnew/dialog_graphic_items_options.cpp:220 -msgid "Text Size H" -msgstr "Largeur texte" - -#: pcbnew/dialog_graphic_items_options.cpp:228 -msgid "Modules:" -msgstr "Modules: " - -#: pcbnew/dialog_graphic_items_options.cpp:232 -msgid "Edges Module Width" -msgstr "Epaiss. contor module" - -#: pcbnew/dialog_graphic_items_options.cpp:238 -msgid "Text Module Width" -msgstr "Epaisseur Texte Module" - -#: pcbnew/dialog_graphic_items_options.cpp:244 -msgid "Text Module Size V" -msgstr "Hauteur Texte Module" - -#: pcbnew/dialog_graphic_items_options.cpp:250 -msgid "Text Module Size H" -msgstr "Largeur Texte Module" - -#: pcbnew/dialog_graphic_items_options.cpp:261 -#: pcbnew/dialog_edit_mod_text.cpp:213 -#: pcbnew/dialog_initpcb.cpp:161 -#: pcbnew/dialog_track_options.cpp:181 -#: pcbnew/dialog_display_options.cpp:280 -#: pcbnew/set_grid.cpp:171 -#: pcbnew/dialog_pad_edit.cpp:221 -#: pcbnew/dialog_general_options.cpp:364 -#: eeschema/symbtext.cpp:174 -#: eeschema/dialog_options.cpp:274 -#: eeschema/sheet.cpp:187 -#: eeschema/dialog_edit_component_in_lib.cpp:218 -#: eeschema/dialog_edit_label.cpp:176 -#: eeschema/dialog_create_component.cpp:195 -#: eeschema/dialog_edit_component_in_schematic.cpp:243 -#: eeschema/dialog_cmp_graphic_properties.cpp:178 -#: eeschema/pinedit-dialog.cpp:308 -#: cvpcb/dialog_cvpcb_config.cpp:135 -#: share/setpage.cpp:232 -msgid "&OK" -msgstr "&OK" - -#: pcbnew/dialog_graphic_items_options.cpp:265 -#: pcbnew/zones.cpp:180 -#: pcbnew/dialog_edit_mod_text.cpp:217 -#: pcbnew/dialog_initpcb.cpp:164 -#: pcbnew/dialog_track_options.cpp:185 -#: pcbnew/dialog_display_options.cpp:284 -#: pcbnew/set_grid.cpp:176 -#: pcbnew/dialog_pad_edit.cpp:225 -#: pcbnew/dialog_general_options.cpp:368 -#: eeschema/symbtext.cpp:178 -#: eeschema/dialog_options.cpp:278 -#: eeschema/sheet.cpp:183 -#: eeschema/dialog_edit_component_in_lib.cpp:214 -#: eeschema/dialog_create_component.cpp:200 -#: eeschema/dialog_cmp_graphic_properties.cpp:182 -#: eeschema/pinedit-dialog.cpp:304 -#: eeschema/plothpgl.cpp:274 -#: share/setpage.cpp:237 -msgid "&Cancel" -msgstr "&Annuler" - -#: pcbnew/basepcbframe.cpp:94 -msgid "3D Frame already opened" -msgstr "Fenetre 3D déjà ouverte" - -#: pcbnew/basepcbframe.cpp:97 -msgid "3D Viewer" -msgstr "Visu 3D" - -#: pcbnew/zones.cpp:136 -#: pcbnew/zones.cpp:137 -#: pcbnew/zones.cpp:138 -#: pcbnew/zones.cpp:139 -msgid "0.00000" -msgstr "0.00000" - -#: pcbnew/zones.cpp:141 -msgid "Grid size:" -msgstr "Dim Grille" - -#: pcbnew/zones.cpp:144 -msgid "Zone clearance value (mm):" -msgstr "Valeur isolation zone (mm):" - -#: pcbnew/zones.cpp:156 -msgid "Include Pads" -msgstr "Inclure Pads" - -#: pcbnew/zones.cpp:157 -msgid "Thermal" -msgstr "Thermique" - -#: pcbnew/zones.cpp:158 -msgid "Exclude Pads" -msgstr "Exclure Pads" - -#: pcbnew/zones.cpp:160 -msgid "Pad options:" -msgstr "Options pads" - -#: pcbnew/zones.cpp:164 -#: eeschema/dialog_options.cpp:257 -#: eeschema/options.cpp:194 -msgid "Any" -msgstr "Tout" - -#: pcbnew/zones.cpp:165 -msgid "H , V and 45 deg" -msgstr "H, V et 45 deg" - -#: pcbnew/zones.cpp:167 -msgid "Zone edges orient:" -msgstr "Direction contours zone:" - -#: pcbnew/zones.cpp:175 -msgid "Fill" -msgstr "Remplissage" - -#: pcbnew/zones.cpp:184 -msgid "Update Options" -msgstr "Maj Options" - -#: pcbnew/zones.cpp:191 -msgid "Zone clearance value:" -msgstr "Valeur isolation zone:" - -#: pcbnew/zones.cpp:194 -msgid "Grid :" -msgstr "Grille:" - -#: pcbnew/zones.cpp:336 -msgid "New zone segment width: " -msgstr "Nouvelle largeur des segments zone:" - -#: pcbnew/zones.cpp:520 -msgid "Zone: No net selected" -msgstr "Zone: Net non sélectionné" - -#: pcbnew/zones.cpp:562 -msgid "Delete Current Zone Edges" -msgstr "Effacer contour zone courant" - -#: pcbnew/zones.cpp:807 -msgid "No Net" -msgstr "No Net" - -#: pcbnew/zones.cpp:809 -#: pcbnew/affiche.cpp:160 -msgid "NetName" -msgstr "NetName" - #: pcbnew/via_edit.cpp:51 msgid "Incorrect value for Via drill. No via drill change" msgstr "Valeur incorrecte pour perçage.Pas de changement pour la via" @@ -1550,6 +1622,26 @@ msgstr "Test Modules" msgid "Compile" msgstr "Compile" +#: pcbnew/controle.cpp:53 +#, c-format +msgid "Locate module %s %s" +msgstr "Module localisé %s %s" + +#: pcbnew/controle.cpp:108 +#, c-format +msgid "module %s not found" +msgstr "module %s non trouvé" + +#: pcbnew/controle.cpp:110 +#, c-format +msgid "Pin %s (module %s) not found" +msgstr "Pin %s (module %s) non trouvée" + +#: pcbnew/controle.cpp:112 +#, c-format +msgid "Locate Pin %s (module %s)" +msgstr "Pin localisée %s (module %s)" + #: pcbnew/dialog_edit_mod_text.cpp:156 #, c-format msgid "Module %s (%s) orient %.1f" @@ -1613,223 +1705,133 @@ msgstr "Effacer Textes" msgid "Delete Edges" msgstr "Effacements des contours" -#: pcbnew/dialog_initpcb.cpp:121 -msgid "Delete Drawings" -msgstr "Effacement éléments de tracé" - -#: pcbnew/dialog_initpcb.cpp:125 -msgid "Delete Modules" -msgstr "Effacement des Modules" - -#: pcbnew/dialog_initpcb.cpp:129 -msgid "Delete Tracks" -msgstr "Effacer Pistes" - -#: pcbnew/dialog_initpcb.cpp:133 -msgid "Delete Markers" -msgstr "Effacer Marqueurs" - -#: pcbnew/dialog_initpcb.cpp:137 -msgid "Clear Board" -msgstr "Effacement du C.I." - -#: pcbnew/dialog_initpcb.cpp:144 -msgid "Track Filter" -msgstr "Filtre Piste" - -#: pcbnew/dialog_initpcb.cpp:148 -msgid "Include AutoRouted Tracks" -msgstr "Inclure pistes autoroutées" - -#: pcbnew/dialog_initpcb.cpp:152 -msgid "Include Locked Tracks" -msgstr "Inclure pistes verrouillées" - -#: pcbnew/drc.cpp:73 -msgid "Look for active routes\n" -msgstr "Recherche des chevelus actifs\n" - -#: pcbnew/drc.cpp:82 -msgid "Unconnected found:\n" -msgstr "Non connecté trouvé:\n" - -#: pcbnew/drc.cpp:87 -#, c-format -msgid "%d > Pad %s (%s) @ %.4f,%.4f and " -msgstr "%d > Pad %s (%s) @ %.4f,%.4f et " - -#: pcbnew/drc.cpp:96 -#, c-format -msgid "Pad %s (%s) @ %.4f,%.4f\n" -msgstr "Pad %s (%s) @ %.4f,%.4f\n" - -#: pcbnew/drc.cpp:102 -#, c-format -msgid "Active routes: %d\n" -msgstr "Active routes: %d\n" - -#: pcbnew/drc.cpp:103 -msgid "OK! (No active routes)\n" -msgstr "OK! (Pas de chevelu actif)\n" - -#: pcbnew/drc.cpp:146 -#, c-format -msgid "** End Drc: %d errors **\n" -msgstr "** FinDrc: %d erreurs **\n" - -#: pcbnew/drc.cpp:148 -msgid "** End Drc: No Error **\n" -msgstr "** Fin Drc: Aucune Erreur **\n" - -#: pcbnew/drc.cpp:155 -#, c-format -msgid "Report file <%s> created\n" -msgstr "Fichier rapport <%s> créé\n" +#: pcbnew/dialog_initpcb.cpp:121 +msgid "Delete Drawings" +msgstr "Effacement éléments de tracé" -#: pcbnew/drc.cpp:233 -msgid "Tst Pad to Pad\n" -msgstr "Tst Pad to Pad\n" +#: pcbnew/dialog_initpcb.cpp:125 +msgid "Delete Modules" +msgstr "Effacement des Modules" -#: pcbnew/drc.cpp:272 -#: pcbnew/drc.cpp:336 -msgid "SegmNb" -msgstr "SegmNb" +#: pcbnew/dialog_initpcb.cpp:129 +msgid "Delete Tracks" +msgstr "Effacer Pistes" -#: pcbnew/drc.cpp:273 -msgid "Track Err" -msgstr "Err Pistes" +#: pcbnew/dialog_initpcb.cpp:133 +msgid "Delete Markers" +msgstr "Effacer Marqueurs" -#: pcbnew/drc.cpp:276 -msgid "Tst Tracks\n" -msgstr "Tst Pistes\n" +#: pcbnew/dialog_initpcb.cpp:137 +msgid "Clear Board" +msgstr "Effacement du C.I." -#: pcbnew/drc.cpp:300 -#: pcbnew/drc.cpp:365 -#: eeschema/eelayer.cpp:141 -msgid "Netname" -msgstr "NetName" +#: pcbnew/dialog_initpcb.cpp:144 +msgid "Track Filter" +msgstr "Filtre Piste" -#: pcbnew/drc.cpp:337 -msgid "Zone Err" -msgstr "Err. Zone" +#: pcbnew/dialog_initpcb.cpp:148 +msgid "Include AutoRouted Tracks" +msgstr "Inclure pistes autoroutées" -#: pcbnew/drc.cpp:339 -msgid "Tst Zones\n" -msgstr "Test Zones\n" +#: pcbnew/dialog_initpcb.cpp:152 +msgid "Include Locked Tracks" +msgstr "Inclure pistes verrouillées" -#: pcbnew/drc.cpp:1165 -#, c-format -msgid "%d Drc Err %d %s (net %s)and PAD %s (%s) net %s @ %d,%d\n" -msgstr "%d Err Drc %d %s (net %s) et PAD %s (%s) net %s @ %d,%d\n" +#: pcbnew/zones.cpp:152 +#: pcbnew/zones.cpp:153 +#: pcbnew/zones.cpp:154 +#: pcbnew/zones.cpp:155 +msgid "0.00000" +msgstr "0.00000" -#: pcbnew/drc.cpp:1180 -#, c-format -msgid "%d Err type %d: %s (net %s) and VIA (net %s) @ %d,%d\n" -msgstr "%d Err type %d: %s (net %s) et VIA (net %s) @ %d,%d\n" +#: pcbnew/zones.cpp:159 +msgid "Grid size:" +msgstr "Dim Grille" -#: pcbnew/drc.cpp:1193 -#, c-format -msgid "%d Err type %d: %s (net %s) and track (net %s) @ %d,%d\n" -msgstr "%d Err type %d: %s (net %s) et piste (net %s) @ %d,%d\n" +#: pcbnew/zones.cpp:164 +msgid "Zone clearance value (mm):" +msgstr "Valeur isolation zone (mm):" -#: pcbnew/drc.cpp:1238 -#, c-format -msgid "%d Drc Err: PAD %s (%s) net %s @ %d,%d and PAD %s (%s) net %s @ %d,%d\n" -msgstr "%d Err Drc: PAD %s (%s) net %s @ %d,%d et PAD %s (%s) net %s @ %d,%d\n" +#: pcbnew/zones.cpp:181 +msgid "Include Pads" +msgstr "Inclure Pads" -#: pcbnew/controle.cpp:50 -#, c-format -msgid "Locate module %s %s" -msgstr "Module localisé %s %s" +#: pcbnew/zones.cpp:182 +msgid "Thermal" +msgstr "Thermique" -#: pcbnew/controle.cpp:98 -#, c-format -msgid "module %s not found" -msgstr "module %s non trouvé" +#: pcbnew/zones.cpp:183 +msgid "Exclude Pads" +msgstr "Exclure Pads" -#: pcbnew/controle.cpp:100 -#, c-format -msgid "Pin %s (module %s) not found" -msgstr "Pin %s (module %s) non trouvée" +#: pcbnew/zones.cpp:187 +msgid "Pad options:" +msgstr "Options pads" -#: pcbnew/controle.cpp:102 -#, c-format -msgid "Locate Pin %s (module %s)" -msgstr "Pin localisée %s (module %s)" +#: pcbnew/zones.cpp:192 +#: eeschema/dialog_options.cpp:257 +#: eeschema/options.cpp:194 +msgid "Any" +msgstr "Tout" -#: pcbnew/class_pad.cpp:729 -msgid "Unknown Pad shape" -msgstr "Forme pad inconnue" +#: pcbnew/zones.cpp:193 +msgid "H , V and 45 deg" +msgstr "H, V et 45 deg" -#: pcbnew/class_pad.cpp:815 -#: pcbnew/affiche.cpp:76 -#: pcbnew/affiche.cpp:266 -#: pcbnew/class_module.cpp:1136 -#: cvpcb/setvisu.cpp:29 -msgid "Module" -msgstr "Module" +#: pcbnew/zones.cpp:197 +msgid "Zone edges orient:" +msgstr "Direction contours zone:" -#: pcbnew/class_pad.cpp:818 -msgid "RefP" -msgstr "RefP" +#: pcbnew/zones.cpp:209 +msgid "Fill" +msgstr "Remplissage" -#: pcbnew/class_pad.cpp:821 -msgid "Net" -msgstr "Net" +#: pcbnew/zones.cpp:222 +msgid "Update Options" +msgstr "Maj Options" -#: pcbnew/class_pad.cpp:904 -#: pcbnew/affiche.cpp:36 -#: pcbnew/affiche.cpp:91 -#: pcbnew/affiche.cpp:95 -#: pcbnew/affiche.cpp:195 -#: pcbnew/affiche.cpp:244 -#: pcbnew/dialog_edit_module.cpp:230 -#: pcbnew/class_module.cpp:1110 -#: pcbnew/sel_layer.cpp:109 -#: gerbview/affiche.cpp:102 -msgid "Layer" -msgstr "Couche" +#: pcbnew/zones.cpp:230 +msgid "Zone clearance value:" +msgstr "Valeur isolation zone:" -#: pcbnew/class_pad.cpp:921 -#: pcbnew/affiche.cpp:53 -#: pcbnew/affiche.cpp:109 -#: gerbview/affiche.cpp:49 -msgid "H Size" -msgstr "Taille H" +#: pcbnew/zones.cpp:233 +msgid "Grid :" +msgstr "Grille:" -#: pcbnew/class_pad.cpp:925 -#: pcbnew/affiche.cpp:56 -#: pcbnew/affiche.cpp:112 -#: gerbview/affiche.cpp:52 -msgid "V Size" -msgstr "Taille V" +#: pcbnew/zones.cpp:398 +msgid "New zone segment width: " +msgstr "Nouvelle largeur des segments zone:" -#: pcbnew/class_pad.cpp:939 -msgid "Drill X / Y" -msgstr "Perçage X/Y" +#: pcbnew/zones.cpp:598 +msgid "Zone: No net selected" +msgstr "Zone: Net non sélectionné" -#: pcbnew/class_pad.cpp:950 -#: pcbnew/affiche.cpp:47 -#: pcbnew/affiche.cpp:103 -#: pcbnew/dialog_edit_module.cpp:238 -#: pcbnew/class_module.cpp:1133 -#: eeschema/affiche.cpp:101 -#: gerbview/affiche.cpp:43 -msgid "Orient" -msgstr "Orient" +#: pcbnew/zones.cpp:643 +msgid "Delete Current Zone Edges" +msgstr "Effacer contour zone courant" -#: pcbnew/class_pad.cpp:954 -msgid "X Pos" -msgstr "X Pos" +#: pcbnew/zones.cpp:911 +msgid "No Net" +msgstr "No Net" -#: pcbnew/class_pad.cpp:958 -msgid "Y pos" -msgstr "Y pos" +#: pcbnew/zones.cpp:913 +#: pcbnew/affiche.cpp:160 +msgid "NetName" +msgstr "NetName" #: pcbnew/export_gencad.cpp:66 msgid "GenCAD file:" msgstr "Fichier GenCAD:" +#: pcbnew/hotkeys.cpp:174 +#, c-format +msgid "Footprint %s found, but locked" +msgstr "Module %s trouvé, mais verrouillé" + +#: pcbnew/hotkeys.cpp:327 +msgid "Delete module?" +msgstr "Effacer Module?" + #: pcbnew/modedit_onclick.cpp:199 #: pcbnew/onrightclick.cpp:158 #: eeschema/libedit_onrightclick.cpp:73 @@ -2079,16 +2081,6 @@ msgstr "" "Vous avez sélectionné VIA borgne ou VIA enterrée\n" "ATTENTION: Cette possibilité est EXPERIMENTALE!!! Accepter ?" -#: pcbnew/surbrill.cpp:34 -#: pcbnew/pcbpiste.cpp:241 -msgid "Filter for net names:" -msgstr "Filtre pour nets:" - -#: pcbnew/surbrill.cpp:37 -#: pcbnew/pcbpiste.cpp:244 -msgid "List Nets" -msgstr "Liste équipots" - #: pcbnew/dialog_display_options.cpp:188 msgid "Tracks and vias" msgstr "Pistes et vias" @@ -2185,124 +2177,45 @@ msgid "Show Pad NoConnect" msgstr "Montrer non conn" #: pcbnew/dialog_display_options.cpp:268 -#: gerbview/options.cpp:324 -msgid "Display other items:" -msgstr "Afficher autres éléments" - -#: pcbnew/dialog_display_options.cpp:272 -#: pcbnew/affiche.cpp:43 -#: pcbnew/affiche.cpp:87 -#: eeschema/dialog_options.cpp:264 -#: eeschema/options.cpp:202 -#: gerbview/affiche.cpp:39 -msgid "Yes" -msgstr "Oui" - -#: pcbnew/dialog_display_options.cpp:273 -#: pcbnew/affiche.cpp:42 -#: pcbnew/affiche.cpp:86 -#: eeschema/dialog_options.cpp:265 -#: eeschema/options.cpp:202 -#: gerbview/affiche.cpp:38 -msgid "No" -msgstr "Non" - -#: pcbnew/dialog_display_options.cpp:275 -#: eeschema/dialog_options.cpp:267 -#: eeschema/options.cpp:204 -msgid "Show page limits" -msgstr " Afficher limites de page" - -#: pcbnew/edgemod.cpp:212 -msgid "New Width (1/10000\"):" -msgstr "Novelle largeur (1/10000\"):" - -#: pcbnew/edgemod.cpp:217 -msgid "Incorrect number, no change" -msgstr "Nombre incorrect, pas de changement" - -#: pcbnew/reglage.cpp:124 -msgid "Lib Modules:" -msgstr "Lib Modules:" - -#: pcbnew/modules.cpp:74 -msgid "Footprint name:" -msgstr "Nom Module: " - -#: pcbnew/modules.cpp:262 -#: pcbnew/onrightclick.cpp:640 -msgid "Delete Module" -msgstr "Supprimer Module" - -#: pcbnew/modules.cpp:263 -msgid "Value " -msgstr "Valeur " - -#: pcbnew/dialog_drc.cpp:141 -#: eeschema/fieldedi.cpp:223 -#: eeschema/dialog_erc.cpp:237 -#: eeschema/dialog_edit_component_in_lib.cpp:166 -#: eeschema/dialog_create_component.cpp:176 -#: eeschema/libedpart.cpp:241 -#: eeschema/dialog_edit_component_in_schematic.cpp:204 -#: eeschema/editpart.cpp:204 -#: eeschema/dialog_build_BOM.cpp:279 -#: cvpcb/dialog_display_options.h:43 -msgid "Options" -msgstr "Options" - -#: pcbnew/dialog_drc.cpp:153 -msgid "Test Drc:" -msgstr "Test Drc:" - -#: pcbnew/dialog_drc.cpp:157 -msgid "Include pad to pad test" -msgstr "Inclure test pad à pad" - -#: pcbnew/dialog_drc.cpp:161 -msgid "Include unconnected" -msgstr "Inclure non connexions" - -#: pcbnew/dialog_drc.cpp:165 -#: pcbnew/block.cpp:136 -msgid "Include zones" -msgstr "Inclure zones" - -#: pcbnew/dialog_drc.cpp:169 -msgid "Create Report file" -msgstr "Créer fichier rapport " - -#: pcbnew/dialog_drc.cpp:182 -msgid "Test Drc" -msgstr "Test Drc" +#: gerbview/options.cpp:324 +msgid "Display other items:" +msgstr "Afficher autres éléments" -#: pcbnew/dialog_drc.cpp:186 -msgid "Stop Drc" -msgstr "Stop Drc" +#: pcbnew/dialog_display_options.cpp:272 +#: pcbnew/affiche.cpp:43 +#: pcbnew/affiche.cpp:87 +#: eeschema/dialog_options.cpp:264 +#: eeschema/options.cpp:202 +#: gerbview/affiche.cpp:39 +msgid "Yes" +msgstr "Oui" -#: pcbnew/dialog_drc.cpp:193 -msgid "Del Markers" -msgstr "Supprimer Marqueurs" +#: pcbnew/dialog_display_options.cpp:273 +#: pcbnew/affiche.cpp:42 +#: pcbnew/affiche.cpp:86 +#: eeschema/dialog_options.cpp:265 +#: eeschema/options.cpp:202 +#: gerbview/affiche.cpp:38 +msgid "No" +msgstr "Non" -#: pcbnew/dialog_drc.cpp:197 -msgid "List Unconn" -msgstr "Liste Non Conn." +#: pcbnew/dialog_display_options.cpp:275 +#: eeschema/dialog_options.cpp:267 +#: eeschema/options.cpp:204 +msgid "Show page limits" +msgstr " Afficher limites de page" -#: pcbnew/dialog_drc.cpp:204 -msgid "Report File" -msgstr "Fichier rapport" +#: pcbnew/edgemod.cpp:212 +msgid "New Width (1/10000\"):" +msgstr "Novelle largeur (1/10000\"):" -#: pcbnew/dialog_drc.cpp:208 -#: pcbnew/dialog_edit_module.cpp:375 -#: eeschema/dialog_eeschema_config.cpp:227 -msgid "Browse" -msgstr "Examiner" +#: pcbnew/edgemod.cpp:217 +msgid "Incorrect number, no change" +msgstr "Nombre incorrect, pas de changement" -#: pcbnew/dialog_drc.cpp:215 -#: common/svg_print.cpp:232 -#: share/svg_print.cpp:232 -msgid "Messages:" -msgstr "Messages:" +#: pcbnew/reglage.cpp:124 +msgid "Lib Modules:" +msgstr "Lib Modules:" #: pcbnew/block.cpp:128 msgid "Include Modules" @@ -2312,6 +2225,11 @@ msgstr "Inclure Modules" msgid "Include tracks" msgstr "Inclure Pistes" +#: pcbnew/block.cpp:136 +#: pcbnew/dialog_drc.cpp:165 +msgid "Include zones" +msgstr "Inclure zones" + #: pcbnew/block.cpp:141 msgid "Include Text on copper layers" msgstr "Inclure Texte sur couches cuivre" @@ -2480,6 +2398,38 @@ msgstr "Change Per msgid "Change Orient" msgstr "Change Orientation" +#: pcbnew/autoplac.cpp:106 +msgid "Footprints NOT LOCKED will be moved" +msgstr "Les modules NON FIXES vont être déplacés" + +#: pcbnew/autoplac.cpp:111 +msgid "Footprints NOT PLACED will be moved" +msgstr "Les modules NON PLACES vont être déplacés" + +#: pcbnew/autoplac.cpp:402 +msgid "No edge PCB, Unknown board size!" +msgstr "Pas de contour PCB, la taille du PCB est inconnue!" + +#: pcbnew/autoplac.cpp:423 +msgid "Cols" +msgstr "Cols" + +#: pcbnew/autoplac.cpp:425 +msgid "Lines" +msgstr "Lignes" + +#: pcbnew/autoplac.cpp:427 +msgid "Cells." +msgstr "Cells." + +#: pcbnew/autoplac.cpp:488 +msgid "Loop" +msgstr "Itération" + +#: pcbnew/autoplac.cpp:642 +msgid "Ok to abort ?" +msgstr "Ok pour arrêter ?" + #: pcbnew/editmod.cpp:137 msgid "Text is REFERENCE!" msgstr "Le texte est la REFERENCE!" @@ -2518,15 +2468,6 @@ msgstr "Effacement des Modules?" msgid "Delete Pcb Texts" msgstr "Effacer Textes Pcb" -#: pcbnew/hotkeys.cpp:174 -#, c-format -msgid "Footprint %s found, but locked" -msgstr "Module %s trouvé, mais verrouillé" - -#: pcbnew/hotkeys.cpp:314 -msgid "Delete module?" -msgstr "Effacer Module?" - #: pcbnew/cotation.cpp:88 msgid "Cotation properties" msgstr "Propriétés des Cotations" @@ -2562,6 +2503,43 @@ msgstr "COTATION" msgid "PCB Text" msgstr "Texte Pcb" +#: pcbnew/affiche.cpp:36 +#: pcbnew/affiche.cpp:91 +#: pcbnew/affiche.cpp:95 +#: pcbnew/affiche.cpp:195 +#: pcbnew/affiche.cpp:244 +#: pcbnew/sel_layer.cpp:121 +#: pcbnew/class_pad.cpp:908 +#: pcbnew/class_module.cpp:1112 +#: pcbnew/dialog_edit_module.cpp:230 +#: gerbview/affiche.cpp:102 +msgid "Layer" +msgstr "Couche" + +#: pcbnew/affiche.cpp:47 +#: pcbnew/affiche.cpp:103 +#: pcbnew/class_pad.cpp:954 +#: pcbnew/class_module.cpp:1135 +#: pcbnew/dialog_edit_module.cpp:238 +#: eeschema/affiche.cpp:101 +#: gerbview/affiche.cpp:43 +msgid "Orient" +msgstr "Orient" + +#: pcbnew/affiche.cpp:53 +#: pcbnew/affiche.cpp:109 +#: pcbnew/class_pad.cpp:925 +#: gerbview/affiche.cpp:49 +msgid "H Size" +msgstr "Taille H" + +#: pcbnew/affiche.cpp:56 +#: pcbnew/affiche.cpp:112 +#: pcbnew/class_pad.cpp:929 +#: gerbview/affiche.cpp:52 +msgid "V Size" +msgstr "Taille V" + #: pcbnew/affiche.cpp:69 msgid "Ref." msgstr "Ref." @@ -2581,6 +2559,14 @@ msgstr "Valeur" msgid "Text" msgstr "Texte" +#: pcbnew/affiche.cpp:76 +#: pcbnew/affiche.cpp:266 +#: pcbnew/class_pad.cpp:819 +#: pcbnew/class_module.cpp:1138 +#: cvpcb/setvisu.cpp:29 +msgid "Module" +msgstr "Module" + #: pcbnew/affiche.cpp:82 #: pcbnew/affiche.cpp:146 #: pcbnew/affiche.cpp:231 @@ -2619,7 +2605,7 @@ msgid "Standard" msgstr "Standard" #: pcbnew/affiche.cpp:182 -#: pcbnew/class_module.cpp:1129 +#: pcbnew/class_module.cpp:1131 msgid "Stat" msgstr "Stat" @@ -2640,7 +2626,7 @@ msgid "Seg" msgstr "Seg" #: pcbnew/affiche.cpp:271 -#: pcbnew/class_module.cpp:1106 +#: pcbnew/class_module.cpp:1108 msgid "TimeStamp" msgstr "TimeStamp" @@ -2654,7 +2640,7 @@ msgstr "Couche Seg." #: pcbnew/affiche.cpp:302 #: pcbnew/affiche.cpp:362 -#: pcbnew/class_module.cpp:1121 +#: pcbnew/class_module.cpp:1123 msgid "Pads" msgstr "Pads" @@ -2721,8 +2707,8 @@ msgstr "Couches" #: pcbnew/swap_layers.cpp:92 #: pcbnew/pcbpiste.cpp:93 -#: pcbnew/sel_layer.cpp:118 -#: pcbnew/sel_layer.cpp:245 +#: pcbnew/sel_layer.cpp:131 +#: pcbnew/sel_layer.cpp:263 #: eeschema/optionsframe.cpp:151 #: eeschema/options.cpp:110 #: gerbview/select_layers_to_pcb.cpp:131 @@ -2761,7 +2747,7 @@ msgid "Inches" msgstr "Pouces" #: pcbnew/set_grid.cpp:148 -#: share/drawframe.cpp:349 +#: share/drawframe.cpp:376 msgid "mm" msgstr "mm" @@ -3016,38 +3002,21 @@ msgstr "Change module %s (%s) " msgid "Cmp files:" msgstr "Fichiers Cmp: " -#: pcbnew/files.cpp:57 -msgid "Recovery file " -msgstr "Fichier de secours " - -#: pcbnew/files.cpp:63 -msgid "Ok to load Recovery file " -msgstr "Ok pour charger le fichier de secours" - -#: pcbnew/files.cpp:143 -msgid "Board Modified: Continue ?" -msgstr "Circuit imprimé modifié, Continuer ?" - -#: pcbnew/files.cpp:161 -#: pcbnew/files.cpp:261 -msgid "Board files:" -msgstr "Fichiers C.I.:" - -#: pcbnew/files.cpp:297 -msgid "Warning: unable to create bakfile " -msgstr "Attention: Impossible de créer fichier backup " +#: pcbnew/sel_layer.cpp:81 +msgid "Select Layer:" +msgstr "Selection couche:" -#: pcbnew/files.cpp:329 -msgid "Backup file: " -msgstr "Fichier backup: " +#: pcbnew/sel_layer.cpp:215 +msgid "Select Layer Pair:" +msgstr "Selection paire de couches" -#: pcbnew/files.cpp:334 -msgid "Write Board file: " -msgstr "Ecriture fichier CI: " +#: pcbnew/sel_layer.cpp:249 +msgid "Top Layer" +msgstr "Couche Sup." -#: pcbnew/files.cpp:336 -msgid "Failed to create " -msgstr "Impossible de créer fichier " +#: pcbnew/sel_layer.cpp:256 +msgid "Bottom Layer" +msgstr "Couche Inf." #: pcbnew/pcbplot.cpp:114 #: pcbnew/pcbplot.cpp:203 @@ -3207,55 +3176,160 @@ msgstr "Per msgid "Pads Drill Opt" msgstr "Options perçage" -#: pcbnew/pcbplot.cpp:313 -msgid "Auto scale" -msgstr "Ech. auto" +#: pcbnew/pcbplot.cpp:313 +msgid "Auto scale" +msgstr "Ech. auto" + +#: pcbnew/pcbplot.cpp:313 +msgid "Scale 1" +msgstr "Echelle 1" + +#: pcbnew/pcbplot.cpp:313 +msgid "Scale 1.5" +msgstr "Echelle 1,5" + +#: pcbnew/pcbplot.cpp:313 +#: share/dialog_print.cpp:142 +msgid "Scale 2" +msgstr "Echelle 2" + +#: pcbnew/pcbplot.cpp:313 +#: share/dialog_print.cpp:143 +msgid "Scale 3" +msgstr "Echelle 3" + +#: pcbnew/pcbplot.cpp:315 +msgid "Scale Opt" +msgstr "Echelle" + +#: pcbnew/pcbplot.cpp:321 +msgid "Plot Mode" +msgstr "Mode de Tracé" + +#: pcbnew/pcbplot.cpp:328 +msgid "Plot Mirror" +msgstr "Tracé Miroir" + +#: pcbnew/pcbplot.cpp:333 +msgid "Vias on Mask" +msgstr "Vias sur masque" + +#: pcbnew/pcbplot.cpp:336 +msgid "Print/plot vias on mask layers. They are in this case not protected" +msgstr "Trace vias sur vernis épargne. Elles seront non protégées" + +#: pcbnew/pcbplot.cpp:340 +msgid "Org = Centre" +msgstr "Org = Centre" + +#: pcbnew/pcbplot.cpp:342 +msgid "Draw origin ( 0,0 ) in sheet center" +msgstr "Origine des tracés au centre de la feuille" + +#: pcbnew/class_pad.cpp:733 +msgid "Unknown Pad shape" +msgstr "Forme pad inconnue" + +#: pcbnew/class_pad.cpp:822 +msgid "RefP" +msgstr "RefP" + +#: pcbnew/class_pad.cpp:825 +msgid "Net" +msgstr "Net" + +#: pcbnew/class_pad.cpp:943 +msgid "Drill X / Y" +msgstr "Perçage X/Y" + +#: pcbnew/class_pad.cpp:958 +msgid "X Pos" +msgstr "X Pos" + +#: pcbnew/class_pad.cpp:962 +msgid "Y pos" +msgstr "Y pos" + +#: pcbnew/dialog_drc.cpp:141 +#: eeschema/fieldedi.cpp:223 +#: eeschema/dialog_erc.cpp:237 +#: eeschema/dialog_edit_component_in_lib.cpp:166 +#: eeschema/dialog_create_component.cpp:176 +#: eeschema/libedpart.cpp:241 +#: eeschema/dialog_edit_component_in_schematic.cpp:204 +#: eeschema/editpart.cpp:204 +#: eeschema/dialog_build_BOM.cpp:279 +#: cvpcb/dialog_display_options.h:44 +msgid "Options" +msgstr "Options" + +#: pcbnew/dialog_drc.cpp:153 +msgid "Test Drc:" +msgstr "Test Drc:" + +#: pcbnew/dialog_drc.cpp:157 +msgid "Include pad to pad test" +msgstr "Inclure test pad à pad" + +#: pcbnew/dialog_drc.cpp:161 +msgid "Include unconnected" +msgstr "Inclure non connexions" + +#: pcbnew/dialog_drc.cpp:169 +msgid "Create Report file" +msgstr "Créer fichier rapport " + +#: pcbnew/dialog_drc.cpp:182 +msgid "Test Drc" +msgstr "Test Drc" -#: pcbnew/pcbplot.cpp:313 -msgid "Scale 1" -msgstr "Echelle 1" +#: pcbnew/dialog_drc.cpp:186 +msgid "Stop Drc" +msgstr "Stop Drc" -#: pcbnew/pcbplot.cpp:313 -msgid "Scale 1.5" -msgstr "Echelle 1,5" +#: pcbnew/dialog_drc.cpp:193 +msgid "Del Markers" +msgstr "Supprimer Marqueurs" -#: pcbnew/pcbplot.cpp:313 -#: share/dialog_print.cpp:142 -msgid "Scale 2" -msgstr "Echelle 2" +#: pcbnew/dialog_drc.cpp:197 +msgid "List Unconn" +msgstr "Liste Non Conn." -#: pcbnew/pcbplot.cpp:313 -#: share/dialog_print.cpp:143 -msgid "Scale 3" -msgstr "Echelle 3" +#: pcbnew/dialog_drc.cpp:204 +msgid "Report File" +msgstr "Fichier rapport" -#: pcbnew/pcbplot.cpp:315 -msgid "Scale Opt" -msgstr "Echelle" +#: pcbnew/dialog_drc.cpp:208 +#: pcbnew/dialog_edit_module.cpp:375 +#: eeschema/dialog_eeschema_config.cpp:227 +msgid "Browse" +msgstr "Examiner" -#: pcbnew/pcbplot.cpp:321 -msgid "Plot Mode" -msgstr "Mode de Tracé" +#: pcbnew/dialog_drc.cpp:215 +#: common/svg_print.cpp:232 +#: share/svg_print.cpp:232 +msgid "Messages:" +msgstr "Messages:" -#: pcbnew/pcbplot.cpp:328 -msgid "Plot Mirror" -msgstr "Tracé Miroir" +#: pcbnew/dialog_drc.cpp:347 +msgid "DRC Report file" +msgstr "Fichier rapport de contrôle DRC:" -#: pcbnew/pcbplot.cpp:333 -msgid "Vias on Mask" -msgstr "Vias sur masque" +#: pcbnew/class_module.cpp:1102 +msgid "Last Change" +msgstr "Last Change" -#: pcbnew/pcbplot.cpp:336 -msgid "Print/plot vias on mask layers. They are in this case not protected" -msgstr "Trace vias sur vernis épargne. Elles seront non protégées" +#: pcbnew/class_module.cpp:1141 +msgid "3D-Shape" +msgstr "Forme 3D" -#: pcbnew/pcbplot.cpp:340 -msgid "Org = Centre" -msgstr "Org = Centre" +#: pcbnew/class_module.cpp:1145 +msgid "Doc: " +msgstr "Doc: " -#: pcbnew/pcbplot.cpp:342 -msgid "Draw origin ( 0,0 ) in sheet center" -msgstr "Origine des tracés au centre de la feuille" +#: pcbnew/class_module.cpp:1146 +msgid "KeyW: " +msgstr "KeyW: " #: pcbnew/menubarpcb.cpp:41 msgid "Load Board Ctrl-O" @@ -3458,7 +3532,7 @@ msgstr "Ajuster dims et taille des pistes et vias" #: pcbnew/menubarpcb.cpp:195 #: pcbnew/menubarmodedit.cpp:50 -#: pcbnew/set_grid.h:39 +#: pcbnew/set_grid.h:40 msgid "User Grid Size" msgstr "Dim Grille utilisteur" @@ -3468,7 +3542,7 @@ msgid "Adjust User Grid" msgstr "Ajuster Grille utilisateur" #: pcbnew/menubarpcb.cpp:200 -#: pcbnew/dialog_graphic_items_options.h:38 +#: pcbnew/dialog_graphic_items_options.h:39 msgid "Texts and Drawings" msgstr "Textes et Tracés" @@ -4190,21 +4264,13 @@ msgstr "Effacer" msgid "Pcb Text" msgstr "Texte Pcb" -#: pcbnew/class_module.cpp:1100 -msgid "Last Change" -msgstr "Last Change" - -#: pcbnew/class_module.cpp:1139 -msgid "3D-Shape" -msgstr "Forme 3D" - -#: pcbnew/class_module.cpp:1143 -msgid "Doc: " -msgstr "Doc: " +#: pcbnew/move_or_drag_track.cpp:710 +msgid "Unable to drag this segment: too many segments connected" +msgstr "Impossible de drag ce segment: trop de segments connectés" -#: pcbnew/class_module.cpp:1144 -msgid "KeyW: " -msgstr "KeyW: " +#: pcbnew/move_or_drag_track.cpp:763 +msgid "Unable to drag this segment: two collinear segments" +msgstr "Impossible de drag ce segment: 2 segments alignés" #: pcbnew/netlist.cpp:95 #, c-format @@ -4281,7 +4347,7 @@ msgid "Board modified, Save before exit ?" msgstr "Circuit Imprimé modifiée, Sauver avant de quitter ?" #: pcbnew/pcbframe.cpp:254 -#: eeschema/schframe.cpp:182 +#: eeschema/schframe.cpp:185 #: cvpcb/cvframe.cpp:169 #: common/confirm.cpp:109 msgid "Confirmation" @@ -4304,12 +4370,12 @@ msgid "Display Polar Coords" msgstr "Affichage coord Polaires" #: pcbnew/pcbframe.cpp:361 -#: eeschema/schframe.cpp:260 +#: eeschema/schframe.cpp:263 msgid "Grid not show" msgstr "Grille non montrée" #: pcbnew/pcbframe.cpp:361 -#: eeschema/schframe.cpp:260 +#: eeschema/schframe.cpp:263 msgid "Show Grid" msgstr "Afficher grille" @@ -4378,22 +4444,6 @@ msgstr "Ne peut pas r msgid "Tracks" msgstr "Pistes" -#: pcbnew/sel_layer.cpp:75 -msgid "Select Layer:" -msgstr "Selection couche:" - -#: pcbnew/sel_layer.cpp:196 -msgid "Select Layer Pair:" -msgstr "Selection paire de couches" - -#: pcbnew/sel_layer.cpp:230 -msgid "Top Layer" -msgstr "Couche Sup." - -#: pcbnew/sel_layer.cpp:237 -msgid "Bottom Layer" -msgstr "Couche Inf." - #: pcbnew/set_color.cpp:50 msgid "Copper Layers" msgstr "Couches Cuivre." @@ -4506,53 +4556,6 @@ msgstr "Infos:" msgid "Sizes and Widths" msgstr "Dims. et Epaiss." -#: pcbnew/move_or_drag_track.cpp:640 -msgid "Unable to drag this segment: too many segments connected" -msgstr "Impossible de drag ce segment: trop de segments connectés" - -#: pcbnew/move_or_drag_track.cpp:690 -msgid "Unable to drag this segment: two collinear segments" -msgstr "Impossible de drag ce segment: 2 segments alignés" - -#: pcbnew/find.cpp:130 -msgid "Marker found" -msgstr "Marqueur trouvé" - -#: pcbnew/find.cpp:131 -#, c-format -msgid "<%s> Found" -msgstr "<%s> trouvé" - -#: pcbnew/find.cpp:139 -msgid "Marker not found" -msgstr "Marqueur non trouvé" - -#: pcbnew/find.cpp:140 -#, c-format -msgid "<%s> Not Found" -msgstr "<%s> Non trouvé" - -#: pcbnew/find.cpp:232 -#: eeschema/dialog_find.cpp:107 -msgid "Item to find:" -msgstr "Elément a chercher:" - -#: pcbnew/find.cpp:244 -msgid "Find Item" -msgstr "Chercher Item" - -#: pcbnew/find.cpp:249 -msgid "Find Next Item" -msgstr "Chercher Item Suivant" - -#: pcbnew/find.cpp:256 -msgid "Find Marker" -msgstr "Chercher Marqueur" - -#: pcbnew/find.cpp:260 -msgid "Find Next Marker" -msgstr "Marqueur Suivant" - #: pcbnew/dialog_general_options.cpp:263 #: gerbview/options.cpp:181 msgid "No Display" @@ -5289,7 +5292,7 @@ msgid "Add graphic text (comment)" msgstr "Addition de textes graphiques (commentaires)" #: eeschema/tool_sch.cpp:263 -#: eeschema/schframe.cpp:270 +#: eeschema/schframe.cpp:273 msgid "Show Hidden Pins" msgstr "Force affichage des pins invisibles" @@ -5640,75 +5643,21 @@ msgstr "Incr msgid "Default Label Size" msgstr "Taille Label par défaut:" -#: eeschema/netlist_control.cpp:98 -#: eeschema/netlist_control.cpp:252 -#: gerbview/options.cpp:207 -msgid "Default format" -msgstr "Format par défaut" - -#: eeschema/netlist_control.cpp:112 -msgid "&Browse Plugin" -msgstr "&Examen Plugins" - -#: eeschema/netlist_control.cpp:117 -msgid "&Netlist" -msgstr "&Netliste" - -#: eeschema/netlist_control.cpp:181 -#: eeschema/netlist_control.cpp:267 -msgid "Netlist" -msgstr "Netliste" - -#: eeschema/netlist_control.cpp:256 -msgid "Use Net Names" -msgstr "Utiliser nom de net" - -#: eeschema/netlist_control.cpp:256 -msgid "Use Net Numbers" -msgstr "Utiliser numéro de net" - -#: eeschema/netlist_control.cpp:257 -msgid "Netlist Options:" -msgstr "Options de netliste:" - -#: eeschema/netlist_control.cpp:264 -msgid "Simulator command:" -msgstr "Simulateur commande:" - -#: eeschema/netlist_control.cpp:271 -msgid "&Run Simulator" -msgstr "&Simulateur" - -#: eeschema/netlist_control.cpp:303 -msgid "Add Plugin" -msgstr "Ajouter Plugin" - -#: eeschema/netlist_control.cpp:315 -msgid "Netlist command:" -msgstr "Commande netliste:" - -#: eeschema/netlist_control.cpp:319 -#: share/setpage.cpp:262 -msgid "Title:" -msgstr "Titre:" - -#: eeschema/netlist_control.cpp:334 -msgid "Plugin files:" -msgstr "Fichiers Plugins:" +#: eeschema/schframe.cpp:184 +msgid "Schematic modified, Save before exit ?" +msgstr "Schematique modifiée, Sauver avant de quitter ?" -#: eeschema/netlist_control.cpp:354 -msgid "" -"Now, you must choose a title for this netlist control page\n" -"and close the dialog box" -msgstr "Maitenant, vous devez choisir un titre pour cette page de controle de netliste" +#: eeschema/schframe.cpp:273 +msgid "No show Hidden Pins" +msgstr "N'affichage pas les pins invisibles" -#: eeschema/netlist_control.cpp:433 -msgid "Netlist files:" -msgstr "Fichiers Netlist:" +#: eeschema/schframe.cpp:276 +msgid "Draw lines at any direction" +msgstr "Tracer traits de direction quelconque" -#: eeschema/netlist_control.cpp:449 -msgid "Must be Annotated, Continue ?" -msgstr "Annotation nécessaire, continuer?" +#: eeschema/schframe.cpp:277 +msgid "Draw lines H, V or 45 deg only" +msgstr "Tracer traits H, V ou 45 deg seulement" #: eeschema/dialog_erc.cpp:171 #: eeschema/dialog_erc.cpp:202 @@ -5840,27 +5789,81 @@ msgstr " en librairie " msgid "Delete old component ?" msgstr "Supprimer ancien composant ?" -#: eeschema/libedit.cpp:391 -msgid " exists in library " -msgstr " existe en librairie " +#: eeschema/libedit.cpp:391 +msgid " exists in library " +msgstr " existe en librairie " + +#: eeschema/libedit.cpp:558 +msgid "Warning: No component to Save" +msgstr "Attention: pas de composant à sauver" + +#: eeschema/libedit.cpp:565 +msgid "No Library specified" +msgstr "Pas de Librairie spécifiée" + +#: eeschema/libedit.cpp:576 +#, c-format +msgid "Component %s exists, Change it ?" +msgstr "Le composant %s existe, Le changer ?" + +#: eeschema/libedit.cpp:615 +#, c-format +msgid "Component %s saved in %s" +msgstr "Composant %s sauvé en %s" + +#: eeschema/eeschema.cpp:56 +msgid "Eeschema is already running, Continue?" +msgstr "Eeschema est est cours d'exécution. Continuer ?" + +#: eeschema/find.cpp:165 +#, c-format +msgid "Marker %d found in %s" +msgstr "Marqueur %d trouvé en %s " + +#: eeschema/find.cpp:171 +msgid "Marker Not Found" +msgstr "Marqueur non trouvé" + +#: eeschema/find.cpp:396 +msgid " Found in " +msgstr " Trouvé en " + +#: eeschema/find.cpp:408 +msgid " Not Found" +msgstr " Non trouvé" + +#: eeschema/find.cpp:440 +#: eeschema/selpart.cpp:39 +msgid "No libraries are loaded" +msgstr "Pas de librairies chargées" + +#: eeschema/find.cpp:467 +#: eeschema/find.cpp:531 +#: eeschema/find.cpp:546 +msgid "Found " +msgstr "Trouvé " -#: eeschema/libedit.cpp:558 -msgid "Warning: No component to Save" -msgstr "Attention: pas de composant à sauver" +#: eeschema/find.cpp:469 +#: eeschema/find.cpp:532 +#: eeschema/find.cpp:547 +msgid " in lib " +msgstr " en libr. " -#: eeschema/libedit.cpp:565 -msgid "No Library specified" -msgstr "Pas de Librairie spécifiée" +#: eeschema/find.cpp:480 +msgid " found only in cache" +msgstr "trouvé seulement en cache" -#: eeschema/libedit.cpp:576 -#, c-format -msgid "Component %s exists, Change it ?" -msgstr "Le composant %s existe, Le changer ?" +#: eeschema/find.cpp:483 +msgid "" +"\n" +"Explore All Libraries?" +msgstr "" +"\n" +"Explorer toutes les Librairies?" -#: eeschema/libedit.cpp:615 -#, c-format -msgid "Component %s saved in %s" -msgstr "Composant %s sauvé en %s" +#: eeschema/find.cpp:489 +msgid "Nothing found" +msgstr " Rien trouvé" #: eeschema/schedit.cpp:277 msgid "Push/Pop Hierarchy" @@ -5871,6 +5874,7 @@ msgid "Add NoConnect Flag" msgstr "Ajoutde symboles de non connexion" #: eeschema/schedit.cpp:285 +#: eeschema/hotkeys.cpp:294 msgid "Add Wire" msgstr "Ajouter Fils" @@ -5911,6 +5915,7 @@ msgid "Import PinSheet" msgstr "Importer Connecteur de hiérarchie" #: eeschema/schedit.cpp:333 +#: eeschema/hotkeys.cpp:276 msgid "Add Component" msgstr "Ajout Composant" @@ -5975,8 +5980,78 @@ msgstr " Convert" msgid " Normal" msgstr " Normal" +#: eeschema/netlist_control.cpp:98 +#: eeschema/netlist_control.cpp:252 +#: gerbview/options.cpp:207 +msgid "Default format" +msgstr "Format par défaut" + +#: eeschema/netlist_control.cpp:112 +msgid "&Browse Plugin" +msgstr "&Examen Plugins" + +#: eeschema/netlist_control.cpp:117 +msgid "&Netlist" +msgstr "&Netliste" + +#: eeschema/netlist_control.cpp:181 +#: eeschema/netlist_control.cpp:267 +msgid "Netlist" +msgstr "Netliste" + +#: eeschema/netlist_control.cpp:256 +msgid "Use Net Names" +msgstr "Utiliser nom de net" + +#: eeschema/netlist_control.cpp:256 +msgid "Use Net Numbers" +msgstr "Utiliser numéro de net" + +#: eeschema/netlist_control.cpp:257 +msgid "Netlist Options:" +msgstr "Options de netliste:" + +#: eeschema/netlist_control.cpp:264 +msgid "Simulator command:" +msgstr "Simulateur commande:" + +#: eeschema/netlist_control.cpp:271 +msgid "&Run Simulator" +msgstr "&Simulateur" + +#: eeschema/netlist_control.cpp:303 +msgid "Add Plugin" +msgstr "Ajouter Plugin" + +#: eeschema/netlist_control.cpp:315 +msgid "Netlist command:" +msgstr "Commande netliste:" + +#: eeschema/netlist_control.cpp:319 +#: share/setpage.cpp:262 +msgid "Title:" +msgstr "Titre:" + +#: eeschema/netlist_control.cpp:334 +msgid "Plugin files:" +msgstr "Fichiers Plugins:" + +#: eeschema/netlist_control.cpp:354 +msgid "" +"Now, you must choose a title for this netlist control page\n" +"and close the dialog box" +msgstr "Maitenant, vous devez choisir un titre pour cette page de controle de netliste" + +#: eeschema/netlist_control.cpp:433 +msgid "Netlist files:" +msgstr "Fichiers Netlist:" + +#: eeschema/netlist_control.cpp:449 +msgid "Must be Annotated, Continue ?" +msgstr "Annotation nécessaire, continuer?" + #: eeschema/genliste.cpp:101 -#: eeschema/dialog_build_BOM.h:58 +#: eeschema/dialog_build_BOM.h:59 msgid "List of Material" msgstr "Liste du Matériel" @@ -6110,10 +6185,6 @@ msgstr "> %-28.28s Sheet %-7.7s (feuille %.2d) pos: %3.3f, %3.3f\n" msgid "#End labels\n" msgstr "#End labels\n" -#: eeschema/eeschema.cpp:56 -msgid "Eeschema is already running, Continue?" -msgstr "Eeschema est est cours d'exécution. Continuer ?" - #: eeschema/edit_component_in_schematic.cpp:177 #: eeschema/edit_component_in_lib.cpp:477 msgid "Field to edit" @@ -6833,7 +6904,7 @@ msgstr "(alias de " #: eeschema/libedpart.cpp:203 #: eeschema/edit_component_in_lib.cpp:153 -#: eeschema/dialog_edit_component_in_lib.h:43 +#: eeschema/dialog_edit_component_in_lib.h:44 msgid "Lib Component Properties" msgstr "Propriétés du composant librairie" @@ -6982,22 +7053,6 @@ msgstr "Ok pour effacer la LISTE des filtres de modules" msgid "New FootprintFilter:" msgstr "Nouveau \"Filtre de Modules" -#: eeschema/schframe.cpp:181 -msgid "Schematic modified, Save before exit ?" -msgstr "Schematique modifiée, Sauver avant de quitter ?" - -#: eeschema/schframe.cpp:270 -msgid "No show Hidden Pins" -msgstr "N'affichage pas les pins invisibles" - -#: eeschema/schframe.cpp:273 -msgid "Draw lines at any direction" -msgstr "Tracer traits de direction quelconque" - -#: eeschema/schframe.cpp:274 -msgid "Draw lines H, V or 45 deg only" -msgstr "Tracer traits H, V ou 45 deg seulement" - #: eeschema/dialog_edit_component_in_schematic.cpp:70 #: eeschema/editpart.cpp:153 msgid "Component properties (Not found in lib)" @@ -7187,11 +7242,6 @@ msgstr "Remplissage:" msgid "No new text: no change" msgstr "Pas de nouveau texte: pas de changements" -#: eeschema/selpart.cpp:39 -#: eeschema/find.cpp:388 -msgid "No libraries are loaded" -msgstr "Pas de librairies chargées" - #: eeschema/selpart.cpp:45 msgid "Select Lib" msgstr "Sélection librairie" @@ -7202,7 +7252,7 @@ msgid "Select component (%d items)" msgstr "Selection composant (%d items)" #: eeschema/editpart.cpp:136 -#: eeschema/dialog_edit_component_in_schematic.h:52 +#: eeschema/dialog_edit_component_in_schematic.h:53 msgid "Component properties" msgstr "Propriétés du composant" @@ -7210,51 +7260,6 @@ msgstr "Propri msgid "Mirror |" msgstr "Miroir |" -#: eeschema/find.cpp:153 -#, c-format -msgid "Marker %d found in %s" -msgstr "Marqueur %d trouvé en %s " - -#: eeschema/find.cpp:160 -msgid "Marker Not Found" -msgstr "Marqueur non trouvé" - -#: eeschema/find.cpp:351 -msgid " Found in " -msgstr "Trouvé en " - -#: eeschema/find.cpp:358 -msgid " Not Found" -msgstr " Non trouvé" - -#: eeschema/find.cpp:410 -#: eeschema/find.cpp:467 -#: eeschema/find.cpp:481 -msgid "Found " -msgstr "Trouvé " - -#: eeschema/find.cpp:412 -#: eeschema/find.cpp:468 -#: eeschema/find.cpp:482 -msgid " in lib " -msgstr " en libr. " - -#: eeschema/find.cpp:422 -msgid " found only in cache" -msgstr "trouvé seulement en cache" - -#: eeschema/find.cpp:424 -msgid "" -"\n" -"Explore All Libraries?" -msgstr "" -"\n" -"Explorer toutes les Librairies?" - -#: eeschema/find.cpp:429 -msgid "Nothing found" -msgstr " Rien trouvé" - #: eeschema/symbedit.cpp:51 msgid "Import symbol drawings:" msgstr "Importer les symboles:" @@ -7393,6 +7398,18 @@ msgstr "Tout" msgid "default" msgstr "Défaut" +#: eeschema/hotkeys.cpp:178 +msgid "" +"Current hotkey list:\n" +"\n" +msgstr "" +"Liste des Hotkeys courantes:\n" +"\n" + +#: eeschema/hotkeys.cpp:183 +msgid "key " +msgstr "touche: " + #: eeschema/eeload.cpp:44 msgid "Clear Schematic Hierarchy (modified!)?" msgstr "Effacer la hiérarchie schématique (modifiée!)?" @@ -8102,7 +8119,7 @@ msgid "Module %s not found" msgstr "Module %s non trouvé" #: cvpcb/displayframe.cpp:113 -#: pcbnew/dialog_display_options.h:43 +#: pcbnew/dialog_display_options.h:44 msgid "Display Options" msgstr "Options d'affichage" @@ -8242,7 +8259,7 @@ msgid "Delete selections" msgstr "Effacement des associations existantes" #: cvpcb/cvframe.cpp:396 -#: share/drawframe.cpp:124 +#: share/drawframe.cpp:128 msgid "font for dialog boxes" msgstr "fonte pour boites de dialogue" @@ -8251,17 +8268,17 @@ msgid "font for Lists" msgstr "fonte pour listes" #: cvpcb/cvframe.cpp:400 -#: share/drawframe.cpp:128 +#: share/drawframe.cpp:132 msgid "font for Status Line" msgstr "fonte pour Ligne d'état" #: cvpcb/cvframe.cpp:403 -#: share/drawframe.cpp:131 +#: share/drawframe.cpp:135 msgid "&Font selection" msgstr "Sélection Fonte" #: cvpcb/cvframe.cpp:404 -#: share/drawframe.cpp:132 +#: share/drawframe.cpp:136 msgid "Choose font type and size for dialogs, infos and status box" msgstr "Choisir les fontes et leur taille pour les dialogues, infos et ligne d'état" @@ -8384,7 +8401,7 @@ msgid "You must choose a PDF viewer before use this option" msgstr "Vous devez choisir un Visualisateur PDF avant d'utiliser cette option" #: kicad/preferences.cpp:97 -#: common/gestfich.cpp:586 +#: common/gestfich.cpp:628 msgid "Prefered Editor:" msgstr "Editeur préféré:" @@ -9210,6 +9227,10 @@ msgstr " erreur" msgid "Colors" msgstr "Couleurs" +#: common/gestfich.cpp:622 +msgid "No default editor found, you must choose it" +msgstr "Pas d'éditeur par défaut trouvé, vous devez en choisir un" + #: common/block_commande.cpp:55 msgid "Block Move" msgstr "Move Bloc" @@ -9316,10 +9337,6 @@ msgstr "Cor msgid "Language" msgstr "Langage" -#: common/gestfich.cpp:581 -msgid "No default editor found, you must choose it" -msgstr "Pas d'éditeur par défaut trouvé, vous devez en choisir un" - #: common/common.cpp:44 msgid " (\"):" msgstr " (\"):" @@ -9546,18 +9563,6 @@ msgstr "Cr msgid "Choose background color" msgstr "Choix Couleur du fond" -#: share/drawframe.cpp:126 -msgid "font for info display" -msgstr "fonte pour affichage infos" - -#: share/drawframe.cpp:346 -msgid "Inch" -msgstr "Pouce" - -#: share/drawframe.cpp:352 -msgid "??" -msgstr "??" - #: share/wxprint.cpp:146 msgid "Error Init Printer info" msgstr "Erreur Init info imprimante" @@ -9764,19 +9769,31 @@ msgstr "Redessin" msgid "Grid Select" msgstr "Sélection Grille" -#: share/infospgm.cpp:46 +#: share/drawframe.cpp:130 +msgid "font for info display" +msgstr "fonte pour affichage infos" + +#: share/drawframe.cpp:372 +msgid "Inch" +msgstr "Pouce" + +#: share/drawframe.cpp:380 +msgid "??" +msgstr "??" + +#: share/infospgm.cpp:48 msgid "Build Version:" msgstr "Build Version:" -#: share/infospgm.cpp:61 +#: share/infospgm.cpp:63 msgid "Author:" msgstr "Autheur:" -#: share/infospgm.cpp:62 +#: share/infospgm.cpp:64 msgid "Based on wxWidgets " msgstr "Based on wxWidgets " -#: share/infospgm.cpp:67 +#: share/infospgm.cpp:69 msgid "" "\n" "\n" @@ -9786,7 +9803,7 @@ msgstr "" "\n" "GPL Licence" -#: share/infospgm.cpp:68 +#: share/infospgm.cpp:70 msgid "" "\n" "\n" @@ -9796,121 +9813,121 @@ msgstr "" "\n" "Sites Web:\n" -#: pcbnew/zones.h:53 -msgid "Fill Zones Options" -msgstr "Options de remplissage de Zone" - -#: pcbnew/dialog_edit_mod_text.h:43 -msgid "TextMod properties" -msgstr "Propriétés du Texte sur Module" - -#: pcbnew/dialog_initpcb.h:38 -msgid "Global Delete" -msgstr "Effacements Généraux" +#: pcbnew/find.h:39 +msgid "Find" +msgstr "Chercher" -#: pcbnew/gen_self.h:213 +#: pcbnew/gen_self.h:217 msgid "Length(inch):" msgstr "Longueur (pouces):" -#: pcbnew/gen_self.h:219 +#: pcbnew/gen_self.h:223 msgid "Length(mm):" msgstr "Long. (mm):" -#: pcbnew/gen_self.h:234 +#: pcbnew/gen_self.h:239 msgid "Requested length < minimum length" msgstr "Longueur demandée < longueur minimum" -#: pcbnew/gen_self.h:254 +#: pcbnew/gen_self.h:260 msgid "Unable to create line: Requested length is too big" msgstr "Incapable de créer la ligne: longueur demandée trop grande" -#: pcbnew/gen_self.h:265 +#: pcbnew/gen_self.h:271 #, c-format msgid "Segm count = %d, Lenght = " msgstr "Nbr segm = %d, Longueur = " -#: pcbnew/find.h:38 -msgid "Find" -msgstr "Chercher" +#: pcbnew/dialog_edit_mod_text.h:44 +msgid "TextMod properties" +msgstr "Propriétés du Texte sur Module" + +#: pcbnew/dialog_drc.h:57 +msgid "DRC Control" +msgstr "Controle ERC" + +#: pcbnew/zones.h:54 +msgid "Fill Zones Options" +msgstr "Options de remplissage de Zone" -#: pcbnew/dialog_pad_edit.h:43 +#: pcbnew/dialog_pad_edit.h:44 msgid "Pad properties" msgstr "Propriétés des Pads" -#: pcbnew/dialog_track_options.h:42 +#: pcbnew/dialog_track_options.h:43 msgid "Tracks and Vias Sizes" msgstr "Dims pistes et vias" -#: pcbnew/dialog_setup_libs.h:43 -#: eeschema/dialog_edit_label.h:40 -#: eeschema/dialog_eeschema_config.h:50 -#: cvpcb/dialog_cvpcb_config.h:39 +#: pcbnew/dialog_setup_libs.h:44 +#: eeschema/dialog_edit_label.h:41 +#: eeschema/dialog_eeschema_config.h:51 +#: cvpcb/dialog_cvpcb_config.h:40 msgid "Dialog" msgstr "Dialog" -#: pcbnew/dialog_netlist.h:40 +#: pcbnew/dialog_netlist.h:41 msgid "Netlist: " msgstr "Netliste: " -#: pcbnew/dialog_general_options.h:44 -#: eeschema/dialog_options.h:55 -msgid "General Options" -msgstr "Options générales" - -#: pcbnew/dialog_drc.h:56 -msgid "DRC Control" -msgstr "Controle ERC" - +#: pcbnew/cleaningoptions_dialog.h:49 #: pcbnew/win_eda_cleaningoptionsframe.h:50 -#: pcbnew/cleaningoptions_dialog.h:48 msgid "Cleaning options" msgstr "Options de nettoyage" -#: eeschema/sheet.h:43 -msgid "Sheet properties" -msgstr "Propriétés de la feuille" +#: pcbnew/dialog_initpcb.h:39 +msgid "Global Delete" +msgstr "Effacements Généraux" -#: eeschema/symbtext.h:42 +#: pcbnew/dialog_general_options.h:45 +#: eeschema/dialog_options.h:56 +msgid "General Options" +msgstr "Options générales" + +#: eeschema/symbtext.h:43 msgid "Graphic text properties" msgstr "Propriétés du texte" -#: eeschema/plotps.h:50 +#: eeschema/plotps.h:51 msgid "EESchema Plot PS" msgstr "EESchema Tracé PS" -#: eeschema/dialog_create_component.h:45 -msgid "Component Creation" -msgstr "Creation Composant:" - -#: eeschema/pinedit-dialog.h:65 +#: eeschema/pinedit-dialog.h:66 msgid "Pin properties" msgstr "Propriétés des Pins" -#: eeschema/optionsframe.h:60 -#: eeschema/optionsframe.h:63 -msgid "optionsframe" -msgstr "optionsframe" +#: eeschema/dialog_find.h:40 +msgid "EESchema Locate" +msgstr "Recherche" -#: eeschema/plothpgl.h:45 +#: eeschema/plothpgl.h:46 msgid "EESchema Plot HPGL" msgstr "EESchema Tracé HPGL" -#: eeschema/dialog_cmp_graphic_properties.h:43 -msgid "Graphic shape properties" -msgstr "Propriétés du dessin" - -#: eeschema/dialog_find.h:39 -msgid "EESchema Locate" -msgstr "Recherche" +#: eeschema/optionsframe.h:60 +#: eeschema/optionsframe.h:63 +msgid "optionsframe" +msgstr "optionsframe" -#: eeschema/dialog_erc.h:57 +#: eeschema/dialog_erc.h:58 msgid "EESchema Erc" msgstr "EESchema Erc" -#: eeschema/annotate_dialog.h:53 +#: eeschema/annotate_dialog.h:54 msgid "EESchema Annotation" msgstr "Numérotation des composants" +#: eeschema/sheet.h:44 +msgid "Sheet properties" +msgstr "Propriétés de la feuille" + +#: eeschema/dialog_create_component.h:46 +msgid "Component Creation" +msgstr "Creation Composant:" + +#: eeschema/dialog_cmp_graphic_properties.h:44 +msgid "Graphic shape properties" +msgstr "Propriétés du dessin" + #: gerbview/set_color.h:5 msgid "Layers 1-16" msgstr "Couches 1-16" @@ -10056,15 +10073,15 @@ msgid "DCodes id." msgstr "DCodes id." #: common/svg_print.h:45 -#: share/svg_print.h:50 +#: share/svg_print.h:51 msgid "Create SVG file" msgstr "Créer Fichier SVG" -#: share/dialog_print.h:51 -msgid "Print" -msgstr "Imprimer" - #: share/setpage.h:54 msgid "Page Settings" msgstr "Ajustage opt Page" +#: share/dialog_print.h:52 +msgid "Print" +msgstr "Imprimer" + diff --git a/pcbnew/controle.cpp b/pcbnew/controle.cpp index 0a63609c07..8cb64f7dec 100644 --- a/pcbnew/controle.cpp +++ b/pcbnew/controle.cpp @@ -91,14 +91,13 @@ void RemoteCommand( const char* cmdline ) if( pad ) netcode = pad->m_NetCode; - if( netcode > 0 ) + if( netcode > 0 ) /* hightlighted the net selected net*/ { - /* effacement surbrillance ancienne */ - if( g_HightLigt_Status ) + if( g_HightLigt_Status ) /* erase the old hightlighted net */ frame->Hight_Light( &dc ); g_HightLigth_NetCode = netcode; - frame->Hight_Light( &dc ); + frame->Hight_Light( &dc ); /* hightlighted the new one */ frame->DrawPanel->CursorOff( &dc ); frame->GetScreen()->m_Curseur = pad->m_Pos; @@ -231,22 +230,6 @@ void WinEDA_BasePcbFrame::GeneralControle( wxDC* DC, wxPoint Mouse ) SwitchLayer( DC, CUIVRE_N ); break; - case 'F' | GR_KB_CTRL: - case 'f' | GR_KB_CTRL: - DisplayOpt.DisplayPcbTrackFill ^= 1; DisplayOpt.DisplayPcbTrackFill &= 1; - GetScreen()->SetRefreshReq(); - break; - - case ' ': /* Mise a jour de l'origine des coord relatives */ - GetScreen()->m_O_Curseur = GetScreen()->m_Curseur; - break; - - - case 'U' | GR_KB_CTRL: - case 'u' | GR_KB_CTRL: - g_UnitMetric = (g_UnitMetric == INCHES ) ? MILLIMETRE : INCHES; - break; - case EDA_PANNING_UP_KEY: OnZoom( ID_ZOOM_PANNING_UP ); curpos = m_CurrentScreen->m_Curseur; @@ -401,6 +384,11 @@ void WinEDA_BasePcbFrame::GeneralControle( wxDC* DC, wxPoint Mouse ) } } + if( hotkey ) + { + OnHotKey( DC, hotkey, NULL ); + } + if( GetScreen()->IsRefreshReq() ) { RedrawActiveWindow( DC, TRUE ); @@ -408,9 +396,4 @@ void WinEDA_BasePcbFrame::GeneralControle( wxDC* DC, wxPoint Mouse ) SetToolbars(); Affiche_Status_Box(); /* Affichage des coord curseur */ - - if( hotkey ) - { - OnHotKey( DC, hotkey, NULL ); - } } diff --git a/pcbnew/dialog_drc.cpp b/pcbnew/dialog_drc.cpp index c61056b8fd..4e318054f1 100644 --- a/pcbnew/dialog_drc.cpp +++ b/pcbnew/dialog_drc.cpp @@ -128,7 +128,7 @@ void WinEDA_DrcFrame::CreateControls() SetFont(*g_DialogFont); ////@begin WinEDA_DrcFrame content construction - // Generated by DialogBlocks, 02/08/2007 10:11:17 (unregistered) + // Generated by DialogBlocks, 20/08/2007 08:58:05 (unregistered) WinEDA_DrcFrame* itemDialog1 = this; diff --git a/pcbnew/dialog_drc.h b/pcbnew/dialog_drc.h index 16199b7a74..53f1142e23 100644 --- a/pcbnew/dialog_drc.h +++ b/pcbnew/dialog_drc.h @@ -52,8 +52,7 @@ class wxBoxSizer; #define ID_BUTTON_BROWSE_RPT_FILE 10011 #define ID_TEXTCTRL_GET_RPT_FILENAME 10010 #define ID_TEXTCTRL 10001 -// #define SYMBOL_WINEDA_DRCFRAME_STYLE wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX -#define SYMBOL_WINEDA_DRCFRAME_STYLE wxCAPTION|wxSYSTEM_MENU|wxCLOSE_BOX +#define SYMBOL_WINEDA_DRCFRAME_STYLE wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX #define SYMBOL_WINEDA_DRCFRAME_TITLE _("DRC Control") #define SYMBOL_WINEDA_DRCFRAME_IDNAME ID_DIALOG #define SYMBOL_WINEDA_DRCFRAME_SIZE wxSize(400, 300) diff --git a/pcbnew/drc_dialog.pjd b/pcbnew/dialog_drc.pjd similarity index 100% rename from pcbnew/drc_dialog.pjd rename to pcbnew/dialog_drc.pjd diff --git a/pcbnew/files.cpp b/pcbnew/files.cpp index c1fa7febb4..1b3662f64c 100644 --- a/pcbnew/files.cpp +++ b/pcbnew/files.cpp @@ -158,7 +158,7 @@ int WinEDA_PcbFrame::LoadOnePcbFile( const wxString& FullFileName, wxDC* DC, boo { msg = wxT( "*" ) + PcbExtBuffer; wxString FileName = - EDA_FileSelector( _( "Board files:" ), + EDA_FileSelector( _( "Load board files:" ), wxEmptyString, /* Chemin par defaut */ GetScreen()->m_FileName, /* nom fichier par defaut */ PcbExtBuffer, /* extension par defaut */ @@ -260,7 +260,7 @@ bool WinEDA_PcbFrame::SavePcbFile( const wxString& FileName ) if( FileName == wxEmptyString ) { msg = wxT( "*" ) + PcbExtBuffer; - FullFileName = EDA_FileSelector( _( "Board files:" ), + FullFileName = EDA_FileSelector( _( "Save board files:" ), wxEmptyString, /* Chemin par defaut */ GetScreen()->m_FileName, /* nom fichier par defaut */ PcbExtBuffer, /* extension par defaut */ diff --git a/pcbnew/hotkeys.cpp b/pcbnew/hotkeys.cpp index 1717ccce34..4d4321fe73 100644 --- a/pcbnew/hotkeys.cpp +++ b/pcbnew/hotkeys.cpp @@ -9,29 +9,92 @@ #include "common.h" #include "pcbnew.h" #include "id.h" +#include "hotkeys_basic.h" #include "protos.h" /* Routines locales */ -/* variables externes */ +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 +}; + + +/* local variables */ +/* Hotkey list: */ +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 +static Ki_HotkeyInfo *s_board_edit_Hotkey_List[] = { + &HkHelp, + &HkZoomIn, &HkZoomOut, &HkZoomRedraw, &HkZoomCenter, + &HkResetLocalCoord, &HkSwitchUnits, &HkTrackDisplayMode, + &HkDelete, &HkBackspace, + &HkAddVia, &HkEndTrack, + &HkMoveFootprint, &HkFlipFootprint, + &HkRotateFootprint, &HkDragFootprint, + &HkLock_Unlock_Footprint, + &HkSavefile, &HkLoadfile, &HkFindItem, + NULL +}; + +static Ki_HotkeyInfo *s_module_edit_Hotkey_List[] = { + &HkHelp, + &HkZoomIn, &HkZoomOut, &HkZoomRedraw, &HkZoomCenter, + &HkSwitchUnits, &HkResetLocalCoord, + &HkDelete, &HkBackspace, + NULL +}; + /***********************************************************/ void WinEDA_PcbFrame::OnHotKey( wxDC* DC, int hotkey, EDA_BaseStruct* DrawStruct ) /***********************************************************/ +/* Hot keys. Some commands are relatives to the item under the mouse cursor + Commands are case insensitive + Zoom commands are not managed here +*/ -/* Gestion des commandes rapides (Raccourcis claviers) concernant l'element - * sous le courseur souris - * Les majuscules/minuscules sont indifferenciees - * touche DELETE: Effacement (Module ou piste selon commande en cours) - * touche V: Place via en cours de trace de piste - * touche R: Rotation module - * touche S: Change couche module (Composant <-> Cuivre) - * touche M: Start Move module - * touche G: Start Drag module - */ { + bool PopupOn = GetScreen()->GetCurItem() && GetScreen()->GetCurItem()->m_Flags; @@ -41,194 +104,216 @@ void WinEDA_PcbFrame::OnHotKey( wxDC* DC, int hotkey, if( hotkey == 0 ) return; - // code Ctrl A = 1, Ctr B = 2 ..., remapped, (more easy to understand in switch) - if( hotkey & GR_KB_CTRL ) - hotkey += 'A' - 1; - MODULE* module = NULL; - if( hotkey <= 0xFF ) - hotkey = toupper( hotkey ); - - switch( hotkey ) - { - case WXK_DELETE: - case WXK_NUMPAD_DELETE: - OnHotkeyDeleteItem( DC, DrawStruct ); - break; - - case WXK_BACK: - if( m_ID_current_state == ID_TRACK_BUTT && GetScreen()->m_Active_Layer <= CMP_N ) - { - bool ItemFree = (GetScreen()->GetCurItem() == NULL ) - || (GetScreen()->GetCurItem()->m_Flags == 0); - if( ItemFree ) - { - // no track is currently being edited - select a segment and remove it. - DrawStruct = PcbGeneralLocateAndDisplay(); - - // don't let backspace delete modules!! - if( DrawStruct && (DrawStruct->m_StructType == TYPETRACK - || DrawStruct->m_StructType == TYPEVIA) ) - Delete_Segment( DC, (TRACK*) DrawStruct ); - GetScreen()->SetModify(); - } - else if( GetScreen()->GetCurItem()->m_StructType == TYPETRACK ) - { - // then an element is being edited - remove the last segment. - GetScreen()->SetCurItem( - Delete_Segment( DC, (TRACK*) GetScreen()->GetCurItem() ) ); - GetScreen()->SetModify(); - } - } - break; - - case WXK_END: - DrawPanel->MouseToCursorSchema(); - End_Route( (TRACK*) (GetScreen()->GetCurItem()), DC ); - break; - - case 'F' + GR_KB_CTRL: - { - wxCommandEvent evt; - evt.SetId( ID_FIND_ITEMS ); - Process_Special_Functions( evt ); - } - break; - - case 'O' + GR_KB_CTRL: + // Remap the control key Ctrl A (0x01) to GR_KB_CTRL + 'A' (easier to handle...) + if ( (hotkey & GR_KB_CTRL) != 0 ) hotkey += 'A' - 1; + /* 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_board_edit_Hotkey_List); + switch( CommandCode ) { - // try not to duplicate save, load code etc. - wxCommandEvent evt; - evt.SetId( ID_LOAD_FILE ); - Files_io( evt ); - } - break; - - case 'S' + GR_KB_CTRL: - { - // try not to duplicate save, load code etc. - wxCommandEvent evt; - evt.SetId( ID_SAVE_BOARD ); - Files_io( evt ); - } - break; - - case 'V': // Switch to alternate layer and Place a via if a track is in progress - if( m_ID_current_state != ID_TRACK_BUTT ) - return; - if( ItemFree ) - { - Other_Layer_Route( NULL, DC ); - break; - } - if( GetScreen()->GetCurItem()->m_StructType != TYPETRACK ) - return; - if( (GetScreen()->GetCurItem()->m_Flags & IS_NEW) == 0 ) - return; - Other_Layer_Route( (TRACK*) GetScreen()->GetCurItem(), DC ); - if( DisplayOpt.ContrastModeDisplay ) - GetScreen()->SetRefreshReq(); - break; - - // Footprint edition: - case 'L': // toggle module "MODULE_is_LOCKED" status: - // 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 ); - else if( GetScreen()->GetCurItem()->m_StructType == TYPEMODULE ) - module = (MODULE*) GetScreen()->GetCurItem(); - if( module ) - { - GetScreen()->SetCurItem( module ); - module->SetLocked( !module->IsLocked() ); - module->Display_Infos( this ); - } - break; - - case 'G': // Start move (and drag) module - case 'M': // Start move module - if( PopupOn ) - break; - - case 'R': // Rotation - case 'S': // move to other side - if( ItemFree ) - { - 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 m_CurrentItem at this time, nor does a mouse click - when the local ratsnest icon is in play set m_CurrentItem, 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( hotkey ) - { - case 'R': // Rotation - Rotate_Module( DC, module, 900, TRUE ); - break; - - case 'S': // move to other side - Change_Side_Module( module, DC ); - break; - - case 'G': // Start move (and drag) module - g_Drag_Pistes_On = TRUE; - - // fall through - - case 'M': // Start move module - StartMove_Module( module, DC ); - break; - } - - module->Display_Infos( this ); - - break; + default: + case HK_NOT_FOUND: + return; + break; + + case HK_HELP: // Display Current hotkey list + DisplayHotkeyList(this, s_board_edit_Hotkey_List); + break; + + case HK_ZOOM_IN: + case HK_ZOOM_OUT: + case HK_ZOOM_REDRAW: + case HK_ZOOM_CENTER: + break; + + case HK_RESET_LOCAL_COORD: /*Reset the relative coord */ + GetScreen()->m_O_Curseur = GetScreen()->m_Curseur; + break; + + + case HK_SWITCH_UNITS: + g_UnitMetric = (g_UnitMetric == INCHES ) ? MILLIMETRE : INCHES; + break; + + case HK_SWITCH_TRACK_DISPLAY_MODE: + DisplayOpt.DisplayPcbTrackFill ^= 1; DisplayOpt.DisplayPcbTrackFill &= 1; + GetScreen()->SetRefreshReq(); + break; + + case HK_DELETE: + OnHotkeyDeleteItem( DC, DrawStruct ); + break; + + case HK_BACK_SPACE: + if( m_ID_current_state == ID_TRACK_BUTT && GetScreen()->m_Active_Layer <= CMP_N ) + { + bool ItemFree = (GetScreen()->GetCurItem() == NULL ) + || (GetScreen()->GetCurItem()->m_Flags == 0); + if( ItemFree ) + { + // no track is currently being edited - select a segment and remove it. + DrawStruct = PcbGeneralLocateAndDisplay(); + + // don't let backspace delete modules!! + if( DrawStruct && (DrawStruct->m_StructType == TYPETRACK + || DrawStruct->m_StructType == TYPEVIA) ) + Delete_Segment( DC, (TRACK*) DrawStruct ); + GetScreen()->SetModify(); + } + else if( GetScreen()->GetCurItem()->m_StructType == TYPETRACK ) + { + // then an element is being edited - remove the last segment. + GetScreen()->SetCurItem(Delete_Segment( DC, (TRACK*) GetScreen()->GetCurItem() ) ); + GetScreen()->SetModify(); + } + } + break; + + case HK_END_TRACK: + DrawPanel->MouseToCursorSchema(); + End_Route( (TRACK*) (GetScreen()->GetCurItem()), DC ); + break; + + case HK_FIND_ITEM: + { + wxCommandEvent evt; + evt.SetId( ID_FIND_ITEMS ); + Process_Special_Functions( evt ); + } + break; + + case HK_LOAD_BOARD: + { + // try not to duplicate save, load code etc. + wxCommandEvent evt; + evt.SetId( ID_LOAD_FILE ); + Files_io( evt ); + } + break; + + case HK_SAVE_BOARD: + { + // try not to duplicate save, load code etc. + wxCommandEvent evt; + evt.SetId( ID_SAVE_BOARD ); + Files_io( evt ); + } + 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 ) + return; + if( ItemFree ) + { + Other_Layer_Route( NULL, DC ); + break; + } + if( GetScreen()->GetCurItem()->m_StructType != TYPETRACK ) + return; + if( (GetScreen()->GetCurItem()->m_Flags & IS_NEW) == 0 ) + return; + Other_Layer_Route( (TRACK*) GetScreen()->GetCurItem(), DC ); + if( DisplayOpt.ContrastModeDisplay ) + GetScreen()->SetRefreshReq(); + break; + + // Footprint edition: + case HK_LOCK_UNLOCK_FOOTPRINT: // toggle module "MODULE_is_LOCKED" status: + // 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 ); + else if( GetScreen()->GetCurItem()->m_StructType == TYPEMODULE ) + module = (MODULE*) GetScreen()->GetCurItem(); + if( module ) + { + GetScreen()->SetCurItem(module); + module->SetLocked( !module->IsLocked() ); + module->Display_Infos( this ); + } + break; + + case HK_DRAG_FOOTPRINT: // Start move (and drag) module + case HK_MOVE_FOOTPRINT: // Start move module + if( PopupOn ) + break; + + case HK_ROTATE_FOOTPRINT: // Rotation + case HK_FLIP_FOOTPRINT: // move to other side + if( ItemFree ) + { + 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; } } @@ -243,41 +328,38 @@ void WinEDA_ModuleEditFrame::OnHotKey( wxDC* DC, int hotkey, * Les majuscules/minuscules sont indifferenciees */ { - bool PopupOn = GetScreen()->GetCurItem() - && GetScreen()->GetCurItem()->m_Flags; - if( hotkey == 0 ) return; - switch( hotkey ) - { - case WXK_DELETE: - case WXK_NUMPAD_DELETE: - if( PopupOn ) - break; - break; - - case 'r': // Rotation - case 'R': - break; + /* 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'; - case 'y': // Mirror Y (drawlibpart) - case 'Y': - break; - - case 'x': // Mirror X (drawlibpart) - case 'X': - break; - - case 'n': - case 'N': // Orient 0, no mirror (drawlibpart) - break; - - case 'm': - case 'M': // Start move drawlibpart - if( PopupOn ) - break; - break; + int CommandCode = GetCommandCodeFromHotkey(hotkey, s_module_edit_Hotkey_List); + switch( CommandCode ) + { + default: + case HK_NOT_FOUND: + return; + break; + + case HK_HELP: // Display Current hotkey list + DisplayHotkeyList(this, s_module_edit_Hotkey_List); + break; + + case HK_RESET_LOCAL_COORD: /*Reset the relative coord */ + GetScreen()->m_O_Curseur = GetScreen()->m_Curseur; + break; + + + case HK_SWITCH_UNITS: + g_UnitMetric = (g_UnitMetric == INCHES ) ? MILLIMETRE : INCHES; + break; + + case HK_ZOOM_IN: + case HK_ZOOM_OUT: + case HK_ZOOM_REDRAW: + case HK_ZOOM_CENTER: + break; } } @@ -312,7 +394,7 @@ bool WinEDA_PcbFrame::OnHotkeyDeleteItem( wxDC* DC, EDA_BaseStruct* DrawStruct ) else if( GetScreen()->GetCurItem()->m_StructType == TYPETRACK ) { GetScreen()->SetCurItem( - Delete_Segment( DC, (TRACK*) GetScreen()->GetCurItem() )); + Delete_Segment( DC, (TRACK*) GetScreen()->GetCurItem() ) ); GetScreen()->SetModify(); return TRUE; } @@ -337,6 +419,6 @@ bool WinEDA_PcbFrame::OnHotkeyDeleteItem( wxDC* DC, EDA_BaseStruct* DrawStruct ) } GetScreen()->SetModify(); - GetScreen()->SetCurItem( NULL ); + GetScreen()->SetCurItem(NULL); return TRUE; }