]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/osx/button.h
Build fix: forgotten part of the previous commit.
[wxWidgets.git] / include / wx / osx / button.h
index ccf647576f496ed4bcce889fc68ca7c62065843b..5b189fc940fb1a14fbb7635cdca0229081aaf9c5 100644 (file)
@@ -9,16 +9,14 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifndef _WX_BUTTON_H_
-#define _WX_BUTTON_H_
+#ifndef _WX_OSX_BUTTON_H_
+#define _WX_OSX_BUTTON_H_
 
 #include "wx/control.h"
 #include "wx/gdicmn.h"
 
-WXDLLIMPEXP_DATA_CORE(extern const char) wxButtonNameStr[];
-
 // Pushbutton
-class WXDLLIMPEXP_CORE wxButton: public wxButtonBase
+class WXDLLIMPEXP_CORE wxButton : public wxButtonBase
 {
 public:
     wxButton() {}
@@ -45,20 +43,46 @@ public:
 
     static wxSize GetDefaultSize();
 
+    virtual void SetLabel(const wxString& label);
     virtual wxWindow *SetDefault();
     virtual void Command(wxCommandEvent& event);
 
     // osx specific event handling common for all osx-ports
-    
-    virtual bool        HandleClicked( double timestampsec );
+
+    virtual bool        OSXHandleClicked( double timestampsec );
 
 protected:
     virtual wxSize DoGetBestSize() const ;
 
+    void OnEnterWindow( wxMouseEvent& event);
+    void OnLeaveWindow( wxMouseEvent& event);
+    
+    virtual wxBitmap DoGetBitmap(State which) const;
+    virtual void DoSetBitmap(const wxBitmap& bitmap, State which);
+    virtual void DoSetBitmapPosition(wxDirection dir);
+
+    virtual void DoSetBitmapMargins(int x, int y)
+    {
+        m_marginX = x;
+        m_marginY = y;
+        InvalidateBestSize();
+    }
+    
+    // the margins around the bitmap
+    int m_marginX;
+    int m_marginY;
+
+    // the bitmaps for the different state of the buttons, all of them may be
+    // invalid and the button only shows a bitmap at all if State_Normal bitmap
+    // is valid
+    wxBitmap m_bitmaps[State_Max];    
+    
     DECLARE_DYNAMIC_CLASS(wxButton)
+    DECLARE_EVENT_TABLE()
 };
 
-class WXDLLIMPEXP_CORE wxDisclosureTriangle: public wxControl
+// OS X specific class, not part of public wx API
+class WXDLLIMPEXP_CORE wxDisclosureTriangle : public wxControl
 {
 public:
     wxDisclosureTriangle(wxWindow *parent,
@@ -66,7 +90,7 @@ public:
              const wxString& label = wxEmptyString,
              const wxPoint& pos = wxDefaultPosition,
              const wxSize& size = wxDefaultSize,
-             long style = 0,
+             long style = wxBORDER_NONE,
              const wxValidator& validator = wxDefaultValidator,
              const wxString& name = wxButtonNameStr)
     {
@@ -78,7 +102,7 @@ public:
                 const wxString& label = wxEmptyString,
                 const wxPoint& pos = wxDefaultPosition,
                 const wxSize& size = wxDefaultSize,
-                long style = 0,
+                long style = wxBORDER_NONE,
                 const wxValidator& validator = wxDefaultValidator,
                 const wxString& name = wxButtonNameStr);
 
@@ -86,13 +110,11 @@ public:
     bool IsOpen() const;
 
     // osx specific event handling common for all osx-ports
-    
-    virtual bool        HandleClicked( double timestampsec );
+
+    virtual bool        OSXHandleClicked( double timestampsec );
 
 protected:
     virtual wxSize DoGetBestSize() const ;
-    
 };
 
-#endif
-    // _WX_BUTTON_H_
+#endif // _WX_OSX_BUTTON_H_