/////////////////////////////////////////////////////////////////////////////
-// Name: wx/msw/tbar95.h
+// Name: wx/msw/toolbar.h
// Purpose: wxToolBar (Windows 95 toolbar) class
// Author: Julian Smart
// Modified by:
void OnMouseEvent(wxMouseEvent& event);
void OnSysColourChanged(wxSysColourChangedEvent& event);
- void OnEraseBackground(wxEraseEvent& event);
void SetFocus() {}
// 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
+
protected:
// common part of all ctors
void Init();
// create the native toolbar control
bool MSWCreateToolbar(const wxPoint& pos, const wxSize& size);
- // just a wrapper for TB_SETBITMAPSIZE
- void MSWSetBitmapSize(const wxSize& size);
-
// recreate the control completely
void Recreate();
// 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
// the total number of toolbar elements
size_t m_nButtons;
+ // the sum of the sizes of the fixed items (i.e. excluding stretchable
+ // spaces) in the toolbar direction
+ int m_totalFixedSize;
+
// the tool the cursor is in
wxToolBarToolBase *m_pInTool;
// makes sure tool bitmap size is sufficient for all tools
void AdjustToolBitmapSize();
+ // update the sizes of stretchable spacers to consume all extra space we
+ // have
+ void UpdateStretchableSpacersSize();
+
+#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)
- DECLARE_NO_COPY_CLASS(wxToolBar)
+ wxDECLARE_NO_COPY_CLASS(wxToolBar);
};
#endif // wxUSE_TOOLBAR