1 /////////////////////////////////////////////////////////////////////////////
2 // Name: richtext/richtextformatdlg.h
3 // Purpose: interface of wxRichTextFormattingDialog*
4 // Author: wxWidgets team
6 // Licence: wxWindows license
7 /////////////////////////////////////////////////////////////////////////////
10 @class wxRichTextFormattingDialogFactory
12 This class provides pages for wxRichTextFormattingDialog, and allows other
13 customization of the dialog.
15 A default instance of this class is provided automatically.
16 If you wish to change the behaviour of the formatting dialog (for example add
17 or replace a page), you may derive from this class, override one or more
18 functions, and call the static function
19 wxRichTextFormattingDialog::SetFormattingDialogFactory.
24 class wxRichTextFormattingDialogFactory
: public wxObject
30 wxRichTextFormattingDialogFactory();
35 virtual ~wxRichTextFormattingDialogFactory();
38 Creates the main dialog buttons.
40 virtual bool CreateButtons(wxRichTextFormattingDialog
* dialog
);
43 Creates a page, given a page identifier.
45 virtual wxPanel
* CreatePage(int page
, wxString
& title
,
46 wxRichTextFormattingDialog
* dialog
);
49 Creates all pages under the dialog's book control, also calling AddPage().
51 virtual bool CreatePages(long pages
,
52 wxRichTextFormattingDialog
* dialog
);
55 Enumerate all available page identifiers.
57 virtual int GetPageId(int i
) const;
60 Gets the number of available page identifiers.
62 virtual int GetPageIdCount() const;
65 Gets the image index for the given page identifier.
67 virtual int GetPageImage(int id
) const;
70 Set the property sheet style, called at the start of
71 wxRichTextFormattingDialog::Create.
73 virtual bool SetSheetStyle(wxRichTextFormattingDialog
* dialog
);
76 Invokes help for the dialog.
78 virtual bool ShowHelp(int page
,
79 wxRichTextFormattingDialog
* dialog
);
84 #define wxRICHTEXT_FORMAT_STYLE_EDITOR 0x0001
85 #define wxRICHTEXT_FORMAT_FONT 0x0002
86 #define wxRICHTEXT_FORMAT_TABS 0x0004
87 #define wxRICHTEXT_FORMAT_BULLETS 0x0008
88 #define wxRICHTEXT_FORMAT_INDENTS_SPACING 0x0010
91 @class wxRichTextFormattingDialog
93 This dialog allows the user to edit a character and/or paragraph style.
95 In the constructor, specify the pages that will be created.
96 Use wxRichTextFormattingDialog::GetStyle() to retrieve the common style
97 for a given range, and then use wxRichTextFormattingDialog::ApplyStyle()
98 to apply the user-selected formatting to a control.
102 wxRichTextRange range;
103 if (m_richTextCtrl-HasSelection())
104 range = m_richTextCtrl-GetSelectionRange();
106 range = wxRichTextRange(0, m_richTextCtrl-GetLastPosition()+1);
108 int pages = wxRICHTEXT_FORMAT_FONT|wxRICHTEXT_FORMAT_INDENTS_SPACING| \
109 wxRICHTEXT_FORMAT_TABS|wxRICHTEXT_FORMAT_BULLETS;
111 wxRichTextFormattingDialog formatDlg(pages, this);
112 formatDlg.GetStyle(m_richTextCtrl, range);
114 if (formatDlg.ShowModal() == wxID_OK)
116 formatDlg.ApplyStyle(m_richTextCtrl, range);
123 class wxRichTextFormattingDialog
: public wxPropertySheetDialog
129 wxRichTextFormattingDialog();
139 The dialog's position.
143 The dialog's window style.
145 wxRichTextFormattingDialog(long flags
, wxWindow
* parent
,
146 const wxPoint
& pos
= wxDefaultPosition
,
147 const wxSize
& sz
= wxDefaultSize
,
148 long style
= wxDEFAULT_DIALOG_STYLE
);
153 virtual ~wxRichTextFormattingDialog();
156 Apply attributes to the given range, only changing attributes that
159 bool ApplyStyle(wxRichTextCtrl
* ctrl
,
160 const wxRichTextRange
& range
,
161 int flags
= wxRICHTEXT_SETSTYLE_WITH_UNDO
|wxRICHTEXT_SETSTYLE_OPTIMIZE
);
164 Creation: see wxRichTextFormattingDialog() "the constructor" for
165 details about the parameters.
167 bool Create(long flags
, wxWindow
* parent
, const wxString
& title
,
168 wxWindowID id
, const wxPoint
& pos
= wxDefaultPosition
,
169 const wxSize
& sz
= wxDefaultSize
, long style
= wxDEFAULT_DIALOG_STYLE
);
173 Gets the attributes being edited.
175 const wxTextAttr
& GetAttributes() const;
176 wxTextAttr
& GetAttributes();
180 Helper for pages to get the top-level dialog.
182 static wxRichTextFormattingDialog
* GetDialog(wxWindow
* win
);
185 Helper for pages to get the attributes.
187 static wxTextAttr
* GetDialogAttributes(wxWindow
* win
);
190 Helper for pages to get the style.
192 static wxRichTextStyleDefinition
* GetDialogStyleDefinition(wxWindow
* win
);
195 Returns the object to be used to customize the dialog and provide pages.
197 static wxRichTextFormattingDialogFactory
* GetFormattingDialogFactory();
200 Returns the image list associated with the dialog, used for example if showing
201 the dialog as a toolbook.
203 wxImageList
* GetImageList() const;
206 Gets common attributes from the given range and calls SetAttributes().
207 Attributes that do not have common values in the given range
208 will be omitted from the style's flags.
210 virtual bool GetStyle(wxRichTextCtrl
* ctrl
, const wxRichTextRange
& range
);
213 Gets the associated style definition, if any.
215 virtual wxRichTextStyleDefinition
* GetStyleDefinition() const;
218 Gets the associated style sheet, if any.
220 virtual wxRichTextStyleSheet
* GetStyleSheet() const;
223 Sets the attributes to be edited.
225 void SetAttributes(const wxTextAttr
& attr
);
228 Sets the formatting factory object to be used for customization and page
231 It deletes the existing factory object.
233 static void SetFormattingDialogFactory(wxRichTextFormattingDialogFactory
* factory
);
236 Sets the image list associated with the dialog's property sheet.
238 void SetImageList(wxImageList
* imageList
);
241 Sets the attributes and optionally updates the display, if @a update is @true.
243 virtual bool SetStyle(const wxTextAttr
& style
, bool update
= true);
246 Sets the style definition and optionally update the display,
247 if @a update is @true.
249 virtual bool SetStyleDefinition(const wxRichTextStyleDefinition
& styleDef
,
250 wxRichTextStyleSheet
* sheet
,
256 virtual bool UpdateDisplay();