From: Markus R. <rol...@us...> - 2007-07-09 18:42:18
|
Update of /cvsroot/simspark/simspark/contrib/rsgedit In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv12699 Modified Files: mainframe.cpp mainframe.h Log Message: - handle edit, copy, paste etc. fired from the menu() in mainframe::OnEditCommand() and forward to edit component Index: mainframe.h =================================================================== RCS file: /cvsroot/simspark/simspark/contrib/rsgedit/mainframe.h,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** mainframe.h 8 Jul 2007 14:43:53 -0000 1.19 --- mainframe.h 9 Jul 2007 18:42:09 -0000 1.20 *************** *** 165,168 **** --- 165,169 ---- void OnTabContextMenu(wxFlatNotebookEvent& event); + void OnEditCommand(wxCommandEvent& event); void OnEditSavePointReached(wxScintillaEvent& event); void OnEditSavePointLeft(wxScintillaEvent& event); Index: mainframe.cpp =================================================================== RCS file: /cvsroot/simspark/simspark/contrib/rsgedit/mainframe.cpp,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** mainframe.cpp 8 Jul 2007 14:43:53 -0000 1.26 --- mainframe.cpp 9 Jul 2007 18:42:09 -0000 1.27 *************** *** 120,123 **** --- 120,130 ---- EVT_SCI_SAVEPOINTLEFT(wxID_ANY, mainframe::OnEditSavePointLeft) + EVT_MENU(wxID_UNDO, mainframe::OnEditCommand) + EVT_MENU(wxID_REDO, mainframe::OnEditCommand) + EVT_MENU(wxID_CUT, mainframe::OnEditCommand) + EVT_MENU(wxID_COPY, mainframe::OnEditCommand) + EVT_MENU(wxID_PASTE, mainframe::OnEditCommand) + EVT_MENU(wxID_SELECTALL, mainframe::OnEditCommand) + EVT_SPARK_CONTEXT(ID_SPARK_CONTEXT, mainframe::OnSparkContext) END_EVENT_TABLE() *************** *** 155,169 **** MainFrame_menubar->Append(wxglade_tmp_menu_1, wxT("&File")); wxMenu* wxglade_tmp_menu_2 = new wxMenu(); ! wxglade_tmp_menu_2->Append(ID_VIEW_LOG, wxT("message &log"), wxT("Show/Hide message log"), wxITEM_CHECK); ! wxglade_tmp_menu_2->Append(ID_VIEW_TREE, wxT("object &tree"), wxT("Show/Hide object tree"), wxITEM_CHECK); ! MainFrame_menubar->Append(wxglade_tmp_menu_2, wxT("&View")); wxMenu* wxglade_tmp_menu_3 = new wxMenu(); ! wxglade_tmp_menu_3->Append(ID_SIM_STEP, wxT("St&ep"), wxEmptyString, wxITEM_NORMAL); ! wxglade_tmp_menu_3->Append(ID_SIM_START, wxT("&Start"), wxT("Start simulation"), wxITEM_NORMAL); ! wxglade_tmp_menu_3->Append(ID_SIM_PAUSE, wxT("&Pause"), wxT("Pause Simulation"), wxITEM_NORMAL); ! MainFrame_menubar->Append(wxglade_tmp_menu_3, wxT("&Simulation")); wxMenu* wxglade_tmp_menu_4 = new wxMenu(); ! wxglade_tmp_menu_4->Append(ID_HELP_ABOUT, wxT("&About"), wxEmptyString, wxITEM_NORMAL); ! MainFrame_menubar->Append(wxglade_tmp_menu_4, wxT("&Help")); MainFrame_statusbar = CreateStatusBar(1, 0); mCtrPropList = new wxListCtrl(window_1_pane_1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_REPORT|wxSIMPLE_BORDER); --- 162,186 ---- MainFrame_menubar->Append(wxglade_tmp_menu_1, wxT("&File")); wxMenu* wxglade_tmp_menu_2 = new wxMenu(); ! wxglade_tmp_menu_2->Append(wxID_UNDO, wxT("&Undo"), wxEmptyString, wxITEM_NORMAL); ! wxglade_tmp_menu_2->Append(wxID_REDO, wxT("&Redo"), wxEmptyString, wxITEM_NORMAL); ! wxglade_tmp_menu_2->AppendSeparator(); ! wxglade_tmp_menu_2->Append(wxID_CUT, wxT("Cu&t"), wxEmptyString, wxITEM_NORMAL); ! wxglade_tmp_menu_2->Append(wxID_COPY, wxT("&Copy"), wxEmptyString, wxITEM_NORMAL); ! wxglade_tmp_menu_2->Append(wxID_PASTE, wxT("&Paste"), wxEmptyString, wxITEM_NORMAL); ! wxglade_tmp_menu_2->AppendSeparator(); ! wxglade_tmp_menu_2->Append(wxID_SELECTALL, wxT("Select &All"), wxEmptyString, wxITEM_NORMAL); ! MainFrame_menubar->Append(wxglade_tmp_menu_2, wxT("&Edit")); wxMenu* wxglade_tmp_menu_3 = new wxMenu(); ! wxglade_tmp_menu_3->Append(ID_VIEW_LOG, wxT("message &log"), wxT("Show/Hide message log"), wxITEM_CHECK); ! wxglade_tmp_menu_3->Append(ID_VIEW_TREE, wxT("object &tree"), wxT("Show/Hide object tree"), wxITEM_CHECK); ! MainFrame_menubar->Append(wxglade_tmp_menu_3, wxT("&View")); wxMenu* wxglade_tmp_menu_4 = new wxMenu(); ! wxglade_tmp_menu_4->Append(ID_SIM_STEP, wxT("St&ep"), wxEmptyString, wxITEM_NORMAL); ! wxglade_tmp_menu_4->Append(ID_SIM_START, wxT("&Start"), wxT("Start simulation"), wxITEM_NORMAL); ! wxglade_tmp_menu_4->Append(ID_SIM_PAUSE, wxT("&Pause"), wxT("Pause Simulation"), wxITEM_NORMAL); ! MainFrame_menubar->Append(wxglade_tmp_menu_4, wxT("&Simulation")); ! wxMenu* wxglade_tmp_menu_5 = new wxMenu(); ! wxglade_tmp_menu_5->Append(ID_HELP_ABOUT, wxT("&About"), wxEmptyString, wxITEM_NORMAL); ! MainFrame_menubar->Append(wxglade_tmp_menu_5, wxT("&Help")); MainFrame_statusbar = CreateStatusBar(1, 0); mCtrPropList = new wxListCtrl(window_1_pane_1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_REPORT|wxSIMPLE_BORDER); *************** *** 1348,1349 **** --- 1365,1434 ---- event.Skip(); } + + void mainframe::OnEditCommand(wxCommandEvent& event) + { + wxScintilla* edit = dynamic_cast<wxScintilla*>(mCtrNotebook->GetCurrentPage()); + if (edit == 0) + { + event.Skip(); + return; + } + + switch (event.GetId()) + { + case wxID_UNDO: + { + if (edit->CanUndo()) + { + edit->Undo(); + } + break; + } + + case wxID_REDO: + { + if (edit->CanRedo()) + { + edit->Redo(); + } + break; + + } + + case wxID_CUT: + { + if ( + (! edit->GetReadOnly()) && + (edit->GetSelectionEnd()-edit->GetSelectionStart() > 0) + ) + { + edit->Cut (); + } + break; + } + + case wxID_COPY: + { + if (edit->GetSelectionEnd()-edit->GetSelectionStart() > 0) + { + edit->Copy (); + } + break; + } + + case wxID_PASTE: + { + if (edit->CanPaste()) + { + edit->Paste(); + } + break; + } + + case wxID_SELECTALL: + { + edit->SetSelection (0, edit->GetLength()); + break; + } + } + } |