// 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
// -------------------------------
+ virtual void SetWindowStyleFlag(long style);
+
virtual bool MSWCommand(WXUINT param, WXWORD id);
virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
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;
+
+ // returns true if the platform should explicitly apply a theme border
+ virtual bool CanApplyThemeBorder() const { return false; }
+
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);
virtual void DoSetToggle(wxToolBarToolBase *tool, bool toggle);
virtual wxToolBarToolBase *CreateTool(int id,
- const wxBitmap& bitmap1,
- const wxBitmap& bitmap2,
- bool toggle,
+ const wxString& label,
+ const wxBitmap& bmpNormal,
+ const wxBitmap& bmpDisabled,
+ wxItemKind kind,
wxObject *clientData,
- const wxString& shortHelpString,
- const wxString& longHelpString);
- virtual wxToolBarToolBase *CreateTool(wxControl *control);
+ 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);
+ bool HandlePaint(WXWPARAM wParam, WXLPARAM lParam);
+ void HandleMouseMove(WXWPARAM wParam, WXLPARAM lParam);
// should be called whenever the toolbar size changes
void UpdateSize();
- // override WndProc to process WM_SIZE
- virtual long MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
+ // 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_
+