File: tbarwce.h

package info (click to toggle)
wxpython3.0 3.0.2.0%2Bdfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 482,760 kB
  • ctags: 518,293
  • sloc: cpp: 2,127,226; python: 294,045; makefile: 51,942; ansic: 19,033; sh: 3,013; xml: 1,629; perl: 17
file content (169 lines) | stat: -rw-r--r-- 5,592 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
/////////////////////////////////////////////////////////////////////////////
// Name:        wx/msw/wince/tbarwce.h
// Purpose:     Windows CE wxToolBar class
// Author:      Julian Smart
// Modified by:
// Created:     2003-07-12
// Copyright:   (c) Julian Smart
// Licence:     wxWindows licence
/////////////////////////////////////////////////////////////////////////////

#ifndef _WX_BARWCE_H_
#define _WX_BARWCE_H_

#if wxUSE_TOOLBAR

#include "wx/dynarray.h"

// Smartphones don't have toolbars, so use a dummy class
#ifdef __SMARTPHONE__

class WXDLLIMPEXP_CORE wxToolBar : public wxToolBarBase
{
public:
    // ctors and dtor
    wxToolBar() { }

    wxToolBar(wxWindow *parent,
                wxWindowID id,
                const wxPoint& pos = wxDefaultPosition,
                const wxSize& size = wxDefaultSize,
                long style = wxTB_HORIZONTAL,
                const wxString& name = wxToolBarNameStr)
    {
        Create(parent, id, pos, size, style, name);
    }

    bool Create(wxWindow *parent,
                wxWindowID id,
                const wxPoint& pos = wxDefaultPosition,
                const wxSize& size = wxDefaultSize,
                long style = wxTB_HORIZONTAL,
                const wxString& name = wxToolBarNameStr);

    // override/implement base class virtuals
    virtual wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y) const;
    virtual bool Realize() { return true; }

protected:
    // implement base class pure virtuals
    virtual bool DoInsertTool(size_t pos, wxToolBarToolBase *tool);
    virtual bool DoDeleteTool(size_t pos, wxToolBarToolBase *tool);

    virtual void DoEnableTool(wxToolBarToolBase *tool, bool enable);
    virtual void DoToggleTool(wxToolBarToolBase *tool, bool toggle);
    virtual void DoSetToggle(wxToolBarToolBase *tool, bool toggle);

    virtual wxToolBarToolBase *CreateTool(int id,
                                          const wxString& label,
                                          const wxBitmap& bmpNormal,
                                          const wxBitmap& bmpDisabled,
                                          wxItemKind kind,
                                          wxObject *clientData,
                                          const wxString& shortHelp,
                                          const wxString& longHelp);
    virtual wxToolBarToolBase *CreateTool(wxControl *control,
                                          const wxString& label);

private:
    DECLARE_EVENT_TABLE()
    DECLARE_DYNAMIC_CLASS(wxToolBar)
    wxDECLARE_NO_COPY_CLASS(wxToolBar);
};

#else

// For __POCKETPC__

#include "wx/msw/toolbar.h"

class WXDLLIMPEXP_CORE wxToolMenuBar : public wxToolBar
{
public:
    // ctors and dtor
    wxToolMenuBar() { Init(); }

    wxToolMenuBar(wxWindow *parent,
                wxWindowID id,
                const wxPoint& pos = wxDefaultPosition,
                const wxSize& size = wxDefaultSize,
                long style = wxTB_HORIZONTAL,
                const wxString& name = wxToolBarNameStr,
                wxMenuBar* menuBar = NULL)
    {
        Init();

        Create(parent, id, pos, size, style, name, menuBar);
    }

    bool Create(wxWindow *parent,
                wxWindowID id,
                const wxPoint& pos = wxDefaultPosition,
                const wxSize& size = wxDefaultSize,
                long style = wxTB_HORIZONTAL,
                const wxString& name = wxToolBarNameStr,
                wxMenuBar* menuBar = NULL);

    virtual ~wxToolMenuBar();

    // override/implement base class virtuals
    virtual bool Realize();

    // implementation only from now on
    // -------------------------------

    // Override in order to bypass wxToolBar's overridden function
    virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);

    virtual bool MSWCommand(WXUINT param, WXWORD id);

    // Return HMENU for the menu associated with the commandbar
    WXHMENU GetHMenu();

    // Set the wxMenuBar associated with this commandbar
    void SetMenuBar(wxMenuBar* menuBar) { m_menuBar = menuBar; }

    // Returns the wxMenuBar associated with this commandbar
    wxMenuBar* GetMenuBar() const { return m_menuBar; }

protected:
    // common part of all ctors
    void Init();

    // create the native toolbar control
    bool MSWCreateToolbar(const wxPoint& pos, const wxSize& size, wxMenuBar* menuBar);

    // recreate the control completely
    void Recreate();

    // implement base class pure virtuals
    virtual bool DoInsertTool(size_t pos, wxToolBarToolBase *tool);
    virtual bool DoDeleteTool(size_t pos, wxToolBarToolBase *tool);

    virtual wxToolBarToolBase *CreateTool(int id,
                                          const wxString& label,
                                          const wxBitmap& bmpNormal,
                                          const wxBitmap& bmpDisabled,
                                          wxItemKind kind,
                                          wxObject *clientData,
                                          const wxString& shortHelp,
                                          const wxString& longHelp);
    virtual wxToolBarToolBase *CreateTool(wxControl *control,
                                          const wxString& label);

    // The menubar associated with this toolbar
    wxMenuBar*  m_menuBar;

private:
    DECLARE_EVENT_TABLE()
    DECLARE_DYNAMIC_CLASS(wxToolMenuBar)
    wxDECLARE_NO_COPY_CLASS(wxToolMenuBar);
};

#endif
  // __SMARTPHONE__

#endif // wxUSE_TOOLBAR

#endif
    // _WX_BARWCE_H_