// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifndef _WX_TBAR95_H_
-#define _WX_TBAR95_H_
+#ifndef _WX_MSW_TBAR95_H_
+#define _WX_MSW_TBAR95_H_
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma interface "tbar95.h"
#endif
#if wxUSE_TOOLBAR
#include "wx/dynarray.h"
+#include "wx/imaglist.h"
class WXDLLEXPORT wxToolBar : public wxToolBarBase
{
void OnMouseEvent(wxMouseEvent& event);
void OnSysColourChanged(wxSysColourChangedEvent& event);
+ void OnEraseBackground(wxEraseEvent& event);
+
+ void SetFocus() {}
static WXHBITMAP MapBitmap(WXHBITMAP bitmap, int width, int height);
// 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);
+ virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
+
+ // return the appropriate size and flags for the toolbar control
+ virtual wxSize DoGetBestSize() const;
+ virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) 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();
+
+
// 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_
+