pcbnew: Update Layer manager display when changing active layer (from hotkey or menus)
fixed minor problems and fixed Layer Alignment Target bug.
This commit is contained in:
parent
cd53563674
commit
84d82cf2f5
|
@ -4,6 +4,24 @@ KiCad ChangeLog 2010
|
||||||
Please add newer entries at the top, list the date and your name with
|
Please add newer entries at the top, list the date and your name with
|
||||||
email address.
|
email address.
|
||||||
|
|
||||||
|
2010-Jan-23 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
|
||||||
|
================================================================================
|
||||||
|
++ Pcbnew:
|
||||||
|
Update Layer manager display when changing active layer (from hotkey or menus)
|
||||||
|
fixed minor problems and fixed Layer Alignment Target bug.
|
||||||
|
|
||||||
|
2010-Jan-22 UPDATE Wayne Stambaugh <stambaughw@verizon.net>
|
||||||
|
================================================================================
|
||||||
|
Minor fixes and code cleaning.
|
||||||
|
|
||||||
|
* Remove redundant background redrawing RedrawActiveWindow.
|
||||||
|
* Remove redundant managed cursor callback in RedrawActiveWindow.
|
||||||
|
* Use refresh to redraw instead of directly calling RedrawActiveWindow.
|
||||||
|
* Remove unused SetDrawBgColor for drawframe.cpp.
|
||||||
|
* Fix compiler warning in cvpcb/cvframe.cpp.
|
||||||
|
* Fix menu spelling and syntax errors in pcbnew.
|
||||||
|
* Rename Trace_Curseur to DrawCursor in common/drawpanel.cpp.
|
||||||
|
|
||||||
2010-Jan-21 UPDATE Dick Hollenbeck <dick@softplc.com>
|
2010-Jan-21 UPDATE Dick Hollenbeck <dick@softplc.com>
|
||||||
================================================================================
|
================================================================================
|
||||||
++pcbnew
|
++pcbnew
|
||||||
|
|
|
@ -20,13 +20,8 @@ option(wxUSE_UNICODE "enable/disable building unicode (default OFF)")
|
||||||
option(KICAD_GOST "enable/disable building using GOST notation for multiple gates per package (default OFF)")
|
option(KICAD_GOST "enable/disable building using GOST notation for multiple gates per package (default OFF)")
|
||||||
|
|
||||||
|
|
||||||
if(APPLE)
|
option(KICAD_AUIMANAGER "Enable use of wxAuiManager (default ON)" ON)
|
||||||
option(KICAD_AUIMANAGER "Enable use of wxAuiManager (default ON)" ON)
|
option(KICAD_AUITOOLBAR "Enable use of wxAuiToolBar (default ON)" ON)
|
||||||
option(KICAD_AUITOOLBAR "Enable use of wxAuiToolBar (default ON)" ON)
|
|
||||||
else(APPLE)
|
|
||||||
option(KICAD_AUIMANAGER "Enable use of wxAuiManager (default OFF)" OFF)
|
|
||||||
option(KICAD_AUITOOLBAR "Enable use of wxAuiToolBar (default OFF)" OFF)
|
|
||||||
endif(APPLE)
|
|
||||||
|
|
||||||
|
|
||||||
# Comment this out if you don't want to build with Python support.
|
# Comment this out if you don't want to build with Python support.
|
||||||
|
|
24
TODO.txt
24
TODO.txt
|
@ -22,17 +22,9 @@ Common
|
||||||
Need to do this using DialogBlocks.
|
Need to do this using DialogBlocks.
|
||||||
* Component and module search displays in which library the
|
* Component and module search displays in which library the
|
||||||
module or component lives.
|
module or component lives.
|
||||||
* Create a better and cleaner add component and footprint dialog.
|
|
||||||
* List auto up and down scrolling.
|
* List auto up and down scrolling.
|
||||||
* Toolbars and menus should be equal.
|
|
||||||
* (Main) dialog(s) title(s) should always be the same and not change over time
|
|
||||||
when not needed. For example KiCad - <file loaded> or PCBNew - <file loaded>.
|
|
||||||
We dont have to see which build in the titlebar. This makes documentation
|
|
||||||
screenshots also easier. We already have the build information in the about
|
|
||||||
dialog.
|
|
||||||
* Integer/long/double input boxes should handle comma and dot separated values,
|
* Integer/long/double input boxes should handle comma and dot separated values,
|
||||||
not only comma.
|
not only comma.
|
||||||
* Undo/Redo should have more steps (or could be setable).
|
|
||||||
|
|
||||||
CvPCB
|
CvPCB
|
||||||
-----
|
-----
|
||||||
|
@ -41,9 +33,6 @@ CvPCB
|
||||||
|
|
||||||
EESchema
|
EESchema
|
||||||
--------
|
--------
|
||||||
|
|
||||||
*Improvements*
|
|
||||||
* Component add list browser with optional component preview.
|
|
||||||
* Use collector classes.
|
* Use collector classes.
|
||||||
* Drag and drop between two EESchema windows.
|
* Drag and drop between two EESchema windows.
|
||||||
|
|
||||||
|
@ -70,37 +59,24 @@ from folks with less than that minimum.
|
||||||
|
|
||||||
PCBNew
|
PCBNew
|
||||||
------
|
------
|
||||||
*BUGS*
|
|
||||||
* Backspace hotkey for deleting track segment doesn't work.
|
|
||||||
* Delete hotkey for deleting a track doesn't work.
|
|
||||||
* Fix block copy/move preview to not view only a border, we should
|
* Fix block copy/move preview to not view only a border, we should
|
||||||
see the moved/copied parts.
|
see the moved/copied parts.
|
||||||
|
|
||||||
* Fix DIALOG_PAD_PROPERTIES_BASE class to use actual layer names in the BOARD.
|
* Fix DIALOG_PAD_PROPERTIES_BASE class to use actual layer names in the BOARD.
|
||||||
|
|
||||||
* Use BOARD_ITEM::MenuIcon() in the onrightclick.cpp
|
* Use BOARD_ITEM::MenuIcon() in the onrightclick.cpp
|
||||||
* Add unroute option in rightclick menu for components
|
|
||||||
* Document specctra round tripper, and fix the english translation of help.
|
* Document specctra round tripper, and fix the english translation of help.
|
||||||
* Expose layer name editing. Should dove tail with net class editor from
|
* Expose layer name editing. Should dove tail with net class editor from
|
||||||
a UI perspective.
|
a UI perspective.
|
||||||
* Add ARC support to gerber polygons.
|
* Add ARC support to gerber polygons.
|
||||||
* Need to add polygon aperture type.
|
* Need to add polygon aperture type.
|
||||||
Then example 2 in RS274xrevd_e.pdf will draw properly.
|
Then example 2 in RS274xrevd_e.pdf will draw properly.
|
||||||
* Look at mouse auto-scroll modes (bug?)
|
|
||||||
* Add the footprint name in the automatic placement file
|
|
||||||
* Footprint list should also have a footprint preview.
|
|
||||||
|
|
||||||
|
|
||||||
LAYER_WIDGET for PCBNEW
|
LAYER_WIDGET for PCBNEW
|
||||||
-----------------------
|
-----------------------
|
||||||
L1) Keyboard focus is getting stuck in layer widget and then hotkeys do not work.
|
|
||||||
There is probably a solution to be found and it may involve asking on the
|
|
||||||
wxWidgets mailing list.
|
|
||||||
|
|
||||||
L2) Hook in bool WinEDA_PcbFrame::LYRS::OnLayerSelect( int aLayer )
|
L2) Hook in bool WinEDA_PcbFrame::LYRS::OnLayerSelect( int aLayer )
|
||||||
|
|
||||||
L3) When a layer changes via a hotkey, then call WinEDA_PcbFrame->m_Layers->SelectLayer()
|
|
||||||
|
|
||||||
L4) Move popup menu code from class LAYER_WIDGET into WinEDA_PcbFrame::LYRS so as
|
L4) Move popup menu code from class LAYER_WIDGET into WinEDA_PcbFrame::LYRS so as
|
||||||
to keep LAYER_WIDGET fully usage agnostic. Remove #include "pcbstruct.h" // IsValidCopperLayerIndex()
|
to keep LAYER_WIDGET fully usage agnostic. Remove #include "pcbstruct.h" // IsValidCopperLayerIndex()
|
||||||
from layer_widget.cpp.
|
from layer_widget.cpp.
|
||||||
|
|
|
@ -29,6 +29,7 @@ public:
|
||||||
~WinEDA_SelColorFrame() {};
|
~WinEDA_SelColorFrame() {};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
void Init_Dialog( int aOldColor );
|
||||||
void OnCancel( wxCommandEvent& event );
|
void OnCancel( wxCommandEvent& event );
|
||||||
void SelColor( wxCommandEvent& event );
|
void SelColor( wxCommandEvent& event );
|
||||||
|
|
||||||
|
@ -66,6 +67,42 @@ WinEDA_SelColorFrame::WinEDA_SelColorFrame( wxWindow* parent,
|
||||||
int OldColor ) :
|
int OldColor ) :
|
||||||
wxDialog( parent, -1, _( "Colors" ), framepos, wxDefaultSize,
|
wxDialog( parent, -1, _( "Colors" ), framepos, wxDefaultSize,
|
||||||
wxDEFAULT_DIALOG_STYLE | MAYBE_RESIZE_BORDER )
|
wxDEFAULT_DIALOG_STYLE | MAYBE_RESIZE_BORDER )
|
||||||
|
{
|
||||||
|
|
||||||
|
Init_Dialog( OldColor );
|
||||||
|
// Resize the dialog
|
||||||
|
GetSizer()->SetSizeHints( this );
|
||||||
|
|
||||||
|
// Ensure the whole frame is visible, whenever the asked position.
|
||||||
|
// Give also a small margin.
|
||||||
|
wxPoint endCornerPosition = GetPosition();
|
||||||
|
int margin = 10;
|
||||||
|
endCornerPosition.x += GetSize().x + margin;
|
||||||
|
endCornerPosition.y += GetSize().y + margin;
|
||||||
|
|
||||||
|
wxPoint windowPosition = GetPosition();
|
||||||
|
wxRect freeScreenArea( wxGetClientDisplayRect( ) );
|
||||||
|
if( freeScreenArea.GetRight() < endCornerPosition.x )
|
||||||
|
{
|
||||||
|
windowPosition.x += freeScreenArea.GetRight() - endCornerPosition.x;
|
||||||
|
if( windowPosition.x < freeScreenArea.x )
|
||||||
|
windowPosition.x = freeScreenArea.x;
|
||||||
|
// Sligly modify the vertical position to avoid the mouse to be
|
||||||
|
// exactly on the upper side of the window
|
||||||
|
windowPosition.y +=5;
|
||||||
|
endCornerPosition.y += 5;
|
||||||
|
}
|
||||||
|
if( freeScreenArea.GetBottom() < endCornerPosition.y )
|
||||||
|
{
|
||||||
|
windowPosition.y += freeScreenArea.GetBottom() - endCornerPosition.y;
|
||||||
|
if( windowPosition.y < freeScreenArea.y )
|
||||||
|
windowPosition.y = freeScreenArea.y;
|
||||||
|
}
|
||||||
|
|
||||||
|
SetPosition(windowPosition);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WinEDA_SelColorFrame::Init_Dialog( int aOldColor )
|
||||||
{
|
{
|
||||||
wxBoxSizer* OuterBoxSizer = NULL;
|
wxBoxSizer* OuterBoxSizer = NULL;
|
||||||
wxBoxSizer* MainBoxSizer = NULL;
|
wxBoxSizer* MainBoxSizer = NULL;
|
||||||
|
@ -135,7 +172,7 @@ WinEDA_SelColorFrame::WinEDA_SelColorFrame( wxWindow* parent,
|
||||||
// Set focus to this button if its color matches the
|
// Set focus to this button if its color matches the
|
||||||
// color which had been selected previously (for
|
// color which had been selected previously (for
|
||||||
// whichever layer's color is currently being edited).
|
// whichever layer's color is currently being edited).
|
||||||
if( OldColor == buttcolor )
|
if( aOldColor == buttcolor )
|
||||||
{
|
{
|
||||||
ColorFound = true;
|
ColorFound = true;
|
||||||
BitmapButton->SetFocus();
|
BitmapButton->SetFocus();
|
||||||
|
@ -171,15 +208,8 @@ WinEDA_SelColorFrame::WinEDA_SelColorFrame( wxWindow* parent,
|
||||||
// (That shouldn't ever happen in practice though.)
|
// (That shouldn't ever happen in practice though.)
|
||||||
if( !ColorFound )
|
if( !ColorFound )
|
||||||
Button->SetFocus();
|
Button->SetFocus();
|
||||||
|
|
||||||
// Resize the dialog
|
|
||||||
if( GetSizer() )
|
|
||||||
{
|
|
||||||
GetSizer()->SetSizeHints( this );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void WinEDA_SelColorFrame::OnCancel( wxCommandEvent& WXUNUSED( event ) )
|
void WinEDA_SelColorFrame::OnCancel( wxCommandEvent& WXUNUSED( event ) )
|
||||||
{
|
{
|
||||||
// Setting the return value to -1 indicates that the
|
// Setting the return value to -1 indicates that the
|
||||||
|
|
|
@ -206,6 +206,14 @@ public:
|
||||||
*/
|
*/
|
||||||
void AuxiliaryToolBar_DesignRules_Update_UI();
|
void AuxiliaryToolBar_DesignRules_Update_UI();
|
||||||
|
|
||||||
|
/** Function SynchronizeLayersManager( )
|
||||||
|
* Must be called when info displayed in the layer manager Toolbar
|
||||||
|
* as been changed in the main window ( by hotkey or a tool option.
|
||||||
|
* Mainly when the active layer as changed.
|
||||||
|
* @param aFlag = flag giving the type of data (layers, checkboxes...)
|
||||||
|
*/
|
||||||
|
void SynchronizeLayersManager( int aFlag );
|
||||||
|
|
||||||
/* mouse functions events: */
|
/* mouse functions events: */
|
||||||
void OnLeftClick( wxDC* DC, const wxPoint& MousePos );
|
void OnLeftClick( wxDC* DC, const wxPoint& MousePos );
|
||||||
void OnLeftDClick( wxDC* DC, const wxPoint& MousePos );
|
void OnLeftDClick( wxDC* DC, const wxPoint& MousePos );
|
||||||
|
|
Binary file not shown.
|
@ -2,8 +2,8 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: kicad\n"
|
"Project-Id-Version: kicad\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-01-22 11:29+0100\n"
|
"POT-Creation-Date: 2010-01-22 14:07+0100\n"
|
||||||
"PO-Revision-Date: 2010-01-22 11:34+0100\n"
|
"PO-Revision-Date: 2010-01-22 14:08+0100\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: kicad team <jean-pierre.charras@ujf-grenoble.fr>\n"
|
"Language-Team: kicad team <jean-pierre.charras@ujf-grenoble.fr>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
|
@ -747,12 +747,12 @@ msgstr "X Pos"
|
||||||
msgid "Y pos"
|
msgid "Y pos"
|
||||||
msgstr "Y pos"
|
msgstr "Y pos"
|
||||||
|
|
||||||
#: pcbnew/hotkeys.cpp:595
|
#: pcbnew/hotkeys.cpp:608
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Footprint %s found, but locked"
|
msgid "Footprint %s found, but locked"
|
||||||
msgstr "Module %s trouvé, mais verrouillé"
|
msgstr "Module %s trouvé, mais verrouillé"
|
||||||
|
|
||||||
#: pcbnew/hotkeys.cpp:789
|
#: pcbnew/hotkeys.cpp:802
|
||||||
msgid "Delete module?"
|
msgid "Delete module?"
|
||||||
msgstr "Effacer Module?"
|
msgstr "Effacer Module?"
|
||||||
|
|
||||||
|
@ -925,12 +925,11 @@ msgid "Show/hide the layers manager toolbar"
|
||||||
msgstr "Afficher/cacher le gestionnaire de couches"
|
msgstr "Afficher/cacher le gestionnaire de couches"
|
||||||
|
|
||||||
#: pcbnew/tool_pcb.cpp:398
|
#: pcbnew/tool_pcb.cpp:398
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Show/hide the toolbar for microwaves tools\n"
|
"Show/hide the toolbar for microwaves tools\n"
|
||||||
" This is a experimental feature (under development)"
|
" This is a experimental feature (under development)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Affiche/supprime le toolbar vertical auxiliaire (outils pour applications micro-ondes)\n"
|
"Affiche/cache le toolbar vertical auxiliaire pour applications micro-ondes)\n"
|
||||||
"C'est un outil expérimental (en cours de développement)"
|
"C'est un outil expérimental (en cours de développement)"
|
||||||
|
|
||||||
#: pcbnew/tool_pcb.cpp:423
|
#: pcbnew/tool_pcb.cpp:423
|
||||||
|
|
|
@ -743,6 +743,7 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event )
|
||||||
if( itmp >= 0 )
|
if( itmp >= 0 )
|
||||||
( (PCB_SCREEN*) GetScreen() )->m_Active_Layer = itmp;
|
( (PCB_SCREEN*) GetScreen() )->m_Active_Layer = itmp;
|
||||||
DrawPanel->MouseToCursorSchema();
|
DrawPanel->MouseToCursorSchema();
|
||||||
|
SynchronizeLayersManager( 1 );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_AUX_TOOLBAR_PCB_SELECT_LAYER_PAIR:
|
case ID_AUX_TOOLBAR_PCB_SELECT_LAYER_PAIR:
|
||||||
|
@ -757,7 +758,8 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event )
|
||||||
if( itmp >= 0 )
|
if( itmp >= 0 )
|
||||||
( (PCB_SCREEN*) GetScreen() )->m_Active_Layer = itmp;
|
( (PCB_SCREEN*) GetScreen() )->m_Active_Layer = itmp;
|
||||||
DrawPanel->MouseToCursorSchema();
|
DrawPanel->MouseToCursorSchema();
|
||||||
break;
|
SynchronizeLayersManager( 1 );
|
||||||
|
break;
|
||||||
|
|
||||||
case ID_POPUP_PCB_SELECT_CU_LAYER:
|
case ID_POPUP_PCB_SELECT_CU_LAYER:
|
||||||
itmp = SelectLayer(
|
itmp = SelectLayer(
|
||||||
|
@ -765,7 +767,8 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event )
|
||||||
LAST_COPPER_LAYER );
|
LAST_COPPER_LAYER );
|
||||||
if( itmp >= 0 )
|
if( itmp >= 0 )
|
||||||
( (PCB_SCREEN*) GetScreen() )->m_Active_Layer = itmp;
|
( (PCB_SCREEN*) GetScreen() )->m_Active_Layer = itmp;
|
||||||
break;
|
SynchronizeLayersManager( 1 );
|
||||||
|
break;
|
||||||
|
|
||||||
case ID_POPUP_PCB_SELECT_LAYER_PAIR:
|
case ID_POPUP_PCB_SELECT_LAYER_PAIR:
|
||||||
SelectLayerPair();
|
SelectLayerPair();
|
||||||
|
@ -776,6 +779,7 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event )
|
||||||
itmp = m_SelLayerBox->GetChoice();
|
itmp = m_SelLayerBox->GetChoice();
|
||||||
( (PCB_SCREEN*) GetScreen() )->m_Active_Layer =
|
( (PCB_SCREEN*) GetScreen() )->m_Active_Layer =
|
||||||
(int) ( (size_t) m_SelLayerBox->GetClientData( itmp ) );
|
(int) ( (size_t) m_SelLayerBox->GetClientData( itmp ) );
|
||||||
|
SynchronizeLayersManager( 1 ); // Ensure Layer manager synchronization
|
||||||
if( DisplayOpt.ContrastModeDisplay )
|
if( DisplayOpt.ContrastModeDisplay )
|
||||||
DrawPanel->Refresh( true );
|
DrawPanel->Refresh( true );
|
||||||
break;
|
break;
|
||||||
|
@ -1134,7 +1138,6 @@ void WinEDA_PcbFrame::SwitchLayer( wxDC* DC, int layer )
|
||||||
if( DisplayOpt.ContrastModeDisplay )
|
if( DisplayOpt.ContrastModeDisplay )
|
||||||
GetScreen()->SetRefreshReq();
|
GetScreen()->SetRefreshReq();
|
||||||
}
|
}
|
||||||
|
|
||||||
// if the via was allowed by DRC, then the layer swap has already
|
// if the via was allowed by DRC, then the layer swap has already
|
||||||
// been done by Other_Layer_Route(). if via not allowed, then
|
// been done by Other_Layer_Route(). if via not allowed, then
|
||||||
// return now so assignment to m_Active_Layer below doesn't happen.
|
// return now so assignment to m_Active_Layer below doesn't happen.
|
||||||
|
@ -1149,6 +1152,7 @@ void WinEDA_PcbFrame::SwitchLayer( wxDC* DC, int layer )
|
||||||
// ...
|
// ...
|
||||||
|
|
||||||
GetScreen()->m_Active_Layer = layer;
|
GetScreen()->m_Active_Layer = layer;
|
||||||
|
SynchronizeLayersManager( 1 ); // Ensure Layer manager synchronization
|
||||||
|
|
||||||
if( DisplayOpt.ContrastModeDisplay )
|
if( DisplayOpt.ContrastModeDisplay )
|
||||||
GetScreen()->SetRefreshReq();
|
GetScreen()->SetRefreshReq();
|
||||||
|
|
|
@ -138,6 +138,7 @@ bool WinEDA_PcbFrame::Other_Layer_Route( TRACK* aTrack, wxDC* DC )
|
||||||
|
|
||||||
UpdateStatusBar();
|
UpdateStatusBar();
|
||||||
SetToolbars();
|
SetToolbars();
|
||||||
|
SynchronizeLayersManager( 1 );
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -292,8 +293,8 @@ bool WinEDA_PcbFrame::Other_Layer_Route( TRACK* aTrack, wxDC* DC )
|
||||||
via->DisplayInfo( this );
|
via->DisplayInfo( this );
|
||||||
|
|
||||||
UpdateStatusBar();
|
UpdateStatusBar();
|
||||||
|
|
||||||
SetToolbars();
|
SetToolbars();
|
||||||
|
SynchronizeLayersManager( 1 );
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -254,7 +254,6 @@ void WinEDA_PcbFrame::OnHotKey( wxDC* DC, int hotkey, EDA_BaseStruct* DrawStruct
|
||||||
else
|
else
|
||||||
ll--;
|
ll--;
|
||||||
SwitchLayer( DC, ll );
|
SwitchLayer( DC, ll );
|
||||||
// m_Layers->SelectLayer(GetScreen()->m_Active_Layer); // Ensure Layer manager synchronization
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HK_SWITCH_LAYER_TO_NEXT:
|
case HK_SWITCH_LAYER_TO_NEXT:
|
||||||
|
@ -268,50 +267,38 @@ void WinEDA_PcbFrame::OnHotKey( wxDC* DC, int hotkey, EDA_BaseStruct* DrawStruct
|
||||||
else
|
else
|
||||||
ll++;
|
ll++;
|
||||||
SwitchLayer( DC, ll );
|
SwitchLayer( DC, ll );
|
||||||
// m_Layers->SelectLayer() must be called, but due to a problem in SetFocus() function
|
|
||||||
// that creates a lost of focus in main window (hotkeys not working after the first hotkey use)
|
|
||||||
// this call is commented until this issue is fixed.
|
|
||||||
// m_Layers->SelectLayer(GetScreen()->m_Active_Layer); // Ensure Layer manager synchronization
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HK_SWITCH_LAYER_TO_COMPONENT:
|
case HK_SWITCH_LAYER_TO_COMPONENT:
|
||||||
SwitchLayer( DC, LAYER_N_FRONT );
|
SwitchLayer( DC, LAYER_N_FRONT );
|
||||||
// m_Layers->SelectLayer(GetScreen()->m_Active_Layer); // Ensure Layer manager synchronization
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HK_SWITCH_LAYER_TO_COPPER:
|
case HK_SWITCH_LAYER_TO_COPPER:
|
||||||
SwitchLayer( DC, LAYER_N_BACK );
|
SwitchLayer( DC, LAYER_N_BACK );
|
||||||
// m_Layers->SelectLayer(GetScreen()->m_Active_Layer); // Ensure Layer manager synchronization
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HK_SWITCH_LAYER_TO_INNER1:
|
case HK_SWITCH_LAYER_TO_INNER1:
|
||||||
SwitchLayer( DC, LAYER_N_2 );
|
SwitchLayer( DC, LAYER_N_2 );
|
||||||
// m_Layers->SelectLayer(GetScreen()->m_Active_Layer); // Ensure Layer manager synchronization
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HK_SWITCH_LAYER_TO_INNER2:
|
case HK_SWITCH_LAYER_TO_INNER2:
|
||||||
SwitchLayer( DC, LAYER_N_3 );
|
SwitchLayer( DC, LAYER_N_3 );
|
||||||
// m_Layers->SelectLayer(GetScreen()->m_Active_Layer); // Ensure Layer manager synchronization
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HK_SWITCH_LAYER_TO_INNER3:
|
case HK_SWITCH_LAYER_TO_INNER3:
|
||||||
SwitchLayer( DC, LAYER_N_4 );
|
SwitchLayer( DC, LAYER_N_4 );
|
||||||
// m_Layers->SelectLayer(GetScreen()->m_Active_Layer); // Ensure Layer manager synchronization
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HK_SWITCH_LAYER_TO_INNER4:
|
case HK_SWITCH_LAYER_TO_INNER4:
|
||||||
SwitchLayer( DC, LAYER_N_5 );
|
SwitchLayer( DC, LAYER_N_5 );
|
||||||
// m_Layers->SelectLayer(GetScreen()->m_Active_Layer); // Ensure Layer manager synchronization
|
break;
|
||||||
break;
|
|
||||||
|
|
||||||
case HK_SWITCH_LAYER_TO_INNER5:
|
case HK_SWITCH_LAYER_TO_INNER5:
|
||||||
SwitchLayer( DC, LAYER_N_6 );
|
SwitchLayer( DC, LAYER_N_6 );
|
||||||
// m_Layers->SelectLayer(GetScreen()->m_Active_Layer); // Ensure Layer manager synchronization
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HK_SWITCH_LAYER_TO_INNER6:
|
case HK_SWITCH_LAYER_TO_INNER6:
|
||||||
SwitchLayer( DC, LAYER_N_7 );
|
SwitchLayer( DC, LAYER_N_7 );
|
||||||
// m_Layers->SelectLayer(GetScreen()->m_Active_Layer); // Ensure Layer manager synchronization
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HK_HELP: // Display Current hotkey list
|
case HK_HELP: // Display Current hotkey list
|
||||||
|
|
|
@ -222,6 +222,7 @@ MIREPCB* WinEDA_PcbFrame::Create_Mire( wxDC* DC )
|
||||||
MirePcb->SetLayer( EDGE_N );
|
MirePcb->SetLayer( EDGE_N );
|
||||||
MirePcb->m_Width = g_DesignSettings.m_EdgeSegmentWidth;
|
MirePcb->m_Width = g_DesignSettings.m_EdgeSegmentWidth;
|
||||||
MirePcb->m_Size = MireDefaultSize;
|
MirePcb->m_Size = MireDefaultSize;
|
||||||
|
MirePcb->m_Pos = DrawPanel->GetScreen()->m_Curseur;
|
||||||
|
|
||||||
Place_Mire( MirePcb, DC );
|
Place_Mire( MirePcb, DC );
|
||||||
|
|
||||||
|
|
|
@ -522,6 +522,14 @@ void WinEDA_PcbFrame::ReFillLayerWidget()
|
||||||
} techLayerSeq[] = {
|
} techLayerSeq[] = {
|
||||||
|
|
||||||
/* some layers are not visible nor editable, don't show them for now:
|
/* some layers are not visible nor editable, don't show them for now:
|
||||||
|
* >> In fact they are useful here because we must be able to change
|
||||||
|
* the color and visibility because they can be visible.
|
||||||
|
* slikscreen and adhesive layers are visible (adhesive layer is rarely used)
|
||||||
|
* Solder mask and solder paste (used for pads) are visible in *Hight Color*
|
||||||
|
* mode when they are selected
|
||||||
|
* they are now editable because Pcbnew handle parameters (global and local)
|
||||||
|
* to calculate pads shapes on these layers
|
||||||
|
*/
|
||||||
{ ADHESIVE_N_FRONT, _("Adhesive on board's front") },
|
{ ADHESIVE_N_FRONT, _("Adhesive on board's front") },
|
||||||
{ ADHESIVE_N_BACK, _("Adhesive on board's back") },
|
{ ADHESIVE_N_BACK, _("Adhesive on board's back") },
|
||||||
{ SOLDERPASTE_N_FRONT, _("Solder paste on board's front") },
|
{ SOLDERPASTE_N_FRONT, _("Solder paste on board's front") },
|
||||||
|
@ -530,7 +538,6 @@ void WinEDA_PcbFrame::ReFillLayerWidget()
|
||||||
{ SILKSCREEN_N_BACK, _("Silkscreen on board's back") },
|
{ SILKSCREEN_N_BACK, _("Silkscreen on board's back") },
|
||||||
{ SOLDERMASK_N_FRONT, _("Solder mask on board's front") },
|
{ SOLDERMASK_N_FRONT, _("Solder mask on board's front") },
|
||||||
{ SOLDERMASK_N_BACK, _("Solder mask on board's back") },
|
{ SOLDERMASK_N_BACK, _("Solder mask on board's back") },
|
||||||
*/
|
|
||||||
{ DRAW_N, _( "Explanatory drawings" ) },
|
{ DRAW_N, _( "Explanatory drawings" ) },
|
||||||
{ COMMENT_N, _( "Explanatory comments" ) },
|
{ COMMENT_N, _( "Explanatory comments" ) },
|
||||||
{ ECO1_N, _( "TDB" ) },
|
{ ECO1_N, _( "TDB" ) },
|
||||||
|
@ -679,3 +686,17 @@ void WinEDA_PcbFrame::SaveSettings()
|
||||||
config->Write( SHOW_LAYER_MANAGER_TOOLS, (long)m_show_layer_manager_tools );
|
config->Write( SHOW_LAYER_MANAGER_TOOLS, (long)m_show_layer_manager_tools );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** Function SynchronizeLayersManager( )
|
||||||
|
* Must be called when info displayed in the layer manager Toolbar
|
||||||
|
* as been changed in the main window ( by hotkey or a tool option.
|
||||||
|
* Mainly when the active layer as changed.
|
||||||
|
* @param aFlag = flag giving the type of data (layers, checkboxes...)
|
||||||
|
*/
|
||||||
|
void WinEDA_PcbFrame::SynchronizeLayersManager( int aFlag )
|
||||||
|
{
|
||||||
|
// Ensure Layer manager synchronization for the active layer
|
||||||
|
if( (aFlag & 1) )
|
||||||
|
m_Layers->SelectLayer(GetScreen()->m_Active_Layer);
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue