1 | /////////////////////////////////////////////////////////////////////////////
|
---|
2 | // Name: wx/msw/tbarmsw.h
|
---|
3 | // Purpose: wxToolBar for older Windowses
|
---|
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: tbarmsw.h,v 1.21 2005/01/21 18:11:13 ABX Exp $
|
---|
8 | // Copyright: (c) Julian Smart
|
---|
9 | // Licence: wxWindows licence
|
---|
10 | /////////////////////////////////////////////////////////////////////////////
|
---|
11 |
|
---|
12 | #ifndef _WX_TBARMSW_H_
|
---|
13 | #define _WX_TBARMSW_H_
|
---|
14 |
|
---|
15 | #if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
|
---|
16 | #pragma interface "tbarmsw.h"
|
---|
17 | #endif
|
---|
18 |
|
---|
19 | #if wxUSE_TOOLBAR
|
---|
20 |
|
---|
21 | #include "wx/tbarbase.h"
|
---|
22 |
|
---|
23 | extern WXDLLEXPORT_DATA(const wxChar*) wxButtonBarNameStr;
|
---|
24 |
|
---|
25 | class WXDLLEXPORT wxMemoryDC;
|
---|
26 |
|
---|
27 | // ----------------------------------------------------------------------------
|
---|
28 | // wxToolBar for older Windowses
|
---|
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 = wxDefaultCoord,
|
---|
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 wxWidgets 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 wxString& label,
|
---|
94 | const wxBitmap& bmpNormal,
|
---|
95 | const wxBitmap& bmpDisabled,
|
---|
96 | wxItemKind kind,
|
---|
97 | wxObject *clientData,
|
---|
98 | const wxString& shortHelp,
|
---|
99 | const wxString& longHelp);
|
---|
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,
|
---|
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);
|
---|
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 |
|
---|
143 | private:
|
---|
144 | DECLARE_EVENT_TABLE()
|
---|
145 | DECLARE_DYNAMIC_CLASS(wxToolBar)
|
---|
146 | };
|
---|
147 |
|
---|
148 | #endif // wxUSE_TOOLBAR
|
---|
149 |
|
---|
150 | #endif
|
---|
151 | // _WX_TBARMSW_H_
|
---|