src/plugins/contrib/EditorTweaks/EditorTweaks.cpp | 43 ++++++++++++++++++-----
src/plugins/contrib/EditorTweaks/EditorTweaks.h | 1 +
2 files changed, 36 insertions(+), 8 deletions(-)
diff --git a/src/plugins/contrib/EditorTweaks/EditorTweaks.cpp b/src/plugins/contrib/EditorTweaks/EditorTweaks.cpp
index cfa8062..fa1c2ad 100644
--- a/src/plugins/contrib/EditorTweaks/EditorTweaks.cpp
+++ b/src/plugins/contrib/EditorTweaks/EditorTweaks.cpp
@@ -42,6 +42,7 @@ namespace
int id_et = wxNewId();
int id_et_WordWrap = wxNewId();
+int id_et_CharWrap = wxNewId();
int id_et_ShowLineNumbers = wxNewId();
int id_et_TabChar = wxNewId();
int id_et_TabIndent = wxNewId();
@@ -75,6 +76,7 @@ int id_et_ScrollTimer = wxNewId();
// events handling
BEGIN_EVENT_TABLE(EditorTweaks, cbPlugin)
EVT_UPDATE_UI(id_et_WordWrap, EditorTweaks::OnUpdateUI)
+ EVT_UPDATE_UI(id_et_CharWrap, EditorTweaks::OnUpdateUI)
EVT_UPDATE_UI(id_et_ShowLineNumbers, EditorTweaks::OnUpdateUI)
EVT_UPDATE_UI(id_et_TabChar, EditorTweaks::OnUpdateUI)
EVT_UPDATE_UI(id_et_TabIndent, EditorTweaks::OnUpdateUI)
@@ -91,6 +93,7 @@ BEGIN_EVENT_TABLE(EditorTweaks, cbPlugin)
EVT_MENU(id_et_WordWrap, EditorTweaks::OnWordWrap)
+ EVT_MENU(id_et_CharWrap, EditorTweaks::OnCharWrap)
EVT_MENU(id_et_ShowLineNumbers, EditorTweaks::OnShowLineNumbers)
EVT_MENU(id_et_TabChar, EditorTweaks::OnTabChar)
EVT_MENU(id_et_TabIndent, EditorTweaks::OnTabIndent)
@@ -276,7 +279,8 @@ void EditorTweaks::BuildMenu(wxMenuBar* menuBar)
wxMenu *submenu=m_tweakmenu; //_("Editor Tweaks")
- submenu->AppendCheckItem( id_et_WordWrap, _( "Word wrap" ), _( "Wrap text" ) );
+ submenu->AppendCheckItem( id_et_WordWrap, _( "Word wrap" ), _( "Wrap word" ) );
+ submenu->AppendCheckItem( id_et_CharWrap, _( "Char wrap" ), _( "Wrap char" ) );
submenu->AppendCheckItem( id_et_ShowLineNumbers, _( "Show Line Numbers" ), _( "Show Line Numbers" ) );
submenu->AppendSeparator();
submenu->AppendCheckItem( id_et_TabChar, _( "Use Tab Character" ), _( "Use Tab Character" ) );
@@ -359,7 +363,8 @@ void EditorTweaks::UpdateUI()
wxMenu *submenu = m_tweakmenu; //_("Editor Tweaks") TODO: Retrieve actual menu
m_isUpdatingUI = true; // ignore events the following can trigger
- submenu->Check(id_et_WordWrap,ed->GetControl()->GetWrapMode()>0);
+ submenu->Check(id_et_WordWrap,ed->GetControl()->GetWrapMode()==wxSCI_WRAP_WORD);
+ submenu->Check(id_et_CharWrap,ed->GetControl()->GetWrapMode()==wxSCI_WRAP_CHAR);
submenu->Check(id_et_ShowLineNumbers,ed->GetControl()->GetMarginWidth(0)>0);
submenu->Check(id_et_TabChar,ed->GetControl()->GetUseTabs());
submenu->Check(id_et_TabIndent,ed->GetControl()->GetTabIndents());
@@ -639,10 +644,14 @@ void EditorTweaks::BuildModuleMenu(const ModuleType type, wxMenu* menu, const Fi
menu->Append(id_et,_("Editor Tweaks"),submenu);
- submenu->AppendCheckItem( id_et_WordWrap, _( "Word wrap" ), _( "Wrap text" ) );
- if (ed->GetControl()->GetWrapMode()>0)
+ submenu->AppendCheckItem( id_et_WordWrap, _( "Word wrap" ), _( "Wrap word" ) );
+ if (ed->GetControl()->GetWrapMode()==wxSCI_WRAP_WORD)
submenu->Check(id_et_WordWrap,true);
+ submenu->AppendCheckItem( id_et_CharWrap, _( "Char wrap" ), _( "Wrap char" ) );
+ if (ed->GetControl()->GetWrapMode()==wxSCI_WRAP_CHAR)
+ submenu->Check(id_et_CharWrap,true);
+
submenu->AppendCheckItem( id_et_ShowLineNumbers, _( "Show Line Numbers" ), _( "Show Line Numbers" ) );
if (ed->GetControl()->GetMarginWidth(0)>0)
submenu->Check(id_et_ShowLineNumbers,true);
@@ -701,17 +710,35 @@ void EditorTweaks::BuildModuleMenu(const ModuleType type, wxMenu* menu, const Fi
void EditorTweaks::OnWordWrap(wxCommandEvent &/*event*/)
{
cbEditor* ed = Manager::Get()->GetEditorManager()->GetBuiltinActiveEditor();
- if (!ed || !ed->GetControl() || m_isUpdatingUI)
+ if (!ed || m_isUpdatingUI)
+ return;
+ cbStyledTextCtrl* control = ed->GetControl();
+ if (!control)
return;
- bool enabled=ed->GetControl()->GetWrapMode()>0;
+ bool enabled = control->GetWrapMode() == wxSCI_WRAP_WORD;
if (enabled)
- ed->GetControl()->SetWrapMode(wxSCI_WRAP_NONE);
+ control->SetWrapMode(wxSCI_WRAP_NONE);
else
- ed->GetControl()->SetWrapMode(wxSCI_WRAP_WORD);
+ control->SetWrapMode(wxSCI_WRAP_WORD);
+}
+void EditorTweaks::OnCharWrap(wxCommandEvent &/*event*/)
+{
+ cbEditor* ed = Manager::Get()->GetEditorManager()->GetBuiltinActiveEditor();
+ if (!ed || m_isUpdatingUI)
+ return;
+ cbStyledTextCtrl* control = ed->GetControl();
+ if (!control)
+ return;
+ bool enabled = control->GetWrapMode() == wxSCI_WRAP_CHAR;
+
+ if (enabled)
+ control->SetWrapMode(wxSCI_WRAP_NONE);
+ else
+ control->SetWrapMode(wxSCI_WRAP_CHAR);
}
void EditorTweaks::OnShowLineNumbers(wxCommandEvent &/*event*/)
diff --git a/src/plugins/contrib/EditorTweaks/EditorTweaks.h b/src/plugins/contrib/EditorTweaks/EditorTweaks.h
index aa15f9a..86c3074 100644
--- a/src/plugins/contrib/EditorTweaks/EditorTweaks.h
+++ b/src/plugins/contrib/EditorTweaks/EditorTweaks.h
@@ -106,6 +106,7 @@ class EditorTweaks : public cbPlugin
void OnKeyPress(wxKeyEvent& event);
void OnChar(wxKeyEvent& event);
void OnWordWrap(wxCommandEvent &event);
+ void OnCharWrap(wxCommandEvent &event);
void OnShowLineNumbers(wxCommandEvent &event);
void OnTabChar(wxCommandEvent &event);
void OnTabIndent(wxCommandEvent &event);