1 /////////////////////////////////////////////////////////////////////////////
2 // Name:        wx/richtext/richtextliststylepage.h
3 // Purpose:
4 // Author:      Julian Smart
5 // Modified by:
6 // Created:     10/18/2006 11:36:37 AM
7 // Copyright:   (c) Julian Smart
8 // Licence:     wxWindows licence
9 /////////////////////////////////////////////////////////////////////////////
10 
11 #ifndef _RICHTEXTLISTSTYLEPAGE_H_
12 #define _RICHTEXTLISTSTYLEPAGE_H_
13 
14 /*!
15  * Includes
16  */
17 
18 #include "wx/richtext/richtextdialogpage.h"
19 
20 ////@begin includes
21 #include "wx/spinctrl.h"
22 #include "wx/notebook.h"
23 #include "wx/statline.h"
24 ////@end includes
25 
26 /*!
27  * Control identifiers
28  */
29 
30 ////@begin control identifiers
31 #define SYMBOL_WXRICHTEXTLISTSTYLEPAGE_STYLE wxRESIZE_BORDER|wxTAB_TRAVERSAL
32 #define SYMBOL_WXRICHTEXTLISTSTYLEPAGE_TITLE wxEmptyString
33 #define SYMBOL_WXRICHTEXTLISTSTYLEPAGE_IDNAME ID_RICHTEXTLISTSTYLEPAGE
34 #define SYMBOL_WXRICHTEXTLISTSTYLEPAGE_SIZE wxSize(400, 300)
35 #define SYMBOL_WXRICHTEXTLISTSTYLEPAGE_POSITION wxDefaultPosition
36 ////@end control identifiers
37 
38 /*!
39  * wxRichTextListStylePage class declaration
40  */
41 
42 class WXDLLIMPEXP_RICHTEXT wxRichTextListStylePage: public wxRichTextDialogPage
43 {
44     DECLARE_DYNAMIC_CLASS( wxRichTextListStylePage )
45     DECLARE_EVENT_TABLE()
46     DECLARE_HELP_PROVISION()
47 
48 public:
49     /// Constructors
50     wxRichTextListStylePage( );
51     wxRichTextListStylePage( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = SYMBOL_WXRICHTEXTLISTSTYLEPAGE_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTLISTSTYLEPAGE_SIZE, long style = SYMBOL_WXRICHTEXTLISTSTYLEPAGE_STYLE );
52 
53     /// Creation
54     bool Create( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = SYMBOL_WXRICHTEXTLISTSTYLEPAGE_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTLISTSTYLEPAGE_SIZE, long style = SYMBOL_WXRICHTEXTLISTSTYLEPAGE_STYLE );
55 
56     /// Initialises member variables
57     void Init();
58 
59     /// Creates the controls and sizers
60     void CreateControls();
61 
62     /// Updates the bullets preview
63     void UpdatePreview();
64 
65     /// Transfer data from/to window
66     virtual bool TransferDataFromWindow();
67     virtual bool TransferDataToWindow();
68 
69     /// Get attributes for selected level
70     wxRichTextAttr* GetAttributesForSelection();
71 
72     /// Update for symbol-related controls
73     void OnSymbolUpdate( wxUpdateUIEvent& event );
74 
75     /// Update for number-related controls
76     void OnNumberUpdate( wxUpdateUIEvent& event );
77 
78     /// Update for standard bullet-related controls
79     void OnStandardBulletUpdate( wxUpdateUIEvent& event );
80 
81     /// Just transfer to the window
82     void DoTransferDataToWindow();
83 
84     /// Transfer from the window and preview
85     void TransferAndPreview();
86 
87 ////@begin wxRichTextListStylePage event handler declarations
88 
89     /// wxEVT_SPINCTRL event handler for ID_RICHTEXTLISTSTYLEPAGE_LEVEL
90     void OnLevelUpdated( wxSpinEvent& event );
91 
92     /// wxEVT_SCROLL_LINEUP event handler for ID_RICHTEXTLISTSTYLEPAGE_LEVEL
93     void OnLevelUp( wxSpinEvent& event );
94 
95     /// wxEVT_SCROLL_LINEDOWN event handler for ID_RICHTEXTLISTSTYLEPAGE_LEVEL
96     void OnLevelDown( wxSpinEvent& event );
97 
98     /// wxEVT_TEXT event handler for ID_RICHTEXTLISTSTYLEPAGE_LEVEL
99     void OnLevelTextUpdated( wxCommandEvent& event );
100 
101     /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_LEVEL
102     void OnLevelUIUpdate( wxUpdateUIEvent& event );
103 
104     /// wxEVT_BUTTON event handler for ID_RICHTEXTLISTSTYLEPAGE_CHOOSE_FONT
105     void OnChooseFontClick( wxCommandEvent& event );
106 
107     /// wxEVT_LISTBOX event handler for ID_RICHTEXTLISTSTYLEPAGE_STYLELISTBOX
108     void OnStylelistboxSelected( wxCommandEvent& event );
109 
110     /// wxEVT_CHECKBOX event handler for ID_RICHTEXTLISTSTYLEPAGE_PERIODCTRL
111     void OnPeriodctrlClick( wxCommandEvent& event );
112 
113     /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_PERIODCTRL
114     void OnPeriodctrlUpdate( wxUpdateUIEvent& event );
115 
116     /// wxEVT_CHECKBOX event handler for ID_RICHTEXTLISTSTYLEPAGE_PARENTHESESCTRL
117     void OnParenthesesctrlClick( wxCommandEvent& event );
118 
119     /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_PARENTHESESCTRL
120     void OnParenthesesctrlUpdate( wxUpdateUIEvent& event );
121 
122     /// wxEVT_CHECKBOX event handler for ID_RICHTEXTLISTSTYLEPAGE_RIGHTPARENTHESISCTRL
123     void OnRightParenthesisCtrlClick( wxCommandEvent& event );
124 
125     /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_RIGHTPARENTHESISCTRL
126     void OnRightParenthesisCtrlUpdate( wxUpdateUIEvent& event );
127 
128     /// wxEVT_COMBOBOX event handler for ID_RICHTEXTLISTSTYLEPAGE_BULLETALIGNMENTCTRL
129     void OnBulletAlignmentCtrlSelected( wxCommandEvent& event );
130 
131     /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_SYMBOLSTATIC
132     void OnSymbolstaticUpdate( wxUpdateUIEvent& event );
133 
134     /// wxEVT_COMBOBOX event handler for ID_RICHTEXTLISTSTYLEPAGE_SYMBOLCTRL
135     void OnSymbolctrlSelected( wxCommandEvent& event );
136 
137     /// wxEVT_TEXT event handler for ID_RICHTEXTLISTSTYLEPAGE_SYMBOLCTRL
138     void OnSymbolctrlUpdated( wxCommandEvent& event );
139 
140     /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_SYMBOLCTRL
141     void OnSymbolctrlUIUpdate( wxUpdateUIEvent& event );
142 
143     /// wxEVT_BUTTON event handler for ID_RICHTEXTLISTSTYLEPAGE_CHOOSE_SYMBOL
144     void OnChooseSymbolClick( wxCommandEvent& event );
145 
146     /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_CHOOSE_SYMBOL
147     void OnChooseSymbolUpdate( wxUpdateUIEvent& event );
148 
149     /// wxEVT_COMBOBOX event handler for ID_RICHTEXTLISTSTYLEPAGE_SYMBOLFONTCTRL
150     void OnSymbolfontctrlSelected( wxCommandEvent& event );
151 
152     /// wxEVT_TEXT event handler for ID_RICHTEXTLISTSTYLEPAGE_SYMBOLFONTCTRL
153     void OnSymbolfontctrlUpdated( wxCommandEvent& event );
154 
155     /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_SYMBOLFONTCTRL
156     void OnSymbolfontctrlUIUpdate( wxUpdateUIEvent& event );
157 
158     /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_NAMESTATIC
159     void OnNamestaticUpdate( wxUpdateUIEvent& event );
160 
161     /// wxEVT_COMBOBOX event handler for ID_RICHTEXTLISTSTYLEPAGE_NAMECTRL
162     void OnNamectrlSelected( wxCommandEvent& event );
163 
164     /// wxEVT_TEXT event handler for ID_RICHTEXTLISTSTYLEPAGE_NAMECTRL
165     void OnNamectrlUpdated( wxCommandEvent& event );
166 
167     /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_NAMECTRL
168     void OnNamectrlUIUpdate( wxUpdateUIEvent& event );
169 
170     /// wxEVT_RADIOBUTTON event handler for ID_RICHTEXTLISTSTYLEPAGE_ALIGNLEFT
171     void OnRichtextliststylepageAlignleftSelected( wxCommandEvent& event );
172 
173     /// wxEVT_RADIOBUTTON event handler for ID_RICHTEXTLISTSTYLEPAGE_ALIGNRIGHT
174     void OnRichtextliststylepageAlignrightSelected( wxCommandEvent& event );
175 
176     /// wxEVT_RADIOBUTTON event handler for ID_RICHTEXTLISTSTYLEPAGE_JUSTIFIED
177     void OnRichtextliststylepageJustifiedSelected( wxCommandEvent& event );
178 
179     /// wxEVT_RADIOBUTTON event handler for ID_RICHTEXTLISTSTYLEPAGE_CENTERED
180     void OnRichtextliststylepageCenteredSelected( wxCommandEvent& event );
181 
182     /// wxEVT_RADIOBUTTON event handler for ID_RICHTEXTLISTSTYLEPAGE_ALIGNINDETERMINATE
183     void OnRichtextliststylepageAlignindeterminateSelected( wxCommandEvent& event );
184 
185     /// wxEVT_TEXT event handler for ID_RICHTEXTLISTSTYLEPAGE_INDENTLEFT
186     void OnIndentLeftUpdated( wxCommandEvent& event );
187 
188     /// wxEVT_TEXT event handler for ID_RICHTEXTLISTSTYLEPAGE_INDENTFIRSTLINE
189     void OnIndentFirstLineUpdated( wxCommandEvent& event );
190 
191     /// wxEVT_TEXT event handler for ID_RICHTEXTLISTSTYLEPAGE_INDENTRIGHT
192     void OnIndentRightUpdated( wxCommandEvent& event );
193 
194     /// wxEVT_TEXT event handler for ID_RICHTEXTLISTSTYLEPAGE_SPACINGBEFORE
195     void OnSpacingBeforeUpdated( wxCommandEvent& event );
196 
197     /// wxEVT_TEXT event handler for ID_RICHTEXTLISTSTYLEPAGE_SPACINGAFTER
198     void OnSpacingAfterUpdated( wxCommandEvent& event );
199 
200     /// wxEVT_COMBOBOX event handler for ID_RICHTEXTLISTSTYLEPAGE_LINESPACING
201     void OnLineSpacingSelected( wxCommandEvent& event );
202 
203 ////@end wxRichTextListStylePage event handler declarations
204 
205 ////@begin wxRichTextListStylePage member function declarations
206 
207     /// Retrieves bitmap resources
208     wxBitmap GetBitmapResource( const wxString& name );
209 
210     /// Retrieves icon resources
211     wxIcon GetIconResource( const wxString& name );
212 ////@end wxRichTextListStylePage member function declarations
213 
214     /// Should we show tooltips?
215     static bool ShowToolTips();
216 
217 ////@begin wxRichTextListStylePage member variables
218     wxSpinCtrl* m_levelCtrl;
219     wxListBox* m_styleListBox;
220     wxCheckBox* m_periodCtrl;
221     wxCheckBox* m_parenthesesCtrl;
222     wxCheckBox* m_rightParenthesisCtrl;
223     wxComboBox* m_bulletAlignmentCtrl;
224     wxComboBox* m_symbolCtrl;
225     wxComboBox* m_symbolFontCtrl;
226     wxComboBox* m_bulletNameCtrl;
227     wxRadioButton* m_alignmentLeft;
228     wxRadioButton* m_alignmentRight;
229     wxRadioButton* m_alignmentJustified;
230     wxRadioButton* m_alignmentCentred;
231     wxRadioButton* m_alignmentIndeterminate;
232     wxTextCtrl* m_indentLeft;
233     wxTextCtrl* m_indentLeftFirst;
234     wxTextCtrl* m_indentRight;
235     wxTextCtrl* m_spacingBefore;
236     wxTextCtrl* m_spacingAfter;
237     wxComboBox* m_spacingLine;
238     wxRichTextCtrl* m_previewCtrl;
239     /// Control identifiers
240     enum {
241         ID_RICHTEXTLISTSTYLEPAGE = 10616,
242         ID_RICHTEXTLISTSTYLEPAGE_LEVEL = 10617,
243         ID_RICHTEXTLISTSTYLEPAGE_CHOOSE_FONT = 10604,
244         ID_RICHTEXTLISTSTYLEPAGE_NOTEBOOK = 10618,
245         ID_RICHTEXTLISTSTYLEPAGE_BULLETS = 10619,
246         ID_RICHTEXTLISTSTYLEPAGE_STYLELISTBOX = 10620,
247         ID_RICHTEXTLISTSTYLEPAGE_PERIODCTRL = 10627,
248         ID_RICHTEXTLISTSTYLEPAGE_PARENTHESESCTRL = 10626,
249         ID_RICHTEXTLISTSTYLEPAGE_RIGHTPARENTHESISCTRL = 10602,
250         ID_RICHTEXTLISTSTYLEPAGE_BULLETALIGNMENTCTRL = 10603,
251         ID_RICHTEXTLISTSTYLEPAGE_SYMBOLSTATIC = 10621,
252         ID_RICHTEXTLISTSTYLEPAGE_SYMBOLCTRL = 10622,
253         ID_RICHTEXTLISTSTYLEPAGE_CHOOSE_SYMBOL = 10623,
254         ID_RICHTEXTLISTSTYLEPAGE_SYMBOLFONTCTRL = 10625,
255         ID_RICHTEXTLISTSTYLEPAGE_NAMESTATIC = 10600,
256         ID_RICHTEXTLISTSTYLEPAGE_NAMECTRL = 10601,
257         ID_RICHTEXTLISTSTYLEPAGE_SPACING = 10628,
258         ID_RICHTEXTLISTSTYLEPAGE_ALIGNLEFT = 10629,
259         ID_RICHTEXTLISTSTYLEPAGE_ALIGNRIGHT = 10630,
260         ID_RICHTEXTLISTSTYLEPAGE_JUSTIFIED = 10631,
261         ID_RICHTEXTLISTSTYLEPAGE_CENTERED = 10632,
262         ID_RICHTEXTLISTSTYLEPAGE_ALIGNINDETERMINATE = 10633,
263         ID_RICHTEXTLISTSTYLEPAGE_INDENTLEFT = 10634,
264         ID_RICHTEXTLISTSTYLEPAGE_INDENTFIRSTLINE = 10635,
265         ID_RICHTEXTLISTSTYLEPAGE_INDENTRIGHT = 10636,
266         ID_RICHTEXTLISTSTYLEPAGE_SPACINGBEFORE = 10637,
267         ID_RICHTEXTLISTSTYLEPAGE_SPACINGAFTER = 10638,
268         ID_RICHTEXTLISTSTYLEPAGE_LINESPACING = 10639,
269         ID_RICHTEXTLISTSTYLEPAGE_RICHTEXTCTRL = 10640
270     };
271 ////@end wxRichTextListStylePage member variables
272 
273     bool m_dontUpdate;
274     int m_currentLevel;
275 };
276 
277 #endif
278     // _RICHTEXTLISTSTYLEPAGE_H_
279