diff --git a/3d-viewer/3d_frame.cpp b/3d-viewer/3d_frame.cpp index 860e6ec06e..7419c02680 100644 --- a/3d-viewer/3d_frame.cpp +++ b/3d-viewer/3d_frame.cpp @@ -562,6 +562,8 @@ void EDA_3D_FRAME::Process_Special_Functions( wxCommandEvent& event ) case ID_MENU3D_REALISTIC_MODE: GetPrm3DVisu().SetFlag( FL_USE_REALISTIC_MODE, isChecked ); + GetMenuBar()->FindItem( ID_MENU3D_COMMENTS_ONOFF )->Enable( !isChecked ); + GetMenuBar()->FindItem( ID_MENU3D_ECO_ONOFF )->Enable( !isChecked ); NewDisplay(); return; diff --git a/3d-viewer/3d_toolbar.cpp b/3d-viewer/3d_toolbar.cpp index 240ed1ed00..87d1e1466d 100644 --- a/3d-viewer/3d_toolbar.cpp +++ b/3d-viewer/3d_toolbar.cpp @@ -1,9 +1,9 @@ /* * This program source code file is part of KiCad, a free EDA CAD application. * - * Copyright (C) 2013 Jean-Pierre Charras, jp.charras at wanadoo.fr + * Copyright (C) 2015 Jean-Pierre Charras, jp.charras at wanadoo.fr * Copyright (C) 2013 Wayne Stambaugh - * Copyright (C) 1992-2013 KiCad Developers, see AUTHORS.txt for contributors. + * Copyright (C) 1992-2015 KiCad Developers, see AUTHORS.txt for contributors. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -280,6 +280,8 @@ void EDA_3D_FRAME::CreateMenuBar() AddMenuItem( layersMenu, ID_MENU3D_SOLDER_PASTE_ONOFF, _( "Show Solder &Paste Layers" ), KiBitmap( pads_mask_layers_xpm ), wxITEM_CHECK ); + // Other layers are not "board" layers, and are not shown in realistic mode + // These menus will be disabled in in realistic mode AddMenuItem( layersMenu, ID_MENU3D_COMMENTS_ONOFF, _( "Show &Comments and Drawings Layer" ), KiBitmap( edit_sheet_xpm ), wxITEM_CHECK ); @@ -301,6 +303,10 @@ void EDA_3D_FRAME::SetMenuBarOptionsState() // Set the state of toggle menus according to the current display options item = menuBar->FindItem( ID_MENU3D_REALISTIC_MODE ); item->Check( GetPrm3DVisu().IsRealisticMode() ); + item = menuBar->FindItem( ID_MENU3D_COMMENTS_ONOFF ); + item->Enable( !GetPrm3DVisu().IsRealisticMode() ); + item = menuBar->FindItem( ID_MENU3D_ECO_ONOFF ); + item->Enable( !GetPrm3DVisu().IsRealisticMode() ); item = menuBar->FindItem( ID_MENU3D_FL_RENDER_SHADOWS ); item->Check( GetPrm3DVisu().GetFlag( FL_RENDER_SHADOWS ) ); diff --git a/3d-viewer/dialogs/dialog_3D_view_option.cpp b/3d-viewer/dialogs/dialog_3D_view_option.cpp index ff67dcec72..a833e876e4 100644 --- a/3d-viewer/dialogs/dialog_3D_view_option.cpp +++ b/3d-viewer/dialogs/dialog_3D_view_option.cpp @@ -41,6 +41,7 @@ private: void OnShowAllClick( wxCommandEvent& event ); void OnShowNoneClick( wxCommandEvent& event ); void OnOKClick( wxCommandEvent& event ); + void OnCheckRealisticMode( wxCommandEvent& event ); }; @@ -72,6 +73,7 @@ DIALOG_3D_VIEW_OPTIONS::DIALOG_3D_VIEW_OPTIONS( EDA_3D_FRAME* parent ) void DIALOG_3D_VIEW_OPTIONS::initDialog() { + m_bitmapRealisticMode->SetBitmap( KiBitmap( use_3D_copper_thickness_xpm ) ); m_bitmapCuThickness->SetBitmap( KiBitmap( use_3D_copper_thickness_xpm ) ); m_bitmap3Dshapes->SetBitmap( KiBitmap( shape_3d_xpm ) ); m_bitmapAreas->SetBitmap( KiBitmap( add_zone_xpm ) ); @@ -83,6 +85,7 @@ void DIALOG_3D_VIEW_OPTIONS::initDialog() m_bitmapECO->SetBitmap( KiBitmap( edit_sheet_xpm ) ); // Check/uncheck checkboxes + m_checkBoxRealisticMode->SetValue( m_3Dprms.GetFlag( FL_USE_REALISTIC_MODE ) ); m_checkBoxCuThickness->SetValue( m_3Dprms.GetFlag( FL_USE_COPPER_THICKNESS ) ); m_checkBox3Dshapes->SetValue( m_3Dprms.GetFlag( FL_MODULE ) ); m_checkBoxAreas->SetValue( m_3Dprms.GetFlag( FL_ZONE ) ); @@ -90,10 +93,20 @@ void DIALOG_3D_VIEW_OPTIONS::initDialog() m_checkBoxSolderMask->SetValue( m_3Dprms.GetFlag( FL_SOLDERMASK ) ); m_checkBoxSolderpaste->SetValue( m_3Dprms.GetFlag( FL_SOLDERPASTE ) ); m_checkBoxAdhesive->SetValue( m_3Dprms.GetFlag( FL_ADHESIVE ) ); + m_checkBoxComments->SetValue( m_3Dprms.GetFlag( FL_COMMENTS ) ); m_checkBoxECO->SetValue( m_3Dprms.GetFlag( FL_ECO ) ); + bool enable = !m_3Dprms.GetFlag( FL_USE_REALISTIC_MODE ); + m_checkBoxComments->Enable( enable ); + m_checkBoxECO->Enable( enable ); } +void DIALOG_3D_VIEW_OPTIONS::OnCheckRealisticMode( wxCommandEvent& event ) +{ + bool enable = !m_checkBoxRealisticMode->GetValue(); + m_checkBoxComments->Enable( enable ); + m_checkBoxECO->Enable( enable ); +} void DIALOG_3D_VIEW_OPTIONS::OnShowAllClick( wxCommandEvent& event ) { @@ -127,6 +140,7 @@ void DIALOG_3D_VIEW_OPTIONS::OnShowNoneClick( wxCommandEvent& event ) void DIALOG_3D_VIEW_OPTIONS::OnOKClick( wxCommandEvent& event ) { + m_3Dprms.SetFlag( FL_USE_REALISTIC_MODE, m_checkBoxRealisticMode->GetValue() ); m_3Dprms.SetFlag( FL_USE_COPPER_THICKNESS, m_checkBoxCuThickness->GetValue() ); m_3Dprms.SetFlag( FL_MODULE, m_checkBox3Dshapes->GetValue() ); m_3Dprms.SetFlag( FL_ZONE, m_checkBoxAreas->GetValue() ); diff --git a/3d-viewer/dialogs/dialog_3D_view_option_base.cpp b/3d-viewer/dialogs/dialog_3D_view_option_base.cpp index 67b8c9cccb..642865c1e0 100644 --- a/3d-viewer/dialogs/dialog_3D_view_option_base.cpp +++ b/3d-viewer/dialogs/dialog_3D_view_option_base.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Jun 5 2014) +// C++ code generated with wxFormBuilder (version Jun 17 2015) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! @@ -20,10 +20,16 @@ DIALOG_3D_VIEW_OPTIONS_BASE::DIALOG_3D_VIEW_OPTIONS_BASE( wxWindow* parent, wxWi bSizerLeft = new wxBoxSizer( wxHORIZONTAL ); wxFlexGridSizer* fgSizeShowOpts; - fgSizeShowOpts = new wxFlexGridSizer( 9, 2, 0, 0 ); + fgSizeShowOpts = new wxFlexGridSizer( 0, 2, 0, 0 ); fgSizeShowOpts->SetFlexibleDirection( wxBOTH ); fgSizeShowOpts->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + m_bitmapRealisticMode = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizeShowOpts->Add( m_bitmapRealisticMode, 0, wxALL, 5 ); + + m_checkBoxRealisticMode = new wxCheckBox( this, wxID_ANY, _("Realistic mode"), wxDefaultPosition, wxDefaultSize, 0 ); + fgSizeShowOpts->Add( m_checkBoxRealisticMode, 0, wxALL, 5 ); + m_bitmapCuThickness = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 ); fgSizeShowOpts->Add( m_bitmapCuThickness, 0, wxALL, 5 ); @@ -116,18 +122,18 @@ DIALOG_3D_VIEW_OPTIONS_BASE::DIALOG_3D_VIEW_OPTIONS_BASE( wxWindow* parent, wxWi this->Centre( wxBOTH ); // Connect Events + m_checkBoxRealisticMode->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_3D_VIEW_OPTIONS_BASE::OnCheckRealisticMode ), NULL, this ); m_buttonShowAll->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_3D_VIEW_OPTIONS_BASE::OnShowAllClick ), NULL, this ); m_buttonShowNone->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_3D_VIEW_OPTIONS_BASE::OnShowNoneClick ), NULL, this ); - m_sdbSizerCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_3D_VIEW_OPTIONS_BASE::OnCancelClick ), NULL, this ); m_sdbSizerOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_3D_VIEW_OPTIONS_BASE::OnOKClick ), NULL, this ); } DIALOG_3D_VIEW_OPTIONS_BASE::~DIALOG_3D_VIEW_OPTIONS_BASE() { // Disconnect Events + m_checkBoxRealisticMode->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_3D_VIEW_OPTIONS_BASE::OnCheckRealisticMode ), NULL, this ); m_buttonShowAll->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_3D_VIEW_OPTIONS_BASE::OnShowAllClick ), NULL, this ); m_buttonShowNone->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_3D_VIEW_OPTIONS_BASE::OnShowNoneClick ), NULL, this ); - m_sdbSizerCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_3D_VIEW_OPTIONS_BASE::OnCancelClick ), NULL, this ); m_sdbSizerOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_3D_VIEW_OPTIONS_BASE::OnOKClick ), NULL, this ); } diff --git a/3d-viewer/dialogs/dialog_3D_view_option_base.fbp b/3d-viewer/dialogs/dialog_3D_view_option_base.fbp index c800336bfc..072b684437 100644 --- a/3d-viewer/dialogs/dialog_3D_view_option_base.fbp +++ b/3d-viewer/dialogs/dialog_3D_view_option_base.fbp @@ -116,8 +116,177 @@ fgSizeShowOpts wxFLEX_GROWMODE_SPECIFIED none - 9 + 0 0 + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_bitmapRealisticMode + 1 + + + protected + 1 + + Resizable + 1 + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Realistic mode + + 0 + + + 0 + + 1 + m_checkBoxRealisticMode + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnCheckRealisticMode + + + + + + + + + + + + + + + + + + + + + + + + 5 wxALL @@ -1928,7 +2097,7 @@ m_sdbSizer protected - OnCancelClick + diff --git a/3d-viewer/dialogs/dialog_3D_view_option_base.h b/3d-viewer/dialogs/dialog_3D_view_option_base.h index c3cff5391f..ca8db71ae3 100644 --- a/3d-viewer/dialogs/dialog_3D_view_option_base.h +++ b/3d-viewer/dialogs/dialog_3D_view_option_base.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Jun 5 2014) +// C++ code generated with wxFormBuilder (version Jun 17 2015) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! @@ -38,8 +38,10 @@ class DIALOG_SHIM; class DIALOG_3D_VIEW_OPTIONS_BASE : public DIALOG_SHIM { private: - + protected: + wxStaticBitmap* m_bitmapRealisticMode; + wxCheckBox* m_checkBoxRealisticMode; wxStaticBitmap* m_bitmapCuThickness; wxCheckBox* m_checkBoxCuThickness; wxStaticBitmap* m_bitmap3Dshapes; @@ -64,19 +66,19 @@ class DIALOG_3D_VIEW_OPTIONS_BASE : public DIALOG_SHIM wxStdDialogButtonSizer* m_sdbSizer; wxButton* m_sdbSizerOK; wxButton* m_sdbSizerCancel; - + // Virtual event handlers, overide them in your derived class + virtual void OnCheckRealisticMode( wxCommandEvent& event ) { event.Skip(); } virtual void OnShowAllClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnShowNoneClick( wxCommandEvent& event ) { event.Skip(); } - virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnOKClick( wxCommandEvent& event ) { event.Skip(); } - - + + public: - - DIALOG_3D_VIEW_OPTIONS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("3D Display Options"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); + + DIALOG_3D_VIEW_OPTIONS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("3D Display Options"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); ~DIALOG_3D_VIEW_OPTIONS_BASE(); - + }; #endif //__DIALOG_3D_VIEW_OPTION_BASE_H__