]> git.saurik.com Git - wxWidgets.git/blame - include/wx/msw/tbarmsw.h
Fix for MinGW macros not available due to include order (http://www.solidsteel.nl...
[wxWidgets.git] / include / wx / msw / tbarmsw.h
CommitLineData
2bda0e17 1/////////////////////////////////////////////////////////////////////////////
8a0681f9 2// Name: wx/msw/tbarmsw.h
3a5bcc4d 3// Purpose: wxToolBar for older Windowses
2bda0e17 4// Author: Julian Smart
8a0681f9 5// Modified by: 13.12.99 by VZ during toolbar classes reorganization
2bda0e17
KB
6// Created: 01/02/97
7// RCS-ID: $Id$
bbcdf8bc 8// Copyright: (c) Julian Smart
65571936 9// Licence: wxWindows licence
2bda0e17
KB
10/////////////////////////////////////////////////////////////////////////////
11
bbcdf8bc
JS
12#ifndef _WX_TBARMSW_H_
13#define _WX_TBARMSW_H_
2bda0e17 14
12028905 15#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
2bda0e17
KB
16#pragma interface "tbarmsw.h"
17#endif
18
8f177c8e 19#if wxUSE_TOOLBAR
d1c7e624 20
2bda0e17
KB
21#include "wx/tbarbase.h"
22
ef359b43 23extern WXDLLEXPORT_DATA(const wxChar*) wxButtonBarNameStr;
2bda0e17 24
81d66cf3
JS
25class WXDLLEXPORT wxMemoryDC;
26
8a0681f9 27// ----------------------------------------------------------------------------
3a5bcc4d 28// wxToolBar for older Windowses
8a0681f9 29// ----------------------------------------------------------------------------
2bda0e17 30
8a0681f9 31class WXDLLEXPORT wxToolBar : public wxToolBarBase
2bda0e17 32{
2bda0e17 33public:
8a0681f9
VZ
34 // construction
35 wxToolBar() { Init(); }
7c0ea335
VZ
36
37 wxToolBar(wxWindow *parent,
38 wxWindowID id,
39 const wxPoint& pos = wxDefaultPosition,
40 const wxSize& size = wxDefaultSize,
8a0681f9
VZ
41 long style = wxNO_BORDER|wxTB_HORIZONTAL,
42 const wxString& name = wxButtonBarNameStr)
7c0ea335 43 {
8a0681f9
VZ
44 Init();
45
46 Create(parent, id, pos, size, style, name);
7c0ea335
VZ
47 }
48
8a0681f9
VZ
49 bool Create(wxWindow *parent,
50 wxWindowID id,
51 const wxPoint& pos = wxDefaultPosition,
52 const wxSize& size = wxDefaultSize,
53 long style = wxNO_BORDER|wxTB_HORIZONTAL,
54 const wxString& name = wxButtonBarNameStr);
55
56 ~wxToolBar();
57
58 // implement/override base class (pure) virtuals
59 virtual wxToolBarToolBase *AddTool(int id,
60 const wxBitmap& bitmap,
61 const wxBitmap& pushedBitmap,
62 bool toggle,
63 wxCoord xPos,
bfbb0b4c 64 wxCoord yPos = wxDefaultCoord,
8a0681f9
VZ
65 wxObject *clientData = NULL,
66 const wxString& helpString1 = wxEmptyString,
67 const wxString& helpString2 = wxEmptyString);
68
69 virtual wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y) const;
70
71 virtual void SetToolBitmapSize(const wxSize& size);
72 virtual wxSize GetToolSize() const;
73
74 virtual bool Realize();
75
76 // implementation only from now on
77 // -------------------------------
78
77ffb593 79 // Handle wxWidgets events
8a0681f9
VZ
80 void OnPaint(wxPaintEvent& event);
81 void OnMouseEvent(wxMouseEvent& event);
82
83protected:
84 void Init();
85
86 virtual bool DoInsertTool(size_t pos, wxToolBarToolBase *tool);
87 virtual bool DoDeleteTool(size_t pos, wxToolBarToolBase *tool);
88 virtual void DoEnableTool(wxToolBarToolBase *tool, bool enable);
89 virtual void DoToggleTool(wxToolBarToolBase *tool, bool toggle);
90 virtual void DoSetToggle(wxToolBarToolBase *tool, bool toggle);
91
92 virtual wxToolBarToolBase *CreateTool(int id,
a3399e6c
VZ
93 const wxString& label,
94 const wxBitmap& bmpNormal,
95 const wxBitmap& bmpDisabled,
96 wxItemKind kind,
8a0681f9 97 wxObject *clientData,
a3399e6c
VZ
98 const wxString& shortHelp,
99 const wxString& longHelp);
8a0681f9
VZ
100 virtual wxToolBarToolBase *CreateTool(wxControl *control);
101
102 void DoRedrawTool(wxToolBarToolBase *tool);
103
104 void DrawTool(wxDC& dc, wxToolBarToolBase *tool);
105 void DrawTool(wxDC& dc, wxToolBarToolBase *tool, int state);
106
107 void GetSysColors();
108 bool InitGlobalObjects();
109 void FreeGlobalObjects();
110 void PatB(WXHDC hdc,int x,int y,int dx,int dy, long rgb);
111 void CreateMask(WXHDC hDC, int xoffset, int yoffset, int dx, int dy);
112 void DrawBlankButton(WXHDC hdc, int x, int y, int dx, int dy, int state);
113 void DrawButton(WXHDC hdc, int x, int y, int dx, int dy,
1dbe8708 114 wxToolBarToolBase *tool, int state);
8a0681f9
VZ
115 WXHBITMAP CreateDitherBitmap();
116 bool CreateDitherBrush();
117 bool FreeDitherBrush();
118 WXHBITMAP CreateMappedBitmap(WXHINSTANCE hInstance, void *lpBitmapInfo);
119 WXHBITMAP CreateMappedBitmap(WXHINSTANCE hInstance, WXHBITMAP hBitmap);
120
121 int m_currentRowsOrColumns;
122 int m_pressedTool, m_currentTool;
123
124 wxCoord m_xPos, m_yPos;
125 wxCoord m_lastX, m_lastY;
126
127 WXHBRUSH m_hbrDither;
128 WXDWORD m_rgbFace;
129 WXDWORD m_rgbShadow;
130 WXDWORD m_rgbHilight;
131 WXDWORD m_rgbFrame;
132
133 //
134 // m_hdcMono is the DC that holds a mono bitmap, m_hbmMono
135 // that is used to create highlights
136 // of button faces.
137 // m_hbmDefault hold the default bitmap if there is one.
138 //
139 WXHDC m_hdcMono;
140 WXHBITMAP m_hbmMono;
141 WXHBITMAP m_hbmDefault;
142
7c0ea335 143private:
8a0681f9 144 DECLARE_EVENT_TABLE()
7c0ea335
VZ
145 DECLARE_DYNAMIC_CLASS(wxToolBar)
146};
147
8f177c8e 148#endif // wxUSE_TOOLBAR
7c0ea335 149
2bda0e17 150#endif
bbcdf8bc 151 // _WX_TBARMSW_H_