You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

327 lines
17 KiB

9 years ago
9 years ago
9 years ago
  1. ///////////////////////////////////////////////////////////////////////////
  2. // C++ code generated with wxFormBuilder (version Sep 8 2021)
  3. // http://www.wxformbuilder.org/
  4. //
  5. // PLEASE DO *NOT* EDIT THIS FILE!
  6. ///////////////////////////////////////////////////////////////////////////
  7. #include "sim_plot_frame_base.h"
  8. ///////////////////////////////////////////////////////////////////////////
  9. SIM_PLOT_FRAME_BASE::SIM_PLOT_FRAME_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : KIWAY_PLAYER( parent, id, title, pos, size, style, name )
  10. {
  11. this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
  12. m_mainMenu = new wxMenuBar( 0 );
  13. m_fileMenu = new wxMenu();
  14. wxMenuItem* m_newPlot;
  15. m_newPlot = new wxMenuItem( m_fileMenu, wxID_NEW, wxString( _("New Plot") ) , wxEmptyString, wxITEM_NORMAL );
  16. m_fileMenu->Append( m_newPlot );
  17. m_fileMenu->AppendSeparator();
  18. wxMenuItem* m_openWorkbook;
  19. m_openWorkbook = new wxMenuItem( m_fileMenu, wxID_OPEN, wxString( _("Open...") ) , wxEmptyString, wxITEM_NORMAL );
  20. m_fileMenu->Append( m_openWorkbook );
  21. wxMenuItem* m_saveWorkbook;
  22. m_saveWorkbook = new wxMenuItem( m_fileMenu, wxID_SAVE, wxString( _("Save") ) , wxEmptyString, wxITEM_NORMAL );
  23. m_fileMenu->Append( m_saveWorkbook );
  24. wxMenuItem* m_saveWorkbookAs;
  25. m_saveWorkbookAs = new wxMenuItem( m_fileMenu, wxID_SAVEAS, wxString( _("Save As...") ) + wxT('\t') + wxT("SHIFT+CTRL+S"), wxEmptyString, wxITEM_NORMAL );
  26. m_fileMenu->Append( m_saveWorkbookAs );
  27. m_fileMenu->AppendSeparator();
  28. wxMenuItem* m_saveImage;
  29. m_saveImage = new wxMenuItem( m_fileMenu, ID_SAVE_AS_IMAGE, wxString( _("Save as Image") ) , wxEmptyString, wxITEM_NORMAL );
  30. m_fileMenu->Append( m_saveImage );
  31. wxMenuItem* m_saveCsv;
  32. m_saveCsv = new wxMenuItem( m_fileMenu, ID_SAVE_AS_CSV, wxString( _("Save as .csv File") ) , wxEmptyString, wxITEM_NORMAL );
  33. m_fileMenu->Append( m_saveCsv );
  34. m_fileMenu->AppendSeparator();
  35. wxMenuItem* m_exitSim;
  36. m_exitSim = new wxMenuItem( m_fileMenu, wxID_CLOSE, wxString( _("Close") ) + wxT('\t') + wxT("CTRL+W"), wxEmptyString, wxITEM_NORMAL );
  37. m_fileMenu->Append( m_exitSim );
  38. m_mainMenu->Append( m_fileMenu, _("File") );
  39. m_simulationMenu = new wxMenu();
  40. m_runSimulation = new wxMenuItem( m_simulationMenu, ID_MENU_RUN_SIM, wxString( _("Run Simulation") ) + wxT('\t') + wxT("Ctrl+R"), wxEmptyString, wxITEM_NORMAL );
  41. m_simulationMenu->Append( m_runSimulation );
  42. m_runSimulation->Enable( false );
  43. m_simulationMenu->AppendSeparator();
  44. m_addSignals = new wxMenuItem( m_simulationMenu, ID_MENU_ADD_SIGNAL, wxString( _("Add Signals...") ) + wxT('\t') + wxT("Ctrl+A"), wxEmptyString, wxITEM_NORMAL );
  45. m_simulationMenu->Append( m_addSignals );
  46. m_addSignals->Enable( false );
  47. m_probeSignals = new wxMenuItem( m_simulationMenu, ID_MENU_PROBE_SIGNALS, wxString( _("Probe from schematics") ) + wxT('\t') + wxT("Ctrl+P"), wxEmptyString, wxITEM_NORMAL );
  48. m_simulationMenu->Append( m_probeSignals );
  49. m_probeSignals->Enable( false );
  50. m_tuneValue = new wxMenuItem( m_simulationMenu, ID_MENU_TUNE_SIGNALS, wxString( _("Tune Component Value") ) + wxT('\t') + wxT("Ctrl+T"), wxEmptyString, wxITEM_NORMAL );
  51. m_simulationMenu->Append( m_tuneValue );
  52. m_tuneValue->Enable( false );
  53. m_simulationMenu->AppendSeparator();
  54. m_showNetlist = new wxMenuItem( m_simulationMenu, ID_MENU_SHOW_NETLIST, wxString( _("Show SPICE Netlist...") ) , _("Shows current simulation's netlist. Useful for debugging SPICE errors."), wxITEM_NORMAL );
  55. m_simulationMenu->Append( m_showNetlist );
  56. m_simulationMenu->AppendSeparator();
  57. m_boardAdapter = new wxMenuItem( m_simulationMenu, ID_MENU_SET_SIMUL, wxString( _("Settings...") ) , wxEmptyString, wxITEM_NORMAL );
  58. m_simulationMenu->Append( m_boardAdapter );
  59. m_mainMenu->Append( m_simulationMenu, _("Simulation") );
  60. m_viewMenu = new wxMenu();
  61. wxMenuItem* m_zoomIn;
  62. m_zoomIn = new wxMenuItem( m_viewMenu, wxID_ZOOM_IN, wxString( _("Zoom In") ) , wxEmptyString, wxITEM_NORMAL );
  63. m_viewMenu->Append( m_zoomIn );
  64. wxMenuItem* m_zoomOut;
  65. m_zoomOut = new wxMenuItem( m_viewMenu, wxID_ZOOM_OUT, wxString( _("Zoom Out") ) , wxEmptyString, wxITEM_NORMAL );
  66. m_viewMenu->Append( m_zoomOut );
  67. wxMenuItem* m_zoomFit;
  68. m_zoomFit = new wxMenuItem( m_viewMenu, wxID_ZOOM_FIT, wxString( _("Fit on Screen") ) , wxEmptyString, wxITEM_NORMAL );
  69. m_viewMenu->Append( m_zoomFit );
  70. m_viewMenu->AppendSeparator();
  71. wxMenuItem* m_showGrid;
  72. m_showGrid = new wxMenuItem( m_viewMenu, ID_MENU_SHOW_GRID, wxString( _("Show &Grid") ) , wxEmptyString, wxITEM_CHECK );
  73. m_viewMenu->Append( m_showGrid );
  74. wxMenuItem* m_showLegend;
  75. m_showLegend = new wxMenuItem( m_viewMenu, ID_MENU_SHOW_LEGEND, wxString( _("Show &Legend") ) , wxEmptyString, wxITEM_CHECK );
  76. m_viewMenu->Append( m_showLegend );
  77. m_viewMenu->AppendSeparator();
  78. wxMenuItem* m_showDotted;
  79. m_showDotted = new wxMenuItem( m_viewMenu, ID_MENU_DOTTED, wxString( _("Dotted Current/Phase") ) , wxEmptyString, wxITEM_CHECK );
  80. m_viewMenu->Append( m_showDotted );
  81. wxMenuItem* m_showWhiteBackground;
  82. m_showWhiteBackground = new wxMenuItem( m_viewMenu, ID_MENU_WHITE_BG, wxString( _("White Background") ) , wxEmptyString, wxITEM_CHECK );
  83. m_viewMenu->Append( m_showWhiteBackground );
  84. m_mainMenu->Append( m_viewMenu, _("View") );
  85. this->SetMenuBar( m_mainMenu );
  86. m_sizerMain = new wxBoxSizer( wxVERTICAL );
  87. m_toolBar = new wxToolBar( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTB_FLAT|wxTB_HORIZONTAL|wxTB_TEXT );
  88. m_toolBar->Realize();
  89. m_sizerMain->Add( m_toolBar, 0, wxEXPAND, 5 );
  90. m_splitterLeftRight = new wxSplitterWindow( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_3DSASH|wxSP_LIVE_UPDATE|wxBORDER_NONE );
  91. m_splitterLeftRight->SetSashGravity( 0.7 );
  92. m_splitterLeftRight->Connect( wxEVT_IDLE, wxIdleEventHandler( SIM_PLOT_FRAME_BASE::m_splitterLeftRightOnIdle ), NULL, this );
  93. m_splitterLeftRight->SetMinimumPaneSize( 50 );
  94. m_panelLeft = new wxPanel( m_splitterLeftRight, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
  95. m_panelLeft->SetMinSize( wxSize( 300,-1 ) );
  96. m_sizer11 = new wxBoxSizer( wxVERTICAL );
  97. m_splitterPlotAndConsole = new wxSplitterWindow( m_panelLeft, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_3DSASH|wxSP_LIVE_UPDATE );
  98. m_splitterPlotAndConsole->SetSashGravity( 0.8 );
  99. m_splitterPlotAndConsole->Connect( wxEVT_IDLE, wxIdleEventHandler( SIM_PLOT_FRAME_BASE::m_splitterPlotAndConsoleOnIdle ), NULL, this );
  100. m_splitterPlotAndConsole->SetMinimumPaneSize( 50 );
  101. m_plotPanel = new wxPanel( m_splitterPlotAndConsole, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
  102. m_plotPanel->SetMinSize( wxSize( -1,250 ) );
  103. m_sizerPlot = new wxBoxSizer( wxHORIZONTAL );
  104. m_workbook = new SIM_WORKBOOK( m_plotPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxAUI_NB_CLOSE_ON_ALL_TABS|wxAUI_NB_MIDDLE_CLICK_CLOSE|wxAUI_NB_TAB_MOVE|wxAUI_NB_TOP );
  105. m_workbook->SetMinSize( wxSize( 200,-1 ) );
  106. m_sizerPlot->Add( m_workbook, 1, wxEXPAND, 5 );
  107. m_plotPanel->SetSizer( m_sizerPlot );
  108. m_plotPanel->Layout();
  109. m_sizerPlot->Fit( m_plotPanel );
  110. m_panelConsole = new wxPanel( m_splitterPlotAndConsole, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
  111. m_panelConsole->SetMinSize( wxSize( -1,100 ) );
  112. m_sizerConsole = new wxBoxSizer( wxVERTICAL );
  113. m_simConsole = new wxTextCtrl( m_panelConsole, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_DONTWRAP|wxTE_MULTILINE|wxTE_READONLY );
  114. m_simConsole->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_TELETYPE, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
  115. m_simConsole->SetMinSize( wxSize( -1,100 ) );
  116. m_sizerConsole->Add( m_simConsole, 1, wxEXPAND, 5 );
  117. m_panelConsole->SetSizer( m_sizerConsole );
  118. m_panelConsole->Layout();
  119. m_sizerConsole->Fit( m_panelConsole );
  120. m_splitterPlotAndConsole->SplitHorizontally( m_plotPanel, m_panelConsole, 500 );
  121. m_sizer11->Add( m_splitterPlotAndConsole, 1, wxEXPAND, 5 );
  122. m_panelLeft->SetSizer( m_sizer11 );
  123. m_panelLeft->Layout();
  124. m_sizer11->Fit( m_panelLeft );
  125. m_sidePanel = new wxPanel( m_splitterLeftRight, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
  126. m_sidePanel->SetMinSize( wxSize( 200,-1 ) );
  127. m_sideSizer = new wxBoxSizer( wxVERTICAL );
  128. m_splitterSignals = new wxSplitterWindow( m_sidePanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_3DSASH|wxSP_LIVE_UPDATE );
  129. m_splitterSignals->SetSashGravity( 0.33 );
  130. m_splitterSignals->Connect( wxEVT_IDLE, wxIdleEventHandler( SIM_PLOT_FRAME_BASE::m_splitterSignalsOnIdle ), NULL, this );
  131. m_splitterSignals->SetMinimumPaneSize( 20 );
  132. m_panelSignals = new wxPanel( m_splitterSignals, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
  133. m_panelSignals->SetMinSize( wxSize( -1,100 ) );
  134. wxBoxSizer* bSizer10;
  135. bSizer10 = new wxBoxSizer( wxVERTICAL );
  136. m_staticTextSignals = new wxStaticText( m_panelSignals, wxID_ANY, _("Signals"), wxDefaultPosition, wxDefaultSize, 0 );
  137. m_staticTextSignals->Wrap( -1 );
  138. bSizer10->Add( m_staticTextSignals, 0, wxTOP|wxRIGHT, 5 );
  139. m_signals = new wxListView( m_panelSignals, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_REPORT|wxLC_SINGLE_SEL );
  140. bSizer10->Add( m_signals, 1, wxEXPAND, 5 );
  141. m_panelSignals->SetSizer( bSizer10 );
  142. m_panelSignals->Layout();
  143. bSizer10->Fit( m_panelSignals );
  144. m_panelCursorsAndTune = new wxPanel( m_splitterSignals, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
  145. m_panelCursorsAndTune->SetMinSize( wxSize( -1,300 ) );
  146. wxBoxSizer* bSizer9;
  147. bSizer9 = new wxBoxSizer( wxVERTICAL );
  148. m_splitterTuneValues = new wxSplitterWindow( m_panelCursorsAndTune, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_3DSASH|wxSP_LIVE_UPDATE|wxBORDER_NONE );
  149. m_splitterTuneValues->SetSashGravity( 0.5 );
  150. m_splitterTuneValues->Connect( wxEVT_IDLE, wxIdleEventHandler( SIM_PLOT_FRAME_BASE::m_splitterTuneValuesOnIdle ), NULL, this );
  151. m_splitterTuneValues->SetMinimumPaneSize( 20 );
  152. m_panelCursors = new wxPanel( m_splitterTuneValues, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
  153. m_panelCursors->SetMinSize( wxSize( -1,100 ) );
  154. wxBoxSizer* bSizer12;
  155. bSizer12 = new wxBoxSizer( wxVERTICAL );
  156. m_staticTextCursors = new wxStaticText( m_panelCursors, wxID_ANY, _("Cursors"), wxDefaultPosition, wxDefaultSize, 0 );
  157. m_staticTextCursors->Wrap( -1 );
  158. bSizer12->Add( m_staticTextCursors, 0, wxTOP|wxRIGHT, 5 );
  159. m_cursors = new wxListCtrl( m_panelCursors, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_HRULES|wxLC_REPORT|wxLC_SINGLE_SEL );
  160. bSizer12->Add( m_cursors, 1, wxEXPAND, 5 );
  161. m_panelCursors->SetSizer( bSizer12 );
  162. m_panelCursors->Layout();
  163. bSizer12->Fit( m_panelCursors );
  164. m_tunePanel = new wxPanel( m_splitterTuneValues, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
  165. m_tunePanel->SetMinSize( wxSize( -1,100 ) );
  166. wxBoxSizer* bSizer13;
  167. bSizer13 = new wxBoxSizer( wxVERTICAL );
  168. m_staticTextTune = new wxStaticText( m_tunePanel, wxID_ANY, _("Tune"), wxDefaultPosition, wxDefaultSize, 0 );
  169. m_staticTextTune->Wrap( -1 );
  170. bSizer13->Add( m_staticTextTune, 0, wxTOP|wxRIGHT, 5 );
  171. m_tuneSizer = new wxBoxSizer( wxHORIZONTAL );
  172. bSizer13->Add( m_tuneSizer, 1, wxEXPAND, 5 );
  173. m_tunePanel->SetSizer( bSizer13 );
  174. m_tunePanel->Layout();
  175. bSizer13->Fit( m_tunePanel );
  176. m_splitterTuneValues->SplitHorizontally( m_panelCursors, m_tunePanel, 0 );
  177. bSizer9->Add( m_splitterTuneValues, 1, wxEXPAND, 5 );
  178. m_panelCursorsAndTune->SetSizer( bSizer9 );
  179. m_panelCursorsAndTune->Layout();
  180. bSizer9->Fit( m_panelCursorsAndTune );
  181. m_splitterSignals->SplitHorizontally( m_panelSignals, m_panelCursorsAndTune, 0 );
  182. m_sideSizer->Add( m_splitterSignals, 1, wxEXPAND, 5 );
  183. m_sidePanel->SetSizer( m_sideSizer );
  184. m_sidePanel->Layout();
  185. m_sideSizer->Fit( m_sidePanel );
  186. m_splitterLeftRight->SplitVertically( m_panelLeft, m_sidePanel, 700 );
  187. m_sizerMain->Add( m_splitterLeftRight, 1, wxEXPAND, 5 );
  188. this->SetSizer( m_sizerMain );
  189. this->Layout();
  190. this->Centre( wxBOTH );
  191. // Connect Events
  192. m_fileMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( SIM_PLOT_FRAME_BASE::menuNewPlot ), this, m_newPlot->GetId());
  193. m_fileMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( SIM_PLOT_FRAME_BASE::menuOpenWorkbook ), this, m_openWorkbook->GetId());
  194. m_fileMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( SIM_PLOT_FRAME_BASE::menuSaveWorkbook ), this, m_saveWorkbook->GetId());
  195. m_fileMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( SIM_PLOT_FRAME_BASE::menuSaveWorkbookAs ), this, m_saveWorkbookAs->GetId());
  196. m_fileMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( SIM_PLOT_FRAME_BASE::menuSaveImage ), this, m_saveImage->GetId());
  197. m_fileMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( SIM_PLOT_FRAME_BASE::menuSaveCsv ), this, m_saveCsv->GetId());
  198. m_fileMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( SIM_PLOT_FRAME_BASE::menuExit ), this, m_exitSim->GetId());
  199. this->Connect( m_runSimulation->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( SIM_PLOT_FRAME_BASE::menuSimulateUpdate ) );
  200. this->Connect( m_addSignals->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( SIM_PLOT_FRAME_BASE::menuAddSignalsUpdate ) );
  201. this->Connect( m_probeSignals->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( SIM_PLOT_FRAME_BASE::menuProbeUpdate ) );
  202. this->Connect( m_tuneValue->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( SIM_PLOT_FRAME_BASE::menuTuneUpdate ) );
  203. m_viewMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( SIM_PLOT_FRAME_BASE::menuZoomIn ), this, m_zoomIn->GetId());
  204. m_viewMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( SIM_PLOT_FRAME_BASE::menuZoomOut ), this, m_zoomOut->GetId());
  205. m_viewMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( SIM_PLOT_FRAME_BASE::menuZoomFit ), this, m_zoomFit->GetId());
  206. m_viewMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( SIM_PLOT_FRAME_BASE::menuShowGrid ), this, m_showGrid->GetId());
  207. this->Connect( m_showGrid->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( SIM_PLOT_FRAME_BASE::menuShowGridUpdate ) );
  208. m_viewMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( SIM_PLOT_FRAME_BASE::menuShowLegend ), this, m_showLegend->GetId());
  209. this->Connect( m_showLegend->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( SIM_PLOT_FRAME_BASE::menuShowLegendUpdate ) );
  210. m_viewMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( SIM_PLOT_FRAME_BASE::menuShowDotted ), this, m_showDotted->GetId());
  211. this->Connect( m_showDotted->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( SIM_PLOT_FRAME_BASE::menuShowDottedUpdate ) );
  212. m_viewMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( SIM_PLOT_FRAME_BASE::menuWhiteBackground ), this, m_showWhiteBackground->GetId());
  213. this->Connect( m_showWhiteBackground->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( SIM_PLOT_FRAME_BASE::menuShowWhiteBackgroundUpdate ) );
  214. m_workbook->Connect( wxEVT_COMMAND_AUINOTEBOOK_END_DRAG, wxAuiNotebookEventHandler( SIM_PLOT_FRAME_BASE::onPlotDragged ), NULL, this );
  215. m_workbook->Connect( wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED, wxAuiNotebookEventHandler( SIM_PLOT_FRAME_BASE::onPlotChanged ), NULL, this );
  216. m_workbook->Connect( wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE, wxAuiNotebookEventHandler( SIM_PLOT_FRAME_BASE::onPlotClose ), NULL, this );
  217. m_workbook->Connect( wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSED, wxAuiNotebookEventHandler( SIM_PLOT_FRAME_BASE::onPlotClosed ), NULL, this );
  218. m_signals->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( SIM_PLOT_FRAME_BASE::onSignalDblClick ), NULL, this );
  219. m_signals->Connect( wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK, wxListEventHandler( SIM_PLOT_FRAME_BASE::onSignalRClick ), NULL, this );
  220. }
  221. SIM_PLOT_FRAME_BASE::~SIM_PLOT_FRAME_BASE()
  222. {
  223. // Disconnect Events
  224. this->Disconnect( ID_MENU_RUN_SIM, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( SIM_PLOT_FRAME_BASE::menuSimulateUpdate ) );
  225. this->Disconnect( ID_MENU_ADD_SIGNAL, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( SIM_PLOT_FRAME_BASE::menuAddSignalsUpdate ) );
  226. this->Disconnect( ID_MENU_PROBE_SIGNALS, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( SIM_PLOT_FRAME_BASE::menuProbeUpdate ) );
  227. this->Disconnect( ID_MENU_TUNE_SIGNALS, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( SIM_PLOT_FRAME_BASE::menuTuneUpdate ) );
  228. this->Disconnect( ID_MENU_SHOW_GRID, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( SIM_PLOT_FRAME_BASE::menuShowGridUpdate ) );
  229. this->Disconnect( ID_MENU_SHOW_LEGEND, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( SIM_PLOT_FRAME_BASE::menuShowLegendUpdate ) );
  230. this->Disconnect( ID_MENU_DOTTED, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( SIM_PLOT_FRAME_BASE::menuShowDottedUpdate ) );
  231. this->Disconnect( ID_MENU_WHITE_BG, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( SIM_PLOT_FRAME_BASE::menuShowWhiteBackgroundUpdate ) );
  232. m_workbook->Disconnect( wxEVT_COMMAND_AUINOTEBOOK_END_DRAG, wxAuiNotebookEventHandler( SIM_PLOT_FRAME_BASE::onPlotDragged ), NULL, this );
  233. m_workbook->Disconnect( wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED, wxAuiNotebookEventHandler( SIM_PLOT_FRAME_BASE::onPlotChanged ), NULL, this );
  234. m_workbook->Disconnect( wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE, wxAuiNotebookEventHandler( SIM_PLOT_FRAME_BASE::onPlotClose ), NULL, this );
  235. m_workbook->Disconnect( wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSED, wxAuiNotebookEventHandler( SIM_PLOT_FRAME_BASE::onPlotClosed ), NULL, this );
  236. m_signals->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( SIM_PLOT_FRAME_BASE::onSignalDblClick ), NULL, this );
  237. m_signals->Disconnect( wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK, wxListEventHandler( SIM_PLOT_FRAME_BASE::onSignalRClick ), NULL, this );
  238. }