diff --git a/include/wx/richtext/richtextbulletspage.h b/include/wx/richtext/richtextbulletspage.h index b8a6f43b37..63e55c1696 100644 --- a/include/wx/richtext/richtextbulletspage.h +++ b/include/wx/richtext/richtextbulletspage.h @@ -32,7 +32,7 @@ class wxRichTextCtrl; */ ////@begin control identifiers -#define SYMBOL_WXRICHTEXTBULLETSPAGE_STYLE wxRESIZE_BORDER|wxTAB_TRAVERSAL +#define SYMBOL_WXRICHTEXTBULLETSPAGE_STYLE wxTAB_TRAVERSAL #define SYMBOL_WXRICHTEXTBULLETSPAGE_TITLE wxEmptyString #define SYMBOL_WXRICHTEXTBULLETSPAGE_IDNAME ID_RICHTEXTBULLETSPAGE #define SYMBOL_WXRICHTEXTBULLETSPAGE_SIZE wxSize(400, 300) @@ -84,52 +84,52 @@ public: ////@begin wxRichTextBulletsPage event handler declarations - /// wxEVT_LISTBOX event handler for ID_RICHTEXTBULLETSPAGE_STYLELISTBOX + /// wxEVT_COMMAND_LISTBOX_SELECTED event handler for ID_RICHTEXTBULLETSPAGE_STYLELISTBOX void OnStylelistboxSelected( wxCommandEvent& event ); - /// wxEVT_CHECKBOX event handler for ID_RICHTEXTBULLETSPAGE_PERIODCTRL + /// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXTBULLETSPAGE_PERIODCTRL void OnPeriodctrlClick( wxCommandEvent& event ); /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_PERIODCTRL void OnPeriodctrlUpdate( wxUpdateUIEvent& event ); - /// wxEVT_CHECKBOX event handler for ID_RICHTEXTBULLETSPAGE_PARENTHESESCTRL + /// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXTBULLETSPAGE_PARENTHESESCTRL void OnParenthesesctrlClick( wxCommandEvent& event ); /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_PARENTHESESCTRL void OnParenthesesctrlUpdate( wxUpdateUIEvent& event ); - /// wxEVT_CHECKBOX event handler for ID_RICHTEXTBULLETSPAGE_RIGHTPARENTHESISCTRL + /// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXTBULLETSPAGE_RIGHTPARENTHESISCTRL void OnRightParenthesisCtrlClick( wxCommandEvent& event ); /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_RIGHTPARENTHESISCTRL void OnRightParenthesisCtrlUpdate( wxUpdateUIEvent& event ); - /// wxEVT_COMBOBOX event handler for ID_RICHTEXTBULLETSPAGE_BULLETALIGNMENTCTRL + /// wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTBULLETSPAGE_BULLETALIGNMENTCTRL void OnBulletAlignmentCtrlSelected( wxCommandEvent& event ); /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLSTATIC void OnSymbolstaticUpdate( wxUpdateUIEvent& event ); - /// wxEVT_COMBOBOX event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLCTRL + /// wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLCTRL void OnSymbolctrlSelected( wxCommandEvent& event ); - /// wxEVT_TEXT event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLCTRL + /// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLCTRL void OnSymbolctrlUpdated( wxCommandEvent& event ); /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLCTRL void OnSymbolctrlUpdate( wxUpdateUIEvent& event ); - /// wxEVT_BUTTON event handler for ID_RICHTEXTBULLETSPAGE_CHOOSE_SYMBOL + /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RICHTEXTBULLETSPAGE_CHOOSE_SYMBOL void OnChooseSymbolClick( wxCommandEvent& event ); /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_CHOOSE_SYMBOL void OnChooseSymbolUpdate( wxUpdateUIEvent& event ); - /// wxEVT_COMBOBOX event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLFONTCTRL + /// wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLFONTCTRL void OnSymbolfontctrlSelected( wxCommandEvent& event ); - /// wxEVT_TEXT event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLFONTCTRL + /// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLFONTCTRL void OnSymbolfontctrlUpdated( wxCommandEvent& event ); /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLFONTCTRL @@ -138,10 +138,10 @@ public: /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_NAMESTATIC void OnNamestaticUpdate( wxUpdateUIEvent& event ); - /// wxEVT_COMBOBOX event handler for ID_RICHTEXTBULLETSPAGE_NAMECTRL + /// wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTBULLETSPAGE_NAMECTRL void OnNamectrlSelected( wxCommandEvent& event ); - /// wxEVT_TEXT event handler for ID_RICHTEXTBULLETSPAGE_NAMECTRL + /// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTBULLETSPAGE_NAMECTRL void OnNamectrlUpdated( wxCommandEvent& event ); /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_NAMECTRL @@ -150,7 +150,7 @@ public: /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_NUMBERSTATIC void OnNumberstaticUpdate( wxUpdateUIEvent& event ); - /// wxEVT_SPINCTRL event handler for ID_RICHTEXTBULLETSPAGE_NUMBERCTRL + /// wxEVT_COMMAND_SPINCTRL_UPDATED event handler for ID_RICHTEXTBULLETSPAGE_NUMBERCTRL void OnNumberctrlUpdated( wxSpinEvent& event ); /// wxEVT_SCROLL_LINEUP event handler for ID_RICHTEXTBULLETSPAGE_NUMBERCTRL @@ -159,7 +159,7 @@ public: /// wxEVT_SCROLL_LINEDOWN event handler for ID_RICHTEXTBULLETSPAGE_NUMBERCTRL void OnNumberctrlDown( wxSpinEvent& event ); - /// wxEVT_TEXT event handler for ID_RICHTEXTBULLETSPAGE_NUMBERCTRL + /// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTBULLETSPAGE_NUMBERCTRL void OnNumberctrlTextUpdated( wxCommandEvent& event ); /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_NUMBERCTRL diff --git a/include/wx/richtext/richtextfontpage.h b/include/wx/richtext/richtextfontpage.h index 25e8e5e98d..b658f3a30f 100644 --- a/include/wx/richtext/richtextfontpage.h +++ b/include/wx/richtext/richtextfontpage.h @@ -26,8 +26,8 @@ */ ////@begin forward declarations -class wxSpinButton; class wxBoxSizer; +class wxSpinButton; class wxRichTextFontListBox; class wxRichTextColourSwatchCtrl; class wxRichTextFontPreviewCtrl; @@ -82,15 +82,24 @@ public: /// Gets the attributes associated with the main formatting dialog wxRichTextAttr* GetAttributes(); + /// Determines which text effect controls should be shown. + /// Currently only wxTEXT_ATTR_EFFECT_RTL and wxTEXT_ATTR_EFFECT_SUPPRESS_HYPHENATION may + /// be removed from the page. By default, these effects are not shown as they + /// have no effect in the editor. + static int GetAllowedTextEffects() { return sm_allowedTextEffects; } + + /// Sets the allowed text effects in the page. + static void SetAllowedTextEffects(int allowed) { sm_allowedTextEffects = allowed; } + ////@begin wxRichTextFontPage event handler declarations /// wxEVT_IDLE event handler for ID_RICHTEXTFONTPAGE void OnIdle( wxIdleEvent& event ); - /// wxEVT_TEXT event handler for ID_RICHTEXTFONTPAGE_FACETEXTCTRL + /// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTFONTPAGE_FACETEXTCTRL void OnFaceTextCtrlUpdated( wxCommandEvent& event ); - /// wxEVT_TEXT event handler for ID_RICHTEXTFONTPAGE_SIZETEXTCTRL + /// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTFONTPAGE_SIZETEXTCTRL void OnSizeTextCtrlUpdated( wxCommandEvent& event ); /// wxEVT_SCROLL_LINEUP event handler for ID_RICHTEXTFONTPAGE_SPINBUTTONS @@ -99,31 +108,31 @@ public: /// wxEVT_SCROLL_LINEDOWN event handler for ID_RICHTEXTFONTPAGE_SPINBUTTONS void OnRichtextfontpageSpinbuttonsDown( wxSpinEvent& event ); - /// wxEVT_CHOICE event handler for ID_RICHTEXTFONTPAGE_SIZE_UNITS + /// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_RICHTEXTFONTPAGE_SIZE_UNITS void OnRichtextfontpageSizeUnitsSelected( wxCommandEvent& event ); - /// wxEVT_LISTBOX event handler for ID_RICHTEXTFONTPAGE_SIZELISTBOX + /// wxEVT_COMMAND_LISTBOX_SELECTED event handler for ID_RICHTEXTFONTPAGE_SIZELISTBOX void OnSizeListBoxSelected( wxCommandEvent& event ); - /// wxEVT_COMBOBOX event handler for ID_RICHTEXTFONTPAGE_STYLECTRL + /// wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTFONTPAGE_STYLECTRL void OnStyleCtrlSelected( wxCommandEvent& event ); - /// wxEVT_COMBOBOX event handler for ID_RICHTEXTFONTPAGE_WEIGHTCTRL + /// wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTFONTPAGE_WEIGHTCTRL void OnWeightCtrlSelected( wxCommandEvent& event ); - /// wxEVT_COMBOBOX event handler for ID_RICHTEXTFONTPAGE_UNDERLINING_CTRL + /// wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTFONTPAGE_UNDERLINING_CTRL void OnUnderliningCtrlSelected( wxCommandEvent& event ); - /// wxEVT_CHECKBOX event handler for ID_RICHTEXTFONTPAGE_STRIKETHROUGHCTRL + /// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXTFONTPAGE_STRIKETHROUGHCTRL void OnStrikethroughctrlClick( wxCommandEvent& event ); - /// wxEVT_CHECKBOX event handler for ID_RICHTEXTFONTPAGE_CAPSCTRL + /// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXTFONTPAGE_CAPSCTRL void OnCapsctrlClick( wxCommandEvent& event ); - /// wxEVT_CHECKBOX event handler for ID_RICHTEXTFONTPAGE_SUPERSCRIPT + /// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXTFONTPAGE_SUPERSCRIPT void OnRichtextfontpageSuperscriptClick( wxCommandEvent& event ); - /// wxEVT_CHECKBOX event handler for ID_RICHTEXTFONTPAGE_SUBSCRIPT + /// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXTFONTPAGE_SUBSCRIPT void OnRichtextfontpageSubscriptClick( wxCommandEvent& event ); ////@end wxRichTextFontPage event handler declarations @@ -141,6 +150,7 @@ public: static bool ShowToolTips(); ////@begin wxRichTextFontPage member variables + wxBoxSizer* m_innerSizer; wxTextCtrl* m_faceTextCtrl; wxTextCtrl* m_sizeTextCtrl; wxSpinButton* m_fontSizeSpinButtons; @@ -160,6 +170,9 @@ public: wxCheckBox* m_smallCapitalsCtrl; wxCheckBox* m_superscriptCtrl; wxCheckBox* m_subscriptCtrl; + wxBoxSizer* m_rtlParentSizer; + wxCheckBox* m_rtlCtrl; + wxCheckBox* m_suppressHyphenationCtrl; wxRichTextFontPreviewCtrl* m_previewCtrl; /// Control identifiers enum { @@ -182,6 +195,8 @@ public: ID_RICHTEXTFONTPAGE_SMALLCAPSCTRL = 10016, ID_RICHTEXTFONTPAGE_SUPERSCRIPT = 10017, ID_RICHTEXTFONTPAGE_SUBSCRIPT = 10018, + ID_RICHTEXTFONTPAGE_RIGHT_TO_LEFT = 10020, + ID_RICHTEXTFONTPAGE_SUBSCRIPT_SUPPRESS_HYPHENATION = 10021, ID_RICHTEXTFONTPAGE_PREVIEWCTRL = 10019 }; ////@end wxRichTextFontPage member variables @@ -189,6 +204,7 @@ public: bool m_dontUpdate; bool m_colourPresent; bool m_bgColourPresent; + static int sm_allowedTextEffects; }; #endif diff --git a/include/wx/richtext/richtexttabspage.h b/include/wx/richtext/richtexttabspage.h index 0be6977e09..ee50f7498c 100644 --- a/include/wx/richtext/richtexttabspage.h +++ b/include/wx/richtext/richtexttabspage.h @@ -32,7 +32,7 @@ */ ////@begin control identifiers -#define SYMBOL_WXRICHTEXTTABSPAGE_STYLE wxRESIZE_BORDER|wxTAB_TRAVERSAL +#define SYMBOL_WXRICHTEXTTABSPAGE_STYLE wxTAB_TRAVERSAL #define SYMBOL_WXRICHTEXTTABSPAGE_TITLE wxEmptyString #define SYMBOL_WXRICHTEXTTABSPAGE_IDNAME ID_RICHTEXTTABSPAGE #define SYMBOL_WXRICHTEXTTABSPAGE_SIZE wxSize(400, 300) @@ -75,22 +75,22 @@ public: ////@begin wxRichTextTabsPage event handler declarations - /// wxEVT_LISTBOX event handler for ID_RICHTEXTTABSPAGE_TABLIST + /// wxEVT_COMMAND_LISTBOX_SELECTED event handler for ID_RICHTEXTTABSPAGE_TABLIST void OnTablistSelected( wxCommandEvent& event ); - /// wxEVT_BUTTON event handler for ID_RICHTEXTTABSPAGE_NEW_TAB + /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RICHTEXTTABSPAGE_NEW_TAB void OnNewTabClick( wxCommandEvent& event ); /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTTABSPAGE_NEW_TAB void OnNewTabUpdate( wxUpdateUIEvent& event ); - /// wxEVT_BUTTON event handler for ID_RICHTEXTTABSPAGE_DELETE_TAB + /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RICHTEXTTABSPAGE_DELETE_TAB void OnDeleteTabClick( wxCommandEvent& event ); /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTTABSPAGE_DELETE_TAB void OnDeleteTabUpdate( wxUpdateUIEvent& event ); - /// wxEVT_BUTTON event handler for ID_RICHTEXTTABSPAGE_DELETE_ALL_TABS + /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RICHTEXTTABSPAGE_DELETE_ALL_TABS void OnDeleteAllTabsClick( wxCommandEvent& event ); /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTTABSPAGE_DELETE_ALL_TABS diff --git a/include/wx/textctrl.h b/include/wx/textctrl.h index 83634e1885..58677b71cf 100644 --- a/include/wx/textctrl.h +++ b/include/wx/textctrl.h @@ -262,7 +262,9 @@ enum wxTextAttrEffects wxTEXT_ATTR_EFFECT_OUTLINE = 0x00000040, wxTEXT_ATTR_EFFECT_ENGRAVE = 0x00000080, wxTEXT_ATTR_EFFECT_SUPERSCRIPT = 0x00000100, - wxTEXT_ATTR_EFFECT_SUBSCRIPT = 0x00000200 + wxTEXT_ATTR_EFFECT_SUBSCRIPT = 0x00000200, + wxTEXT_ATTR_EFFECT_RTL = 0x00000400, + wxTEXT_ATTR_EFFECT_SUPPRESS_HYPHENATION = 0x00001000 }; /*! diff --git a/interface/wx/textctrl.h b/interface/wx/textctrl.h index cac926f5fe..63038b8bbd 100644 --- a/interface/wx/textctrl.h +++ b/interface/wx/textctrl.h @@ -201,7 +201,9 @@ enum wxTextAttrEffects wxTEXT_ATTR_EFFECT_OUTLINE = 0x00000040, wxTEXT_ATTR_EFFECT_ENGRAVE = 0x00000080, wxTEXT_ATTR_EFFECT_SUPERSCRIPT = 0x00000100, - wxTEXT_ATTR_EFFECT_SUBSCRIPT = 0x00000200 + wxTEXT_ATTR_EFFECT_SUBSCRIPT = 0x00000200, + wxTEXT_ATTR_EFFECT_RTL = 0x00000400, + wxTEXT_ATTR_EFFECT_SUPPRESS_HYPHENATION = 0x00001000 }; /** diff --git a/src/richtext/richtextbulletspage.cpp b/src/richtext/richtextbulletspage.cpp index 0b04325827..99c4bc7473 100644 --- a/src/richtext/richtextbulletspage.cpp +++ b/src/richtext/richtextbulletspage.cpp @@ -29,45 +29,32 @@ BEGIN_EVENT_TABLE( wxRichTextBulletsPage, wxRichTextDialogPage ) ////@begin wxRichTextBulletsPage event table entries EVT_LISTBOX( ID_RICHTEXTBULLETSPAGE_STYLELISTBOX, wxRichTextBulletsPage::OnStylelistboxSelected ) - EVT_CHECKBOX( ID_RICHTEXTBULLETSPAGE_PERIODCTRL, wxRichTextBulletsPage::OnPeriodctrlClick ) EVT_UPDATE_UI( ID_RICHTEXTBULLETSPAGE_PERIODCTRL, wxRichTextBulletsPage::OnPeriodctrlUpdate ) - EVT_CHECKBOX( ID_RICHTEXTBULLETSPAGE_PARENTHESESCTRL, wxRichTextBulletsPage::OnParenthesesctrlClick ) EVT_UPDATE_UI( ID_RICHTEXTBULLETSPAGE_PARENTHESESCTRL, wxRichTextBulletsPage::OnParenthesesctrlUpdate ) - EVT_CHECKBOX( ID_RICHTEXTBULLETSPAGE_RIGHTPARENTHESISCTRL, wxRichTextBulletsPage::OnRightParenthesisCtrlClick ) EVT_UPDATE_UI( ID_RICHTEXTBULLETSPAGE_RIGHTPARENTHESISCTRL, wxRichTextBulletsPage::OnRightParenthesisCtrlUpdate ) - EVT_COMBOBOX( ID_RICHTEXTBULLETSPAGE_BULLETALIGNMENTCTRL, wxRichTextBulletsPage::OnBulletAlignmentCtrlSelected ) - EVT_UPDATE_UI( ID_RICHTEXTBULLETSPAGE_SYMBOLSTATIC, wxRichTextBulletsPage::OnSymbolstaticUpdate ) - EVT_COMBOBOX( ID_RICHTEXTBULLETSPAGE_SYMBOLCTRL, wxRichTextBulletsPage::OnSymbolctrlSelected ) EVT_TEXT( ID_RICHTEXTBULLETSPAGE_SYMBOLCTRL, wxRichTextBulletsPage::OnSymbolctrlUpdated ) EVT_UPDATE_UI( ID_RICHTEXTBULLETSPAGE_SYMBOLCTRL, wxRichTextBulletsPage::OnSymbolctrlUpdate ) - EVT_BUTTON( ID_RICHTEXTBULLETSPAGE_CHOOSE_SYMBOL, wxRichTextBulletsPage::OnChooseSymbolClick ) EVT_UPDATE_UI( ID_RICHTEXTBULLETSPAGE_CHOOSE_SYMBOL, wxRichTextBulletsPage::OnChooseSymbolUpdate ) - EVT_COMBOBOX( ID_RICHTEXTBULLETSPAGE_SYMBOLFONTCTRL, wxRichTextBulletsPage::OnSymbolfontctrlSelected ) EVT_TEXT( ID_RICHTEXTBULLETSPAGE_SYMBOLFONTCTRL, wxRichTextBulletsPage::OnSymbolfontctrlUpdated ) EVT_UPDATE_UI( ID_RICHTEXTBULLETSPAGE_SYMBOLFONTCTRL, wxRichTextBulletsPage::OnSymbolfontctrlUIUpdate ) - EVT_UPDATE_UI( ID_RICHTEXTBULLETSPAGE_NAMESTATIC, wxRichTextBulletsPage::OnNamestaticUpdate ) - EVT_COMBOBOX( ID_RICHTEXTBULLETSPAGE_NAMECTRL, wxRichTextBulletsPage::OnNamectrlSelected ) EVT_TEXT( ID_RICHTEXTBULLETSPAGE_NAMECTRL, wxRichTextBulletsPage::OnNamectrlUpdated ) EVT_UPDATE_UI( ID_RICHTEXTBULLETSPAGE_NAMECTRL, wxRichTextBulletsPage::OnNamectrlUIUpdate ) - EVT_UPDATE_UI( ID_RICHTEXTBULLETSPAGE_NUMBERSTATIC, wxRichTextBulletsPage::OnNumberstaticUpdate ) - EVT_SPINCTRL( ID_RICHTEXTBULLETSPAGE_NUMBERCTRL, wxRichTextBulletsPage::OnNumberctrlUpdated ) EVT_SPIN_UP( ID_RICHTEXTBULLETSPAGE_NUMBERCTRL, wxRichTextBulletsPage::OnNumberctrlUp ) EVT_SPIN_DOWN( ID_RICHTEXTBULLETSPAGE_NUMBERCTRL, wxRichTextBulletsPage::OnNumberctrlDown ) EVT_TEXT( ID_RICHTEXTBULLETSPAGE_NUMBERCTRL, wxRichTextBulletsPage::OnNumberctrlTextUpdated ) EVT_UPDATE_UI( ID_RICHTEXTBULLETSPAGE_NUMBERCTRL, wxRichTextBulletsPage::OnNumberctrlUpdate ) - ////@end wxRichTextBulletsPage event table entries END_EVENT_TABLE() @@ -276,7 +263,7 @@ void wxRichTextBulletsPage::CreateControls() m_previewCtrl->SetHelpText(_("Shows a preview of the bullet settings.")); if (wxRichTextBulletsPage::ShowToolTips()) m_previewCtrl->SetToolTip(_("Shows a preview of the bullet settings.")); - itemBoxSizer3->Add(m_previewCtrl, 1, wxGROW|wxALL, 5); + itemBoxSizer3->Add(m_previewCtrl, 1, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); ////@end wxRichTextBulletsPage content construction @@ -536,8 +523,7 @@ bool wxRichTextBulletsPage::TransferDataToWindow() /// Updates the bullet preview void wxRichTextBulletsPage::UpdatePreview() { - static const wxChar* s_para1 = wxT("Lorem ipsum dolor sit amet, consectetuer adipiscing elit. \ -Nullam ante sapien, vestibulum nonummy, pulvinar sed, luctus ut, lacus.\n"); + static const wxChar* s_para1 = wxT("Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\n"); static const wxChar* s_para2 = wxT("Duis pharetra consequat dui. Cum sociis natoque penatibus \ et magnis dis parturient montes, nascetur ridiculus mus. Nullam vitae justo id mauris lobortis interdum.\n"); diff --git a/src/richtext/richtextdialogs.pjd b/src/richtext/richtextdialogs.pjd index 16c4249ef6..788deac8c3 100644 --- a/src/richtext/richtextdialogs.pjd +++ b/src/richtext/richtextdialogs.pjd @@ -308,14 +308,6 @@ "wbBoxSizerProxy" "Vertical" "" - "Centre" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 0 0 0 @@ -333,7 +325,7 @@ "2/10/2006" "wbBoxSizerProxy" "Vertical" - "" + "m_innerSizer" "Expand" "Centre" 1 @@ -362,7 +354,7 @@ "" "Expand" "Centre" - 1 + 0 5 0 0 @@ -916,7 +908,7 @@ "m_fontListBoxParent" "Expand" "Centre" - 0 + 1 5 0 0 @@ -983,7 +975,7 @@ 200 100 "Expand" - "Centre" + "Expand" 1 5 1 @@ -2307,6 +2299,160 @@ "" + + "wxBoxSizer H" + "dialog-control-document" + "" + "sizer" + 0 + 1 + 0 + 0 + "wbBoxSizerProxy" + "Horizontal" + "m_rtlParentSizer" + "Left" + "Centre" + 0 + 5 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + "<Any platform>" + + "wxCheckBox: ID_RICHTEXTFONTPAGE_RIGHT_TO_LEFT" + "dialog-control-document" + "" + "checkbox" + 0 + 1 + 0 + 0 + "wbCheckBoxProxy" + "ID_RICHTEXTFONTPAGE_RIGHT_TO_LEFT" + 10020 + "" + "wxCheckBox" + "wxCheckBox" + 1 + 0 + "" + "" + "m_rtlCtrl" + "Rig&ht-to-left" + 0 + "Check to indicate right-to-left text layout." + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + 0 + 1 + "<Any platform>" + 0 + 0 + 1 + 1 + 0 + 0 + 0 + "" + -1 + -1 + -1 + -1 + "Centre" + "Centre" + 0 + 5 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + "" + "" + + + "wxCheckBox: ID_RICHTEXTFONTPAGE_SUBSCRIPT_SUPPRESS_HYPHENATION" + "dialog-control-document" + "" + "checkbox" + 0 + 1 + 0 + 0 + "wbCheckBoxProxy" + "ID_RICHTEXTFONTPAGE_SUBSCRIPT_SUPPRESS_HYPHENATION" + 10021 + "" + "wxCheckBox" + "wxCheckBox" + 1 + 0 + "" + "" + "m_suppressHyphenationCtrl" + "Suppress hyphe&nation" + 0 + "Check to suppress hyphenation." + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + 0 + 1 + "<Any platform>" + 0 + 0 + 1 + 1 + 0 + 0 + 0 + "" + -1 + -1 + -1 + -1 + "Centre" + "Centre" + 0 + 5 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + "" + "" + + "Spacer" "dialog-control-document" @@ -2502,14 +2648,6 @@ "wbBoxSizerProxy" "Vertical" "" - "Centre" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 0 0 0 @@ -4926,7 +5064,7 @@ "Tiled" 0 0 - 1 + 0 0 0 0 @@ -4971,14 +5109,6 @@ "wbBoxSizerProxy" "Vertical" "" - "Centre" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 0 0 0 @@ -5311,7 +5441,7 @@ 1 "Centre" "Centre" - 1 + 0 5 0 0 @@ -5681,7 +5811,7 @@ "Tiled" 0 0 - 1 + 0 0 0 0 @@ -5726,14 +5856,6 @@ "wbBoxSizerProxy" "Vertical" "" - "Centre" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 0 0 0 @@ -7334,7 +7456,7 @@ -1 350 100 - "Expand" + "Centre" "Centre" 1 5 @@ -22642,6 +22764,14 @@ "wbBoxSizerProxy" "Vertical" "" + "Centre" + "Centre" + 0 + 5 + 1 + 1 + 1 + 1 0 0 0 diff --git a/src/richtext/richtextfontpage.cpp b/src/richtext/richtextfontpage.cpp index c83c0d7a48..1a95a472b9 100644 --- a/src/richtext/richtextfontpage.cpp +++ b/src/richtext/richtextfontpage.cpp @@ -27,43 +27,30 @@ BEGIN_EVENT_TABLE( wxRichTextFontPage, wxRichTextDialogPage ) ////@begin wxRichTextFontPage event table entries EVT_IDLE( wxRichTextFontPage::OnIdle ) - EVT_TEXT( ID_RICHTEXTFONTPAGE_FACETEXTCTRL, wxRichTextFontPage::OnFaceTextCtrlUpdated ) - EVT_TEXT( ID_RICHTEXTFONTPAGE_SIZETEXTCTRL, wxRichTextFontPage::OnSizeTextCtrlUpdated ) - EVT_SPIN_UP( ID_RICHTEXTFONTPAGE_SPINBUTTONS, wxRichTextFontPage::OnRichtextfontpageSpinbuttonsUp ) EVT_SPIN_DOWN( ID_RICHTEXTFONTPAGE_SPINBUTTONS, wxRichTextFontPage::OnRichtextfontpageSpinbuttonsDown ) - EVT_CHOICE( ID_RICHTEXTFONTPAGE_SIZE_UNITS, wxRichTextFontPage::OnRichtextfontpageSizeUnitsSelected ) - EVT_LISTBOX( ID_RICHTEXTFONTPAGE_SIZELISTBOX, wxRichTextFontPage::OnSizeListBoxSelected ) - EVT_COMBOBOX( ID_RICHTEXTFONTPAGE_STYLECTRL, wxRichTextFontPage::OnStyleCtrlSelected ) - EVT_COMBOBOX( ID_RICHTEXTFONTPAGE_WEIGHTCTRL, wxRichTextFontPage::OnWeightCtrlSelected ) - EVT_COMBOBOX( ID_RICHTEXTFONTPAGE_UNDERLINING_CTRL, wxRichTextFontPage::OnUnderliningCtrlSelected ) - EVT_CHECKBOX( ID_RICHTEXTFONTPAGE_COLOURCTRL_LABEL, wxRichTextFontPage::OnUnderliningCtrlSelected ) - EVT_CHECKBOX( ID_RICHTEXTFONTPAGE_BGCOLOURCTRL_LABEL, wxRichTextFontPage::OnUnderliningCtrlSelected ) - EVT_CHECKBOX( ID_RICHTEXTFONTPAGE_STRIKETHROUGHCTRL, wxRichTextFontPage::OnStrikethroughctrlClick ) - EVT_CHECKBOX( ID_RICHTEXTFONTPAGE_CAPSCTRL, wxRichTextFontPage::OnCapsctrlClick ) - EVT_CHECKBOX( ID_RICHTEXTFONTPAGE_SMALLCAPSCTRL, wxRichTextFontPage::OnCapsctrlClick ) - EVT_CHECKBOX( ID_RICHTEXTFONTPAGE_SUPERSCRIPT, wxRichTextFontPage::OnRichtextfontpageSuperscriptClick ) - EVT_CHECKBOX( ID_RICHTEXTFONTPAGE_SUBSCRIPT, wxRichTextFontPage::OnRichtextfontpageSubscriptClick ) - ////@end wxRichTextFontPage event table entries END_EVENT_TABLE() IMPLEMENT_HELP_PROVISION(wxRichTextFontPage) + +int wxRichTextFontPage::sm_allowedTextEffects = 0xFFFF & ~(wxTEXT_ATTR_EFFECT_SUPPRESS_HYPHENATION|wxTEXT_ATTR_EFFECT_RTL); + /*! * wxRichTextFontPage constructors */ @@ -90,6 +77,7 @@ void wxRichTextFontPage::Init() m_bgColourPresent = false; ////@begin wxRichTextFontPage member initialisation + m_innerSizer = NULL; m_faceTextCtrl = NULL; m_sizeTextCtrl = NULL; m_fontSizeSpinButtons = NULL; @@ -109,6 +97,9 @@ void wxRichTextFontPage::Init() m_smallCapitalsCtrl = NULL; m_superscriptCtrl = NULL; m_subscriptCtrl = NULL; + m_rtlParentSizer = NULL; + m_rtlCtrl = NULL; + m_suppressHyphenationCtrl = NULL; m_previewCtrl = NULL; ////@end wxRichTextFontPage member initialisation } @@ -144,11 +135,11 @@ void wxRichTextFontPage::CreateControls() wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL); itemRichTextDialogPage1->SetSizer(itemBoxSizer2); - wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxVERTICAL); - itemBoxSizer2->Add(itemBoxSizer3, 1, wxGROW|wxALL, 5); + m_innerSizer = new wxBoxSizer(wxVERTICAL); + itemBoxSizer2->Add(m_innerSizer, 1, wxGROW|wxALL, 5); wxBoxSizer* itemBoxSizer4 = new wxBoxSizer(wxHORIZONTAL); - itemBoxSizer3->Add(itemBoxSizer4, 1, wxGROW, 5); + m_innerSizer->Add(itemBoxSizer4, 0, wxGROW, 5); wxBoxSizer* itemBoxSizer5 = new wxBoxSizer(wxVERTICAL); itemBoxSizer4->Add(itemBoxSizer5, 1, wxGROW, 5); @@ -193,13 +184,13 @@ void wxRichTextFontPage::CreateControls() itemBoxSizer10->Add(m_sizeUnitsCtrl, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxTOP, 5); m_fontListBoxParent = new wxBoxSizer(wxHORIZONTAL); - itemBoxSizer3->Add(m_fontListBoxParent, 0, wxGROW, 5); + m_innerSizer->Add(m_fontListBoxParent, 1, wxGROW, 5); m_faceListBox = new wxRichTextFontListBox( itemRichTextDialogPage1, ID_RICHTEXTFONTPAGE_FACELISTBOX, wxDefaultPosition, wxSize(200, 100), 0 ); m_faceListBox->SetHelpText(_("Lists the available fonts.")); if (wxRichTextFontPage::ShowToolTips()) m_faceListBox->SetToolTip(_("Lists the available fonts.")); - m_fontListBoxParent->Add(m_faceListBox, 1, wxALIGN_CENTER_VERTICAL|wxALL|wxFIXED_MINSIZE, 5); + m_fontListBoxParent->Add(m_faceListBox, 1, wxGROW|wxALL|wxFIXED_MINSIZE, 5); wxArrayString m_sizeListBoxStrings; m_sizeListBox = new wxListBox( itemRichTextDialogPage1, ID_RICHTEXTFONTPAGE_SIZELISTBOX, wxDefaultPosition, wxSize(50, -1), m_sizeListBoxStrings, wxLB_SINGLE ); @@ -209,7 +200,7 @@ void wxRichTextFontPage::CreateControls() m_fontListBoxParent->Add(m_sizeListBox, 0, wxGROW|wxALL|wxFIXED_MINSIZE, 5); wxBoxSizer* itemBoxSizer17 = new wxBoxSizer(wxHORIZONTAL); - itemBoxSizer3->Add(itemBoxSizer17, 0, wxGROW, 5); + m_innerSizer->Add(itemBoxSizer17, 0, wxGROW, 5); wxBoxSizer* itemBoxSizer18 = new wxBoxSizer(wxVERTICAL); itemBoxSizer17->Add(itemBoxSizer18, 0, wxGROW, 5); @@ -279,7 +270,7 @@ void wxRichTextFontPage::CreateControls() itemBoxSizer31->Add(m_bgColourCtrl, 0, wxGROW|wxALL, 5); wxBoxSizer* itemBoxSizer34 = new wxBoxSizer(wxHORIZONTAL); - itemBoxSizer3->Add(itemBoxSizer34, 0, wxGROW, 5); + m_innerSizer->Add(itemBoxSizer34, 0, wxGROW, 5); m_strikethroughCtrl = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXTFONTPAGE_STRIKETHROUGHCTRL, _("&Strikethrough"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER ); m_strikethroughCtrl->SetValue(false); @@ -316,16 +307,41 @@ void wxRichTextFontPage::CreateControls() m_subscriptCtrl->SetToolTip(_("Check to show the text in subscript.")); itemBoxSizer34->Add(m_subscriptCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); - itemBoxSizer3->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL, 5); + m_rtlParentSizer = new wxBoxSizer(wxHORIZONTAL); + m_innerSizer->Add(m_rtlParentSizer, 0, wxALIGN_LEFT, 5); + + m_rtlCtrl = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXTFONTPAGE_RIGHT_TO_LEFT, _("Rig&ht-to-left"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER ); + m_rtlCtrl->SetValue(false); + m_rtlCtrl->SetHelpText(_("Check to indicate right-to-left text layout.")); + if (wxRichTextFontPage::ShowToolTips()) + m_rtlCtrl->SetToolTip(_("Check to indicate right-to-left text layout.")); + m_rtlParentSizer->Add(m_rtlCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); + + m_suppressHyphenationCtrl = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXTFONTPAGE_SUBSCRIPT_SUPPRESS_HYPHENATION, _("Suppress hyphe&nation"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER ); + m_suppressHyphenationCtrl->SetValue(false); + m_suppressHyphenationCtrl->SetHelpText(_("Check to suppress hyphenation.")); + if (wxRichTextFontPage::ShowToolTips()) + m_suppressHyphenationCtrl->SetToolTip(_("Check to suppress hyphenation.")); + m_rtlParentSizer->Add(m_suppressHyphenationCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); + + m_innerSizer->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL, 5); m_previewCtrl = new wxRichTextFontPreviewCtrl( itemRichTextDialogPage1, ID_RICHTEXTFONTPAGE_PREVIEWCTRL, wxDefaultPosition, wxSize(100, 60), 0 ); m_previewCtrl->SetHelpText(_("Shows a preview of the font settings.")); if (wxRichTextFontPage::ShowToolTips()) m_previewCtrl->SetToolTip(_("Shows a preview of the font settings.")); - itemBoxSizer3->Add(m_previewCtrl, 0, wxGROW|wxALL, 5); + m_innerSizer->Add(m_previewCtrl, 0, wxGROW|wxALL, 5); ////@end wxRichTextFontPage content construction + if ((GetAllowedTextEffects() & wxTEXT_ATTR_EFFECT_RTL) == 0) + m_rtlParentSizer->Show(m_rtlCtrl, false); + if ((GetAllowedTextEffects() & wxTEXT_ATTR_EFFECT_SUPPRESS_HYPHENATION) == 0) + m_rtlParentSizer->Show(m_suppressHyphenationCtrl, false); + + if ((GetAllowedTextEffects() & (wxTEXT_ATTR_EFFECT_SUPPRESS_HYPHENATION|wxTEXT_ATTR_EFFECT_RTL)) == 0) + m_innerSizer->Show(m_rtlParentSizer, false); + m_faceListBox->UpdateFonts(); m_styleCtrl->Append(_("(none)")); @@ -499,6 +515,42 @@ bool wxRichTextFontPage::TransferDataFromWindow() attr->SetTextEffects(attr->GetTextEffects() & ~(wxTEXT_ATTR_EFFECT_SUBSCRIPT|wxTEXT_ATTR_EFFECT_SUPERSCRIPT) ); } + if (GetAllowedTextEffects() & wxTEXT_ATTR_EFFECT_RTL) + { + if (m_rtlCtrl->Get3StateValue() != wxCHK_UNDETERMINED) + { + attr->SetTextEffectFlags(attr->GetTextEffectFlags() | wxTEXT_ATTR_EFFECT_RTL); + + if (m_rtlCtrl->Get3StateValue() == wxCHK_CHECKED) + attr->SetTextEffects(attr->GetTextEffects() | wxTEXT_ATTR_EFFECT_RTL); + else + attr->SetTextEffects(attr->GetTextEffects() & ~wxTEXT_ATTR_EFFECT_RTL); + } + else + { + attr->SetTextEffectFlags(attr->GetTextEffectFlags() & ~wxTEXT_ATTR_EFFECT_RTL); + attr->SetTextEffects(attr->GetTextEffects() & ~wxTEXT_ATTR_EFFECT_RTL); + } + } + + if (GetAllowedTextEffects() & wxTEXT_ATTR_EFFECT_SUPPRESS_HYPHENATION) + { + if (m_suppressHyphenationCtrl->Get3StateValue() != wxCHK_UNDETERMINED) + { + attr->SetTextEffectFlags(attr->GetTextEffectFlags() | wxTEXT_ATTR_EFFECT_SUPPRESS_HYPHENATION); + + if (m_suppressHyphenationCtrl->Get3StateValue() == wxCHK_CHECKED) + attr->SetTextEffects(attr->GetTextEffects() | wxTEXT_ATTR_EFFECT_SUPPRESS_HYPHENATION); + else + attr->SetTextEffects(attr->GetTextEffects() & ~wxTEXT_ATTR_EFFECT_SUPPRESS_HYPHENATION); + } + else + { + attr->SetTextEffectFlags(attr->GetTextEffectFlags() & ~wxTEXT_ATTR_EFFECT_SUPPRESS_HYPHENATION); + attr->SetTextEffects(attr->GetTextEffects() & ~wxTEXT_ATTR_EFFECT_SUPPRESS_HYPHENATION); + } + } + if (attr->GetTextEffectFlags() == 0) attr->SetFlags(attr->GetFlags() & ~wxTEXT_ATTR_EFFECTS); @@ -659,6 +711,32 @@ bool wxRichTextFontPage::TransferDataToWindow() m_superscriptCtrl->Set3StateValue(wxCHK_UNDETERMINED); m_subscriptCtrl->Set3StateValue(wxCHK_UNDETERMINED); } + + if (GetAllowedTextEffects() & wxTEXT_ATTR_EFFECT_RTL) + { + if (attr->GetTextEffectFlags() & wxTEXT_ATTR_EFFECT_RTL) + { + if (attr->GetTextEffects() & wxTEXT_ATTR_EFFECT_RTL) + m_rtlCtrl->Set3StateValue(wxCHK_CHECKED); + else + m_rtlCtrl->Set3StateValue(wxCHK_UNCHECKED); + } + else + m_rtlCtrl->Set3StateValue(wxCHK_UNDETERMINED); + } + + if (GetAllowedTextEffects() & wxTEXT_ATTR_EFFECT_SUPPRESS_HYPHENATION) + { + if (attr->GetTextEffectFlags() & wxTEXT_ATTR_EFFECT_SUPPRESS_HYPHENATION) + { + if (attr->GetTextEffects() & wxTEXT_ATTR_EFFECT_SUPPRESS_HYPHENATION) + m_suppressHyphenationCtrl->Set3StateValue(wxCHK_CHECKED); + else + m_suppressHyphenationCtrl->Set3StateValue(wxCHK_UNCHECKED); + } + else + m_suppressHyphenationCtrl->Set3StateValue(wxCHK_UNDETERMINED); + } } else { @@ -667,6 +745,8 @@ bool wxRichTextFontPage::TransferDataToWindow() m_smallCapitalsCtrl->Set3StateValue(wxCHK_UNDETERMINED); m_superscriptCtrl->Set3StateValue(wxCHK_UNDETERMINED); m_subscriptCtrl->Set3StateValue(wxCHK_UNDETERMINED); + m_rtlCtrl->Set3StateValue(wxCHK_UNDETERMINED); + m_suppressHyphenationCtrl->Set3StateValue(wxCHK_UNDETERMINED); } UpdatePreview(); diff --git a/src/richtext/richtexttabspage.cpp b/src/richtext/richtexttabspage.cpp index 954a70952a..7cc3d50a29 100644 --- a/src/richtext/richtexttabspage.cpp +++ b/src/richtext/richtexttabspage.cpp @@ -26,16 +26,12 @@ BEGIN_EVENT_TABLE( wxRichTextTabsPage, wxRichTextDialogPage ) ////@begin wxRichTextTabsPage event table entries EVT_LISTBOX( ID_RICHTEXTTABSPAGE_TABLIST, wxRichTextTabsPage::OnTablistSelected ) - EVT_BUTTON( ID_RICHTEXTTABSPAGE_NEW_TAB, wxRichTextTabsPage::OnNewTabClick ) EVT_UPDATE_UI( ID_RICHTEXTTABSPAGE_NEW_TAB, wxRichTextTabsPage::OnNewTabUpdate ) - EVT_BUTTON( ID_RICHTEXTTABSPAGE_DELETE_TAB, wxRichTextTabsPage::OnDeleteTabClick ) EVT_UPDATE_UI( ID_RICHTEXTTABSPAGE_DELETE_TAB, wxRichTextTabsPage::OnDeleteTabUpdate ) - EVT_BUTTON( ID_RICHTEXTTABSPAGE_DELETE_ALL_TABS, wxRichTextTabsPage::OnDeleteAllTabsClick ) EVT_UPDATE_UI( ID_RICHTEXTTABSPAGE_DELETE_ALL_TABS, wxRichTextTabsPage::OnDeleteAllTabsUpdate ) - ////@end wxRichTextTabsPage event table entries END_EVENT_TABLE() @@ -125,7 +121,7 @@ void wxRichTextTabsPage::CreateControls() m_tabListCtrl = new wxListBox( itemRichTextDialogPage1, ID_RICHTEXTTABSPAGE_TABLIST, wxDefaultPosition, wxSize(80, 200), m_tabListCtrlStrings, wxLB_SINGLE ); itemBoxSizer5->Add(m_tabListCtrl, 1, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5); - itemBoxSizer4->Add(2, 1, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5); + itemBoxSizer4->Add(2, 1, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5); wxBoxSizer* itemBoxSizer10 = new wxBoxSizer(wxVERTICAL); itemBoxSizer4->Add(itemBoxSizer10, 0, wxGROW, 5);