/////////////////////////////////////////////////////////////////////////////
-// Name: tbar95.h
+// Name: wx/msw/tbar95.h
// Purpose: wxToolBar95 (Windows 95 toolbar) class
// Author: Julian Smart
// Modified by:
// Created: 01/02/97
// RCS-ID: $Id$
-// Copyright: (c) Julian Smart and Markus Holzem
-// Licence: wxWindows license
+// Copyright: (c) Julian Smart
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifndef __TBAR95H__
-#define __TBAR95H__
+#ifndef _WX_TBAR95_H_
+#define _WX_TBAR95_H_
#ifdef __GNUG__
#pragma interface "tbar95.h"
#endif
-#if USE_BUTTONBAR && USE_TOOLBAR
-#include "wx/tbarbase.h"
+#if wxUSE_TOOLBAR
+
+#include "wx/dynarray.h"
-WXDLLEXPORT_DATA(extern const char*) wxToolBarNameStr;
+#include "wx/tbarbase.h"
-class WXDLLEXPORT wxToolBar95: public wxToolBarBase
+class WXDLLEXPORT wxToolBar95 : public wxToolBarBase
{
- DECLARE_DYNAMIC_CLASS(wxToolBar95)
- public:
- /*
- * Public interface
- */
-
- wxToolBar95(void);
-
- inline wxToolBar95(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
- long style = wxNO_BORDER|wxTB_HORIZONTAL,
- const wxString& name = wxToolBarNameStr)
- {
- Create(parent, id, pos, size, style, name);
- }
- ~wxToolBar95(void);
-
- bool Create(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
- long style = wxNO_BORDER|wxTB_HORIZONTAL,
- const wxString& name = wxToolBarNameStr);
-
- // Call default behaviour
- void OnPaint(wxPaintEvent& event) { Default() ; }
- void OnSize(wxSizeEvent& event) { Default() ; }
- void OnMouseEvent(wxMouseEvent& event) { Default() ; }
- void OnKillFocus(wxFocusEvent& event) { Default() ; }
-
- // Handle wxToolBar95 events
-
- // If pushedBitmap is NULL, a reversed version of bitmap is
- // created and used as the pushed/toggled image.
- // If toggle is TRUE, the button toggles between the two states.
- wxToolBarTool *AddTool(int toolIndex, const wxBitmap& bitmap, const wxBitmap& pushedBitmap = wxNullBitmap,
- bool toggle = FALSE, long xPos = -1, long yPos = -1, wxObject *clientData = NULL,
- const wxString& helpString1 = "", const wxString& helpString2 = "");
-
- // Set default bitmap size
- void SetToolBitmapSize(const wxSize& size);
- void EnableTool(int toolIndex, bool enable); // additional drawing on enabling
- void ToggleTool(int toolIndex, bool toggle); // toggle is TRUE if toggled on
- void ClearTools(void);
-
- // The button size is bigger than the bitmap size
- wxSize GetToolSize(void) const;
-
- wxSize GetMaxSize(void) const;
- void GetSize(int *w, int *y) const;
-
- // Add all the buttons: required for Win95.
- virtual bool CreateTools(void);
- virtual void SetRows(int nRows);
- virtual void Layout(void) {}
-
- // The post-tool-addition call
- bool Realize() { return CreateTools(); };
-
- // IMPLEMENTATION
- bool MSWCommand(WXUINT param, WXWORD id);
- bool MSWNotify(WXWPARAM wParam, WXLPARAM lParam);
-
- // Responds to colour changes
- void OnSysColourChanged(wxSysColourChangedEvent& event);
+public:
+ wxToolBar95() { Init(); }
+
+ wxToolBar95(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxNO_BORDER | wxTB_HORIZONTAL,
+ const wxString& name = wxToolBarNameStr)
+ {
+ Init();
+
+ Create(parent, id, pos, size, style, name);
+ }
+
+ ~wxToolBar95();
+
+ bool Create(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxNO_BORDER | wxTB_HORIZONTAL,
+ const wxString& name = wxToolBarNameStr);
+
+ // override base class virtuals
+
+ virtual wxToolBarTool *AddTool(int toolIndex,
+ const wxBitmap& bitmap,
+ const wxBitmap& pushedBitmap = wxNullBitmap,
+ bool toggle = FALSE,
+ long xPos = -1, long yPos = -1,
+ wxObject *clientData = NULL,
+ const wxString& helpString1 = wxEmptyString,
+ const wxString& helpString2 = wxEmptyString);
+ virtual bool AddControl(wxControl *control);
+
+ virtual bool DeleteTool(int toolIndex);
+ virtual void ClearTools();
+
+ virtual bool Realize() { return CreateTools(); };
+
+ virtual void EnableTool(int toolIndex, bool enable);
+ virtual void ToggleTool(int toolIndex, bool toggle);
+
+ virtual void SetToolBitmapSize(const wxSize& size);
+ virtual wxSize GetToolSize() const;
+ virtual wxSize GetMaxSize() const;
+
+ virtual bool GetToolState(int toolIndex) const;
+
+ virtual bool CreateTools();
+ virtual void SetRows(int nRows);
+
+ // IMPLEMENTATION
+ virtual bool MSWCommand(WXUINT param, WXWORD id);
+ virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
+
+ void OnMouseEvent(wxMouseEvent& event);
+ void OnSysColourChanged(wxSysColourChangedEvent& event);
protected:
- WXHBITMAP m_hBitmap;
+ // common part of all ctors
+ void Init();
+
+ // the array storing the id for each index
+ wxArrayInt m_ids;
-DECLARE_EVENT_TABLE()
+ // get index from id (returns wxNOT_FOUND if no such button)
+ int GetIndexFromId(int id) const;
+
+ // the big bitmap containing all bitmaps of the toolbar buttons
+ WXHBITMAP m_hBitmap;
+
+ DECLARE_EVENT_TABLE()
+};
+
+class WXDLLEXPORT wxToolBar : public wxToolBar95
+{
+public:
+ wxToolBar() { }
+
+ wxToolBar(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxNO_BORDER | wxTB_HORIZONTAL,
+ const wxString& name = wxToolBarNameStr)
+ : wxToolBar95(parent, id, pos, size, style, name)
+ {
+ }
+
+private:
+ DECLARE_DYNAMIC_CLASS(wxToolBar)
};
-#endif // USE_TOOL/BUTTONBAR
+#endif // wxUSE_TOOLBAR
+
#endif
- // __TBAR95H__
+ // _WX_TBAR95_H_