]> git.saurik.com Git - wxWidgets.git/blob - src/richtext/richtextbackgroundpage.cpp
1530fdfce210002132231d3a8706472805008d94
[wxWidgets.git] / src / richtext / richtextbackgroundpage.cpp
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: richtextbackgroundpage.cpp
3 // Purpose:
4 // Author: Julian Smart
5 // Modified by:
6 // Created: 13/11/2010 11:17:25
7 // RCS-ID:
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows Licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 // For compilers that support precompilation, includes "wx/wx.h".
13 #include "wx/wxprec.h"
14
15 #ifdef __BORLANDC__
16 #pragma hdrstop
17 #endif
18
19 #ifndef WX_PRECOMP
20 #include "wx/wx.h"
21 #endif
22
23 ////@begin includes
24 ////@end includes
25
26 #include "wx/richtext/richtextbackgroundpage.h"
27 #include "wx/richtext/richtextformatdlg.h"
28
29 ////@begin XPM images
30 ////@end XPM images
31
32
33 /*!
34 * wxRichTextBackgroundPage type definition
35 */
36
37 IMPLEMENT_DYNAMIC_CLASS( wxRichTextBackgroundPage, wxRichTextDialogPage )
38
39
40 /*!
41 * wxRichTextBackgroundPage event table definition
42 */
43
44 BEGIN_EVENT_TABLE( wxRichTextBackgroundPage, wxRichTextDialogPage )
45 EVT_BUTTON(ID_RICHTEXT_BACKGROUND_COLOUR_SWATCH, wxRichTextBackgroundPage::OnColourSwatch)
46
47 ////@begin wxRichTextBackgroundPage event table entries
48 ////@end wxRichTextBackgroundPage event table entries
49
50 END_EVENT_TABLE()
51
52 IMPLEMENT_HELP_PROVISION(wxRichTextBackgroundPage)
53
54 /*!
55 * wxRichTextBackgroundPage constructors
56 */
57
58 wxRichTextBackgroundPage::wxRichTextBackgroundPage()
59 {
60 Init();
61 }
62
63 wxRichTextBackgroundPage::wxRichTextBackgroundPage( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
64 {
65 Init();
66 Create(parent, id, pos, size, style);
67 }
68
69
70 /*!
71 * wxRichTextBackgroundPage creator
72 */
73
74 bool wxRichTextBackgroundPage::Create( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
75 {
76 ////@begin wxRichTextBackgroundPage creation
77 SetExtraStyle(wxWS_EX_VALIDATE_RECURSIVELY);
78 wxRichTextDialogPage::Create( parent, id, pos, size, style );
79
80 CreateControls();
81 if (GetSizer())
82 {
83 GetSizer()->SetSizeHints(this);
84 }
85 Centre();
86 ////@end wxRichTextBackgroundPage creation
87 return true;
88 }
89
90
91 /*!
92 * wxRichTextBackgroundPage destructor
93 */
94
95 wxRichTextBackgroundPage::~wxRichTextBackgroundPage()
96 {
97 ////@begin wxRichTextBackgroundPage destruction
98 ////@end wxRichTextBackgroundPage destruction
99 }
100
101
102 /*!
103 * Member initialisation
104 */
105
106 void wxRichTextBackgroundPage::Init()
107 {
108 ////@begin wxRichTextBackgroundPage member initialisation
109 m_backgroundColourCheckBox = NULL;
110 m_backgroundColourSwatch = NULL;
111 ////@end wxRichTextBackgroundPage member initialisation
112 }
113
114
115 /*!
116 * Control creation for wxRichTextBackgroundPage
117 */
118
119 void wxRichTextBackgroundPage::CreateControls()
120 {
121 ////@begin wxRichTextBackgroundPage content construction
122 wxRichTextBackgroundPage* itemRichTextDialogPage1 = this;
123
124 wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
125 itemRichTextDialogPage1->SetSizer(itemBoxSizer2);
126
127 wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxVERTICAL);
128 itemBoxSizer2->Add(itemBoxSizer3, 1, wxGROW, 5);
129
130 wxBoxSizer* itemBoxSizer4 = new wxBoxSizer(wxHORIZONTAL);
131 itemBoxSizer3->Add(itemBoxSizer4, 0, wxGROW, 5);
132
133 wxStaticText* itemStaticText5 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("Background"), wxDefaultPosition, wxDefaultSize, 0 );
134 itemStaticText5->SetFont(wxFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetPointSize(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetFamily(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetStyle(), wxBOLD, false, wxT("")));
135 itemBoxSizer4->Add(itemStaticText5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
136
137 wxStaticLine* itemStaticLine6 = new wxStaticLine( itemRichTextDialogPage1, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
138 itemBoxSizer4->Add(itemStaticLine6, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
139
140 wxBoxSizer* itemBoxSizer7 = new wxBoxSizer(wxHORIZONTAL);
141 itemBoxSizer3->Add(itemBoxSizer7, 0, wxGROW, 5);
142
143 itemBoxSizer7->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
144
145 m_backgroundColourCheckBox = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXT_BACKGROUND_COLOUR_CHECKBOX, _("Background &colour:"), wxDefaultPosition, wxDefaultSize, 0 );
146 m_backgroundColourCheckBox->SetValue(false);
147 m_backgroundColourCheckBox->SetHelpText(_("Enables a background colour."));
148 if (wxRichTextBackgroundPage::ShowToolTips())
149 m_backgroundColourCheckBox->SetToolTip(_("Enables a background colour."));
150 itemBoxSizer7->Add(m_backgroundColourCheckBox, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
151
152 m_backgroundColourSwatch = new wxRichTextColourSwatchCtrl( itemRichTextDialogPage1, ID_RICHTEXT_BACKGROUND_COLOUR_SWATCH, wxDefaultPosition, wxSize(80, 20), wxBORDER_THEME );
153 m_backgroundColourSwatch->SetHelpText(_("The background colour."));
154 if (wxRichTextBackgroundPage::ShowToolTips())
155 m_backgroundColourSwatch->SetToolTip(_("The background colour."));
156 itemBoxSizer7->Add(m_backgroundColourSwatch, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
157
158 ////@end wxRichTextBackgroundPage content construction
159 }
160
161
162 /*!
163 * Should we show tooltips?
164 */
165
166 wxRichTextAttr* wxRichTextBackgroundPage::GetAttributes()
167 {
168 return wxRichTextFormattingDialog::GetDialogAttributes(this);
169 }
170
171 bool wxRichTextBackgroundPage::TransferDataToWindow()
172 {
173 wxRichTextAttr* attr = GetAttributes();
174 if (!attr->HasBackgroundColour())
175 {
176 m_backgroundColourCheckBox->SetValue(false);
177 m_backgroundColourSwatch->SetColour(*wxWHITE);
178 }
179 else
180 {
181 m_backgroundColourCheckBox->SetValue(true);
182 m_backgroundColourSwatch->SetColour(attr->GetBackgroundColour());
183 }
184
185 return true;
186 }
187
188 bool wxRichTextBackgroundPage::TransferDataFromWindow()
189 {
190 wxRichTextAttr* attr = GetAttributes();
191 if (m_backgroundColourCheckBox->GetValue())
192 {
193 attr->SetBackgroundColour(m_backgroundColourSwatch->GetColour());
194 }
195 else
196 {
197 attr->SetFlags(attr->GetFlags() & ~wxTEXT_ATTR_BACKGROUND_COLOUR);
198 }
199
200 return true;
201 }
202
203 // Respond to colour swatch click
204 void wxRichTextBackgroundPage::OnColourSwatch(wxCommandEvent& event)
205 {
206 m_backgroundColourCheckBox->SetValue(true);
207 event.Skip();
208 }
209
210 bool wxRichTextBackgroundPage::ShowToolTips()
211 {
212 return true;
213 }
214
215 /*!
216 * Get bitmap resources
217 */
218
219 wxBitmap wxRichTextBackgroundPage::GetBitmapResource( const wxString& name )
220 {
221 // Bitmap retrieval
222 ////@begin wxRichTextBackgroundPage bitmap retrieval
223 wxUnusedVar(name);
224 return wxNullBitmap;
225 ////@end wxRichTextBackgroundPage bitmap retrieval
226 }
227
228 /*!
229 * Get icon resources
230 */
231
232 wxIcon wxRichTextBackgroundPage::GetIconResource( const wxString& name )
233 {
234 // Icon retrieval
235 ////@begin wxRichTextBackgroundPage icon retrieval
236 wxUnusedVar(name);
237 return wxNullIcon;
238 ////@end wxRichTextBackgroundPage icon retrieval
239 }