]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/tbarbase.h
Applied [ 520664 ] filedlg patch
[wxWidgets.git] / include / wx / tbarbase.h
index aa19f52861e9ab70b892c69f421d8e49587ead7c..469c4f36a1de3300bec6cabc387e5ee57d29eb1a 100644 (file)
 
 #include "wx/defs.h"
 
+#if wxUSE_TOOLBAR
+
 #include "wx/bitmap.h"
 #include "wx/list.h"
 #include "wx/control.h"
 
 class WXDLLEXPORT wxToolBarBase;
 class WXDLLEXPORT wxToolBarToolBase;
+class WXDLLEXPORT wxImage;
 
 // ----------------------------------------------------------------------------
 // constants
@@ -118,9 +121,9 @@ public:
     wxToolBarBase *GetToolBar() const { return m_tbar; }
 
     // style
-    int IsButton() const { return m_toolStyle == wxTOOL_STYLE_BUTTON; }
-    int IsControl() const { return m_toolStyle == wxTOOL_STYLE_CONTROL; }
-    int IsSeparator() const { return m_toolStyle == wxTOOL_STYLE_SEPARATOR; }
+    bool IsButton() const { return m_toolStyle == wxTOOL_STYLE_BUTTON; }
+    bool IsControl() const { return m_toolStyle == wxTOOL_STYLE_CONTROL; }
+    bool IsSeparator() const { return m_toolStyle == wxTOOL_STYLE_SEPARATOR; }
     int GetStyle() const { return m_toolStyle; }
 
     // state
@@ -129,11 +132,13 @@ public:
     bool CanBeToggled() const { return m_isToggle; }
 
     // attributes
-    const wxBitmap& GetBitmap1() const { return m_bitmap1; }
-    const wxBitmap& GetBitmap2() const { return m_bitmap2; }
+    const wxBitmap& GetNormalBitmap() const { return m_bitmap1; }
+    const wxBitmap& GetDisabledBitmap() const { return m_bitmap2; }
 
     const wxBitmap& GetBitmap() const
-        { return IsToggled() ? m_bitmap2 : m_bitmap1; }
+        { return IsEnabled() ? GetNormalBitmap() : GetDisabledBitmap(); }
+
+    wxString GetLabel() const { return m_label; }
 
     wxString GetShortHelp() const { return m_shortHelpString; }
     wxString GetLongHelp() const { return m_longHelpString; }
@@ -159,8 +164,10 @@ public:
 
     void Toggle() { Toggle(!IsToggled()); }
 
-    void SetBitmap1(const wxBitmap& bmp) { m_bitmap1 = bmp; }
-    void SetBitmap2(const wxBitmap& bmp) { m_bitmap2 = bmp; }
+    void SetNormalBitmap(const wxBitmap& bmp) { m_bitmap1 = bmp; }
+    void SetDisabledBitmap(const wxBitmap& bmp) { m_bitmap2 = bmp; }
+
+    void SetLabel(const wxString& label) { m_label = label; }
 
     void SetClientData(wxObject *clientData)
     {
@@ -178,6 +185,15 @@ public:
     virtual void Detach() { m_tbar = (wxToolBarBase *)NULL; }
     virtual void Attach(wxToolBarBase *tbar) { m_tbar = tbar; }
 
+    // compatibility only, don't use
+#if WXWIN_COMPATIBILITY_2_2
+    const wxBitmap& GetBitmap1() const { return GetNormalBitmap(); }
+    const wxBitmap& GetBitmap2() const { return GetDisabledBitmap(); }
+
+    void SetBitmap1(const wxBitmap& bmp) { SetNormalBitmap(bmp); }
+    void SetBitmap2(const wxBitmap& bmp) { SetDisabledBitmap(bmp); }
+#endif // WXWIN_COMPATIBILITY_2_2
+
 protected:
     wxToolBarBase *m_tbar;  // the toolbar to which we belong (may be NULL)
 
@@ -196,10 +212,13 @@ protected:
     bool m_isToggle;
     bool m_enabled;
 
-    // normal and toggles bitmaps
+    // normal and disabled bitmaps
     wxBitmap m_bitmap1;
     wxBitmap m_bitmap2;
 
+    // the button label
+    wxString m_label;
+
     // short and long help strings
     wxString m_shortHelpString;
     wxString m_longHelpString;
@@ -236,7 +255,7 @@ public:
     // between the two states.
     wxToolBarToolBase *AddTool(int id,
                                const wxBitmap& bitmap,
-                               const wxBitmap& pushedBitmap = wxNullBitmap,
+                               const wxBitmap& pushedBitmap,
                                bool toggle = FALSE,
                                wxObject *clientData = NULL,
                                const wxString& shortHelpString = wxEmptyString,
@@ -335,10 +354,13 @@ public:
     virtual void SetToolSeparation(int separation)
         { m_toolSeparation = separation; }
 
-    virtual wxSize GetToolMargins() { return wxSize(m_xMargin, m_yMargin); }
+    virtual wxSize GetToolMargins() { return GetMargins(); }
     virtual int GetToolPacking() { return m_toolPacking; }
     virtual int GetToolSeparation() { return m_toolSeparation; }
 
+    // for compatibility
+    wxSize GetMargins() const { return wxSize(m_xMargin, m_yMargin); }
+
     // toolbar geometry
     // ----------------
 
@@ -368,6 +390,9 @@ public:
     virtual wxToolBarToolBase *FindToolForPosition(wxCoord x,
                                                    wxCoord y) const = 0;
 
+    // return TRUE if this is a vertical toolbar, otherwise FALSE
+    bool IsVertical() const { return HasFlag(wxTB_VERTICAL); }
+
     // event handlers
     // --------------
 
@@ -407,6 +432,9 @@ public:
     // Do the toolbar button updates (check for EVT_UPDATE_UI handlers)
     virtual void DoToolbarUpdates();
 
+    // don't want toolbars to accept the focus
+    virtual bool AcceptsFocus() const { return FALSE; }
+
 protected:
     // to implement in derived classes
     // -------------------------------
@@ -464,8 +492,14 @@ protected:
 
 private:
     DECLARE_EVENT_TABLE()
+    DECLARE_CLASS(wxToolBarBase)
 };
 
+// Helper function for creating the image for disabled buttons
+bool wxCreateGreyedImage(const wxImage& in, wxImage& out) ;
+
+#endif // wxUSE_TOOLBAR
+
 #endif
     // _WX_TBARBASE_H_