From 02aa812cb0e5a1ae7fcf827f53f9d41cb0e53c6b Mon Sep 17 00:00:00 2001 From: Julian Smart Date: Tue, 27 Apr 2010 16:09:22 +0000 Subject: [PATCH] wxRTC: fixed style selection reset after editing a style. wxRTC: can now edit line spacing in .1 increments from 1 to 2. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64161 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/changes.txt | 2 ++ include/wx/richtext/richtextindentspage.h | 2 +- src/richtext/richtextdialogs.pjd | 18 ++++++------ src/richtext/richtextindentspage.cpp | 34 +++++++++++------------ src/richtext/richtextstyles.cpp | 13 +++++++-- 5 files changed, 40 insertions(+), 29 deletions(-) diff --git a/docs/changes.txt b/docs/changes.txt index 1bc9abedb6..989f20c826 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -500,6 +500,8 @@ All (GUI): - wxRTC: added wxRICHTEXT_HANDLER_USE_CSS flag for HTML handler to use CSS where possible. - wxRTC: corrected centring and right-justification spacing. +- wxRTC: fixed style selection reset after editing a style. +- wxRTC: can now edit line spacing in .1 increments from 1 to 2. - Added wxBORDER_THEME to XRC. - wxGraphicsContext is now enabled by default if supported by the platform. - Fix building with using system libpng 1.4 (Volker Grabsch). diff --git a/include/wx/richtext/richtextindentspage.h b/include/wx/richtext/richtextindentspage.h index ad6ae91029..d70b0a7cac 100644 --- a/include/wx/richtext/richtextindentspage.h +++ b/include/wx/richtext/richtextindentspage.h @@ -34,7 +34,7 @@ class wxRichTextCtrl; ////@begin control identifiers #define SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_STYLE wxRESIZE_BORDER|wxTAB_TRAVERSAL -#define SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_TITLE wxT("") +#define SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_TITLE wxEmptyString #define SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_IDNAME ID_RICHTEXTINDENTSSPACINGPAGE #define SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_SIZE wxSize(400, 300) #define SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_POSITION wxDefaultPosition diff --git a/src/richtext/richtextdialogs.pjd b/src/richtext/richtextdialogs.pjd index cad54964f5..35faf900d6 100644 --- a/src/richtext/richtextdialogs.pjd +++ b/src/richtext/richtextdialogs.pjd @@ -2234,14 +2234,6 @@ "wbBoxSizerProxy" "Vertical" "" - "Centre" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 0 0 0 @@ -4523,7 +4515,7 @@ "" "" "m_spacingLine" - "Single|1.5|2" + "Single|1.1|1.2|1.3|1.4|1.5|1.6|1.7|1.8|1.9|2" "Single" "The line spacing." "" @@ -7831,6 +7823,14 @@ "wbBoxSizerProxy" "Vertical" "" + "Centre" + "Centre" + 0 + 5 + 1 + 1 + 1 + 1 0 0 0 diff --git a/src/richtext/richtextindentspage.cpp b/src/richtext/richtextindentspage.cpp index b993ce2cef..0d0eea7d8e 100644 --- a/src/richtext/richtextindentspage.cpp +++ b/src/richtext/richtextindentspage.cpp @@ -208,7 +208,7 @@ void wxRichTextIndentsSpacingPage::CreateControls() wxBoxSizer* itemBoxSizer24 = new wxBoxSizer(wxHORIZONTAL); itemFlexGridSizer22->Add(itemBoxSizer24, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5); - m_indentLeft = new wxTextCtrl( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_LEFT, wxT(""), wxDefaultPosition, wxSize(50, -1), 0 ); + m_indentLeft = new wxTextCtrl( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_LEFT, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 ); m_indentLeft->SetHelpText(_("The left indent.")); if (wxRichTextIndentsSpacingPage::ShowToolTips()) m_indentLeft->SetToolTip(_("The left indent.")); @@ -220,7 +220,7 @@ void wxRichTextIndentsSpacingPage::CreateControls() wxBoxSizer* itemBoxSizer27 = new wxBoxSizer(wxHORIZONTAL); itemFlexGridSizer22->Add(itemBoxSizer27, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5); - m_indentLeftFirst = new wxTextCtrl( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_LEFT_FIRST, wxT(""), wxDefaultPosition, wxSize(50, -1), 0 ); + m_indentLeftFirst = new wxTextCtrl( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_LEFT_FIRST, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 ); m_indentLeftFirst->SetHelpText(_("The first line indent.")); if (wxRichTextIndentsSpacingPage::ShowToolTips()) m_indentLeftFirst->SetToolTip(_("The first line indent.")); @@ -232,7 +232,7 @@ void wxRichTextIndentsSpacingPage::CreateControls() wxBoxSizer* itemBoxSizer30 = new wxBoxSizer(wxHORIZONTAL); itemFlexGridSizer22->Add(itemBoxSizer30, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5); - m_indentRight = new wxTextCtrl( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_RIGHT, wxT(""), wxDefaultPosition, wxSize(50, -1), 0 ); + m_indentRight = new wxTextCtrl( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_RIGHT, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 ); m_indentRight->SetHelpText(_("The right indent.")); if (wxRichTextIndentsSpacingPage::ShowToolTips()) m_indentRight->SetToolTip(_("The right indent.")); @@ -287,7 +287,7 @@ void wxRichTextIndentsSpacingPage::CreateControls() wxBoxSizer* itemBoxSizer43 = new wxBoxSizer(wxHORIZONTAL); itemFlexGridSizer41->Add(itemBoxSizer43, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5); - m_spacingBefore = new wxTextCtrl( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_BEFORE, wxT(""), wxDefaultPosition, wxSize(50, -1), 0 ); + m_spacingBefore = new wxTextCtrl( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_BEFORE, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 ); m_spacingBefore->SetHelpText(_("The spacing before the paragraph.")); if (wxRichTextIndentsSpacingPage::ShowToolTips()) m_spacingBefore->SetToolTip(_("The spacing before the paragraph.")); @@ -299,7 +299,7 @@ void wxRichTextIndentsSpacingPage::CreateControls() wxBoxSizer* itemBoxSizer46 = new wxBoxSizer(wxHORIZONTAL); itemFlexGridSizer41->Add(itemBoxSizer46, 1, wxGROW|wxALIGN_CENTER_VERTICAL, 5); - m_spacingAfter = new wxTextCtrl( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_AFTER, wxT(""), wxDefaultPosition, wxSize(50, -1), 0 ); + m_spacingAfter = new wxTextCtrl( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_AFTER, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 ); if (wxRichTextIndentsSpacingPage::ShowToolTips()) m_spacingAfter->SetToolTip(_("The spacing after the paragraph.")); itemBoxSizer46->Add(m_spacingAfter, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5); @@ -312,7 +312,15 @@ void wxRichTextIndentsSpacingPage::CreateControls() wxArrayString m_spacingLineStrings; m_spacingLineStrings.Add(_("Single")); + m_spacingLineStrings.Add(_("1.1")); + m_spacingLineStrings.Add(_("1.2")); + m_spacingLineStrings.Add(_("1.3")); + m_spacingLineStrings.Add(_("1.4")); m_spacingLineStrings.Add(_("1.5")); + m_spacingLineStrings.Add(_("1.6")); + m_spacingLineStrings.Add(_("1.7")); + m_spacingLineStrings.Add(_("1.8")); + m_spacingLineStrings.Add(_("1.9")); m_spacingLineStrings.Add(_("2")); m_spacingLine = new wxComboBox( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_LINE, _("Single"), wxDefaultPosition, wxSize(90, -1), m_spacingLineStrings, wxCB_READONLY ); m_spacingLine->SetStringSelection(_("Single")); @@ -437,12 +445,8 @@ bool wxRichTextIndentsSpacingPage::TransferDataFromWindow() int spacingIndex = m_spacingLine->GetSelection(); int lineSpacing = 0; - if (spacingIndex == 0) - lineSpacing = 10; - else if (spacingIndex == 1) - lineSpacing = 15; - else if (spacingIndex == 2) - lineSpacing = 20; + if (spacingIndex != -1) + lineSpacing = 10 + spacingIndex; if (lineSpacing == 0) attr->SetFlags(attr->GetFlags() & (~wxTEXT_ATTR_LINE_SPACING)); @@ -526,12 +530,8 @@ bool wxRichTextIndentsSpacingPage::TransferDataToWindow() int index = 0; int lineSpacing = attr->GetLineSpacing(); - if (lineSpacing == 10) - index = 0; - else if (lineSpacing == 15) - index = 1; - else if (lineSpacing == 20) - index = 2; + if (lineSpacing >= 10 && lineSpacing <= 20) + index = lineSpacing - 10; else index = -1; diff --git a/src/richtext/richtextstyles.cpp b/src/richtext/richtextstyles.cpp index 731634e492..00b24a319a 100644 --- a/src/richtext/richtextstyles.cpp +++ b/src/richtext/richtextstyles.cpp @@ -520,6 +520,8 @@ void wxRichTextStyleListBox::UpdateStyles() { if (GetStyleSheet()) { + int oldSel = GetSelection(); + SetSelection(wxNOT_FOUND); m_styleNames.Clear(); @@ -546,9 +548,15 @@ void wxRichTextStyleListBox::UpdateStyles() Refresh(); - if (GetItemCount() > 0) + int newSel = -1; + if (oldSel >= 0 && oldSel < (int) GetItemCount()) + newSel = oldSel; + else if (GetItemCount() > 0) + newSel = 0; + + if (newSel >= 0) { - SetSelection(0); + SetSelection(newSel); SendSelectedEvent(); } } @@ -940,6 +948,7 @@ void wxRichTextStyleListCtrl::OnChooseType(wxCommandEvent& event) return; wxRichTextStyleListBox::wxRichTextStyleType styleType = StyleIndexToType(event.GetSelection()); + m_styleListBox->SetSelection(-1); m_styleListBox->SetStyleType(styleType); } } -- 2.45.2