X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b93051ef464981ad580518dc88a985f28db1e0dd..66c2bf7b1d9326fb650acfaae22ec50528cfbf7c:/include/wx/msw/toolbar.h diff --git a/include/wx/msw/toolbar.h b/include/wx/msw/toolbar.h index eadf5217c4..0c6b7e9c9a 100644 --- a/include/wx/msw/toolbar.h +++ b/include/wx/msw/toolbar.h @@ -1,10 +1,9 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/tbar95.h +// Name: wx/msw/toolbar.h // Purpose: wxToolBar (Windows 95 toolbar) class // Author: Julian Smart // Modified by: // Created: 01/02/97 -// RCS-ID: $Id$ // Copyright: (c) Julian Smart // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -27,7 +26,7 @@ public: wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxNO_BORDER | wxTB_HORIZONTAL, + long style = wxTB_HORIZONTAL, const wxString& name = wxToolBarNameStr) { Init(); @@ -39,7 +38,7 @@ public: wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxNO_BORDER | wxTB_HORIZONTAL, + long style = wxTB_HORIZONTAL, const wxString& name = wxToolBarNameStr); virtual ~wxToolBar(); @@ -67,6 +66,7 @@ public: void OnMouseEvent(wxMouseEvent& event); void OnSysColourChanged(wxSysColourChangedEvent& event); + void OnEraseBackground(wxEraseEvent& event); void SetFocus() {} @@ -80,6 +80,22 @@ public: // returns true if the platform should explicitly apply a theme border virtual bool CanApplyThemeBorder() const { return false; } +#ifdef wxHAS_MSW_BACKGROUND_ERASE_HOOK + virtual bool MSWEraseBgHook(WXHDC hDC); + virtual WXHBRUSH MSWGetBgBrushForChild(WXHDC hDC, wxWindowMSW *child); +#endif // wxHAS_MSW_BACKGROUND_ERASE_HOOK + + virtual wxToolBarToolBase *CreateTool(int id, + const wxString& label, + const wxBitmap& bmpNormal, + const wxBitmap& bmpDisabled = wxNullBitmap, + wxItemKind kind = wxITEM_NORMAL, + wxObject *clientData = NULL, + const wxString& shortHelp = wxEmptyString, + const wxString& longHelp = wxEmptyString); + + virtual wxToolBarToolBase *CreateTool(wxControl *control, + const wxString& label); protected: // common part of all ctors void Init(); @@ -98,26 +114,14 @@ protected: 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, - const wxString& label); - // return the appropriate size and flags for the toolbar control virtual wxSize DoGetBestSize() const; // handlers for various events bool HandleSize(WXWPARAM wParam, WXLPARAM lParam); -#ifndef __WXWINCE__ +#ifdef wxHAS_MSW_BACKGROUND_ERASE_HOOK bool HandlePaint(WXWPARAM wParam, WXLPARAM lParam); -#endif // __WXWINCE__ +#endif // wxHAS_MSW_BACKGROUND_ERASE_HOOK void HandleMouseMove(WXWPARAM wParam, WXLPARAM lParam); // should be called whenever the toolbar size changes @@ -156,11 +160,15 @@ private: // have void UpdateStretchableSpacersSize(); -#ifndef __WXWINCE__ - // redraw the background of the given part of the window to erase separator - // drawn in it - void MSWEraseRect(wxDC& dc, const wxRect& rectItem); -#endif // !__WXWINCE__ +#ifdef wxHAS_MSW_BACKGROUND_ERASE_HOOK + // do erase the toolbar background, always do it for the entire control as + // the caller sets the clipping region correctly to exclude parts which + // should not be erased + void MSWDoEraseBackground(WXHDC hDC); + + // return the brush to use for erasing the toolbar background + WXHBRUSH MSWGetToolbarBgBrush(); +#endif // wxHAS_MSW_BACKGROUND_ERASE_HOOK DECLARE_EVENT_TABLE() DECLARE_DYNAMIC_CLASS(wxToolBar)