1/////////////////////////////////////////////////////////////////////////////
2// Name:        wx/richtext/richtextindentspage.h
3// Purpose:
4// Author:      Julian Smart
5// Modified by:
6// Created:     10/3/2006 2:28:21 PM
7// RCS-ID:      $Id: richtextindentspage.h 43277 2006-11-10 15:48:46Z JS $
8// Copyright:   (c) Julian Smart
9// Licence:     wxWindows licence
10/////////////////////////////////////////////////////////////////////////////
11
12#ifndef _RICHTEXTINDENTSPAGE_H_
13#define _RICHTEXTINDENTSPAGE_H_
14
15/*!
16 * Includes
17 */
18
19////@begin includes
20#include "wx/statline.h"
21////@end includes
22
23/*!
24 * Forward declarations
25 */
26
27////@begin forward declarations
28class wxRichTextCtrl;
29////@end forward declarations
30
31/*!
32 * Control identifiers
33 */
34
35////@begin control identifiers
36#define SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_STYLE wxRESIZE_BORDER|wxTAB_TRAVERSAL
37#define SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_TITLE _("wxRichTextFontPage")
38#define SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_IDNAME ID_RICHTEXTINDENTSSPACINGPAGE
39#define SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_SIZE wxSize(400, 300)
40#define SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_POSITION wxDefaultPosition
41////@end control identifiers
42
43/*!
44 * wxRichTextIndentsSpacingPage class declaration
45 */
46
47class WXDLLIMPEXP_RICHTEXT wxRichTextIndentsSpacingPage: public wxPanel
48{
49    DECLARE_DYNAMIC_CLASS( wxRichTextIndentsSpacingPage )
50    DECLARE_EVENT_TABLE()
51
52public:
53    /// Constructors
54    wxRichTextIndentsSpacingPage( );
55    wxRichTextIndentsSpacingPage( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_SIZE, long style = SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_STYLE );
56
57    /// Creation
58    bool Create( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_SIZE, long style = SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_STYLE );
59
60    /// Initialise members
61    void Init();
62
63    /// Creates the controls and sizers
64    void CreateControls();
65
66    /// Transfer data from/to window
67    virtual bool TransferDataFromWindow();
68    virtual bool TransferDataToWindow();
69
70    /// Updates the paragraph preview
71    void UpdatePreview();
72
73    /// Gets the attributes associated with the main formatting dialog
74    wxTextAttrEx* GetAttributes();
75
76////@begin wxRichTextIndentsSpacingPage event handler declarations
77
78    /// wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_LEFT
79    void OnAlignmentLeftSelected( wxCommandEvent& event );
80
81    /// wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_RIGHT
82    void OnAlignmentRightSelected( wxCommandEvent& event );
83
84    /// wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_JUSTIFIED
85    void OnAlignmentJustifiedSelected( wxCommandEvent& event );
86
87    /// wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_CENTRED
88    void OnAlignmentCentredSelected( wxCommandEvent& event );
89
90    /// wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_INDETERMINATE
91    void OnAlignmentIndeterminateSelected( wxCommandEvent& event );
92
93    /// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_LEFT
94    void OnIndentLeftUpdated( wxCommandEvent& event );
95
96    /// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_LEFT_FIRST
97    void OnIndentLeftFirstUpdated( wxCommandEvent& event );
98
99    /// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_RIGHT
100    void OnIndentRightUpdated( wxCommandEvent& event );
101
102    /// wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_OUTLINELEVEL
103    void OnRichtextOutlinelevelSelected( wxCommandEvent& event );
104
105    /// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_BEFORE
106    void OnSpacingBeforeUpdated( wxCommandEvent& event );
107
108    /// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_AFTER
109    void OnSpacingAfterUpdated( wxCommandEvent& event );
110
111    /// wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_LINE
112    void OnSpacingLineSelected( wxCommandEvent& event );
113
114////@end wxRichTextIndentsSpacingPage event handler declarations
115
116////@begin wxRichTextIndentsSpacingPage member function declarations
117
118    /// Retrieves bitmap resources
119    wxBitmap GetBitmapResource( const wxString& name );
120
121    /// Retrieves icon resources
122    wxIcon GetIconResource( const wxString& name );
123////@end wxRichTextIndentsSpacingPage member function declarations
124
125    /// Should we show tooltips?
126    static bool ShowToolTips();
127
128////@begin wxRichTextIndentsSpacingPage member variables
129    wxRadioButton* m_alignmentLeft;
130    wxRadioButton* m_alignmentRight;
131    wxRadioButton* m_alignmentJustified;
132    wxRadioButton* m_alignmentCentred;
133    wxRadioButton* m_alignmentIndeterminate;
134    wxTextCtrl* m_indentLeft;
135    wxTextCtrl* m_indentLeftFirst;
136    wxTextCtrl* m_indentRight;
137    wxComboBox* m_outlineLevelCtrl;
138    wxTextCtrl* m_spacingBefore;
139    wxTextCtrl* m_spacingAfter;
140    wxComboBox* m_spacingLine;
141    wxRichTextCtrl* m_previewCtrl;
142    /// Control identifiers
143    enum {
144        ID_RICHTEXTINDENTSSPACINGPAGE = 10100,
145        ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_LEFT = 10102,
146        ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_RIGHT = 10110,
147        ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_JUSTIFIED = 10111,
148        ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_CENTRED = 10112,
149        ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_INDETERMINATE = 10101,
150        ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_LEFT = 10103,
151        ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_LEFT_FIRST = 10104,
152        ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_RIGHT = 10113,
153        ID_RICHTEXTINDENTSSPACINGPAGE_OUTLINELEVEL = 10105,
154        ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_BEFORE = 10114,
155        ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_AFTER = 10116,
156        ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_LINE = 10115,
157        ID_RICHTEXTINDENTSSPACINGPAGE_PREVIEW_CTRL = 10109
158    };
159////@end wxRichTextIndentsSpacingPage member variables
160
161    bool m_dontUpdate;
162};
163
164#endif
165    // _RICHTEXTINDENTSPAGE_H_
166