]>
git.saurik.com Git - wxWidgets.git/blob - 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
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
12 #ifndef _WX_TBARMSW_H_
13 #define _WX_TBARMSW_H_
15 #if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
16 #pragma interface "tbarmsw.h"
21 #include "wx/tbarbase.h"
23 WXDLLEXPORT_DATA(extern const wxChar
*) wxButtonBarNameStr
;
25 class WXDLLEXPORT wxMemoryDC
;
27 // ----------------------------------------------------------------------------
28 // wxToolBar for Win16
29 // ----------------------------------------------------------------------------
31 class WXDLLEXPORT wxToolBar
: public wxToolBarBase
35 wxToolBar() { Init(); }
37 wxToolBar(wxWindow
*parent
,
39 const wxPoint
& pos
= wxDefaultPosition
,
40 const wxSize
& size
= wxDefaultSize
,
41 long style
= wxNO_BORDER
|wxTB_HORIZONTAL
,
42 const wxString
& name
= wxButtonBarNameStr
)
46 Create(parent
, id
, pos
, size
, style
, name
);
49 bool Create(wxWindow
*parent
,
51 const wxPoint
& pos
= wxDefaultPosition
,
52 const wxSize
& size
= wxDefaultSize
,
53 long style
= wxNO_BORDER
|wxTB_HORIZONTAL
,
54 const wxString
& name
= wxButtonBarNameStr
);
58 // implement/override base class (pure) virtuals
59 virtual wxToolBarToolBase
*AddTool(int id
,
60 const wxBitmap
& bitmap
,
61 const wxBitmap
& pushedBitmap
,
65 wxObject
*clientData
= NULL
,
66 const wxString
& helpString1
= wxEmptyString
,
67 const wxString
& helpString2
= wxEmptyString
);
69 virtual wxToolBarToolBase
*FindToolForPosition(wxCoord x
, wxCoord y
) const;
71 virtual void SetToolBitmapSize(const wxSize
& size
);
72 virtual wxSize
GetToolSize() const;
74 virtual bool Realize();
76 // implementation only from now on
77 // -------------------------------
79 // Handle wxWindows events
80 void OnPaint(wxPaintEvent
& event
);
81 void OnMouseEvent(wxMouseEvent
& event
);
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
);
92 virtual wxToolBarToolBase
*CreateTool(int id
,
93 const wxString
& label
,
94 const wxBitmap
& bmpNormal
,
95 const wxBitmap
& bmpDisabled
,
98 const wxString
& shortHelp
,
99 const wxString
& longHelp
);
100 virtual wxToolBarToolBase
*CreateTool(wxControl
*control
);
102 void DoRedrawTool(wxToolBarToolBase
*tool
);
104 void DrawTool(wxDC
& dc
, wxToolBarToolBase
*tool
);
105 void DrawTool(wxDC
& dc
, wxToolBarToolBase
*tool
, int state
);
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
,
114 wxToolBarToolBase
*tool
, int state
);
115 WXHBITMAP
CreateDitherBitmap();
116 bool CreateDitherBrush();
117 bool FreeDitherBrush();
118 WXHBITMAP
CreateMappedBitmap(WXHINSTANCE hInstance
, void *lpBitmapInfo
);
119 WXHBITMAP
CreateMappedBitmap(WXHINSTANCE hInstance
, WXHBITMAP hBitmap
);
121 int m_currentRowsOrColumns
;
122 int m_pressedTool
, m_currentTool
;
124 wxCoord m_xPos
, m_yPos
;
125 wxCoord m_lastX
, m_lastY
;
127 WXHBRUSH m_hbrDither
;
130 WXDWORD m_rgbHilight
;
134 // m_hdcMono is the DC that holds a mono bitmap, m_hbmMono
135 // that is used to create highlights
137 // m_hbmDefault hold the default bitmap if there is one.
141 WXHBITMAP m_hbmDefault
;
144 DECLARE_EVENT_TABLE()
145 DECLARE_DYNAMIC_CLASS(wxToolBar
)
148 #endif // wxUSE_TOOLBAR