// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifndef _WX_TBAR95_H_
-#define _WX_TBAR95_H_
-
-#ifdef __GNUG__
- #pragma interface "tbar95.h"
-#endif
+#ifndef _WX_MSW_TBAR95_H_
+#define _WX_MSW_TBAR95_H_
#if wxUSE_TOOLBAR
#include "wx/dynarray.h"
+#include "wx/imaglist.h"
class WXDLLEXPORT wxToolBar : public wxToolBarBase
{
virtual void SetRows(int nRows);
+ virtual void SetToolNormalBitmap(int id, const wxBitmap& bitmap);
+ virtual void SetToolDisabledBitmap(int id, const wxBitmap& bitmap);
+
// implementation only from now on
// -------------------------------
void OnMouseEvent(wxMouseEvent& event);
void OnSysColourChanged(wxSysColourChangedEvent& event);
+ void OnEraseBackground(wxEraseEvent& event);
void SetFocus() {}
static WXHBITMAP MapBitmap(WXHBITMAP bitmap, int width, int height);
+ // override WndProc mainly to process WM_SIZE
+ virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
+
+ virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
+
protected:
// common part of all ctors
void Init();
+ // create the native toolbar control
+ bool MSWCreateToolbar(const wxPoint& pos, const wxSize& size);
+
+ // recreate the control completely
+ void Recreate();
+
// implement base class pure virtuals
virtual bool DoInsertTool(size_t pos, wxToolBarToolBase *tool);
virtual bool DoDeleteTool(size_t pos, wxToolBarToolBase *tool);
const wxString& longHelp);
virtual wxToolBarToolBase *CreateTool(wxControl *control);
- // should be called whenever the toolbar size changes
- void UpdateSize();
-
- // override WndProc mainly to process WM_SIZE
- virtual long MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
+ // return the appropriate size and flags for the toolbar control
+ virtual wxSize DoGetBestSize() const;
// handlers for various events
bool HandleSize(WXWPARAM wParam, WXLPARAM lParam);
bool HandlePaint(WXWPARAM wParam, WXLPARAM lParam);
void HandleMouseMove(WXWPARAM wParam, WXLPARAM lParam);
+ // should be called whenever the toolbar size changes
+ void UpdateSize();
+
+ // create m_disabledImgList (but doesn't fill it), set it to NULL if it is
+ // unneeded
+ void CreateDisabledImageList();
+
+ // get the Windows toolbar style of this control
+ long GetMSWToolbarStyle() const;
+
+
// the big bitmap containing all bitmaps of the toolbar buttons
WXHBITMAP m_hBitmap;
+ // the image list with disabled images, may be NULL if we use
+ // system-provided versions of them
+ wxImageList *m_disabledImgList;
+
// the total number of toolbar elements
size_t m_nButtons;
private:
DECLARE_EVENT_TABLE()
DECLARE_DYNAMIC_CLASS(wxToolBar)
+ DECLARE_NO_COPY_CLASS(wxToolBar)
};
#endif // wxUSE_TOOLBAR
-#endif
- // _WX_TBAR95_H_
+#endif // _WX_MSW_TBAR95_H_
+