]> git.saurik.com Git - wxWidgets.git/blame - include/wx/msw/tbar95.h
added wxArtProvider sample (not yet finished)
[wxWidgets.git] / include / wx / msw / tbar95.h
CommitLineData
2bda0e17 1/////////////////////////////////////////////////////////////////////////////
1c383dba 2// Name: wx/msw/tbar95.h
8a0681f9 3// Purpose: wxToolBar (Windows 95 toolbar) class
2bda0e17
KB
4// Author: Julian Smart
5// Modified by:
6// Created: 01/02/97
7// RCS-ID: $Id$
bbcdf8bc 8// Copyright: (c) Julian Smart
d427503c 9// Licence: wxWindows licence
2bda0e17
KB
10/////////////////////////////////////////////////////////////////////////////
11
bbcdf8bc
JS
12#ifndef _WX_TBAR95_H_
13#define _WX_TBAR95_H_
2bda0e17
KB
14
15#ifdef __GNUG__
8a0681f9 16 #pragma interface "tbar95.h"
2bda0e17
KB
17#endif
18
d427503c 19#if wxUSE_TOOLBAR
2bda0e17 20
bdc72a22
VZ
21#include "wx/dynarray.h"
22
8a0681f9 23class WXDLLEXPORT wxToolBar : public wxToolBarBase
2bda0e17 24{
1c383dba 25public:
8a0681f9
VZ
26 // ctors and dtor
27 wxToolBar() { Init(); }
2bda0e17 28
8a0681f9 29 wxToolBar(wxWindow *parent,
1c383dba
VZ
30 wxWindowID id,
31 const wxPoint& pos = wxDefaultPosition,
32 const wxSize& size = wxDefaultSize,
33 long style = wxNO_BORDER | wxTB_HORIZONTAL,
34 const wxString& name = wxToolBarNameStr)
35 {
36 Init();
2bda0e17 37
1c383dba
VZ
38 Create(parent, id, pos, size, style, name);
39 }
2bda0e17 40
1c383dba
VZ
41 bool Create(wxWindow *parent,
42 wxWindowID id,
43 const wxPoint& pos = wxDefaultPosition,
44 const wxSize& size = wxDefaultSize,
45 long style = wxNO_BORDER | wxTB_HORIZONTAL,
46 const wxString& name = wxToolBarNameStr);
2bda0e17 47
8a0681f9 48 virtual ~wxToolBar();
2bda0e17 49
8a0681f9
VZ
50 // override/implement base class virtuals
51 virtual wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y) const;
2bda0e17 52
8a0681f9 53 virtual bool Realize();
4fabb575 54
1c383dba
VZ
55 virtual void SetToolBitmapSize(const wxSize& size);
56 virtual wxSize GetToolSize() const;
14b72bf5 57
1c383dba 58 virtual void SetRows(int nRows);
81d66cf3 59
8a0681f9
VZ
60 // implementation only from now on
61 // -------------------------------
62
1c383dba
VZ
63 virtual bool MSWCommand(WXUINT param, WXWORD id);
64 virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
2bda0e17 65
1c383dba
VZ
66 void OnMouseEvent(wxMouseEvent& event);
67 void OnSysColourChanged(wxSysColourChangedEvent& event);
2bda0e17 68
566fb299
VZ
69 static WXHBITMAP MapBitmap(WXHBITMAP bitmap, int width, int height);
70
2bda0e17 71protected:
1c383dba
VZ
72 // common part of all ctors
73 void Init();
74
8a0681f9
VZ
75 // implement base class pure virtuals
76 virtual bool DoInsertTool(size_t pos, wxToolBarToolBase *tool);
77 virtual bool DoDeleteTool(size_t pos, wxToolBarToolBase *tool);
bdc72a22 78
8a0681f9
VZ
79 virtual void DoEnableTool(wxToolBarToolBase *tool, bool enable);
80 virtual void DoToggleTool(wxToolBarToolBase *tool, bool toggle);
81 virtual void DoSetToggle(wxToolBarToolBase *tool, bool toggle);
bdc72a22 82
8a0681f9 83 virtual wxToolBarToolBase *CreateTool(int id,
a3399e6c
VZ
84 const wxString& label,
85 const wxBitmap& bmpNormal,
86 const wxBitmap& bmpDisabled,
87 wxItemKind kind,
8a0681f9 88 wxObject *clientData,
a3399e6c
VZ
89 const wxString& shortHelp,
90 const wxString& longHelp);
8a0681f9 91 virtual wxToolBarToolBase *CreateTool(wxControl *control);
2bda0e17 92
8a0681f9
VZ
93 // should be called whenever the toolbar size changes
94 void UpdateSize();
7c0ea335 95
7509fa8c 96 // override WndProc mainly to process WM_SIZE
8a0681f9 97 virtual long MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
7c0ea335 98
7509fa8c
VZ
99 // handlers for various events
100 bool HandleSize(WXWPARAM wParam, WXLPARAM lParam);
101 bool HandlePaint(WXWPARAM wParam, WXLPARAM lParam);
102 void HandleMouseMove(WXWPARAM wParam, WXLPARAM lParam);
103
8a0681f9
VZ
104 // the big bitmap containing all bitmaps of the toolbar buttons
105 WXHBITMAP m_hBitmap;
106
107 // the total number of toolbar elements
108 size_t m_nButtons;
7c0ea335 109
a8945eef
MB
110 // the tool the cursor is in
111 wxToolBarToolBase *m_pInTool;
112
7c0ea335 113private:
8a0681f9 114 DECLARE_EVENT_TABLE()
7c0ea335 115 DECLARE_DYNAMIC_CLASS(wxToolBar)
2bda0e17
KB
116};
117
d427503c
VZ
118#endif // wxUSE_TOOLBAR
119
2bda0e17 120#endif
bbcdf8bc 121 // _WX_TBAR95_H_