/* Set up the items and layer colors and show/no show options */ #include "fctsys.h" #include "gr_basic.h" #include "common.h" #include "pcbnew.h" #include "protos.h" /* Variables locales */ int CurrentColor; /* Fonctions locales: */ /* Macro utile : */ #define ADR( numlayer ) &g_DesignSettings.m_LayerColor[(numlayer)] #define BUTT_SIZE_X 25 #define BUTT_SIZE_Y 15 enum col_sel_id { ID_COLOR_RESET_SHOW_LAYER_ON = 1800, ID_COLOR_RESET_SHOW_LAYER_OFF, ID_COLOR_EXIT, ID_COLOR_CHECKBOX_ONOFF, ID_COLOR_SETUP }; /**********************************/ /* Liste des menus de Menu_Layers */ /**********************************/ struct ColorButton { const wxString m_Title; int m_LayerNumber; int* m_Color; ///< pointer to color variable to manipulate bool m_NoDisplayIsColor; ///< TRUE if bit ITEM_NOT_SHOW of the color variable should be manipulated bool* m_NoDisplay; ///< pointer to the on/off display control variable, if it is not the color variable int m_Id; wxBitmapButton* m_Button; int m_State; wxCheckBox* m_CheckBox; ///< Display ON/OFF toggle }; static ColorButton Msg_Layers_Cu = { _( "Copper Layers" ), -1 /* Title */ }; static ColorButton Layer_1_Butt = { wxEmptyString, CUIVRE_N, /* Title */ ADR( CUIVRE_N ), /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Layer_2_Butt = { wxEmptyString, 1, /* Title */ ADR( 1 ), /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Layer_3_Butt = { wxEmptyString, 2, /* Title */ ADR( 2 ), /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Layer_4_Butt = { wxEmptyString, 3, /* Title */ ADR( 3 ), /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Layer_5_Butt = { wxEmptyString, 4, /* Title */ ADR( 4 ), /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Layer_6_Butt = { wxEmptyString, 5, /* Title */ ADR( 5 ), /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Layer_7_Butt = { wxEmptyString, 6, /* Title */ ADR( 6 ), /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Layer_8_Butt = { wxEmptyString, 7, /* Title */ ADR( 7 ), /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Layer_9_Butt = { wxEmptyString, 8, /* Title */ ADR( 8 ), /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Layer_10_Butt = { wxEmptyString, 9, /* Title */ ADR( 9 ), /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Layer_11_Butt = { wxEmptyString, 10, /* Title */ ADR( 10 ), /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Layer_12_Butt = { wxEmptyString, 11, /* Title */ ADR( 11 ), /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Layer_13_Butt = { wxEmptyString, 12, /* Title */ ADR( 12 ), /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Layer_14_Butt = { wxEmptyString, 13, /* Title */ ADR( 13 ), /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Layer_15_Butt = { wxEmptyString, 14, /* Title */ ADR( 14 ), /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Layer_16_Butt = { wxEmptyString, CMP_N, /* Title */ ADR( CMP_N ), /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Msg_Layers_Tech = { _( "Tech Layers" ), -1 /* Title */ }; static ColorButton Layer_17_Butt = { wxEmptyString, ADHESIVE_N_CU, /* Title */ ADR( ADHESIVE_N_CU ), /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Layer_18_Butt = { wxEmptyString, ADHESIVE_N_CMP, /* Title */ ADR( ADHESIVE_N_CMP ), /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Layer_19_Butt = { wxEmptyString, SOLDERPASTE_N_CU, /* Title */ ADR( SOLDERPASTE_N_CU ), /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Layer_20_Butt = { wxEmptyString, SOLDERPASTE_N_CMP, /* Title */ ADR( SOLDERPASTE_N_CMP ), /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Layer_21_Butt = { wxEmptyString, SILKSCREEN_N_CU, /* Title */ ADR( SILKSCREEN_N_CU ), /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Layer_22_Butt = { wxEmptyString, SILKSCREEN_N_CMP, /* Title */ ADR( SILKSCREEN_N_CMP ), /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Layer_23_Butt = { wxEmptyString, SOLDERMASK_N_CU, /* Title */ ADR( SOLDERMASK_N_CU ), /* adr du parametre optionnel */ TRUE /* adr du parametre display on/off */ }; static ColorButton Layer_24_Butt = { wxEmptyString, SOLDERMASK_N_CMP, /* Title */ ADR( SOLDERMASK_N_CMP ), /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Layer_25_Butt = { wxEmptyString, DRAW_N, /* Title */ ADR( DRAW_N ), /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Layer_26_Butt = { wxEmptyString, COMMENT_N, /* Title */ ADR( COMMENT_N ), /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Layer_27_Butt = { wxEmptyString, ECO1_N, /* Title */ ADR( ECO1_N ), /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Layer_28_Butt = { wxEmptyString, ECO2_N, /* Title */ ADR( ECO2_N ), /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Layer_29_Butt = { wxEmptyString, EDGE_N, /* Title */ ADR( EDGE_N ), /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Msg_Others_Items = { wxT( "Others" ), -1 /* Title */ }; static ColorButton Via_Normale_Butt = { wxT( "*" ), VIA_NORMALE, /* Title */ &g_DesignSettings.m_ViaColor[VIA_NORMALE], /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Via_Aveugle_Butt = { wxT( "*" ), VIA_ENTERREE, /* Title */ &g_DesignSettings.m_ViaColor[VIA_ENTERREE], /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Via_Borgne_Butt = { wxT( "*" ), VIA_BORGNE, /* Title */ &g_DesignSettings.m_ViaColor[VIA_BORGNE], /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Ratsnest_Butt = { _( "Ratsnest" ), /* Title */ -1, &g_DesignSettings.m_RatsnestColor, /* adr du parametre optionnel */ FALSE, &g_Show_Ratsnest // address of boolean display control parameter to toggle }; static ColorButton Pad_Cu_Butt = { _( "Pad Cu" ), /* Title */ -1, &g_PadCUColor, /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Pad_Cmp_Butt = { _( "Pad Cmp" ), /* Title */ -1, &g_PadCMPColor, /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Text_Mod_Cu_Butt = { _( "Text Module Cu" ), /* Title */ -1, &g_ModuleTextCUColor, /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Text_Mod_Cmp_Butt = { _( "Text Module Cmp" ), /* Title */ -1, &g_ModuleTextCMPColor, /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Text_Mod_NoVisible_Butt = { _( "Text Module invisible" ), /* Title */ -1, &g_ModuleTextNOVColor, /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Anchors_Butt = { _( "Anchors" ), /* Title */ -1, &g_AnchorColor, /* adr du parametre optionnel */ TRUE // toggle bit ITEM_NOT_SHOW of the color variable }; static ColorButton Grid_Butt = { _( "Grid" ), /* Title */ -1, &g_GridColor, /* adr du parametre optionnel */ FALSE, &g_ShowGrid // address of boolean display control parameter to toggle }; static ColorButton Show_Zones_Butt = { _( "Show Zones" ), /* Title */ -1, NULL, /* adr du parametre optionnel */ FALSE, &DisplayOpt.DisplayZones // address of boolean display control parameter to toggle }; static ColorButton Show_Pads_Noconnect_Butt = { _( "Show Noconnect" ), /* Title */ -1, NULL, /* adr du parametre optionnel */ FALSE, &DisplayOpt.DisplayPadNoConn // address of boolean display control parameter to toggle }; static ColorButton Show_Modules_Cmp_Butt = { _( "Show Modules Cmp" ), /* Title */ -1, NULL, /* adr du parametre optionnel */ FALSE, &DisplayOpt.Show_Modules_Cmp // address of boolean display control parameter to toggle }; static ColorButton Show_Modules_Cu_Butt = { _( "Show Modules Cu" ), /* Title */ -1, NULL, /* adr du parametre optionnel */ FALSE, &DisplayOpt.Show_Modules_Cu // address of boolean display control parameter to toggle }; static ColorButton* laytool_list[] = { &Msg_Layers_Cu, &Layer_1_Butt, &Layer_2_Butt, &Layer_3_Butt, &Layer_4_Butt, &Layer_5_Butt, &Layer_6_Butt, &Layer_7_Butt, &Layer_8_Butt, &Layer_9_Butt, &Layer_10_Butt, &Layer_11_Butt, &Layer_12_Butt, &Layer_13_Butt, &Layer_14_Butt, &Layer_15_Butt, &Layer_16_Butt, &Msg_Layers_Tech, &Layer_17_Butt, &Layer_18_Butt, &Layer_19_Butt, &Layer_20_Butt, &Layer_21_Butt, &Layer_22_Butt, &Layer_23_Butt, &Layer_24_Butt, &Layer_25_Butt, &Layer_26_Butt, &Layer_27_Butt, &Layer_28_Butt, &Layer_29_Butt, // &Layer_30_Butt, // &Layer_31_Butt, // &Layer_32_Butt, &Msg_Others_Items, &Via_Normale_Butt, &Via_Aveugle_Butt, &Via_Borgne_Butt, &Ratsnest_Butt, &Pad_Cu_Butt, &Pad_Cmp_Butt, &Text_Mod_Cu_Butt, &Text_Mod_Cmp_Butt, &Text_Mod_NoVisible_Butt, &Anchors_Butt, &Grid_Butt, &Show_Zones_Butt, &Show_Pads_Noconnect_Butt, &Show_Modules_Cmp_Butt, &Show_Modules_Cu_Butt, NULL }; /*************************************************************/ /* classe derivee pour la frame de Configuration des couleurs*/ /*************************************************************/ class WinEDA_SetColorsFrame : public wxDialog { private: WinEDA_DrawFrame* m_Parent; public: // Constructor and destructor WinEDA_SetColorsFrame( WinEDA_DrawFrame * parent, const wxPoint &framepos ); ~WinEDA_SetColorsFrame() { }; private: void OnQuit( wxCommandEvent& event ); void SetColor( wxCommandEvent& event ); void SetDisplayOnOff( wxCommandEvent& event ); void ResetDisplayLayersCu( wxCommandEvent& event ); DECLARE_EVENT_TABLE() }; /* Table des evenements pour WinEDA_SetColorsFrame */ BEGIN_EVENT_TABLE( WinEDA_SetColorsFrame, wxDialog ) EVT_BUTTON( ID_COLOR_RESET_SHOW_LAYER_OFF, WinEDA_SetColorsFrame::ResetDisplayLayersCu ) EVT_BUTTON( ID_COLOR_RESET_SHOW_LAYER_ON, WinEDA_SetColorsFrame::ResetDisplayLayersCu ) EVT_BUTTON( ID_COLOR_EXIT, WinEDA_SetColorsFrame::OnQuit ) EVT_CHECKBOX( ID_COLOR_CHECKBOX_ONOFF, WinEDA_SetColorsFrame::SetDisplayOnOff ) EVT_BUTTON( ID_COLOR_SETUP, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 1, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 2, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 3, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 4, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 5, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 6, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 7, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 8, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 9, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 10, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 11, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 12, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 13, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 14, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 15, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 16, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 17, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 18, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 19, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 20, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 21, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 22, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 23, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 24, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 25, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 26, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 27, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 28, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 29, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 30, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 31, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 32, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 33, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 34, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 35, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 36, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 37, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 38, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 39, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 40, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 41, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 42, WinEDA_SetColorsFrame::SetColor ) EVT_BUTTON( ID_COLOR_SETUP + 43, WinEDA_SetColorsFrame::SetColor ) // EVT_BUTTON( ID_COLOR_SETUP + 44, WinEDA_SetColorsFrame::SetColor ) END_EVENT_TABLE() /*****************************************************/ void DisplayColorSetupFrame( WinEDA_DrawFrame* parent, const wxPoint& framepos ) /*****************************************************/ { WinEDA_SetColorsFrame* frame = new WinEDA_SetColorsFrame( parent, framepos ); frame->ShowModal(); frame->Destroy(); } /**********************************************************************/ WinEDA_SetColorsFrame::WinEDA_SetColorsFrame( WinEDA_DrawFrame* parent, const wxPoint& framepos ) : wxDialog( parent, -1, _( "Colors:" ), framepos, wxSize( -1, -1 ), DIALOG_STYLE ) /**********************************************************************/ { #define START_Y 25 wxBitmapButton* ButtonB; int ii, yy, xx, butt_ID, buttcolor; wxPoint pos; wxSize winsize; int w = BUTT_SIZE_X; int h = BUTT_SIZE_Y; wxString msg; m_Parent = parent; SetFont( *g_DialogFont ); pos.x = 5; pos.y = START_Y; for( ii = 0; laytool_list[ii] != NULL; ii++ ) { if( !laytool_list[ii]->m_Color && !laytool_list[ii]->m_NoDisplay ) { if( pos.y != START_Y ) { pos.x += w + 120; pos.y = START_Y; } if( laytool_list[ii]->m_LayerNumber >= 0 ) { if( laytool_list[ii]->m_Title == wxT( "*" ) ) { msg = g_ViaType_Name[laytool_list[ii]->m_LayerNumber]; } else msg = ReturnPcbLayerName( laytool_list[ii]->m_LayerNumber ); } else msg = wxGetTranslation( laytool_list[ii]->m_Title.GetData() ); new wxStaticText( this, -1, msg, wxPoint (pos.x + 10, pos.y - 18 ), wxSize( -1, -1 ), 0 ); continue; } if( laytool_list[ii]->m_Id == 0 ) laytool_list[ii]->m_Id = ID_COLOR_SETUP + ii; butt_ID = laytool_list[ii]->m_Id; laytool_list[ii]->m_CheckBox = new wxCheckBox( this, ID_COLOR_CHECKBOX_ONOFF, wxEmptyString, pos ); if( laytool_list[ii]->m_NoDisplayIsColor ) { if( *laytool_list[ii]->m_Color & ITEM_NOT_SHOW ) laytool_list[ii]->m_CheckBox->SetValue( FALSE ); else laytool_list[ii]->m_CheckBox->SetValue( TRUE ); } else if( laytool_list[ii]->m_NoDisplay ) laytool_list[ii]->m_CheckBox->SetValue( *laytool_list[ii]->m_NoDisplay ); xx = 3 + laytool_list[ii]->m_CheckBox->GetSize().x; if( laytool_list[ii]->m_Color ) { wxMemoryDC iconDC; wxBitmap ButtBitmap( w, h ); iconDC.SelectObject( ButtBitmap ); buttcolor = *laytool_list[ii]->m_Color & MASKCOLOR; wxBrush Brush; iconDC.SelectObject( ButtBitmap ); iconDC.SetPen( *wxBLACK_PEN ); Brush.SetColour( ColorRefs[buttcolor].m_Red, ColorRefs[buttcolor].m_Green, ColorRefs[buttcolor].m_Blue ); Brush.SetStyle( wxSOLID ); iconDC.SetBrush( Brush ); iconDC.DrawRectangle( 0, 0, w, h ); ButtonB = new wxBitmapButton( this, butt_ID, ButtBitmap, wxPoint(pos.x + xx, pos.y), wxSize(w, h) ); laytool_list[ii]->m_Button = ButtonB; xx += 3 + w; } if( laytool_list[ii]->m_LayerNumber >= 0 ) { if( laytool_list[ii]->m_Title == wxT( "*" ) ) { msg = g_ViaType_Name[laytool_list[ii]->m_LayerNumber]; } else msg = ReturnPcbLayerName( laytool_list[ii]->m_LayerNumber ); } else msg = wxGetTranslation( laytool_list[ii]->m_Title.GetData() ); new wxStaticText( this, -1, msg, wxPoint (pos.x + xx, pos.y + 1 ), wxSize( -1, -1 ), 0 ); yy = h + 5; pos.y += yy; } pos.x = 150; pos.y = 300; wxButton* Button = new wxButton( this, ID_COLOR_RESET_SHOW_LAYER_ON, _( "Show All" ), pos ); Button->SetForegroundColour( wxColor( 0, 100, 0 ) ); pos.y += Button->GetSize().y + 2; Button = new wxButton( this, ID_COLOR_RESET_SHOW_LAYER_OFF, _( "Show None" ), pos ); Button->SetForegroundColour( wxColor( 100, 0, 0 ) ); pos.x += Button->GetSize().x + 50; Button = new wxButton( this, ID_COLOR_EXIT, _( "Exit" ), pos ); Button->SetForegroundColour( *wxBLUE ); winsize.x = 500; winsize.y = pos.y + Button->GetSize().y + 5; SetClientSize( winsize ); } /**********************************************************************/ void WinEDA_SetColorsFrame::OnQuit( wxCommandEvent& WXUNUSED (event) ) /**********************************************************************/ { Close( true ); // true is to force the frame to close } /**********************************************************/ void WinEDA_SetColorsFrame::SetColor( wxCommandEvent& event ) /**********************************************************/ { int ii; int id = event.GetId(); int color; int w = BUTT_SIZE_X, h = BUTT_SIZE_Y; color = DisplayColorFrame( this, *laytool_list[id - ID_COLOR_SETUP]->m_Color ); if( color < 0 ) return; for( ii = 0; laytool_list[ii] != NULL; ii++ ) { if( laytool_list[ii]->m_Id != id ) continue; if( laytool_list[ii]->m_Color == NULL ) continue; if( *laytool_list[ii]->m_Color == color ) break; *laytool_list[ii]->m_Color = color; wxMemoryDC iconDC; wxBitmapButton* Button = laytool_list[ii]->m_Button; wxBitmap ButtBitmap = Button->GetBitmapLabel(); iconDC.SelectObject( ButtBitmap ); int buttcolor = *laytool_list[ii]->m_Color; wxBrush Brush; iconDC.SetPen( *wxBLACK_PEN ); Brush.SetColour( ColorRefs[buttcolor].m_Red, ColorRefs[buttcolor].m_Green, ColorRefs[buttcolor].m_Blue ); Brush.SetStyle( wxSOLID ); iconDC.SetBrush( Brush ); iconDC.DrawRectangle( 0, 0, w, h ); Button->SetBitmapLabel( ButtBitmap ); Button->Refresh(); SetDisplayOnOff( event ); m_Parent->m_CurrentScreen->SetRefreshReq(); } Refresh( FALSE ); } /******************************************************************/ void WinEDA_SetColorsFrame::SetDisplayOnOff( wxCommandEvent& event ) /******************************************************************/ { for( int ii = 0; laytool_list[ii] != NULL; ii++ ) { if( laytool_list[ii]->m_CheckBox == NULL ) continue; if( !laytool_list[ii]->m_NoDisplayIsColor && (laytool_list[ii]->m_NoDisplay == NULL) ) continue; if( laytool_list[ii]->m_NoDisplayIsColor ) { if( laytool_list[ii]->m_CheckBox->GetValue() ) *laytool_list[ii]->m_Color &= ~ITEM_NOT_SHOW; else *laytool_list[ii]->m_Color |= ITEM_NOT_SHOW; } else { *laytool_list[ii]->m_NoDisplay = laytool_list[ii]->m_CheckBox->GetValue(); // a hack, we have g_DrawGrid and m_Parent->m_Draw_Grid both. // show me a better way, please. if( laytool_list[ii]->m_NoDisplay == &g_ShowGrid ) m_Parent->m_Draw_Grid = g_ShowGrid; } m_Parent->m_CurrentScreen->SetRefreshReq(); } } /**********************************************************************/ void WinEDA_SetColorsFrame::ResetDisplayLayersCu( wxCommandEvent& event ) /**********************************************************************/ { bool NewState = (event.GetId() == ID_COLOR_RESET_SHOW_LAYER_ON) ? TRUE : FALSE; for( int ii = 1; ii < 17; ii++ ) { if( laytool_list[ii]->m_CheckBox == NULL ) continue; laytool_list[ii]->m_CheckBox->SetValue( NewState ); } SetDisplayOnOff( event ); }