diff --git a/samples/stc/defsext.h b/samples/stc/defsext.h index de7004562d..88fc6b40cf 100644 --- a/samples/stc/defsext.h +++ b/samples/stc/defsext.h @@ -73,6 +73,9 @@ enum { myID_CONVERTCR, myID_CONVERTCRLF, myID_CONVERTLF, + myID_MULTIPLE_SELECTIONS, + myID_MULTI_PASTE, + myID_MULTIPLE_SELECTIONS_TYPING, myID_USECHARSET, myID_CHARSETANSI, myID_CHARSETMAC, diff --git a/samples/stc/edit.cpp b/samples/stc/edit.cpp index a795e693af..83c24e14d0 100644 --- a/samples/stc/edit.cpp +++ b/samples/stc/edit.cpp @@ -103,11 +103,14 @@ wxBEGIN_EVENT_TABLE (Edit, wxStyledTextCtrl) EVT_MENU (myID_ANNOTATION_STYLE_STANDARD, Edit::OnAnnotationStyle) EVT_MENU (myID_ANNOTATION_STYLE_BOXED, Edit::OnAnnotationStyle) // extra - EVT_MENU (myID_CHANGELOWER, Edit::OnChangeCase) - EVT_MENU (myID_CHANGEUPPER, Edit::OnChangeCase) - EVT_MENU (myID_CONVERTCR, Edit::OnConvertEOL) - EVT_MENU (myID_CONVERTCRLF, Edit::OnConvertEOL) - EVT_MENU (myID_CONVERTLF, Edit::OnConvertEOL) + EVT_MENU (myID_CHANGELOWER, Edit::OnChangeCase) + EVT_MENU (myID_CHANGEUPPER, Edit::OnChangeCase) + EVT_MENU (myID_CONVERTCR, Edit::OnConvertEOL) + EVT_MENU (myID_CONVERTCRLF, Edit::OnConvertEOL) + EVT_MENU (myID_CONVERTLF, Edit::OnConvertEOL) + EVT_MENU(myID_MULTIPLE_SELECTIONS, Edit::OnMultipleSelections) + EVT_MENU(myID_MULTI_PASTE, Edit::OnMultiPaste) + EVT_MENU(myID_MULTIPLE_SELECTIONS_TYPING, Edit::OnMultipleSelectionsTyping) // stc EVT_STC_MARGINCLICK (wxID_ANY, Edit::OnMarginClick) EVT_STC_CHARADDED (wxID_ANY, Edit::OnCharAdded) @@ -439,6 +442,26 @@ void Edit::OnConvertEOL (wxCommandEvent &event) { SetEOLMode (eolMode); } +void Edit::OnMultipleSelections(wxCommandEvent& WXUNUSED(event)) { + bool isSet = GetMultipleSelection(); + SetMultipleSelection(!isSet); +} + +void Edit::OnMultiPaste(wxCommandEvent& WXUNUSED(event)) { + int pasteMode = GetMultiPaste(); + if (wxSTC_MULTIPASTE_EACH == pasteMode) { + SetMultiPaste(wxSTC_MULTIPASTE_ONCE); + } + else { + SetMultiPaste(wxSTC_MULTIPASTE_EACH); + } +} + +void Edit::OnMultipleSelectionsTyping(wxCommandEvent& WXUNUSED(event)) { + bool isSet = GetAdditionalSelectionTyping(); + SetAdditionalSelectionTyping(!isSet); +} + //! misc void Edit::OnMarginClick (wxStyledTextEvent &event) { if (event.GetMargin() == 2) { diff --git a/samples/stc/edit.h b/samples/stc/edit.h index a472cdb881..7f4e914fb4 100644 --- a/samples/stc/edit.h +++ b/samples/stc/edit.h @@ -98,6 +98,9 @@ public: //! extra void OnChangeCase (wxCommandEvent &event); void OnConvertEOL (wxCommandEvent &event); + void OnMultipleSelections(wxCommandEvent& event); + void OnMultiPaste(wxCommandEvent& event); + void OnMultipleSelectionsTyping(wxCommandEvent& event); // stc void OnMarginClick (wxStyledTextEvent &event); void OnCharAdded (wxStyledTextEvent &event); diff --git a/samples/stc/stctest.cpp b/samples/stc/stctest.cpp index f19905512c..2ad7ff4c76 100644 --- a/samples/stc/stctest.cpp +++ b/samples/stc/stctest.cpp @@ -546,6 +546,9 @@ void AppFrame::CreateMenu () menuExtra->Append (myID_CHANGECASE, _("Change &case to .."), menuChangeCase); menuExtra->AppendSeparator(); menuExtra->Append (myID_CONVERTEOL, _("Convert line &endings to .."), menuConvertEOL); + menuExtra->AppendCheckItem(myID_MULTIPLE_SELECTIONS, _("Toggle &multiple selections")); + menuExtra->AppendCheckItem(myID_MULTI_PASTE, _("Toggle multi-&paste")); + menuExtra->AppendCheckItem(myID_MULTIPLE_SELECTIONS_TYPING, _("Toggle t&yping on multiple selections")); // Window menu wxMenu *menuWindow = new wxMenu;