diff --git a/include/wxPcbStruct.h b/include/wxPcbStruct.h index c66826358a..e530c8f504 100644 --- a/include/wxPcbStruct.h +++ b/include/wxPcbStruct.h @@ -188,8 +188,7 @@ public: int DrawMode, int color, int type ); // Gestion des modules - void InstallModuleOptionsFrame( MODULE* Module, - wxDC* DC, const wxPoint& pos ); + void InstallModuleOptionsFrame( MODULE* Module, wxDC * DC ); MODULE* Copie_Module( MODULE* module ); MODULE* Exchange_Module( wxWindow* winaff, MODULE* old_module, @@ -228,7 +227,7 @@ public: // module texts void RotateTextModule( TEXTE_MODULE* Text, wxDC* DC ); - void DeleteTextModule( TEXTE_MODULE* Text, wxDC* DC ); + void DeleteTextModule( TEXTE_MODULE* Text ); void PlaceTexteModule( TEXTE_MODULE* Text, wxDC* DC ); void StartMoveTexteModule( TEXTE_MODULE* Text, wxDC* DC ); TEXTE_MODULE* CreateTextModule( MODULE* Module, wxDC* DC ); @@ -1000,9 +999,9 @@ private: public: // Footprint edition - void Place_Ancre( MODULE* module, wxDC* DC ); - void RemoveStruct( EDA_BaseStruct* Item, wxDC* DC ); - void Transform( MODULE* module, wxDC* DC, int transform ); + void Place_Ancre( MODULE* module ); + void RemoveStruct( EDA_BaseStruct* Item ); + void Transform( MODULE* module, int transform ); // loading Footprint MODULE* Import_Module( wxDC* DC ); @@ -1010,9 +1009,9 @@ public: void Load_Module_Module_From_BOARD( MODULE* Module ); // functions to edit footprint edges - void Edit_Edge_Width( EDGE_MODULE* Edge, wxDC* DC ); - void Edit_Edge_Layer( EDGE_MODULE* Edge, wxDC* DC ); - void Delete_Edge_Module( EDGE_MODULE* Edge, wxDC* DC ); + void Edit_Edge_Width( EDGE_MODULE* Edge ); + void Edit_Edge_Layer( EDGE_MODULE* Edge ); + void Delete_Edge_Module( EDGE_MODULE* Edge ); EDGE_MODULE* Begin_Edge_Module( EDGE_MODULE* Edge, wxDC* DC, int type_edge ); void End_Edge_Module( EDGE_MODULE* Edge, wxDC* DC ); void Enter_Edge_Width( EDGE_MODULE* Edge, wxDC* DC ); diff --git a/internat/fr/kicad.mo b/internat/fr/kicad.mo index 9405e07231..19f8a2b96c 100644 Binary files a/internat/fr/kicad.mo and b/internat/fr/kicad.mo differ diff --git a/internat/fr/kicad.po b/internat/fr/kicad.po index 20cfb73594..eefdc0065c 100644 --- a/internat/fr/kicad.po +++ b/internat/fr/kicad.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: kicad\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-05-21 17:31+0100\n" -"PO-Revision-Date: 2009-05-21 17:37+0100\n" +"PO-Revision-Date: 2009-05-21 18:16+0100\n" "Last-Translator: \n" "Language-Team: kicad team \n" "MIME-Version: 1.0\n" @@ -290,11 +290,11 @@ msgstr "Nettoyage segments nulls" #: pcbnew/clean.cpp:506 msgid "Merging Segments:" -msgstr "Fusionner Segments:" +msgstr "Fusion des Segments:" #: pcbnew/clean.cpp:508 msgid "Merge" -msgstr "Fusionner" +msgstr "Fusion" #: pcbnew/clean.cpp:508 msgid "0" @@ -374,7 +374,7 @@ msgstr "Erreur en Chargement de librairie" #: pcbnew/loadcmp.cpp:221 #, c-format msgid "Could not open PCB footprint library file <%s>." -msgstr "Ne peu ouvrir le fichier librairie de modules PCB <%s>." +msgstr "Ne peut ouvrir le fichier librairie de modules PCB <%s>." #: pcbnew/loadcmp.cpp:228 #, c-format diff --git a/pcbnew/dialog_edit_module.cpp b/pcbnew/dialog_edit_module.cpp index dfafde79b2..a8874f779d 100644 --- a/pcbnew/dialog_edit_module.cpp +++ b/pcbnew/dialog_edit_module.cpp @@ -37,9 +37,8 @@ END_EVENT_TABLE() /**************************************************************************************/ WinEDA_ModulePropertiesFrame::WinEDA_ModulePropertiesFrame( WinEDA_BasePcbFrame* parent, - MODULE* Module, wxDC* DC, - const wxPoint& framepos ) : - wxDialog( parent, -1, _( "Module properties" ), framepos, wxDefaultSize, DIALOG_STYLE ) + MODULE* Module, wxDC* DC ) : + wxDialog( parent, -1, _( "Module properties" ), wxDefaultPosition, wxDefaultSize, DIALOG_STYLE ) /**************************************************************************************/ { wxString number; @@ -813,7 +812,7 @@ void WinEDA_ModulePropertiesFrame::EditOrDelTextModule( wxCommandEvent& event ) Line.Printf( _( "Delete [%s]" ), Text->m_Text.GetData() ); if( !IsOK( this, Line ) ) goto out; - m_Parent->DeleteTextModule( Text, m_DC ); + m_Parent->DeleteTextModule( Text ); ReCreateFieldListBox(); m_TextListBox->SetSelection( 0 ); } diff --git a/pcbnew/dialog_edit_module.h b/pcbnew/dialog_edit_module.h index 19db8f3588..ee646dd357 100644 --- a/pcbnew/dialog_edit_module.h +++ b/pcbnew/dialog_edit_module.h @@ -54,7 +54,7 @@ private: public: // Constructor and destructor WinEDA_ModulePropertiesFrame(WinEDA_BasePcbFrame *parent, - MODULE * Module, wxDC * DC, const wxPoint & pos); + MODULE * Module, wxDC * DC); ~WinEDA_ModulePropertiesFrame() { } diff --git a/pcbnew/edgemod.cpp b/pcbnew/edgemod.cpp index f689d970bc..13e8c64cb7 100644 --- a/pcbnew/edgemod.cpp +++ b/pcbnew/edgemod.cpp @@ -144,7 +144,7 @@ static void ShowEdgeModule( WinEDA_DrawPanel* panel, wxDC* DC, bool erase ) /***************************************************************************/ -void WinEDA_ModuleEditFrame::Edit_Edge_Width( EDGE_MODULE* Edge, wxDC* DC ) +void WinEDA_ModuleEditFrame::Edit_Edge_Width( EDGE_MODULE* Edge ) /***************************************************************************/ /* Change the EDGE_MODULE Edge width, @@ -179,7 +179,7 @@ void WinEDA_ModuleEditFrame::Edit_Edge_Width( EDGE_MODULE* Edge, wxDC* DC ) /***************************************************************************/ -void WinEDA_ModuleEditFrame::Edit_Edge_Layer( EDGE_MODULE* Edge, wxDC* DC ) +void WinEDA_ModuleEditFrame::Edit_Edge_Layer( EDGE_MODULE* Edge ) /***************************************************************************/ /* Change the EDGE_MODULE Edge layer, (The new layer will be asked) @@ -267,12 +267,11 @@ void WinEDA_ModuleEditFrame::Enter_Edge_Width( EDGE_MODULE* Edge, wxDC* DC ) /****************************************************************************/ -void WinEDA_ModuleEditFrame::Delete_Edge_Module( EDGE_MODULE* Edge, wxDC* DC ) +void WinEDA_ModuleEditFrame::Delete_Edge_Module( EDGE_MODULE* Edge ) /****************************************************************************/ -/* Edition of the edge items width - * delete EDGE_MODULE Edge if Edge != NULL - * @param Edge = edge to edit, or NULL - * @param DC = current Device Context +/** Function Delete_Edge_Module + * delete EDGE_MODULE Edge + * @param Edge = edge to delete */ { if( Edge == NULL ) @@ -284,7 +283,6 @@ void WinEDA_ModuleEditFrame::Delete_Edge_Module( EDGE_MODULE* Edge, wxDC* DC ) } MODULE* Module = (MODULE*) Edge->GetParent(); - Edge->Draw( DrawPanel, DC, GR_XOR ); /* suppression d'un segment */ Edge ->DeleteStructure(); diff --git a/pcbnew/edit.cpp b/pcbnew/edit.cpp index 48df9de1b8..88c620156b 100644 --- a/pcbnew/edit.cpp +++ b/pcbnew/edit.cpp @@ -697,7 +697,7 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event ) SetCurItem( GetCurItem()->GetParent() ); if( !GetCurItem() || GetCurItem()->Type() != TYPE_MODULE ) break; - InstallModuleOptionsFrame( (MODULE*) GetCurItem(), &dc, pos ); + InstallModuleOptionsFrame( (MODULE*) GetCurItem(), &dc ); DrawPanel->MouseToCursorSchema(); break; @@ -756,7 +756,7 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event ) break; case ID_POPUP_PCB_DELETE_TEXTMODULE: - DeleteTextModule( (TEXTE_MODULE*) GetCurItem(), &dc ); + DeleteTextModule( (TEXTE_MODULE*) GetCurItem() ); SetCurItem( NULL ); DrawPanel->MouseToCursorSchema(); break; diff --git a/pcbnew/editmod.cpp b/pcbnew/editmod.cpp index 2739462c0f..e0a9f7e4a2 100644 --- a/pcbnew/editmod.cpp +++ b/pcbnew/editmod.cpp @@ -19,23 +19,19 @@ /* Variables locales: */ bool GoToEditor = FALSE; -/**************************************/ -/* class WinEDA_ModulePropertiesFrame */ -/**************************************/ +/* class WinEDA_ModulePropertiesFrame */ #include "dialog_edit_module.cpp" /*******************************************************************/ -void WinEDA_BasePcbFrame::InstallModuleOptionsFrame( MODULE* Module, - wxDC* DC, - const wxPoint& pos ) +void WinEDA_BasePcbFrame::InstallModuleOptionsFrame( MODULE* Module, wxDC * DC ) /*******************************************************************/ /* Fonction relai d'installation de la frame d'édition des proprietes * du module*/ { WinEDA_ModulePropertiesFrame* frame = - new WinEDA_ModulePropertiesFrame( this, Module, DC, pos ); + new WinEDA_ModulePropertiesFrame( this, Module, DC ); frame->ShowModal(); frame->Destroy(); @@ -61,7 +57,7 @@ void WinEDA_BasePcbFrame::InstallModuleOptionsFrame( MODULE* Module, /*******************************************************************/ -void WinEDA_ModuleEditFrame::Place_Ancre( MODULE* pt_mod, wxDC* DC ) +void WinEDA_ModuleEditFrame::Place_Ancre( MODULE* pt_mod ) /*******************************************************************/ /* @@ -69,32 +65,27 @@ void WinEDA_ModuleEditFrame::Place_Ancre( MODULE* pt_mod, wxDC* DC ) * Le module doit etre d'abort selectionne */ { - int deltaX, deltaY; + wxPoint delta; EDA_BaseStruct* PtStruct; D_PAD* pt_pad; if( pt_mod == NULL ) return; - pt_mod->DrawAncre( DrawPanel, DC, wxPoint( 0, 0 ), - DIM_ANCRE_MODULE, GR_XOR ); - - deltaX = pt_mod->m_Pos.x - GetScreen()->m_Curseur.x; - deltaY = pt_mod->m_Pos.y - GetScreen()->m_Curseur.y; + delta = pt_mod->m_Pos - GetScreen()->m_Curseur; pt_mod->m_Pos = GetScreen()->m_Curseur; /* Mise a jour des coord relatives des elements: * les coordonnees relatives sont relatives a l'ancre, pour orient 0. * il faut donc recalculer deltaX et deltaY en orientation 0 */ - RotatePoint( &deltaX, &deltaY, -pt_mod->m_Orient ); + RotatePoint( &delta, -pt_mod->m_Orient ); /* Mise a jour des coord relatives des pads */ pt_pad = (D_PAD*) pt_mod->m_Pads; for( ; pt_pad != NULL; pt_pad = pt_pad->Next() ) { - pt_pad->m_Pos0.x += deltaX; - pt_pad->m_Pos0.y += deltaY; + pt_pad->m_Pos0 += delta; } /* Mise a jour des coord relatives contours .. */ @@ -106,14 +97,14 @@ void WinEDA_ModuleEditFrame::Place_Ancre( MODULE* pt_mod, wxDC* DC ) case TYPE_EDGE_MODULE: #undef STRUCT #define STRUCT ( (EDGE_MODULE*) PtStruct ) - STRUCT->m_Start0.x += deltaX; STRUCT->m_Start0.y += deltaY; - STRUCT->m_End0.x += deltaX; STRUCT->m_End0.y += deltaY; + STRUCT->m_Start0 += delta; + STRUCT->m_End0 += delta; break; case TYPE_TEXTE_MODULE: #undef STRUCT #define STRUCT ( (TEXTE_MODULE*) PtStruct ) - STRUCT->m_Pos0.x += deltaX; STRUCT->m_Pos0.y += deltaY; + STRUCT->m_Pos0 += delta; break; default: @@ -122,12 +113,12 @@ void WinEDA_ModuleEditFrame::Place_Ancre( MODULE* pt_mod, wxDC* DC ) } pt_mod->Set_Rectangle_Encadrement(); - pt_mod->DrawAncre( DrawPanel, DC, wxPoint( 0, 0 ), DIM_ANCRE_MODULE, GR_OR ); + DrawPanel->Refresh(); } /**********************************************************************/ -void WinEDA_ModuleEditFrame::RemoveStruct( EDA_BaseStruct* Item, wxDC* DC ) +void WinEDA_ModuleEditFrame::RemoveStruct( EDA_BaseStruct* Item ) /**********************************************************************/ { if( Item == NULL ) @@ -152,12 +143,13 @@ void WinEDA_ModuleEditFrame::RemoveStruct( EDA_BaseStruct* Item, wxDC* DC ) DisplayError( this, _( "Text is VALUE!" ) ); break; } - DeleteTextModule( text, DC ); + DeleteTextModule( text ); } break; case TYPE_EDGE_MODULE: - Delete_Edge_Module( (EDGE_MODULE*) Item, DC ); + Delete_Edge_Module( (EDGE_MODULE*) Item ); + DrawPanel->Refresh(); break; case TYPE_MODULE: diff --git a/pcbnew/edtxtmod.cpp b/pcbnew/edtxtmod.cpp index 1994910e2a..442e5a981b 100644 --- a/pcbnew/edtxtmod.cpp +++ b/pcbnew/edtxtmod.cpp @@ -88,7 +88,7 @@ void WinEDA_BasePcbFrame::RotateTextModule( TEXTE_MODULE* Text, wxDC* DC ) /**************************************************************************/ -void WinEDA_BasePcbFrame::DeleteTextModule( TEXTE_MODULE* Text, wxDC* DC ) +void WinEDA_BasePcbFrame::DeleteTextModule( TEXTE_MODULE* Text ) /**************************************************************************/ /* @@ -104,7 +104,6 @@ void WinEDA_BasePcbFrame::DeleteTextModule( TEXTE_MODULE* Text, wxDC* DC ) if( Text->m_Type == TEXT_is_DIVERS ) { - // Text->Draw( DrawPanel, DC, GR_XOR ); DrawPanel->PostDirtyRect( Text->GetBoundingBox() ); /* liberation de la memoire : */ diff --git a/pcbnew/modedit.cpp b/pcbnew/modedit.cpp index 477de4cc74..361f686753 100644 --- a/pcbnew/modedit.cpp +++ b/pcbnew/modedit.cpp @@ -139,14 +139,13 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event ) /* Traite les selections d'outils et les commandes appelees du menu POPUP */ -{ - int id = event.GetId(); - wxPoint pos; - bool redraw = false; - wxClientDC dc( DrawPanel ); +#define SET_DC wxClientDC dc( DrawPanel ); DrawPanel->PrepareGraphicContext( &dc ); + +{ + int id = event.GetId(); + wxPoint pos; + bool redraw = false; - DrawPanel->CursorOff( &dc ); - DrawPanel->PrepareGraphicContext( &dc ); wxGetMousePosition( &pos.x, &pos.y ); @@ -185,20 +184,15 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event ) break; case ID_POPUP_CANCEL_CURRENT_COMMAND: - if( DrawPanel->ManageCurseur - && DrawPanel->ForceCloseManageCurseur ) + default: + if( DrawPanel->ManageCurseur && DrawPanel->ForceCloseManageCurseur ) { + // for all other commands: stop the move in progress + SET_DC; DrawPanel->ForceCloseManageCurseur( DrawPanel, &dc ); } - break; - - default: // Arret dea commande de d�placement en cours - if( DrawPanel->ManageCurseur - && DrawPanel->ForceCloseManageCurseur ) - { - DrawPanel->ForceCloseManageCurseur( DrawPanel, &dc ); - } - SetToolID( 0, wxCURSOR_ARROW, wxEmptyString ); + if( id != ID_POPUP_CANCEL_CURRENT_COMMAND ) + SetToolID( 0, wxCURSOR_ARROW, wxEmptyString ); break; } @@ -229,9 +223,10 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event ) SetCurItem( NULL ); GetScreen()->m_Curseur = wxPoint( 0, 0 ); - MODULE* module = Create_1_Module( &dc, wxEmptyString ); + MODULE* module = Create_1_Module( NULL, wxEmptyString ); if( module ) // i.e. if create module command not aborted { + redraw = true; module->SetPosition( wxPoint( 0, 0 ) ); if( GetBoard()->m_Modules ) GetBoard()->m_Modules->m_Flags = 0; @@ -244,7 +239,7 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event ) { wxFileName fn; fn = wxFileName( wxEmptyString, m_CurrentLib, ModuleFileExtension ); - wxString full_filename = wxGetApp().FindLibraryPath( fn ); + wxString full_filename = wxGetApp().FindLibraryPath( fn ); Save_Module_In_Library( full_filename, GetBoard()->m_Modules, true, true, true ); GetScreen()->ClrModify(); @@ -326,7 +321,8 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event ) SetCurItem( NULL ); Clear_Pcb( true ); GetScreen()->m_Curseur = wxPoint( 0, 0 ); - Import_Module( &dc ); + Import_Module( NULL ); + redraw = true; if( GetBoard()->m_Modules ) GetBoard()->m_Modules->m_Flags = 0; GetScreen()->ClrModify(); @@ -400,9 +396,9 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event ) case ID_MODEDIT_EDIT_MODULE_PROPERTIES: if( GetBoard()->m_Modules ) { + SET_DC; SetCurItem( GetBoard()->m_Modules ); - InstallModuleOptionsFrame( (MODULE*) GetScreen()->GetCurItem(), - &dc, pos ); + InstallModuleOptionsFrame( (MODULE*) GetScreen()->GetCurItem(), &dc ); GetScreen()->GetCurItem()->m_Flags = 0; } break; @@ -446,30 +442,40 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event ) case ID_POPUP_PCB_ROTATE_MODULE_COUNTERCLOCKWISE: DrawPanel->MouseToCursorSchema(); Rotate_Module( NULL, (MODULE*) GetScreen()->GetCurItem(), 900, true ); + redraw = true; break; case ID_POPUP_PCB_ROTATE_MODULE_CLOCKWISE: DrawPanel->MouseToCursorSchema(); - Rotate_Module( &dc, (MODULE*) GetScreen()->GetCurItem(), -900, true ); + Rotate_Module( NULL, (MODULE*) GetScreen()->GetCurItem(), -900, true ); + redraw = true; break; case ID_POPUP_PCB_EDIT_MODULE: - InstallModuleOptionsFrame( (MODULE*) GetScreen()->GetCurItem(), - &dc, pos ); + { + SET_DC; + InstallModuleOptionsFrame( (MODULE*) GetScreen()->GetCurItem(), &dc ); GetScreen()->GetCurItem()->m_Flags = 0; DrawPanel->MouseToCursorSchema(); - break; + } + break; case ID_POPUP_PCB_MOVE_PAD_REQUEST: + { + SET_DC; DrawPanel->MouseToCursorSchema(); StartMovePad( (D_PAD*) GetScreen()->GetCurItem(), &dc ); - break; + } + break; case ID_POPUP_PCB_EDIT_PAD: + { + SET_DC; InstallPadOptionsFrame( (D_PAD*) GetScreen()->GetCurItem(), &dc, pos ); DrawPanel->MouseToCursorSchema(); - break; + } + break; case ID_POPUP_PCB_DELETE_PAD: SaveCopyInUndoList( GetBoard()->m_Modules ); @@ -496,40 +502,52 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event ) break; case ID_POPUP_PCB_EDIT_TEXTMODULE: + { + SET_DC; + InstallTextModOptionsFrame( (TEXTE_MODULE*) GetScreen()->GetCurItem(), &dc, pos ); DrawPanel->MouseToCursorSchema(); - break; + } + break; case ID_POPUP_PCB_MOVE_TEXTMODULE_REQUEST: + { + SET_DC; DrawPanel->MouseToCursorSchema(); - StartMoveTexteModule( (TEXTE_MODULE*) GetScreen()->GetCurItem(), - &dc ); - break; + StartMoveTexteModule( (TEXTE_MODULE*) GetScreen()->GetCurItem(), &dc ); + } + break; case ID_POPUP_PCB_ROTATE_TEXTMODULE: + { + SET_DC; RotateTextModule( (TEXTE_MODULE*) GetScreen()->GetCurItem(), &dc ); DrawPanel->MouseToCursorSchema(); - break; + } + break; case ID_POPUP_PCB_DELETE_TEXTMODULE: SaveCopyInUndoList( GetBoard()->m_Modules ); - DeleteTextModule( (TEXTE_MODULE*) GetScreen()->GetCurItem(), - &dc ); + DeleteTextModule( (TEXTE_MODULE*) GetScreen()->GetCurItem() ); SetCurItem( NULL ); DrawPanel->MouseToCursorSchema(); break; case ID_POPUP_PCB_MOVE_EDGE: + { + SET_DC; Start_Move_EdgeMod( (EDGE_MODULE*) GetScreen()->GetCurItem(), &dc ); DrawPanel->MouseToCursorSchema(); - break; + } + break; case ID_POPUP_PCB_STOP_CURRENT_DRAWING: DrawPanel->MouseToCursorSchema(); if( (GetScreen()->GetCurItem()->m_Flags & IS_NEW) ) { + SET_DC; End_Edge_Module( (EDGE_MODULE*) GetScreen()->GetCurItem(), &dc ); SetCurItem( NULL ); } @@ -544,6 +562,7 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event ) { edge = (EDGE_MODULE*) GetScreen()->GetCurItem(); } + SET_DC; Enter_Edge_Width( edge, &dc ); DrawPanel->MouseToCursorSchema(); } @@ -551,28 +570,28 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event ) case ID_POPUP_PCB_EDIT_WIDTH_CURRENT_EDGE: DrawPanel->MouseToCursorSchema(); - Edit_Edge_Width( (EDGE_MODULE*) GetScreen()->GetCurItem(), &dc ); + Edit_Edge_Width( (EDGE_MODULE*) GetScreen()->GetCurItem() ); break; case ID_POPUP_PCB_EDIT_WIDTH_ALL_EDGE: DrawPanel->MouseToCursorSchema(); - Edit_Edge_Width( NULL, &dc ); + Edit_Edge_Width( NULL ); break; case ID_POPUP_PCB_EDIT_LAYER_CURRENT_EDGE: DrawPanel->MouseToCursorSchema(); - Edit_Edge_Layer( (EDGE_MODULE*) GetScreen()->GetCurItem(), &dc ); + Edit_Edge_Layer( (EDGE_MODULE*) GetScreen()->GetCurItem() ); break; case ID_POPUP_PCB_EDIT_LAYER_ALL_EDGE: DrawPanel->MouseToCursorSchema(); - Edit_Edge_Layer( NULL, &dc ); + Edit_Edge_Layer( NULL ); break; case ID_POPUP_PCB_DELETE_EDGE: SaveCopyInUndoList( GetBoard()->m_Modules ); DrawPanel->MouseToCursorSchema(); - RemoveStruct( GetScreen()->GetCurItem(), &dc ); + RemoveStruct( GetScreen()->GetCurItem() ); SetCurItem( NULL ); break; @@ -582,7 +601,8 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event ) case ID_MODEDIT_MODULE_SCALEX: case ID_MODEDIT_MODULE_SCALEY: SaveCopyInUndoList( GetBoard()->m_Modules ); - Transform( (MODULE*) GetScreen()->GetCurItem(), &dc, id ); + Transform( (MODULE*) GetScreen()->GetCurItem(), id ); + redraw = true; break; case ID_PCB_DRAWINGS_WIDTHS_SETUP: @@ -597,6 +617,7 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event ) if( item->Type() != TYPE_PAD ) item = NULL; } + SET_DC; InstallPadOptionsFrame( (D_PAD*) item, &dc, pos ); } break; @@ -607,44 +628,58 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event ) case ID_MODEDIT_UNDO: GetComponentFromUndoList(); - DrawPanel->Refresh( true ); + redraw = true; break; case ID_MODEDIT_REDO: GetComponentFromRedoList(); - DrawPanel->Refresh( true ); + redraw = true; break; case ID_POPUP_PLACE_BLOCK: GetScreen()->BlockLocate.m_Command = BLOCK_MOVE; DrawPanel->m_AutoPAN_Request = FALSE; - HandleBlockPlace( &dc ); + { + SET_DC; + HandleBlockPlace( &dc ); + } break; case ID_POPUP_COPY_BLOCK: GetScreen()->BlockLocate.m_Command = BLOCK_COPY; GetScreen()->BlockLocate.SetMessageBlock( this ); DrawPanel->m_AutoPAN_Request = FALSE; - HandleBlockPlace( &dc ); + { + SET_DC; + HandleBlockPlace( &dc ); + } break; case ID_POPUP_ZOOM_BLOCK: GetScreen()->BlockLocate.m_Command = BLOCK_ZOOM; GetScreen()->BlockLocate.SetMessageBlock( this ); - GetScreen()->BlockLocate.SetMessageBlock( this ); - HandleBlockEnd( &dc ); + { + SET_DC; + HandleBlockEnd( &dc ); + } break; case ID_POPUP_DELETE_BLOCK: GetScreen()->BlockLocate.m_Command = BLOCK_DELETE; GetScreen()->BlockLocate.SetMessageBlock( this ); - HandleBlockEnd( &dc ); + { + SET_DC; + HandleBlockEnd( &dc ); + } break; case ID_POPUP_ROTATE_BLOCK: GetScreen()->BlockLocate.m_Command = BLOCK_ROTATE; GetScreen()->BlockLocate.SetMessageBlock( this ); - HandleBlockEnd( &dc ); + { + SET_DC; + HandleBlockEnd( &dc ); + } break; case ID_POPUP_MIRROR_X_BLOCK: @@ -652,7 +687,10 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event ) case ID_POPUP_INVERT_BLOCK: GetScreen()->BlockLocate.m_Command = BLOCK_INVERT; GetScreen()->BlockLocate.SetMessageBlock( this ); - HandleBlockEnd( &dc ); + { + SET_DC; + HandleBlockEnd( &dc ); + } break; default: @@ -662,14 +700,13 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event ) } SetToolbars(); - DrawPanel->CursorOn( &dc ); - if ( redraw ) + if( redraw ) DrawPanel->Refresh(); } /******************************************************************************/ -void WinEDA_ModuleEditFrame::Transform( MODULE* module, wxDC* DC, int transform ) +void WinEDA_ModuleEditFrame::Transform( MODULE* module, int transform ) /******************************************************************************/ /* Execute les transformations de la repr�sentation des modules. @@ -792,5 +829,4 @@ void WinEDA_ModuleEditFrame::Transform( MODULE* module, wxDC* DC, int transform } module->Set_Rectangle_Encadrement(); - DrawPanel->ReDraw( DC ); } diff --git a/pcbnew/modedit_onclick.cpp b/pcbnew/modedit_onclick.cpp index fd42cd7d82..f27acbba71 100644 --- a/pcbnew/modedit_onclick.cpp +++ b/pcbnew/modedit_onclick.cpp @@ -52,7 +52,7 @@ void WinEDA_ModuleEditFrame::OnLeftClick( wxDC* DC, const wxPoint& MousePos ) wxString msg; msg.Printf( wxT( - "WinEDA_ModEditFrame::ProcessCommand err: m_Flags != 0\nStruct @%p, type %d m_Flag %X" ), + "WinEDA_ModEditFrame::OnLeftClick err: m_Flags != 0\nStruct @%p, type %d m_Flag %X" ), DrawStruct, DrawStruct->Type(), DrawStruct->m_Flags ); DisplayError( this, msg ); DrawStruct->m_Flags = 0; @@ -122,7 +122,7 @@ void WinEDA_ModuleEditFrame::OnLeftClick( wxDC* DC, const wxPoint& MousePos ) if( DrawStruct && (DrawStruct->m_Flags == 0) ) { SaveCopyInUndoList( GetBoard()->m_Modules ); - RemoveStruct( DrawStruct, DC ); + RemoveStruct( DrawStruct ); SetCurItem( DrawStruct = NULL ); } } @@ -130,7 +130,7 @@ void WinEDA_ModuleEditFrame::OnLeftClick( wxDC* DC, const wxPoint& MousePos ) case ID_MODEDIT_PLACE_ANCHOR: SaveCopyInUndoList( GetBoard()->m_Modules ); - Place_Ancre( GetBoard()->m_Modules, DC ); + Place_Ancre( GetBoard()->m_Modules ); GetBoard()->m_Modules->m_Flags = 0; GetScreen()->m_Curseur = wxPoint( 0, 0 ); Recadre_Trace( TRUE ); @@ -401,8 +401,7 @@ void WinEDA_ModuleEditFrame::OnLeftDClick( wxDC* DC, const wxPoint& MousePos ) break; case TYPE_MODULE: - InstallModuleOptionsFrame( (MODULE*) DrawStruct, - &dc, pos ); + InstallModuleOptionsFrame( (MODULE*) DrawStruct, &dc ); DrawPanel->MouseToCursorSchema(); break; diff --git a/pcbnew/onleftclick.cpp b/pcbnew/onleftclick.cpp index a569e6f445..2ba530a8b9 100644 --- a/pcbnew/onleftclick.cpp +++ b/pcbnew/onleftclick.cpp @@ -214,10 +214,7 @@ void WinEDA_PcbFrame::OnLeftClick( wxDC* DC, const wxPoint& MousePos ) if( DrawStruct ) DrawPanel->m_AutoPAN_Request = TRUE; } - else if( DrawStruct && - -// (DrawStruct->Type() == TYPE_TRACK) && - (DrawStruct->m_Flags & IS_NEW) ) + else if( DrawStruct && (DrawStruct->m_Flags & IS_NEW) ) { TRACK* track = Begin_Route( (TRACK*) DrawStruct, DC ); if( track ) // c'est a dire si OK @@ -391,7 +388,7 @@ void WinEDA_PcbFrame::OnLeftDClick( wxDC* DC, const wxPoint& MousePos ) break; case TYPE_MODULE: - InstallModuleOptionsFrame( (MODULE*) DrawStruct, &dc, pos ); + InstallModuleOptionsFrame( (MODULE*) DrawStruct, &dc ); DrawPanel->MouseToCursorSchema(); break;