]> git.saurik.com Git - wxWidgets.git/blame - interface/richtext/richtextformatdlg.h
fixed links to global variables; fixed categories; use @see instead of @seealso
[wxWidgets.git] / interface / richtext / richtextformatdlg.h
CommitLineData
23324ae1
FM
1/////////////////////////////////////////////////////////////////////////////
2// Name: richtext/richtextformatdlg.h
21b447dc 3// Purpose: interface of wxRichTextFormattingDialogFactory
23324ae1
FM
4// Author: wxWidgets team
5// RCS-ID: $Id$
6// Licence: wxWindows license
7/////////////////////////////////////////////////////////////////////////////
8
9/**
10 @class wxRichTextFormattingDialogFactory
11 @headerfile richtextformatdlg.h wx/richtext/richtextformatdlg.h
7c913512 12
23324ae1
FM
13 This class provides pages for wxRichTextFormattingDialog, and allows other
14 customization of the dialog.
15 A default instance of this class is provided automatically. If you wish to
16 change the behaviour of the
17 formatting dialog (for example add or replace a page), you may derive from this
18 class,
19 override one or more functions, and call the static function
20 wxRichTextFormattingDialog::SetFormattingDialogFactory.
7c913512 21
23324ae1
FM
22 @library{wxrichtext}
23 @category{FIXME}
24*/
25class wxRichTextFormattingDialogFactory : public wxObject
26{
27public:
28 /**
29 Constructor.
30 */
31 wxRichTextFormattingDialogFactory();
32
33 /**
34 Destructor.
35 */
36 ~wxRichTextFormattingDialogFactory();
37
38 /**
39 Creates the main dialog buttons.
40 */
41 virtual bool CreateButtons(wxRichTextFormattingDialog* dialog);
42
43 /**
44 Creates a page, given a page identifier.
45 */
46 virtual wxPanel* CreatePage(int page, wxString& title,
47 wxRichTextFormattingDialog* dialog);
48
49 /**
50 Creates all pages under the dialog's book control, also calling AddPage.
51 */
52 virtual bool CreatePages(long pages,
53 wxRichTextFormattingDialog* dialog);
54
55 /**
56 Enumerate all available page identifiers.
57 */
328f5751 58 virtual int GetPageId(int i) const;
23324ae1
FM
59
60 /**
61 Gets the number of available page identifiers.
62 */
328f5751 63 virtual int GetPageIdCount() const;
23324ae1
FM
64
65 /**
66 Gets the image index for the given page identifier.
67 */
328f5751 68 virtual int GetPageImage(int id) const;
23324ae1
FM
69
70 /**
71 Set the property sheet style, called at the start of
72 wxRichTextFormattingDialog::Create.
73 */
74 virtual bool SetSheetStyle(wxRichTextFormattingDialog* dialog);
75
76 /**
77 Invokes help for the dialog.
78 */
79 virtual bool ShowHelp(int page,
80 wxRichTextFormattingDialog* dialog);
81};
82
83
84/**
85 @class wxRichTextFormattingDialog
86 @headerfile richtextformatdlg.h wx/richtext/richtextformatdlg.h
7c913512 87
23324ae1 88 This dialog allows the user to edit a character and/or paragraph style.
7c913512 89
23324ae1
FM
90 In the constructor, specify the pages that will be created. Use GetStyle
91 to retrieve the common style for a given range, and then use ApplyStyle
92 to apply the user-selected formatting to a control. For example:
7c913512 93
23324ae1
FM
94 @code
95 wxRichTextRange range;
96 if (m_richTextCtrl-HasSelection())
97 range = m_richTextCtrl-GetSelectionRange();
98 else
99 range = wxRichTextRange(0, m_richTextCtrl-GetLastPosition()+1);
7c913512 100
23324ae1
FM
101 int pages =
102 wxRICHTEXT_FORMAT_FONT|wxRICHTEXT_FORMAT_INDENTS_SPACING|wxRICHTEXT_FORMAT_TABS|wxRICHTEXT_FORMAT_BULLETS;
7c913512 103
23324ae1
FM
104 wxRichTextFormattingDialog formatDlg(pages, this);
105 formatDlg.GetStyle(m_richTextCtrl, range);
7c913512 106
23324ae1
FM
107 if (formatDlg.ShowModal() == wxID_OK)
108 {
109 formatDlg.ApplyStyle(m_richTextCtrl, range);
110 }
111 @endcode
7c913512 112
23324ae1 113 @library{wxrichtext}
21b447dc 114 @category{richtext}
23324ae1
FM
115*/
116class wxRichTextFormattingDialog : public wxPropertySheetDialog
117{
118public:
119 //@{
120 /**
121 Constructors.
122
7c913512 123 @param flags
4cc4bfaf 124 The pages to show.
7c913512 125 @param parent
4cc4bfaf 126 The dialog's parent.
7c913512 127 @param id
4cc4bfaf 128 The dialog's identifier.
7c913512 129 @param title
4cc4bfaf 130 The dialog's caption.
7c913512 131 @param pos
4cc4bfaf 132 The dialog's position.
7c913512 133 @param size
4cc4bfaf 134 The dialog's size.
7c913512 135 @param style
4cc4bfaf 136 The dialog's window style.
23324ae1
FM
137 */
138 wxRichTextFormattingDialog(long flags, wxWindow* parent);
7c913512
FM
139 const wxPoint& pos = wxDefaultPosition, const wxSize& sz = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE)
140 wxRichTextFormattingDialog();
23324ae1
FM
141 //@}
142
143 /**
144 Destructor.
145 */
146 ~wxRichTextFormattingDialog();
147
148 /**
149 Apply attributes to the given range, only changing attributes that need to be
150 changed.
151 */
152 bool ApplyStyle(wxRichTextCtrl* ctrl,
153 const wxRichTextRange& range,
154 int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO|wxRICHTEXT_SETSTYLE_OPTIMIZE);
155
156 /**
157 Creation: see @ref overview_wxrichtextformattingdialog "the constructor" for
158 details about the parameters.
159 */
160 bool Create(long flags, wxWindow* parent, const wxString& title,
161 wxWindowID id,
162 const wxPoint& pos = wxDefaultPosition,
7c913512
FM
163 const wxSize& sz = wxDefaultSize,
164 long style = wxDEFAULT_DIALOG_STYLE);
23324ae1
FM
165
166 //@{
167 /**
168 Gets the attributes being edited.
169 */
170 const wxTextAttr GetAttributes();
328f5751 171 const wxTextAttr& GetAttributes();
23324ae1
FM
172 //@}
173
174 /**
175 Helper for pages to get the top-level dialog.
176 */
177 wxRichTextFormattingDialog* GetDialog(wxWindow* win);
178
179 /**
180 Helper for pages to get the attributes.
181 */
182 wxTextAttr* GetDialogAttributes(wxWindow* win);
183
184 /**
185 Helper for pages to get the style.
186 */
187 wxRichTextStyleDefinition* GetDialogStyleDefinition(wxWindow* win);
188
189 /**
190 Returns the object to be used to customize the dialog and provide pages.
191 */
192 wxRichTextFormattingDialogFactory* GetFormattingDialogFactory();
193
194 /**
195 Returns the image list associated with the dialog, used for example if showing
196 the dialog as a toolbook.
197 */
328f5751 198 wxImageList* GetImageList() const;
23324ae1
FM
199
200 /**
201 Gets common attributes from the given range and calls SetAttributes. Attributes
202 that do not have common values in the given range
203 will be omitted from the style's flags.
204 */
205 bool GetStyle(wxRichTextCtrl* ctrl, const wxRichTextRange& range);
206
207 /**
208 Gets the associated style definition, if any.
209 */
328f5751 210 wxRichTextStyleDefinition* GetStyleDefinition() const;
23324ae1
FM
211
212 /**
213 Gets the associated style sheet, if any.
214 */
328f5751 215 wxRichTextStyleSheet* GetStyleSheet() const;
23324ae1
FM
216
217 /**
218 Sets the attributes to be edited.
219 */
220 void SetAttributes(const wxTextAttr& attr);
221
222 /**
223 Sets the formatting factory object to be used for customization and page
224 creation.
225 It deletes the existing factory object.
226 */
227 void SetFormattingDialogFactory(wxRichTextFormattingDialogFactory* factory);
228
229 /**
230 Sets the image list associated with the dialog's property sheet.
231 */
232 void SetImageList(wxImageList* imageList);
233
234 /**
4cc4bfaf 235 Sets the attributes and optionally updates the display, if @a update is @true.
23324ae1 236 */
4cc4bfaf 237 bool SetStyle(const wxTextAttr& style, bool update = true);
23324ae1
FM
238
239 /**
4cc4bfaf 240 Sets the style definition and optionally update the display, if @a update is @c
23324ae1
FM
241 @true.
242 */
243 bool SetStyleDefinition(const wxRichTextStyleDefinition& styleDef,
244 wxRichTextStyleSheet* sheet,
4cc4bfaf 245 bool update = true);
23324ae1
FM
246
247 /**
248 Updates the display.
249 */
250 bool UpdateDisplay();
251};