Commit 9414bf67 authored by CHARRAS's avatar CHARRAS

more work on hotkeys

parent 040e2cbf
......@@ -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 <jean-pierre.charras@inpg.fr>
================================================================================
+ 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 <dick@softplc.com>
================================================================================
......
......@@ -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;
......
/*********************/
/* 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;
}
......@@ -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)
......
......@@ -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;
......
/***************/
/* 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();
}
......@@ -5,7 +5,7 @@
COMMON_GLOBL wxString g_BuildVersion
#ifdef EDA_BASE
(wxT("(2007-08-09)"))
(wxT("(2007-08-19)"))
#endif
;
......
/*******************/
/* 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
No preview for this file type
......@@ -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 <jean-pierre.charras@ujf-grenoble.fr>\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 connectes"
#: 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 trouve"
#: 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 lments)"
#: 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 autorise 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 dsactiv !!!"
#: 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 Zro"
#: pcbnew/edit.cpp:574
#: pcbnew/edit.cpp:597
msgid "Add Graphic"
msgstr "Addition lments 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 gnral"
#: 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'lments"
#: 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 dplacs"
#: pcbnew/autoplac.cpp:109
msgid "Footprints NOT PLACED will be moved"
msgstr "Les modules NON PLACES vont tre dplacs"
#: 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 "Itration"
#: pcbnew/autoplac.cpp:611
msgid "Ok to abort ?"
msgstr "Ok pour arrter ?"
#: 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 trouve"
#: 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 lments)"
#: 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 "Elment 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 connectes"
#: 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 perage"
......@@ -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 "Perage"
......@@ -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 perage:"
......@@ -911,31 +917,123 @@ msgstr "Fichier rapport de per
msgid "Pcbnew is already running, Continue?"
msgstr "Pcbnew est est cours d'excution. Continuer ?"
#: pcbnew/pcbtexte.cpp:90
msgid "TextPCB properties"
msgstr "Proprits 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 "Proprits 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 crer 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 crer 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 "Elments 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 dj 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 "Elments 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 dj 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 slectionn"
#: 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 perage.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 trouve"
#: pcbnew/controle.cpp:112
#, c-format
msgid "Locate Pin %s (module %s)"
msgstr "Pin localise %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 lments 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 autoroutes"
#: pcbnew/dialog_initpcb.cpp:152
msgid "Include Locked Tracks"
msgstr "Inclure pistes verrouilles"
#: 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 lments 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 autoroutes"
#: pcbnew/drc.cpp:339
msgid "Tst Zones\n"
msgstr "Test Zones\n"
#: pcbnew/dialog_initpcb.cpp:152
msgid "Include Locked Tracks"
msgstr "Inclure pistes verrouilles"
#: 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 trouve"
#: pcbnew/zones.cpp:187
msgid "Pad options:"
msgstr "Options pads"
#: pcbnew/controle.cpp:102
#, c-format
msgid "Locate Pin %s (module %s)"
msgstr "Pin localise %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 "Perage X/Y"
#: pcbnew/zones.cpp:598
msgid "Zone: No net selected"
msgstr "Zone: Net non slectionn"
#: 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 slectionn VIA borgne ou VIA enterre\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 lments"
#: 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 "Crer fichier rapport "
#: pcbnew/dialog_drc.cpp:182
msgid "Test Drc"
msgstr "Test Drc"
#: gerbview/options.cpp:324
msgid "Display other items:"
msgstr "Afficher autres lments"
#: 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 dplacs"
#: pcbnew/autoplac.cpp:111
msgid "Footprints NOT PLACED will be moved"
msgstr "Les modules NON PLACES vont tre dplacs"
#: 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 "Itration"
#: pcbnew/autoplac.cpp:642
msgid "Ok to abort ?"
msgstr "Ok pour arrter ?"
#: 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 "Proprits 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 crer 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 crer 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 perage"
#: 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 protges"
#: 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 tracs 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 "Perage 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 "Crer 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 contrle 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 protges"
#: 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 tracs 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 Tracs"
......@@ -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 connects"
#: 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 aligns"
#: pcbnew/netlist.cpp:95
#, c-format
......@@ -4281,7 +4347,7 @@ msgid "Board modified, Save before exit ?"
msgstr "Circuit Imprim modifie, 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 montre"
#: 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 connects"
#: pcbnew/move_or_drag_track.cpp:690
msgid "Unable to drag this segment: two collinear segments"
msgstr "Impossible de drag ce segment: 2 segments aligns"
#: 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 "Elment 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 dfaut:"
#: eeschema/netlist_control.cpp:98
#: eeschema/netlist_control.cpp:252
#: gerbview/options.cpp:207
msgid "Default format"
msgstr "Format par dfaut"
#: 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 numro 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 modifie, 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 ncessaire, 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 spcifie"
#: 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'excution. 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 charges"
#: 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 spcifie"
#: 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 hirarchie"
#: 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 dfaut"
#: 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 numro 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 ncessaire, continuer?"
#: eeschema/genliste.cpp:101
#: eeschema/dialog_build_BOM.h:58
#: eeschema/dialog_build_BOM.h:59
msgid "List of Material"
msgstr "Liste du Matriel"
......@@ -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'excution. 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 "Proprits 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 modifie, 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 charges"
#: eeschema/selpart.cpp:45
msgid "Select Lib"
msgstr "Slection 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 "Proprits 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 "Dfaut"
#: 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 hirarchie schmatique (modifie!)?"
......@@ -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 "Slection 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 prfr:"
......@@ -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 dfaut 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 dfaut 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 "Slection 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 "Proprits du Texte sur Module"
#: pcbnew/dialog_initpcb.h:38
msgid "Global Delete"
msgstr "Effacements Gnraux"
#: 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 demande < 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 crer la ligne: longueur demande 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 "Proprits 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 "Proprits 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 gnrales"
#: 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 "Proprits de la feuille"
#: pcbnew/dialog_initpcb.h:39
msgid "Global Delete"
msgstr "Effacements Gnraux"
#: eeschema/symbtext.h:42
#: pcbnew/dialog_general_options.h:45
#: eeschema/dialog_options.h:56
msgid "General Options"
msgstr "Options gnrales"
#: eeschema/symbtext.h:43
msgid "Graphic text properties"
msgstr "Proprits 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 "Proprits 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 "Proprits 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 "Numrotation des composants"
#: eeschema/sheet.h:44
msgid "Sheet properties"
msgstr "Proprits 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 "Proprits 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 "Crer 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"
......@@ -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 );
}
}
......@@ -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;
......
......@@ -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)
......
......@@ -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 */
......
......@@ -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;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment