Take into account the initial buttons state when creating wxGTK toolbar.
[wxWidgets.git] / include / wx / gtk / toolbar.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/gtk/toolbar.h
3 // Purpose: GTK toolbar
4 // Author: Robert Roebling
5 // RCS-ID: $Id$
6 // Copyright: (c) Robert Roebling
7 // Licence: wxWindows licence
8 /////////////////////////////////////////////////////////////////////////////
9
10 #ifndef _WX_GTK_TOOLBAR_H_
11 #define _WX_GTK_TOOLBAR_H_
12
13 #if wxUSE_TOOLBAR
14
15 // ----------------------------------------------------------------------------
16 // wxToolBar
17 // ----------------------------------------------------------------------------
18
19 class WXDLLIMPEXP_CORE wxToolBar : public wxToolBarBase
20 {
21 public:
22 // construction/destruction
23 wxToolBar() { Init(); }
24 wxToolBar( wxWindow *parent,
25 wxWindowID id,
26 const wxPoint& pos = wxDefaultPosition,
27 const wxSize& size = wxDefaultSize,
28 long style = wxTB_HORIZONTAL,
29 const wxString& name = wxToolBarNameStr )
30 {
31 Init();
32
33 Create(parent, id, pos, size, style, name);
34 }
35
36 bool Create( wxWindow *parent,
37 wxWindowID id,
38 const wxPoint& pos = wxDefaultPosition,
39 const wxSize& size = wxDefaultSize,
40 long style = wxTB_HORIZONTAL,
41 const wxString& name = wxToolBarNameStr );
42
43 virtual ~wxToolBar();
44
45 virtual wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y) const;
46
47 virtual void SetToolShortHelp(int id, const wxString& helpString);
48
49 virtual void SetWindowStyleFlag( long style );
50
51 virtual void SetToolNormalBitmap(int id, const wxBitmap& bitmap);
52 virtual void SetToolDisabledBitmap(int id, const wxBitmap& bitmap);
53
54 virtual bool Realize();
55
56 static wxVisualAttributes
57 GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
58
59 // implementation from now on
60 // --------------------------
61
62 void OnInternalIdle();
63
64 protected:
65 virtual wxSize DoGetBestSize() const;
66 virtual GdkWindow *GTKGetWindow(wxArrayGdkWindows& windows) const;
67
68 // implement base class pure virtuals
69 virtual bool DoInsertTool(size_t pos, wxToolBarToolBase *tool);
70 virtual bool DoDeleteTool(size_t pos, wxToolBarToolBase *tool);
71
72 virtual void DoEnableTool(wxToolBarToolBase *tool, bool enable);
73 virtual void DoToggleTool(wxToolBarToolBase *tool, bool toggle);
74 virtual void DoSetToggle(wxToolBarToolBase *tool, bool toggle);
75
76 virtual wxToolBarToolBase *CreateTool(int id,
77 const wxString& label,
78 const wxBitmap& bitmap1,
79 const wxBitmap& bitmap2,
80 wxItemKind kind,
81 wxObject *clientData,
82 const wxString& shortHelpString,
83 const wxString& longHelpString);
84 virtual wxToolBarToolBase *CreateTool(wxControl *control,
85 const wxString& label);
86
87 private:
88 void Init();
89 void GtkSetStyle();
90 GSList* GetRadioGroup(size_t pos);
91 virtual void AddChildGTK(wxWindowGTK* child);
92
93 GtkToolbar* m_toolbar;
94 GtkTooltips* m_tooltips;
95
96 DECLARE_DYNAMIC_CLASS(wxToolBar)
97 };
98
99 #endif // wxUSE_TOOLBAR
100
101 #endif
102 // _WX_GTK_TOOLBAR_H_