]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/tbar95.h
MSW fixes; added wxUSE_XPM to wxUniv's setup.h so now widgets sample works
[wxWidgets.git] / include / wx / msw / tbar95.h
index d137c39693fc60ec808c15240e7601802d9cb906..50bcf72eb2f336df71e972e536eb2837913cead1 100644 (file)
@@ -1,6 +1,6 @@
 /////////////////////////////////////////////////////////////////////////////
 // Name:        wx/msw/tbar95.h
-// Purpose:     wxToolBar95 (Windows 95 toolbar) class
+// Purpose:     wxToolBar (Windows 95 toolbar) class
 // Author:      Julian Smart
 // Modified by:
 // Created:     01/02/97
 #define _WX_TBAR95_H_
 
 #ifdef __GNUG__
-#pragma interface "tbar95.h"
+    #pragma interface "tbar95.h"
 #endif
 
 #if wxUSE_TOOLBAR
 
-#include "wx/tbarbase.h"
+#include "wx/dynarray.h"
 
-class WXDLLEXPORT wxToolBar95 : public wxToolBarBase
+class WXDLLEXPORT wxToolBar : public wxToolBarBase
 {
 public:
-    wxToolBar95() { Init(); }
+    // ctors and dtor
+    wxToolBar() { Init(); }
 
-    wxToolBar95(wxWindow *parent,
+    wxToolBar(wxWindow *parent,
                 wxWindowID id,
                 const wxPoint& pos = wxDefaultPosition,
                 const wxSize& size = wxDefaultSize,
@@ -37,8 +38,6 @@ public:
         Create(parent, id, pos, size, style, name);
     }
 
-    ~wxToolBar95();
-
     bool Create(wxWindow *parent,
                 wxWindowID id,
                 const wxPoint& pos = wxDefaultPosition,
@@ -46,35 +45,21 @@ public:
                 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 ~wxToolBar();
 
-    virtual void ClearTools();
+    // override/implement base class virtuals
+    virtual wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y) const;
 
-    virtual bool Realize() { return CreateTools(); };
-
-    virtual void EnableTool(int toolIndex, bool enable);
-    virtual void ToggleTool(int toolIndex, bool toggle);
+    virtual bool Realize();
 
     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
+    // implementation only from now on
+    // -------------------------------
+
     virtual bool MSWCommand(WXUINT param, WXWORD id);
     virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
 
@@ -85,28 +70,45 @@ protected:
     // common part of all ctors
     void Init();
 
-    WXHBITMAP m_hBitmap;
+    // implement base class pure virtuals
+    virtual bool DoInsertTool(size_t pos, wxToolBarToolBase *tool);
+    virtual bool DoDeleteTool(size_t pos, wxToolBarToolBase *tool);
 
-    DECLARE_EVENT_TABLE()
-};
+    virtual void DoEnableTool(wxToolBarToolBase *tool, bool enable);
+    virtual void DoToggleTool(wxToolBarToolBase *tool, bool toggle);
+    virtual void DoSetToggle(wxToolBarToolBase *tool, bool toggle);
 
-class WXDLLEXPORT wxToolBar : public wxToolBar95
-{
-public:
-    wxToolBar() { }
+    virtual wxToolBarToolBase *CreateTool(int id,
+                                          const wxBitmap& bitmap1,
+                                          const wxBitmap& bitmap2,
+                                          bool toggle,
+                                          wxObject *clientData,
+                                          const wxString& shortHelpString,
+                                          const wxString& longHelpString);
+    virtual wxToolBarToolBase *CreateTool(wxControl *control);
 
-    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)
-    {
-    }
+    // 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);
+
+    // the big bitmap containing all bitmaps of the toolbar buttons
+    WXHBITMAP m_hBitmap;
+
+    // the total number of toolbar elements
+    size_t m_nButtons;
 
 private:
+    DECLARE_EVENT_TABLE()
     DECLARE_DYNAMIC_CLASS(wxToolBar)
+
+    static bool sm_coloursInit; // Have we initialized the colour table yet?
+    static long sm_stdColours[6]; // The RGB values of the standard 6 colours
+
+public:
+    void MapBitmap(WXHBITMAP bitmap, int width, int height);
+
 };
 
 #endif // wxUSE_TOOLBAR