- /*
- * Public interface
- */
- wxToolBarMSW(void);
-
-#if WXWIN_COMPATIBILITY > 0
- inline wxToolBarMSW(wxWindow *parent, int x, int y, int w, int h,
- long style = wxNO_BORDER, int orientation = wxVERTICAL, int RowsOrColumns = 2,
- const char *name = wxButtonBarNameStr)
- {
- Create(parent, -1, wxPoint(x, y), wxSize(w, h), style, orientation, RowsOrColumns, name);
- }
-#endif
- inline wxToolBarMSW(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
- long style = wxNO_BORDER, int orientation = wxVERTICAL,
- int RowsOrColumns = 2, const wxString& name = wxButtonBarNameStr)
- {
- Create(parent, id, pos, size, style, orientation, RowsOrColumns, name);
- }
- bool Create(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
- long style = wxNO_BORDER, int orientation = wxVERTICAL,
- int RowsOrColumns = 2, const wxString& name = wxButtonBarNameStr);
-
- ~wxToolBarMSW(void);
-
- // Handle wxWindows events
- void OnPaint(wxPaintEvent& event);
- void OnSize(wxSizeEvent& event);
- void OnMouseEvent(wxMouseEvent& event);
-
- // If pushedBitmap is NULL, a reversed version of bitmap is
- // created and used as the pushed/toggled image.
- // If toggle is TRUE, the button toggles between the two states.
- wxToolBarTool *AddTool(int toolIndex, const wxBitmap& bitmap, const wxBitmap& pushedBitmap = wxNullBitmap,
- bool toggle = FALSE, long xPos = -1, long yPos = -1, wxObject *clientData = NULL,
- const wxString& helpString1 = "", const wxString& helpString2 = "");
-
- void DrawTool(wxDC& dc, wxMemoryDC& memDc, wxToolBarTool *tool);
-
- // New members
- // Set default bitmap size
- virtual void SetDefaultSize(const wxSize& size);
- void EnableTool(int toolIndex, bool enable); // additional drawing on enabling
-
- // The button size is bigger than the bitmap size
- wxSize GetDefaultButtonSize(void) const;
- protected:
- void DrawTool(wxDC& dc, wxToolBarTool *tool, int state);
-
- void GetSysColors(void);
- bool InitGlobalObjects(void);
- void FreeGlobalObjects(void);
- void PatB(WXHDC hdc,int x,int y,int dx,int dy, long rgb);
- void CreateMask(WXHDC hDC, int xoffset, int yoffset, int dx, int dy);
- void DrawBlankButton(WXHDC hdc, int x, int y, int dx, int dy, int state);
- void DrawButton(WXHDC hdc, int x, int y, int dx, int dy, wxToolBarTool *tool, int state);
- WXHBITMAP CreateDitherBitmap();
- bool CreateDitherBrush(void);
- bool FreeDitherBrush(void);
- WXHBITMAP CreateMappedBitmap(WXHINSTANCE hInstance, void *lpBitmapInfo);
- WXHBITMAP CreateMappedBitmap(WXHINSTANCE hInstance, WXHBITMAP hBitmap);
-
- protected:
-
- WXHBRUSH m_hbrDither;
- WXDWORD m_rgbFace;
- WXDWORD m_rgbShadow;
- WXDWORD m_rgbHilight;
- WXDWORD m_rgbFrame;
-
-//
-// m_hdcMono is the DC that holds a mono bitmap, m_hbmMono
-// that is used to create highlights
-// of button faces.
-// m_hbmDefault hold the default bitmap if there is one.
-//
- WXHDC m_hdcMono;
- WXHBITMAP m_hbmMono;
- WXHBITMAP m_hbmDefault;
-
-DECLARE_EVENT_TABLE()
+ // construction
+ wxToolBar() { Init(); }
+
+ wxToolBar(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxNO_BORDER|wxTB_HORIZONTAL,
+ const wxString& name = wxButtonBarNameStr)
+ {
+ Init();
+
+ Create(parent, id, pos, size, style, name);
+ }
+
+ bool Create(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxNO_BORDER|wxTB_HORIZONTAL,
+ const wxString& name = wxButtonBarNameStr);
+
+ ~wxToolBar();
+
+ // implement/override base class (pure) virtuals
+ virtual wxToolBarToolBase *AddTool(int id,
+ const wxBitmap& bitmap,
+ const wxBitmap& pushedBitmap,
+ bool toggle,
+ wxCoord xPos,
+ wxCoord yPos = -1,
+ wxObject *clientData = NULL,
+ const wxString& helpString1 = wxEmptyString,
+ const wxString& helpString2 = wxEmptyString);
+
+ virtual wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y) const;
+
+ virtual void SetToolBitmapSize(const wxSize& size);
+ virtual wxSize GetToolSize() const;
+
+ virtual bool Realize();
+
+ // implementation only from now on
+ // -------------------------------
+
+ // Handle wxWindows events
+ void OnPaint(wxPaintEvent& event);
+ void OnMouseEvent(wxMouseEvent& event);
+
+protected:
+ void Init();
+
+ virtual bool DoInsertTool(size_t pos, wxToolBarToolBase *tool);
+ virtual bool DoDeleteTool(size_t pos, wxToolBarToolBase *tool);
+ virtual void DoEnableTool(wxToolBarToolBase *tool, bool enable);
+ virtual void DoToggleTool(wxToolBarToolBase *tool, bool toggle);
+ virtual void DoSetToggle(wxToolBarToolBase *tool, bool toggle);
+
+ virtual wxToolBarToolBase *CreateTool(int id,
+ const wxString& label,
+ const wxBitmap& bmpNormal,
+ const wxBitmap& bmpDisabled,
+ wxItemKind kind,
+ wxObject *clientData,
+ const wxString& shortHelp,
+ const wxString& longHelp);
+ virtual wxToolBarToolBase *CreateTool(wxControl *control);
+
+ void DoRedrawTool(wxToolBarToolBase *tool);
+
+ void DrawTool(wxDC& dc, wxToolBarToolBase *tool);
+ void DrawTool(wxDC& dc, wxToolBarToolBase *tool, int state);
+
+ void GetSysColors();
+ bool InitGlobalObjects();
+ void FreeGlobalObjects();
+ void PatB(WXHDC hdc,int x,int y,int dx,int dy, long rgb);
+ void CreateMask(WXHDC hDC, int xoffset, int yoffset, int dx, int dy);
+ void DrawBlankButton(WXHDC hdc, int x, int y, int dx, int dy, int state);
+ void DrawButton(WXHDC hdc, int x, int y, int dx, int dy,
+ wxToolBarToolBase *tool, int state);
+ WXHBITMAP CreateDitherBitmap();
+ bool CreateDitherBrush();
+ bool FreeDitherBrush();
+ WXHBITMAP CreateMappedBitmap(WXHINSTANCE hInstance, void *lpBitmapInfo);
+ WXHBITMAP CreateMappedBitmap(WXHINSTANCE hInstance, WXHBITMAP hBitmap);
+
+ int m_currentRowsOrColumns;
+ int m_pressedTool, m_currentTool;
+
+ wxCoord m_xPos, m_yPos;
+ wxCoord m_lastX, m_lastY;
+
+ WXHBRUSH m_hbrDither;
+ WXDWORD m_rgbFace;
+ WXDWORD m_rgbShadow;
+ WXDWORD m_rgbHilight;
+ WXDWORD m_rgbFrame;
+
+ //
+ // m_hdcMono is the DC that holds a mono bitmap, m_hbmMono
+ // that is used to create highlights
+ // of button faces.
+ // m_hbmDefault hold the default bitmap if there is one.
+ //
+ WXHDC m_hdcMono;
+ WXHBITMAP m_hbmMono;
+ WXHBITMAP m_hbmDefault;
+
+private:
+ DECLARE_EVENT_TABLE()
+ DECLARE_DYNAMIC_CLASS(wxToolBar)