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:
@@ -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,
|
||||||
|
@@ -108,6 +108,9 @@ wxBEGIN_EVENT_TABLE (Edit, wxStyledTextCtrl)
|
|||||||
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) {
|
||||||
|
@@ -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);
|
||||||
|
@@ -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;
|
||||||
|
Reference in New Issue
Block a user