~ubuntu-branches/ubuntu/raring/codeblocks/raring-proposed

« back to all changes in this revision

Viewing changes to src/plugins/contrib/wxSmithContribItems/wxflatnotebook/wxFlatNotebook/src/wxFlatNotebook/fnb_customize_dlg.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Cosme Domínguez Díaz
  • Date: 2010-08-09 04:38:38 UTC
  • mfrom: (1.1.1 upstream)
  • mto: This revision was merged to the branch mainline in revision 4.
  • Revision ID: james.westby@ubuntu.com-20100809043838-a59ygguym4eg0jgw
Tags: 10.05-0ubuntu1
* New upstream release. Closes (LP: #322350)
 - Switch to dpkg-source 3.0 (quilt) format
 - Remove unneeded README.source
 - Add debian/get-source-orig script that removes all
   Windows prebuilt binaries
* Bump Standards-Version to 3.9.1
 - Stop shipping *.la files
* debian/control
 - Add cdbs package as Build-Depend
 - Add libbz2-dev and zlib1g-dev packages as
   Build-Depends (needed by libhelp_plugin.so)
 - Remove dpatch package of Build-Depends
 - Add codeblocks-contrib-debug package
 - Split architecture-independent files of codeblocks
   package in codeblocks-common package
* debian/rules
 - Switch to CDBS rules system
 - Add parallel build support
 - Add a call to debian/get-source-orig script
 - Use lzma compression (saves 23,5 MB of free space)
* debian/patches
 - Refresh 01_codeblocks_plugin_path
 - Add 02_no_Makefiles_in_debian_dir to remove any link
   in codeblocks build system to deleted Makefiles of debian directory
 - Drop 02_ftbfs_gcc44 and 03_ftbfs_glib221 (merged in upstream)
* debian/watch
 - Update to use the new host (berlios.de)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
///////////////////////////////////////////////////////////////////////////////
 
2
// Name:                fnb_customize_dlg.cpp 
 
3
// Purpose:     customise dialog used by wxFlatNotebook
 
4
// Author:      Eran Ifrah <eran.ifrah@gmail.com>
 
5
// Created:     30/12/2005
 
6
// Modified:    01/01/2006
 
7
// Copyright:   Eran Ifrah (c)
 
8
// Licence:     wxWindows license <http://www.wxwidgets.org/licence3.txt>
 
9
///////////////////////////////////////////////////////////////////////////////
 
10
#include "wx/wxFlatNotebook/fnb_customize_dlg.h"
 
11
#include "wx/wxFlatNotebook/wxFlatNotebook.h"
 
12
#include "wx/sizer.h"
 
13
#include <wx/radiobox.h>
 
14
#include <wx/checkbox.h>
 
15
 
 
16
///////////////////////////////////////////////////////////////////////////
 
17
 
 
18
wxFNBCustomizeDialog::wxFNBCustomizeDialog( wxWindow* parent, long options, int id, wxString title, wxPoint pos, wxSize size, int style ) 
 
19
: wxDialog( parent, id, title, pos, size, style )
 
20
, m_options(options)
 
21
{
 
22
        wxBoxSizer* mainSizer;
 
23
        mainSizer = new wxBoxSizer( wxVERTICAL );
 
24
        SetSizer( mainSizer );
 
25
 
 
26
        mainSizer->Add( CreateOptionsPage(), 1, wxEXPAND | wxALL, 5 );
 
27
        
 
28
        m_staticline2 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
 
29
        mainSizer->Add( m_staticline2, 0, wxALL|wxEXPAND, 5 );
 
30
        
 
31
        wxBoxSizer* btnSizer;
 
32
        btnSizer = new wxBoxSizer( wxHORIZONTAL );
 
33
        
 
34
        m_close = new wxButton( this, wxID_ANY, wxT("&Close"), wxDefaultPosition, wxDefaultSize, 0 );
 
35
        btnSizer->Add( m_close, 0, wxALL, 5 );
 
36
        
 
37
        mainSizer->Add( btnSizer, 0, wxALIGN_CENTER, 5 );
 
38
        
 
39
        this->Layout();
 
40
        GetSizer()->Fit(this);
 
41
 
 
42
        ConnectEvents();
 
43
}
 
44
 
 
45
void wxFNBCustomizeDialog::ConnectEvents()
 
46
{
 
47
        m_close->Connect(wxID_ANY, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(wxFNBCustomizeDialog::OnClose), NULL, this);
 
48
 
 
49
        // Connect all checkbox & radiobox controls to the same handler
 
50
        if( m_styles ){
 
51
                m_styles->Connect(wxID_ANY, wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler(wxFNBCustomizeDialog::OnStyle), NULL, this);
 
52
        }
 
53
 
 
54
        m_navigationStyle->Connect(wxID_ANY, wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler(wxFNBCustomizeDialog::OnStyle), NULL, this);
 
55
        if( m_tabVPosition ){
 
56
                m_tabVPosition->Connect(wxID_ANY, wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler(wxFNBCustomizeDialog::OnStyle), NULL, this);
 
57
        }
 
58
 
 
59
        m_tabBorder->Connect(wxID_ANY, wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(wxFNBCustomizeDialog::OnStyle), NULL, this);
 
60
        m_hideCloseButton->Connect(wxID_ANY, wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(wxFNBCustomizeDialog::OnStyle), NULL, this);
 
61
        m_mouseMiddleCloseTab->Connect(wxID_ANY, wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(wxFNBCustomizeDialog::OnStyle), NULL, this);
 
62
        m_xButtonOnTab->Connect(wxID_ANY, wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(wxFNBCustomizeDialog::OnStyle), NULL, this);
 
63
        m_dlbClickCloseTab->Connect(wxID_ANY, wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(wxFNBCustomizeDialog::OnStyle), NULL, this);
 
64
        m_smartTabbing->Connect(wxID_ANY, wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(wxFNBCustomizeDialog::OnStyle), NULL, this);
 
65
 
 
66
        if( m_allowDragAndDrop ){
 
67
                m_allowDragAndDrop->Connect(wxID_ANY, wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(wxFNBCustomizeDialog::OnStyle), NULL, this);
 
68
        }
 
69
 
 
70
        if( m_foreignDnD ){
 
71
                m_foreignDnD->Connect(wxID_ANY, wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(wxFNBCustomizeDialog::OnStyle), NULL, this);
 
72
        }
 
73
 
 
74
        m_gradient->Connect(wxID_ANY, wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(wxFNBCustomizeDialog::OnStyle), NULL, this);
 
75
        m_colorfulTab->Connect(wxID_ANY, wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(wxFNBCustomizeDialog::OnStyle), NULL, this);
 
76
}
 
77
 
 
78
wxPanel *wxFNBCustomizeDialog::CreateOptionsPage()
 
79
{
 
80
        wxPageContainer *pc = static_cast<wxPageContainer*>(GetParent());
 
81
 
 
82
        wxPanel *page = new wxPanel(this);
 
83
        wxBoxSizer* mainSizer;
 
84
        mainSizer = new wxBoxSizer( wxVERTICAL );
 
85
        page->SetSizer( mainSizer );
 
86
 
 
87
        wxString m_stylesChoices[] = { wxT("Default"), wxT("Visual Studio 8.0"), wxT("Visual Studio 7.10"), wxT("Fancy Tabs"), wxT("Firefox 2") };
 
88
        int m_stylesNChoices = sizeof( m_stylesChoices ) / sizeof( wxString );
 
89
 
 
90
        // Set the selected tabs' style
 
91
        int selection = 0;
 
92
        bool enableGrad = false, enableColorTab = false;
 
93
        
 
94
        if (pc->HasFlag(wxFNB_FF2) ){
 
95
                selection = 4;
 
96
                enableGrad = true; enableColorTab = false;
 
97
        } else if( pc->HasFlag(wxFNB_VC71) ){
 
98
                selection = 2;
 
99
                enableGrad = false; enableColorTab = false;
 
100
        }else if( pc->HasFlag(wxFNB_VC8) ){
 
101
                selection = 1;
 
102
                enableGrad = true; enableColorTab = true;
 
103
        }else if( pc->HasFlag(wxFNB_FANCY_TABS) ){
 
104
                selection = 3;
 
105
                enableGrad = false; enableColorTab = false;
 
106
        }else {
 
107
                selection = 0;
 
108
                enableGrad = false; enableColorTab = false;
 
109
        }
 
110
 
 
111
        // can we customize the tab's style?
 
112
        if( m_options & wxFNB_CUSTOM_TAB_LOOK ){
 
113
                m_styles = new wxRadioBox( page, wxID_ANY, wxT("Visual Style:"), wxDefaultPosition, wxDefaultSize, m_stylesNChoices, m_stylesChoices, 3, wxRA_SPECIFY_COLS );
 
114
                m_styles->SetSelection(selection);
 
115
                mainSizer->Add( m_styles, 0, wxALL|wxEXPAND, 5 );
 
116
        }else{
 
117
                m_styles = NULL;
 
118
        }
 
119
 
 
120
        // can we customize the tab's orientation?
 
121
        if( m_options & wxFNB_CUSTOM_ORIENTATION ){
 
122
                wxString m_tabVPositionChoices[] = { wxT("Upper Tabs"), wxT("Bottom Tabs") };
 
123
                int m_tabVPositionNChoices = sizeof( m_tabVPositionChoices ) / sizeof( wxString );
 
124
                m_tabVPosition = new wxRadioBox( page, wxID_ANY, wxT("Tab Positioning:"), wxDefaultPosition, wxDefaultSize, m_tabVPositionNChoices, m_tabVPositionChoices, 2, wxRA_SPECIFY_COLS );
 
125
                m_tabVPosition->SetSelection(pc->HasFlag(wxFNB_BOTTOM) ? 1 : 0);
 
126
                mainSizer->Add( m_tabVPosition, 0, wxALL|wxEXPAND, 5 );
 
127
        }else{
 
128
                m_tabVPosition = NULL;
 
129
        }
 
130
 
 
131
        // there is no harm in showing this always
 
132
        wxString navigationStyle [] = { wxT("Rotation Arrows"), wxT("Drop Down Tab List"), wxT("None") };
 
133
        int nChoices = sizeof( navigationStyle ) / sizeof( wxString );
 
134
        m_navigationStyle = new wxRadioBox( page, wxID_ANY, wxT("Navigation Style:"), wxDefaultPosition, wxDefaultSize, nChoices, navigationStyle, 3, wxRA_SPECIFY_COLS );
 
135
 
 
136
        if(pc->HasFlag(wxFNB_DROPDOWN_TABS_LIST)){
 
137
                m_navigationStyle->SetSelection(1);
 
138
        } else if(pc->HasFlag(wxFNB_NO_NAV_BUTTONS) && !pc->HasFlag(wxFNB_DROPDOWN_TABS_LIST)){
 
139
                m_navigationStyle->SetSelection(2);
 
140
        } else {
 
141
                m_navigationStyle->SetSelection(0);
 
142
        }
 
143
 
 
144
        mainSizer->Add( m_navigationStyle, 0, wxALL|wxEXPAND, 5 );
 
145
 
 
146
        wxStaticBoxSizer* sbSizer2;
 
147
        sbSizer2 = new wxStaticBoxSizer( new wxStaticBox( page, -1, wxT("General:") ), wxVERTICAL );
 
148
        
 
149
        wxGridSizer* gSizer1;
 
150
        gSizer1 = new wxGridSizer( 3, 2, 0, 0 );
 
151
        
 
152
        m_tabBorder = new wxCheckBox( page, wxID_ANY, wxT("Draw Thin Border Around Tab Area"), wxDefaultPosition, wxDefaultSize, 0 );
 
153
        m_tabBorder->SetValue(pc->HasFlag(wxFNB_TABS_BORDER_SIMPLE));
 
154
        gSizer1->Add( m_tabBorder, 0, wxALL, 5 );
 
155
        
 
156
        // do we allow customizing close button options? ( in all forms: dclick, middle click, on tab and right side)
 
157
        m_hideCloseButton = new wxCheckBox( page, wxID_ANY, wxT("Hide Close Button"), wxDefaultPosition, wxDefaultSize, 0 );
 
158
        m_hideCloseButton->SetValue(pc->HasFlag(wxFNB_NO_X_BUTTON));
 
159
        m_hideCloseButton->Enable(m_options & wxFNB_CUSTOM_CLOSE_BUTTON ? true : false);
 
160
        gSizer1->Add( m_hideCloseButton, 0, wxALL, 5 );
 
161
 
 
162
        m_mouseMiddleCloseTab = new wxCheckBox( page, wxID_ANY, wxT("Mouse Middle Button Closes Tab"), wxDefaultPosition, wxDefaultSize, 0 );
 
163
        m_mouseMiddleCloseTab->SetValue(pc->HasFlag(wxFNB_MOUSE_MIDDLE_CLOSES_TABS));
 
164
        m_mouseMiddleCloseTab->Enable(m_options & wxFNB_CUSTOM_CLOSE_BUTTON ? true : false);
 
165
        gSizer1->Add( m_mouseMiddleCloseTab, 0, wxALL, 5 );
 
166
 
 
167
        m_xButtonOnTab = new wxCheckBox( page, wxID_ANY, wxT("Place Close Button On Active Tab"), wxDefaultPosition, wxDefaultSize, 0 );
 
168
        m_xButtonOnTab->SetValue(pc->HasFlag(wxFNB_X_ON_TAB));
 
169
        m_xButtonOnTab->Enable(m_options & wxFNB_CUSTOM_CLOSE_BUTTON ? true : false);
 
170
        gSizer1->Add( m_xButtonOnTab, 0, wxALL, 5 );
 
171
 
 
172
        m_dlbClickCloseTab = new wxCheckBox( page, wxID_ANY, wxT("Double Click Closes Tab"), wxDefaultPosition, wxDefaultSize, 0 );
 
173
        m_dlbClickCloseTab->SetValue(pc->HasFlag(wxFNB_DCLICK_CLOSES_TABS));
 
174
        m_dlbClickCloseTab->Enable(m_options & wxFNB_CUSTOM_CLOSE_BUTTON ? true : false);
 
175
        gSizer1->Add( m_dlbClickCloseTab, 0, wxALL, 5 );
 
176
 
 
177
        m_smartTabbing = new wxCheckBox( page, wxID_ANY, wxT("Enable Smart Tabbing"), wxDefaultPosition, wxDefaultSize, 0 );
 
178
        m_smartTabbing->SetValue(pc->HasFlag(wxFNB_SMART_TABS));
 
179
        gSizer1->Add( m_smartTabbing, 0, wxALL, 5 );
 
180
        
 
181
        sbSizer2->Add( gSizer1, 0, wxEXPAND, 5 );
 
182
        
 
183
        mainSizer->Add( sbSizer2, 0, wxALL|wxEXPAND, 5 );
 
184
        
 
185
        if(m_options & wxFNB_CUSTOM_LOCAL_DRAG){
 
186
                wxStaticBoxSizer* sbSizer4;
 
187
                sbSizer4 = new wxStaticBoxSizer( new wxStaticBox( page, -1, wxT("Drag And Drop:") ), wxHORIZONTAL );
 
188
                m_allowDragAndDrop = new wxCheckBox( page, wxID_ANY, wxT("Enable Drag And Drop"), wxDefaultPosition, wxDefaultSize, 0 );
 
189
                m_allowDragAndDrop->SetValue(!pc->HasFlag(wxFNB_NODRAG));
 
190
 
 
191
                sbSizer4->Add( m_allowDragAndDrop, 0, wxALL, 5 );
 
192
 
 
193
                m_foreignDnD = new wxCheckBox( page, wxID_ANY, wxT("Allow Drag And Drop from other notebooks"), wxDefaultPosition, wxDefaultSize, 0 );
 
194
                m_foreignDnD->SetValue(pc->HasFlag(wxFNB_ALLOW_FOREIGN_DND));
 
195
                m_foreignDnD->Enable(m_allowDragAndDrop->IsChecked() && m_options & wxFNB_CUSTOM_FOREIGN_DRAG);
 
196
                sbSizer4->Add( m_foreignDnD, 0, wxALL, 5 );
 
197
                mainSizer->Add( sbSizer4, 0, wxALL|wxEXPAND, 5 );
 
198
 
 
199
        }else{
 
200
                m_allowDragAndDrop = NULL;
 
201
                m_foreignDnD = NULL;
 
202
        }       
 
203
 
 
204
        wxStaticBoxSizer* sbSizer5;
 
205
        sbSizer5 = new wxStaticBoxSizer( new wxStaticBox( page, -1, wxT("Effects:") ), wxHORIZONTAL );
 
206
        
 
207
        m_gradient = new wxCheckBox( page, wxID_ANY, wxT("Use Gradient painting for tabs area"), wxDefaultPosition, wxDefaultSize, 0 );
 
208
        m_gradient->SetValue(pc->HasFlag(wxFNB_BACKGROUND_GRADIENT));
 
209
        sbSizer5->Add( m_gradient, 0, wxALL, 5 );
 
210
        
 
211
        m_colorfulTab = new wxCheckBox( page, wxID_ANY, wxT("Set Random Colour for Tabs"), wxDefaultPosition, wxDefaultSize, 0 );
 
212
        m_colorfulTab->SetValue(pc->HasFlag(wxFNB_COLORFUL_TABS));
 
213
        sbSizer5->Add( m_colorfulTab, 0, wxALL, 5 );
 
214
        
 
215
        mainSizer->Add( sbSizer5, 0, wxALL|wxEXPAND, 5 );
 
216
        m_colorfulTab->Enable(enableColorTab);
 
217
        m_gradient->Enable(enableGrad);
 
218
        page->Layout();
 
219
        return page;
 
220
}
 
221
 
 
222
//---------------------------------------------------------
 
223
// Event handlers
 
224
//---------------------------------------------------------
 
225
 
 
226
void wxFNBCustomizeDialog::OnClose(wxCommandEvent &event)
 
227
{
 
228
        wxUnusedVar(event);
 
229
        EndModal(wxID_OK);
 
230
}
 
231
 
 
232
void wxFNBCustomizeDialog::OnStyle(wxCommandEvent &event)
 
233
{
 
234
        wxObject *obj = event.GetEventObject();
 
235
        wxPageContainer *pc = static_cast<wxPageContainer*>(GetParent());
 
236
 
 
237
        wxFlatNotebook *bookWin = static_cast<wxFlatNotebook*>( pc->GetParent() );
 
238
        long style = bookWin->GetWindowStyleFlag();
 
239
 
 
240
        // Handle tab style
 
241
        if( obj == m_styles ){
 
242
                style &= ~(wxFNB_VC71);
 
243
                style &= ~(wxFNB_VC8);
 
244
                style &= ~(wxFNB_FF2);
 
245
                style &= ~(wxFNB_FANCY_TABS);
 
246
 
 
247
                if(event.GetSelection() == 1){  // vc8
 
248
                        // remove bottom flag if exist
 
249
                        style |= wxFNB_VC8;
 
250
                        m_gradient->Enable(true);
 
251
                        m_colorfulTab->Enable(true);
 
252
                } else if(event.GetSelection() == 2){   //vc71
 
253
                        style |= wxFNB_VC71;
 
254
                        m_gradient->Enable(false);
 
255
                        m_colorfulTab->Enable(false);
 
256
                } else if(event.GetSelection() == 3){   // fancy
 
257
                        style |= wxFNB_FANCY_TABS;
 
258
                        m_gradient->Enable(false);
 
259
                        m_colorfulTab->Enable(false);
 
260
                } else if(event.GetSelection() == 4){   // ff2
 
261
                        style |= wxFNB_FF2;
 
262
                        m_gradient->Enable(true);
 
263
                        m_colorfulTab->Enable(false);
 
264
                } else {
 
265
                        // by default this two options are not available
 
266
                        m_gradient->Enable(false);
 
267
                        m_colorfulTab->Enable(false);
 
268
                }
 
269
        }
 
270
 
 
271
        // Handle tab postioninig
 
272
        if( obj == m_tabVPosition ){
 
273
                if(event.GetSelection() == 0){  // Top
 
274
                        // remove bottom flag if exist
 
275
                        style &= ~(wxFNB_BOTTOM);
 
276
                } else {
 
277
                        style |= wxFNB_BOTTOM;
 
278
                }
 
279
        }
 
280
 
 
281
        // Handle navigation style
 
282
        if( obj == m_navigationStyle ){
 
283
                if(event.GetSelection() == 0){  // Arrows
 
284
                        style &= ~wxFNB_DROPDOWN_TABS_LIST;
 
285
                        style &= ~wxFNB_NO_NAV_BUTTONS;
 
286
                } else if(event.GetSelection() == 1){ // list
 
287
                        style |= wxFNB_NO_NAV_BUTTONS;
 
288
                        style |= wxFNB_DROPDOWN_TABS_LIST;
 
289
                } else {
 
290
                        // none
 
291
                        style |= wxFNB_NO_NAV_BUTTONS;
 
292
                        style &= ~wxFNB_DROPDOWN_TABS_LIST;
 
293
                }
 
294
        }
 
295
 
 
296
        // Simple tab border around tab area
 
297
        if(obj == m_tabBorder){
 
298
                if(event.IsChecked()){
 
299
                        style |= wxFNB_TABS_BORDER_SIMPLE;
 
300
                } else {
 
301
                        style &= ~(wxFNB_TABS_BORDER_SIMPLE);
 
302
                }
 
303
        }
 
304
 
 
305
        // Hide close button
 
306
        if(obj == m_hideCloseButton){
 
307
                if(event.IsChecked()){
 
308
                        style |= wxFNB_NO_X_BUTTON;
 
309
                } else {
 
310
                        style &= ~(wxFNB_NO_X_BUTTON);
 
311
                }
 
312
        }
 
313
 
 
314
        if(obj == m_mouseMiddleCloseTab){
 
315
                if(event.IsChecked()){
 
316
                        style |= wxFNB_MOUSE_MIDDLE_CLOSES_TABS;
 
317
                } else {
 
318
                        style &= ~(wxFNB_MOUSE_MIDDLE_CLOSES_TABS);
 
319
                }
 
320
        }
 
321
 
 
322
        if(obj == m_xButtonOnTab){
 
323
                if(event.IsChecked()){
 
324
                        style |= wxFNB_X_ON_TAB;
 
325
                } else {
 
326
                        style &= ~(wxFNB_X_ON_TAB);
 
327
                }
 
328
        }
 
329
 
 
330
        if(obj == m_dlbClickCloseTab){
 
331
                if(event.IsChecked()){
 
332
                        style |= wxFNB_DCLICK_CLOSES_TABS;
 
333
                } else {
 
334
                        style &= ~(wxFNB_DCLICK_CLOSES_TABS);
 
335
                }
 
336
        }
 
337
 
 
338
        if(obj == m_smartTabbing){
 
339
                if(event.IsChecked()){
 
340
                        style |= wxFNB_SMART_TABS;
 
341
                } else {
 
342
                        style &= ~(wxFNB_SMART_TABS);
 
343
                }
 
344
        }
 
345
        
 
346
        if(obj == m_allowDragAndDrop){
 
347
                if(event.IsChecked()){
 
348
                        m_foreignDnD->Enable(m_options & wxFNB_CUSTOM_FOREIGN_DRAG ? true : false);
 
349
                        style &= ~wxFNB_NODRAG;
 
350
                } else {
 
351
                        m_foreignDnD->Enable(false);
 
352
                        style |= wxFNB_NODRAG;
 
353
                }
 
354
        }
 
355
 
 
356
        if(obj == m_foreignDnD){
 
357
                if(event.IsChecked()){
 
358
                        style |= wxFNB_ALLOW_FOREIGN_DND;
 
359
                } else {
 
360
                        style &= ~wxFNB_ALLOW_FOREIGN_DND;
 
361
                }
 
362
        }
 
363
 
 
364
        if(obj == m_gradient){
 
365
                if(event.IsChecked()){
 
366
                        style |= wxFNB_BACKGROUND_GRADIENT;
 
367
                } else {
 
368
                        style &= ~wxFNB_BACKGROUND_GRADIENT;
 
369
                }
 
370
        }
 
371
 
 
372
        if(obj == m_colorfulTab){
 
373
                if(event.IsChecked()){
 
374
                        style |= wxFNB_COLORFUL_TABS;
 
375
                } else {
 
376
                        style &= ~wxFNB_COLORFUL_TABS;
 
377
                }
 
378
        }
 
379
 
 
380
        bookWin->SetWindowStyleFlag(style);
 
381
        bookWin->Refresh();
 
382
}
 
383
 
 
384