Show Scintilla multiple selections and multipaste features in the sample.

Add menu items to toggle multiple selections and multipaste support in wxSTC.

See #16221.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76461 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2014-05-05 14:42:29 +00:00
parent 29ff6f3e3b
commit cd4c928d9a
4 changed files with 37 additions and 5 deletions

View File

@@ -73,6 +73,9 @@ enum {
myID_CONVERTCR, myID_CONVERTCR,
myID_CONVERTCRLF, myID_CONVERTCRLF,
myID_CONVERTLF, myID_CONVERTLF,
myID_MULTIPLE_SELECTIONS,
myID_MULTI_PASTE,
myID_MULTIPLE_SELECTIONS_TYPING,
myID_USECHARSET, myID_USECHARSET,
myID_CHARSETANSI, myID_CHARSETANSI,
myID_CHARSETMAC, myID_CHARSETMAC,

View File

@@ -103,11 +103,14 @@ wxBEGIN_EVENT_TABLE (Edit, wxStyledTextCtrl)
EVT_MENU (myID_ANNOTATION_STYLE_STANDARD, Edit::OnAnnotationStyle) EVT_MENU (myID_ANNOTATION_STYLE_STANDARD, Edit::OnAnnotationStyle)
EVT_MENU (myID_ANNOTATION_STYLE_BOXED, Edit::OnAnnotationStyle) EVT_MENU (myID_ANNOTATION_STYLE_BOXED, Edit::OnAnnotationStyle)
// extra // extra
EVT_MENU (myID_CHANGELOWER, Edit::OnChangeCase) EVT_MENU (myID_CHANGELOWER, Edit::OnChangeCase)
EVT_MENU (myID_CHANGEUPPER, Edit::OnChangeCase) EVT_MENU (myID_CHANGEUPPER, Edit::OnChangeCase)
EVT_MENU (myID_CONVERTCR, Edit::OnConvertEOL) EVT_MENU (myID_CONVERTCR, Edit::OnConvertEOL)
EVT_MENU (myID_CONVERTCRLF, Edit::OnConvertEOL) EVT_MENU (myID_CONVERTCRLF, Edit::OnConvertEOL)
EVT_MENU (myID_CONVERTLF, 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 // stc
EVT_STC_MARGINCLICK (wxID_ANY, Edit::OnMarginClick) EVT_STC_MARGINCLICK (wxID_ANY, Edit::OnMarginClick)
EVT_STC_CHARADDED (wxID_ANY, Edit::OnCharAdded) EVT_STC_CHARADDED (wxID_ANY, Edit::OnCharAdded)
@@ -439,6 +442,26 @@ void Edit::OnConvertEOL (wxCommandEvent &event) {
SetEOLMode (eolMode); 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 //! misc
void Edit::OnMarginClick (wxStyledTextEvent &event) { void Edit::OnMarginClick (wxStyledTextEvent &event) {
if (event.GetMargin() == 2) { if (event.GetMargin() == 2) {

View File

@@ -98,6 +98,9 @@ public:
//! extra //! extra
void OnChangeCase (wxCommandEvent &event); void OnChangeCase (wxCommandEvent &event);
void OnConvertEOL (wxCommandEvent &event); void OnConvertEOL (wxCommandEvent &event);
void OnMultipleSelections(wxCommandEvent& event);
void OnMultiPaste(wxCommandEvent& event);
void OnMultipleSelectionsTyping(wxCommandEvent& event);
// stc // stc
void OnMarginClick (wxStyledTextEvent &event); void OnMarginClick (wxStyledTextEvent &event);
void OnCharAdded (wxStyledTextEvent &event); void OnCharAdded (wxStyledTextEvent &event);

View File

@@ -546,6 +546,9 @@ void AppFrame::CreateMenu ()
menuExtra->Append (myID_CHANGECASE, _("Change &case to .."), menuChangeCase); menuExtra->Append (myID_CHANGECASE, _("Change &case to .."), menuChangeCase);
menuExtra->AppendSeparator(); menuExtra->AppendSeparator();
menuExtra->Append (myID_CONVERTEOL, _("Convert line &endings to .."), menuConvertEOL); 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 // Window menu
wxMenu *menuWindow = new wxMenu; wxMenu *menuWindow = new wxMenu;