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

« back to all changes in this revision

Viewing changes to src/plugins/contrib/wxSmithAui/wxAuiToolBar/wxsAuiToolBar.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
* This file is part of wxSmithAui plugin for Code::Blocks Studio
 
3
* Copyright (C) 2008-2009  César Fernández Domínguez
 
4
*
 
5
* wxSmithAui is free software; you can redistribute it and/or modify
 
6
* it under the terms of the GNU General Public License as published by
 
7
* the Free Software Foundation; either version 3 of the License, or
 
8
* (at your option) any later version.
 
9
*
 
10
* wxSmithAui is distributed in the hope that it will be useful,
 
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
 
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 
13
* GNU General Public License for more details.
 
14
*
 
15
* You should have received a copy of the GNU General Public License
 
16
* along with wxSmithAui. If not, see <http://www.gnu.org/licenses/>.
 
17
*/
 
18
 
 
19
#include "wxsAuiToolBar.h"
 
20
 
 
21
#if wxCHECK_VERSION(2,8,9)
 
22
 
 
23
#include <wxsadvqppchild.h>
 
24
#include <wxwidgets/wxsitemresdata.h>
 
25
#include <wx/menu.h>
 
26
#include <wx/textdlg.h>
 
27
#include <wxwidgets/wxsflags.h>
 
28
 
 
29
#include "../wxAuiManager/wxsAuiManager.h"
 
30
#include "wxSmithAuiToolBar.h"
 
31
#include "wxsAuiToolBarItem.h"
 
32
#include "wxsAuiToolBarSeparator.h"
 
33
#include "wxsAuiToolBarLabel.h"
 
34
#include "wxsAuiToolBarSpacer.h"
 
35
 
 
36
using namespace wxsFlags;
 
37
 
 
38
//(*Headers(wxsAuiToolBarParentQP)
 
39
#include <wx/checkbox.h>
 
40
#include <wx/sizer.h>
 
41
#include <wx/panel.h>
 
42
#include <wx/textctrl.h>
 
43
//*)
 
44
 
 
45
//(*InternalHeaders(wxsAuiToolBarParentQP)
 
46
#include <wx/string.h>
 
47
#include <wx/intl.h>
 
48
//*)
 
49
 
 
50
namespace
 
51
{
 
52
    #include "../images/wxsAuiToolBar16.xpm"
 
53
    #include "../images/wxsAuiToolBar32.xpm"
 
54
 
 
55
    wxsRegisterItem<wxsAuiToolBar> Reg(
 
56
        _T("wxAuiToolBar"),                 // Class name
 
57
        wxsTContainer,                      // Item type
 
58
        _T("wxWindows"),                    // License
 
59
        _T("Benjamin I. Williams"),         // Author
 
60
        _T(""),                             // Author's email
 
61
        _T(""),                             // Item's homepage
 
62
        _T("Aui"),                          // Category in palette
 
63
        40,                                 // Priority in palette
 
64
        _T("AuiToolBar"),                  // Base part of names for new items
 
65
        wxsCPP,                             // List of coding languages supported by this item
 
66
        2, 8,                               // Version
 
67
        wxBitmap(wxsAuiToolBar32_xpm),      // 32x32 bitmap
 
68
        wxBitmap(wxsAuiToolBar16_xpm),      // 16x16 bitmap
 
69
        false);                             // Allow in XRC
 
70
 
 
71
    /** \brief Extra parameters for aui notebook's children */
 
72
    class wxsAuiToolBarExtra: public wxsPropertyContainer
 
73
    {
 
74
        public:
 
75
 
 
76
            wxsAuiToolBarExtra():
 
77
                m_Label(_("Item label")),
 
78
                m_Enabled(true)
 
79
            {}
 
80
 
 
81
            wxString m_Label;
 
82
            bool     m_Enabled;
 
83
 
 
84
        protected:
 
85
 
 
86
            virtual void OnEnumProperties(long Flags)
 
87
            {
 
88
                WXS_SHORT_STRING_P(wxsAuiToolBarExtra,m_Label,_("Aui ToolBar label"),_T("label"),_T(""),false,500);
 
89
                WXS_BOOL_P(wxsAuiToolBarExtra,m_Enabled,_("Aui ToolBar Enabled"),_T("enabled"),true,499);
 
90
            }
 
91
    };
 
92
 
 
93
    WXS_ST_BEGIN(wxsAuiToolBarStyles,_T("wxAUI_TB_DEFAULT_STYLE"))
 
94
        WXS_ST_CATEGORY("wxAuiToolBar")
 
95
        WXS_ST(wxAUI_TB_TEXT)
 
96
        WXS_ST(wxAUI_TB_NO_TOOLTIPS)
 
97
        WXS_ST(wxAUI_TB_NO_AUTORESIZE)
 
98
        WXS_ST(wxAUI_TB_OVERFLOW)
 
99
        WXS_ST(wxAUI_TB_HORZ_LAYOUT)
 
100
        WXS_ST(wxAUI_TB_HORZ_TEXT)
 
101
        WXS_ST(wxAUI_TB_DEFAULT_STYLE)
 
102
        WXS_ST_DEFAULTS()
 
103
    WXS_ST_END()
 
104
 
 
105
    WXS_EV_BEGIN(wxsAuiToolBarEvents)
 
106
        WXS_EVI(EVT_AUITOOLBAR_TOOL_DROPDOWN,wxEVT_COMMAND_AUITOOLBAR_TOOL_DROPDOWN,wxAuiToolBarEvent,Dropdown)
 
107
        WXS_EVI(EVT_AUITOOLBAR_OVERFLOW_CLICK,wxEVT_COMMAND_AUITOOLBAR_OVERFLOW_CLICK,wxAuiToolBarEvent,OverflowClick)
 
108
        WXS_EVI(EVT_AUITOOLBAR_RIGHT_CLICK,wxEVT_COMMAND_AUITOOLBAR_RIGHT_CLICK,wxAuiToolBarEvent,RightClick)
 
109
        WXS_EVI(EVT_AUITOOLBAR_MIDDLE_CLICK,wxEVT_COMMAND_AUITOOLBAR_MIDDLE_CLICK,wxAuiToolBarEvent,MiddleClick)
 
110
        WXS_EVI(EVT_AUITOOLBAR_BEGIN_DRAG,wxEVT_COMMAND_AUITOOLBAR_BEGIN_DRAG,wxAuiToolBarEvent,BeginDrag)
 
111
    WXS_EV_END()
 
112
}
 
113
 
 
114
wxsAuiToolBar::wxsAuiToolBar(wxsItemResData* Data):
 
115
    wxsContainer(
 
116
        Data,
 
117
        &Reg.Info,
 
118
        wxsAuiToolBarEvents,
 
119
        wxsAuiToolBarStyles),
 
120
    m_CurrentSelection(0)
 
121
{
 
122
    //ctor
 
123
}
 
124
 
 
125
wxsAuiToolBar::~wxsAuiToolBar()
 
126
{
 
127
    //dtor
 
128
}
 
129
 
 
130
bool wxsAuiToolBar::OnCanAddChild(wxsItem* Item,bool ShowMessage)
 
131
{
 
132
    bool IsControl = wxDynamicCast(Item->BuildPreview(new wxFrame(0,-1,wxEmptyString),0),wxControl);
 
133
    bool IsAuiToolBarItem = Item->GetClassName().Contains(_T("wxAuiToolBar"));
 
134
    if ( !IsControl && !IsAuiToolBarItem )
 
135
    {
 
136
        if ( ShowMessage )
 
137
        {
 
138
            wxMessageBox(_("Only Controls and Aui ToolBar Items can be added to wxAuiToolBar."));
 
139
        }
 
140
        return false;
 
141
    }
 
142
 
 
143
        return wxsContainer::OnCanAddChild(Item,ShowMessage);
 
144
}
 
145
 
 
146
bool wxsAuiToolBar::OnCanAddToParent(wxsParent* Parent,bool ShowMessage)
 
147
{
 
148
    if ( Parent->GetClassName() != _T("wxAuiManager") )
 
149
    {
 
150
        if ( ShowMessage )
 
151
        {
 
152
            wxMessageBox(_("wxAuiToolBar can only be added to wxAuiManager."));
 
153
        }
 
154
        return false;
 
155
    }
 
156
 
 
157
        return wxsContainer::OnCanAddToParent(Parent,ShowMessage);
 
158
}
 
159
 
 
160
wxsPropertyContainer* wxsAuiToolBar::OnBuildExtra()
 
161
{
 
162
    return new wxsAuiToolBarExtra();
 
163
}
 
164
 
 
165
wxString wxsAuiToolBar::OnXmlGetExtraObjectClass()
 
166
{
 
167
    return _T("AuiToolBarItem");
 
168
}
 
169
 
 
170
wxObject* wxsAuiToolBar::OnBuildPreview(wxWindow* Parent,long PreviewFlags)
 
171
{
 
172
    UpdateCurrentSelection();
 
173
    wxsAuiManager* AuiManager = (wxsAuiManager*) GetParent();
 
174
    wxsAuiPaneInfoExtra* PaneInfo = (wxsAuiPaneInfoExtra*) AuiManager->GetChildExtra(AuiManager->GetChildIndex(this));
 
175
    wxSmithAuiToolBar* AuiToolBar;
 
176
 
 
177
    long Gripper = 0;
 
178
    if ( PaneInfo->m_Gripper == wxTOP)
 
179
    {
 
180
            Gripper |= wxAUI_TB_VERTICAL;
 
181
    }
 
182
    AuiToolBar = new wxSmithAuiToolBar(Parent,-1,Pos(Parent),Size(Parent),Style()|Gripper);
 
183
 
 
184
        if ( !GetChildCount() && !(PreviewFlags&pfExact) )
 
185
        {
 
186
            // Adding additional label to prevent from having zero-sized AuiToolBar
 
187
            AuiToolBar->AddControl(new wxStaticText(AuiToolBar,-1,_("No Items")));
 
188
        }
 
189
 
 
190
        for ( int i=0; i<GetChildCount(); i++ )
 
191
        {
 
192
            wxsItem* Child = GetChild(i);
 
193
            wxsAuiToolBarExtra* Extra = (wxsAuiToolBarExtra*)GetChildExtra(i);
 
194
            wxString ClassName = Child->GetClassName();
 
195
 
 
196
        if ( ClassName == _T("wxAuiToolBarItem") )
 
197
        {
 
198
            wxsAuiToolBarItem* Item = (wxsAuiToolBarItem*) Child;
 
199
            Item->m_ItemId = wxNewId();
 
200
            Item->m_HasGripper = PaneInfo->m_Gripper;
 
201
            Item->m_GripperSize = m_GripperSize;
 
202
            AuiToolBar->AddTool(
 
203
                Item->m_ItemId,
 
204
                Extra->m_Label,
 
205
                Item->m_Bitmap.GetPreview(wxDefaultSize,wxART_TOOLBAR),
 
206
                Item->m_DisabledBitmap.GetPreview(wxDefaultSize,wxART_TOOLBAR),
 
207
                Item->m_ItemKind,
 
208
                Item->m_ShortHelp,
 
209
                Item->m_LongHelp,
 
210
                NULL);
 
211
            if ( !Extra->m_Enabled ) AuiToolBar->EnableTool(Item->m_ItemId, false);
 
212
            if ( Item->m_DropDown && (Item->m_ItemKind == wxITEM_NORMAL) ) AuiToolBar->SetToolDropDown(Item->m_ItemId, true);
 
213
            AuiToolBar->Realize();
 
214
            Item->BuildPreview(AuiToolBar,PreviewFlags);
 
215
        }
 
216
        else if ( ClassName == _T("wxAuiToolBarSeparator") )
 
217
        {
 
218
            wxsAuiToolBarSeparator* Separator = (wxsAuiToolBarSeparator*) Child;
 
219
            Separator->m_ItemId = wxNewId();
 
220
            Separator->m_HasGripper = PaneInfo->m_Gripper;
 
221
            Separator->m_GripperSize = m_GripperSize;
 
222
            AuiToolBar->AddTool(Separator->m_ItemId,wxEmptyString,wxNullBitmap,wxNullBitmap,wxITEM_SEPARATOR,wxEmptyString,wxEmptyString,NULL);
 
223
            if ( !Extra->m_Enabled ) AuiToolBar->EnableTool(Separator->m_ItemId, false);
 
224
            AuiToolBar->Realize();
 
225
            Separator->BuildPreview(AuiToolBar,PreviewFlags);
 
226
        }
 
227
        else if ( ClassName == _T("wxAuiToolBarLabel") )
 
228
        {
 
229
            wxsAuiToolBarLabel* Label = (wxsAuiToolBarLabel*) Child;
 
230
            Label->m_ItemId = wxNewId();
 
231
            Label->m_HasGripper = PaneInfo->m_Gripper;
 
232
            Label->m_GripperSize = m_GripperSize;
 
233
            AuiToolBar->AddLabel(Label->m_ItemId,Extra->m_Label,Label->m_IsDefault ? -1 : Label->m_Width);
 
234
            if ( !Extra->m_Enabled ) AuiToolBar->EnableTool(Label->m_ItemId, false);
 
235
            AuiToolBar->Realize();
 
236
            Label->BuildPreview(AuiToolBar,PreviewFlags);
 
237
        }
 
238
        else if ( ClassName == _T("wxAuiToolBarSpacer") )
 
239
        {
 
240
            wxsAuiToolBarSpacer* Spacer = (wxsAuiToolBarSpacer*) Child;
 
241
            Spacer->m_ItemId = wxNewId();
 
242
            Spacer->m_HasGripper = PaneInfo->m_Gripper;
 
243
            Spacer->m_GripperSize = m_GripperSize;
 
244
            if ( Spacer->m_Stretch ) AuiToolBar->AddStretchSpacer(Spacer->m_Proportion,Spacer->m_ItemId);
 
245
            else                     AuiToolBar->AddSpacer(Spacer->m_Pixels,Spacer->m_ItemId);
 
246
            if ( !Extra->m_Enabled ) AuiToolBar->EnableTool(Spacer->m_ItemId, false);
 
247
            AuiToolBar->Realize();
 
248
            Spacer->BuildPreview(AuiToolBar,PreviewFlags);
 
249
        }
 
250
        else    // If child is not any of wxAuiToolBarItems, it is a wxControl
 
251
        {
 
252
            wxControl* ChildAsControl = wxDynamicCast(Child->BuildPreview(AuiToolBar,PreviewFlags),wxControl);
 
253
            AuiToolBar->AddControl(ChildAsControl,Extra->m_Label);
 
254
            if ( !Extra->m_Enabled ) ChildAsControl->Enable(false);
 
255
        }
 
256
        }
 
257
 
 
258
    AuiToolBar->Realize();
 
259
        return AuiToolBar;
 
260
}
 
261
 
 
262
void wxsAuiToolBar::OnBuildCreatingCode()
 
263
{
 
264
    switch ( GetLanguage() )
 
265
    {
 
266
        case wxsCPP:
 
267
        {
 
268
            wxsAuiManager* AuiManager = (wxsAuiManager*) GetParent();
 
269
            wxsAuiPaneInfoExtra* PaneInfo = (wxsAuiPaneInfoExtra*) AuiManager->GetChildExtra(AuiManager->GetChildIndex(this));
 
270
 
 
271
            AddHeader(_T("<wx/aui/aui.h>"),GetInfo().ClassName,0);
 
272
            AddHeader(_T("<wx/aui/aui.h>"),_T("wxAuiToolBarEvent"),0);
 
273
 
 
274
            if ( PaneInfo->m_Gripper == wxTOP )
 
275
            {
 
276
                Codef(_T("%C(%W, %I, %P, %S, %T|wxAUI_TB_VERTICAL);\n"));
 
277
            }
 
278
            else
 
279
            {
 
280
                Codef(_T("%C(%W, %I, %P, %S, %T);\n"));
 
281
            }
 
282
 
 
283
            AddChildrenCode();
 
284
 
 
285
            for ( int i=0; i<GetChildCount(); i++ )
 
286
            {
 
287
                wxsItem* Child = GetChild(i);
 
288
                wxsAuiToolBarExtra* Extra = (wxsAuiToolBarExtra*)GetChildExtra(i);
 
289
                wxString ClassName = Child->GetClassName();
 
290
 
 
291
                if ( ClassName == _T("wxAuiToolBarItem") )
 
292
                {
 
293
                    wxsAuiToolBarItem* Item = (wxsAuiToolBarItem*) Child;
 
294
                    wxsBitmapData Bitmap = Item->m_Bitmap;
 
295
                    wxsBitmapData DisabledBitmap = Item->m_DisabledBitmap;
 
296
                    wxString ItemKind;
 
297
                    switch ( Item->m_ItemKind )
 
298
                    {
 
299
                        case wxITEM_NORMAL:
 
300
                        {
 
301
                            ItemKind = _T("wxITEM_NORMAL");
 
302
                            break;
 
303
                        }
 
304
                        case wxITEM_CHECK:
 
305
                        {
 
306
                            ItemKind = _T("wxITEM_CHECK");
 
307
                            break;
 
308
                        }
 
309
                        default:
 
310
                        {
 
311
                            break;
 
312
                        }
 
313
                    }
 
314
 
 
315
                    Codef(_T("%AAddTool(%s, %t, %i, %i, %s, %t, %t, NULL);\n"),
 
316
                        #if wxCHECK_VERSION(2, 9, 0)
 
317
                        Child->GetIdName().wx_str(),
 
318
                        Extra->m_Label.wx_str(),
 
319
                        &Bitmap,_T("wxART_TOOLBAR"),
 
320
                        &DisabledBitmap,_T("wxART_TOOLBAR"),
 
321
                        ItemKind.wx_str(),
 
322
                        Item->m_ShortHelp.wx_str(),
 
323
                        Item->m_LongHelp.wx_str());
 
324
                        #else
 
325
                        Child->GetIdName().c_str(),
 
326
                        Extra->m_Label.c_str(),
 
327
                        &Bitmap,_T("wxART_TOOLBAR"),
 
328
                        &DisabledBitmap,_T("wxART_TOOLBAR"),
 
329
                        ItemKind.c_str(),
 
330
                        Item->m_ShortHelp.c_str(),
 
331
                        Item->m_LongHelp.c_str());
 
332
                        #endif
 
333
                    if ( Item->m_DropDown && (Item->m_ItemKind == wxITEM_NORMAL) )
 
334
                    {
 
335
                        #if wxCHECK_VERSION(2, 9, 0)
 
336
                        Codef(_T("%ASetToolDropDown(%s, true);\n"),Item->GetIdName().wx_str());
 
337
                        #else
 
338
                        Codef(_T("%ASetToolDropDown(%s, true);\n"),Item->GetIdName().c_str());
 
339
                        #endif
 
340
 
 
341
                    }
 
342
                }
 
343
                else if ( ClassName == _T("wxAuiToolBarSeparator") )
 
344
                {
 
345
                    Codef(_T("%AAddSeparator();\n"));
 
346
                }
 
347
                else if ( ClassName == _T("wxAuiToolBarLabel") )
 
348
                {
 
349
                    wxsAuiToolBarLabel* Label = (wxsAuiToolBarLabel*) Child;
 
350
                    if ( Label->m_IsDefault )
 
351
                    {
 
352
                        #if wxCHECK_VERSION(2, 9, 0)
 
353
                        Codef(_T("%AAddLabel(%s, %t);\n"),Child->GetIdName().wx_str(),Extra->m_Label.wx_str());
 
354
                        #else
 
355
                        Codef(_T("%AAddLabel(%s, %t);\n"),Child->GetIdName().c_str(),Extra->m_Label.c_str());
 
356
                        #endif
 
357
 
 
358
                    }
 
359
                    else
 
360
                    {
 
361
                        #if wxCHECK_VERSION(2, 9, 0)
 
362
                        Codef(_T("%AAddLabel(%s, %t, %d);\n"),Child->GetIdName().wx_str(),Extra->m_Label.wx_str(),Label->m_Width);
 
363
                        #else
 
364
                        Codef(_T("%AAddLabel(%s, %t, %d);\n"),Child->GetIdName().c_str(),Extra->m_Label.c_str(),Label->m_Width);
 
365
                        #endif
 
366
                    }
 
367
                }
 
368
                else if ( ClassName == _T("wxAuiToolBarSpacer") )
 
369
                {
 
370
                    wxsAuiToolBarSpacer* Spacer = (wxsAuiToolBarSpacer*) Child;
 
371
                    if ( Spacer->m_Stretch ) Codef(_T("%AAddStretchSpacer(%d);\n"),Spacer->m_Proportion);
 
372
                    else                     Codef(_T("%AAddSpacer(%d);\n"),Spacer->m_Pixels);
 
373
                }
 
374
                else
 
375
                {
 
376
                    // If child is not any of wxAuiToolBarItems, it is a wxControl
 
377
                    #if wxCHECK_VERSION(2, 9, 0)
 
378
                    Codef(_T("%AAddControl(%o, %t);\n"),i,Extra->m_Label.wx_str());
 
379
                    if ( !Extra->m_Enabled && Child->GetBaseProps()->m_Enabled ) Codef(_T("%s->Enable(false);\n"),Child->GetVarName().wx_str());
 
380
                    #else
 
381
                    Codef(_T("%AAddControl(%o, %t);\n"),i,Extra->m_Label.c_str());
 
382
                    if ( !Extra->m_Enabled && Child->GetBaseProps()->m_Enabled ) Codef(_T("%s->Enable(false);\n"),Child->GetVarName().c_str());
 
383
                    #endif
 
384
                    continue;
 
385
                }
 
386
 
 
387
                #if wxCHECK_VERSION(2, 9, 0)
 
388
                if ( !Extra->m_Enabled ) Codef(_T("%AEnableTool(%s, false);\n"),Child->GetIdName().wx_str());
 
389
                #else
 
390
                if ( !Extra->m_Enabled ) Codef(_T("%AEnableTool(%s, false);\n"),Child->GetIdName().c_str());
 
391
                #endif
 
392
            }
 
393
 
 
394
            Codef(_T("%ARealize();\n"));
 
395
 
 
396
            break;
 
397
        }
 
398
 
 
399
        default:
 
400
        {
 
401
            wxsCodeMarks::Unknown(_T("wxsAuiToolBar::OnBuildCreatingCode"),GetLanguage());
 
402
        }
 
403
    }
 
404
}
 
405
 
 
406
bool wxsAuiToolBar::OnMouseClick(wxWindow* Preview,int PosX,int PosY)
 
407
{
 
408
    UpdateCurrentSelection();
 
409
    wxSmithAuiToolBar* AuiToolBar = (wxSmithAuiToolBar*)Preview;
 
410
    int Hit = AuiToolBar->HitTest(wxPoint(PosX,PosY));
 
411
    if ( (Hit != wxNOT_FOUND) && (Hit < GetChildCount()) )
 
412
    {
 
413
        wxsItem* OldSel = m_CurrentSelection;
 
414
        m_CurrentSelection = GetChild(Hit);
 
415
        GetResourceData()->SelectItem(m_CurrentSelection,true);
 
416
        return OldSel != m_CurrentSelection;
 
417
    }
 
418
    return false;
 
419
}
 
420
 
 
421
bool wxsAuiToolBar::OnIsChildPreviewVisible(wxsItem* Child)
 
422
{
 
423
    UpdateCurrentSelection();
 
424
    return Child == m_CurrentSelection;
 
425
}
 
426
 
 
427
bool wxsAuiToolBar::OnEnsureChildPreviewVisible(wxsItem* Child)
 
428
{
 
429
    if ( IsChildPreviewVisible(Child) ) return false;
 
430
    m_CurrentSelection = Child;
 
431
    UpdateCurrentSelection();
 
432
    return true;
 
433
}
 
434
 
 
435
void wxsAuiToolBar::UpdateCurrentSelection()
 
436
{
 
437
    wxsItem* NewCurrentSelection = 0;
 
438
    for ( int i=0; i<GetChildCount(); i++ )
 
439
    {
 
440
        if ( m_CurrentSelection == GetChild(i) ) return;
 
441
        // Extra below is currently un-used
 
442
        // wxsAuiToolBarExtra* Extra = (wxsAuiToolBarExtra*)GetChildExtra(i);
 
443
        if ( i==0 )
 
444
        {
 
445
            NewCurrentSelection = GetChild(i);
 
446
        }
 
447
    }
 
448
    m_CurrentSelection = NewCurrentSelection;
 
449
}
 
450
 
 
451
#endif // wxCHECK_VERSION(2,8,9)