From 270573834f0b2f1a946215743c402c143fd40f6c Mon Sep 17 00:00:00 2001 From: Julian Smart Date: Tue, 27 Apr 2010 16:16:21 +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/branches/WX_2_8_BRANCH@64163 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/changes.txt | 8 ++ src/richtext/richtextdialogs.pjd | 160 +++++++++++++++++++++++---- src/richtext/richtextindentspage.cpp | 34 +++--- src/richtext/richtextstyles.cpp | 51 +++++---- 4 files changed, 193 insertions(+), 60 deletions(-) diff --git a/docs/changes.txt b/docs/changes.txt index 492a5d0fa5..0538ec3775 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -88,6 +88,14 @@ Major new features in 2.8 release wxSearchCtrl, wxAboutBox, wxTreebook, tar streams. +2.8.12: +------- + +All (GUI): + +- wxRTC: fixed style selection resetting after editing a style. +- wxRTC: can now edit line spacing in .1 increments from 1 to 2. + 2.8.11: ------- diff --git a/src/richtext/richtextdialogs.pjd b/src/richtext/richtextdialogs.pjd index 6aec10ec0e..25f149fe08 100644 --- a/src/richtext/richtextdialogs.pjd +++ b/src/richtext/richtextdialogs.pjd @@ -7,7 +7,7 @@ "" "" "" - 0 + 0 0 0 1 @@ -24,6 +24,7 @@ 0 "<All platforms>" "<Any>" + "Standard" "///////////////////////////////////////////////////////////////////////////// // Name: %HEADER-FILENAME% // Purpose: @@ -147,29 +148,42 @@ "Modular" "GUI" "wxMSW" + "Default" "Dynamic" "Yes" "No" + "Yes" "No" "No" "Yes" - "%WXVERSION%" + "Yes" + "Yes" + "Yes" + "Yes" + "Yes" "%EXECUTABLE%" "" "%AUTO%" "%AUTO%" "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" "%AUTO%" + "%WXVERSION%" "%AUTO%" + "%AUTO%" + "%AUTO%" + "%AUTO%" + "%AUTO%" + "" + "%AUTO%" "%AUTO%" "%AUTO%" "%AUTO%" + "%AUTO%" + "%AUTO%" + "%AUTO%" + "%AUTO%" + "%AUTO%" + "%AUTO%" "%AUTO%" "%AUTO%" "%AUTO%" @@ -181,13 +195,8 @@ "%AUTO%" "%AUTO%" "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" 0 1 - "" @@ -227,6 +236,7 @@ "" 0 "" + "Standard" 0 0 "ID_RICHTEXTFONTPAGE" @@ -269,6 +279,7 @@ 0 0 0 + 0 0 0 0 @@ -433,6 +444,7 @@ 0 0 0 + 0 0 0 0 @@ -516,6 +528,7 @@ 0 0 0 + 0 0 0 0 @@ -582,6 +595,7 @@ 0 0 0 + 0 0 0 0 @@ -683,6 +697,7 @@ 0 0 0 + 0 0 0 0 @@ -766,6 +781,7 @@ 0 0 0 + 0 0 0 0 @@ -841,6 +857,7 @@ 0 0 0 + 0 0 0 0 @@ -963,6 +980,7 @@ 0 0 0 + 0 0 0 0 @@ -1124,6 +1142,7 @@ 0 0 0 + 0 0 0 0 @@ -1285,6 +1304,7 @@ 0 0 0 + 0 0 0 0 @@ -1471,6 +1491,7 @@ 0 0 0 + 0 0 0 0 @@ -1536,6 +1557,7 @@ 0 0 0 + 0 0 0 0 @@ -1635,6 +1657,7 @@ 0 0 0 + 0 0 0 0 @@ -1699,6 +1722,7 @@ 0 0 0 + 0 0 0 0 @@ -2083,6 +2107,7 @@ 0 0 0 + 0 0 0 0 @@ -2132,6 +2157,7 @@ "" 0 "" + "Standard" 0 0 "ID_RICHTEXTINDENTSSPACINGPAGE" @@ -2174,6 +2200,7 @@ 0 0 0 + 0 0 0 0 @@ -2207,14 +2234,6 @@ "wbBoxSizerProxy" "Vertical" "" - "Centre" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 0 0 0 @@ -2339,6 +2358,7 @@ 0 0 0 + 0 0 0 0 @@ -2816,6 +2836,7 @@ 0 0 0 + 0 0 0 0 @@ -2935,6 +2956,7 @@ 0 0 0 + 0 0 0 0 @@ -3086,6 +3108,7 @@ 0 0 0 + 0 0 0 0 @@ -3194,6 +3217,7 @@ 0 0 0 + 0 0 0 0 @@ -3265,6 +3289,7 @@ 0 0 0 + 0 0 0 0 @@ -3373,6 +3398,7 @@ 0 0 0 + 0 0 0 0 @@ -3445,6 +3471,7 @@ 0 0 0 + 0 0 0 0 @@ -3553,6 +3580,7 @@ 0 0 0 + 0 0 0 0 @@ -3625,6 +3653,7 @@ 0 0 0 + 0 0 0 0 @@ -3776,6 +3805,7 @@ 0 0 0 + 0 0 0 0 @@ -3895,6 +3925,7 @@ 0 0 0 + 0 0 0 0 @@ -4046,6 +4077,7 @@ 0 0 0 + 0 0 0 0 @@ -4154,6 +4186,7 @@ 0 0 0 + 0 0 0 0 @@ -4225,6 +4258,7 @@ 0 0 0 + 0 0 0 0 @@ -4333,6 +4367,7 @@ 0 0 0 + 0 0 0 0 @@ -4405,6 +4440,7 @@ 0 0 0 + 0 0 0 0 @@ -4477,7 +4513,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." "" @@ -4591,6 +4627,7 @@ 0 0 0 + 0 0 0 0 @@ -4640,6 +4677,7 @@ "" 0 "" + "Standard" 0 0 "ID_RICHTEXTTABSPAGE" @@ -4682,6 +4720,7 @@ 0 0 0 + 0 0 0 0 @@ -4847,6 +4886,7 @@ 0 0 0 + 0 0 0 0 @@ -4929,6 +4969,7 @@ 0 0 0 + 0 0 0 0 @@ -5004,6 +5045,7 @@ 0 0 0 + 0 0 0 0 @@ -5126,6 +5168,7 @@ 0 0 0 + 0 0 0 0 @@ -5376,6 +5419,7 @@ "" 0 "" + "Standard" 0 0 "ID_RICHTEXTBULLETSPAGE" @@ -5418,6 +5462,7 @@ 0 0 0 + 0 0 0 0 @@ -5583,6 +5628,7 @@ 0 0 0 + 0 0 0 0 @@ -5657,6 +5703,7 @@ 0 0 0 + 0 0 0 0 @@ -5977,6 +6024,7 @@ 0 0 0 + 0 0 0 0 @@ -6126,6 +6174,7 @@ 0 0 0 + 0 0 0 0 @@ -6271,6 +6320,7 @@ 0 0 0 + 0 0 0 0 @@ -6504,6 +6554,7 @@ 0 0 0 + 0 0 0 0 @@ -6668,6 +6719,7 @@ 0 0 0 + 0 0 0 0 @@ -6832,6 +6884,7 @@ 0 0 0 + 0 0 0 0 @@ -6906,6 +6959,7 @@ 0 0 0 + 0 0 0 0 @@ -6999,6 +7053,7 @@ 0 0 0 + 0 0 0 0 @@ -7048,6 +7103,7 @@ "" 0 "" + "Standard" 0 0 "ID_RICHTEXTSTYLEPAGE" @@ -7090,6 +7146,7 @@ 0 0 0 + 0 0 0 0 @@ -7256,6 +7313,7 @@ 0 0 0 + 0 0 0 0 @@ -7338,6 +7396,7 @@ 0 0 0 + 0 0 0 0 @@ -7409,6 +7468,7 @@ 0 0 0 + 0 0 0 0 @@ -7543,6 +7603,7 @@ 0 0 0 + 0 0 0 0 @@ -7680,6 +7741,7 @@ "" 0 "" + "Standard" 0 0 "m_fontName|wxString|FontName||0" @@ -7726,6 +7788,7 @@ 0 0 0 + 0 0 0 0 @@ -7759,6 +7822,14 @@ "wbBoxSizerProxy" "Vertical" "" + "Centre" + "Centre" + 0 + 5 + 1 + 1 + 1 + 1 0 0 0 @@ -7883,6 +7954,7 @@ 0 0 0 + 0 0 0 0 @@ -8044,6 +8116,7 @@ 0 0 0 + 0 0 0 0 @@ -8176,6 +8249,7 @@ 0 0 0 + 0 0 0 0 @@ -8276,6 +8350,7 @@ 0 0 0 + 0 0 0 0 @@ -8372,6 +8447,7 @@ 0 0 0 + 0 0 0 0 @@ -8454,6 +8530,7 @@ 0 0 0 + 0 0 0 0 @@ -8551,6 +8628,7 @@ 0 0 0 + 0 0 0 0 @@ -9031,6 +9109,7 @@ "" 0 "" + "Standard" 0 0 "ID_RICHTEXTSTYLEORGANISERDIALOG" @@ -9073,6 +9152,7 @@ 0 0 0 + 0 0 0 0 @@ -9238,6 +9318,7 @@ 0 0 0 + 0 0 0 0 @@ -9303,6 +9384,7 @@ 0 0 0 + 0 0 0 0 @@ -9404,6 +9486,7 @@ 0 0 0 + 0 0 0 0 @@ -9469,6 +9552,7 @@ 0 0 0 + 0 0 0 0 @@ -9570,6 +9654,7 @@ 0 0 0 + 0 0 0 0 @@ -10458,6 +10543,7 @@ "" 0 "" + "Standard" 0 0 "ID_RICHTEXTLISTSTYLEPAGE" @@ -10500,6 +10586,7 @@ 0 0 0 + 0 0 0 0 @@ -10641,6 +10728,7 @@ 0 0 0 + 0 0 0 0 @@ -10715,6 +10803,7 @@ 0 0 0 + 0 0 0 0 @@ -10883,6 +10972,7 @@ 0 0 0 + 0 0 0 0 @@ -10950,6 +11040,7 @@ 1 0 0 + 0 0 0 0 @@ -11104,6 +11195,7 @@ 0 0 0 + 0 0 0 0 @@ -11178,6 +11270,7 @@ 0 0 0 + 0 0 0 0 @@ -11498,6 +11591,7 @@ 0 0 0 + 0 0 0 0 @@ -11647,6 +11741,7 @@ 0 0 0 + 0 0 0 0 @@ -11767,6 +11862,7 @@ 0 0 0 + 0 0 0 0 @@ -12025,6 +12121,7 @@ 0 0 0 + 0 0 0 0 @@ -12189,6 +12286,7 @@ 0 0 0 + 0 0 0 0 @@ -12326,6 +12424,7 @@ 1 0 0 + 0 0 0 0 @@ -12480,6 +12579,7 @@ 0 0 0 + 0 0 0 0 @@ -12957,6 +13057,7 @@ 0 0 0 + 0 0 0 0 @@ -13076,6 +13177,7 @@ 0 0 0 + 0 0 0 0 @@ -13227,6 +13329,7 @@ 0 0 0 + 0 0 0 0 @@ -13335,6 +13438,7 @@ 0 0 0 + 0 0 0 0 @@ -13407,6 +13511,7 @@ 0 0 0 + 0 0 0 0 @@ -13515,6 +13620,7 @@ 0 0 0 + 0 0 0 0 @@ -13587,6 +13693,7 @@ 0 0 0 + 0 0 0 0 @@ -13695,6 +13802,7 @@ 0 0 0 + 0 0 0 0 @@ -13783,6 +13891,7 @@ 0 0 0 + 0 0 0 0 @@ -13902,6 +14011,7 @@ 0 0 0 + 0 0 0 0 @@ -14053,6 +14163,7 @@ 0 0 0 + 0 0 0 0 @@ -14161,6 +14272,7 @@ 0 0 0 + 0 0 0 0 @@ -14233,6 +14345,7 @@ 0 0 0 + 0 0 0 0 @@ -14341,6 +14454,7 @@ 0 0 0 + 0 0 0 0 @@ -14413,6 +14527,7 @@ 0 0 0 + 0 0 0 0 @@ -14576,6 +14691,7 @@ 0 0 0 + 0 0 0 0 diff --git a/src/richtext/richtextindentspage.cpp b/src/richtext/richtextindentspage.cpp index 6489add6e3..04bbda3534 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, _T(""), 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, _T(""), 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, _T(""), 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, _T(""), 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, _T(""), 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 30d40cc39c..9bf0e5563c 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(); } } @@ -619,7 +627,7 @@ wxString wxRichTextStyleListBox::CreateHTML(wxRichTextStyleDefinition* def) cons int size = 3; #endif - // Guess a standard font size + // Guess a standard font size int stdFontSize = 0; // First see if we have a default/normal style to base the size on @@ -628,22 +636,22 @@ wxString wxRichTextStyleListBox::CreateHTML(wxRichTextStyleDefinition* def) cons size_t i; for (i = 0; i < m_styleNames.GetCount(); i++) { - wxString name = m_styleNames[i].Lower(); - if (name.Find(wxT("normal")) != wxNOT_FOUND || name.Find(normalTranslated) != wxNOT_FOUND || - name.Find(wxT("default")) != wxNOT_FOUND || name.Find(defaultTranslated) != wxNOT_FOUND) - { - wxRichTextStyleDefinition* d = GetStyleSheet()->FindStyle(m_styleNames[i]); - if (d) - { - wxRichTextAttr attr2(d->GetStyleMergedWithBase(GetStyleSheet())); - if (attr2.HasFontSize()) - { - stdFontSize = attr2.GetFontSize(); - break; - } - } - } - } + wxString name = m_styleNames[i].Lower(); + if (name.Find(wxT("normal")) != wxNOT_FOUND || name.Find(normalTranslated) != wxNOT_FOUND || + name.Find(wxT("default")) != wxNOT_FOUND || name.Find(defaultTranslated) != wxNOT_FOUND) + { + wxRichTextStyleDefinition* d = GetStyleSheet()->FindStyle(m_styleNames[i]); + if (d) + { + wxRichTextAttr attr2(d->GetStyleMergedWithBase(GetStyleSheet())); + if (attr2.HasFontSize()) + { + stdFontSize = attr2.GetFontSize(); + break; + } + } + } + } if (stdFontSize == 0) { @@ -670,13 +678,13 @@ wxString wxRichTextStyleListBox::CreateHTML(wxRichTextStyleDefinition* def) cons { if (sizes[i] > mostCommonSize) mostCommonSize = i; - } + } if (mostCommonSize > 0) stdFontSize = mostCommonSize; } if (stdFontSize == 0) - stdFontSize = 12; + stdFontSize = 12; int thisFontSize = ((attr.GetFlags() & wxTEXT_ATTR_FONT_SIZE) != 0) ? attr.GetFontSize() : stdFontSize; @@ -950,6 +958,7 @@ void wxRichTextStyleListCtrl::OnChooseType(wxCommandEvent& event) return; wxRichTextStyleListBox::wxRichTextStyleType styleType = StyleIndexToType(event.GetSelection()); + m_styleListBox->SetSelection(-1); m_styleListBox->SetStyleType(styleType); } }