]> git.saurik.com Git - wxWidgets.git/blob - include/wx/msw/tbarmsw.h
added wxUSE_IMAGE, wxUSE_XPM
[wxWidgets.git] / include / wx / msw / tbarmsw.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/msw/tbarmsw.h
3 // Purpose: wxToolBar for Win16
4 // Author: Julian Smart
5 // Modified by: 13.12.99 by VZ during toolbar classes reorganization
6 // Created: 01/02/97
7 // RCS-ID: $Id$
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #ifndef _WX_TBARMSW_H_
13 #define _WX_TBARMSW_H_
14
15 #ifdef __GNUG__
16 #pragma interface "tbarmsw.h"
17 #endif
18
19 #if wxUSE_TOOLBAR
20
21 #include "wx/tbarbase.h"
22
23 WXDLLEXPORT_DATA(extern const wxChar*) wxButtonBarNameStr;
24
25 class WXDLLEXPORT wxMemoryDC;
26
27 // ----------------------------------------------------------------------------
28 // wxToolBar for Win16
29 // ----------------------------------------------------------------------------
30
31 class WXDLLEXPORT wxToolBar : public wxToolBarBase
32 {
33 public:
34 // construction
35 wxToolBar() { Init(); }
36
37 wxToolBar(wxWindow *parent,
38 wxWindowID id,
39 const wxPoint& pos = wxDefaultPosition,
40 const wxSize& size = wxDefaultSize,
41 long style = wxNO_BORDER|wxTB_HORIZONTAL,
42 const wxString& name = wxButtonBarNameStr)
43 {
44 Init();
45
46 Create(parent, id, pos, size, style, name);
47 }
48
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,
64 wxCoord yPos = -1,
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
79 // Handle wxWindows events
80 void OnPaint(wxPaintEvent& event);
81 void OnMouseEvent(wxMouseEvent& event);
82
83 protected:
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,
93 const wxBitmap& bitmap1,
94 const wxBitmap& bitmap2,
95 bool toggle,
96 wxObject *clientData,
97 const wxString& shortHelpString,
98 const wxString& longHelpString);
99 virtual wxToolBarToolBase *CreateTool(wxControl *control);
100
101 void DoRedrawTool(wxToolBarToolBase *tool);
102
103 void DrawTool(wxDC& dc, wxToolBarToolBase *tool);
104 void DrawTool(wxDC& dc, wxToolBarToolBase *tool, int state);
105
106 void GetSysColors();
107 bool InitGlobalObjects();
108 void FreeGlobalObjects();
109 void PatB(WXHDC hdc,int x,int y,int dx,int dy, long rgb);
110 void CreateMask(WXHDC hDC, int xoffset, int yoffset, int dx, int dy);
111 void DrawBlankButton(WXHDC hdc, int x, int y, int dx, int dy, int state);
112 void DrawButton(WXHDC hdc, int x, int y, int dx, int dy,
113 wxToolBarToolBase *tool, int state);
114 WXHBITMAP CreateDitherBitmap();
115 bool CreateDitherBrush();
116 bool FreeDitherBrush();
117 WXHBITMAP CreateMappedBitmap(WXHINSTANCE hInstance, void *lpBitmapInfo);
118 WXHBITMAP CreateMappedBitmap(WXHINSTANCE hInstance, WXHBITMAP hBitmap);
119
120 int m_currentRowsOrColumns;
121 int m_pressedTool, m_currentTool;
122
123 wxCoord m_xPos, m_yPos;
124 wxCoord m_lastX, m_lastY;
125
126 WXHBRUSH m_hbrDither;
127 WXDWORD m_rgbFace;
128 WXDWORD m_rgbShadow;
129 WXDWORD m_rgbHilight;
130 WXDWORD m_rgbFrame;
131
132 //
133 // m_hdcMono is the DC that holds a mono bitmap, m_hbmMono
134 // that is used to create highlights
135 // of button faces.
136 // m_hbmDefault hold the default bitmap if there is one.
137 //
138 WXHDC m_hdcMono;
139 WXHBITMAP m_hbmMono;
140 WXHBITMAP m_hbmDefault;
141
142 private:
143 DECLARE_EVENT_TABLE()
144 DECLARE_DYNAMIC_CLASS(wxToolBar)
145 };
146
147 #endif // wxUSE_TOOLBAR
148
149 #endif
150 // _WX_TBARMSW_H_