]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/osx/button.h
Set initial window size as its minimal size.
[wxWidgets.git] / include / wx / osx / button.h
index 0fcd3e030bf597b8ce59c1a94fb392f9819f50b5..75108eeb248a5f8d43a77a31b5b8262cf96721be 100644 (file)
@@ -1,5 +1,119 @@
-#ifdef __WXMAC_CLASSIC__
-#include "wx/osx/classic/button.h"
-#else
-#include "wx/osx/carbon/button.h"
-#endif
+/////////////////////////////////////////////////////////////////////////////
+// Name:        button.h
+// Purpose:     wxButton class
+// Author:      Stefan Csomor
+// Modified by:
+// Created:     1998-01-01
+// RCS-ID:      $Id$
+// Copyright:   (c) Stefan Csomor
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_OSX_BUTTON_H_
+#define _WX_OSX_BUTTON_H_
+
+#include "wx/control.h"
+#include "wx/gdicmn.h"
+
+// Pushbutton
+class WXDLLIMPEXP_CORE wxButton : public wxButtonBase
+{
+public:
+    wxButton() {}
+    wxButton(wxWindow *parent,
+             wxWindowID id,
+             const wxString& label = wxEmptyString,
+             const wxPoint& pos = wxDefaultPosition,
+             const wxSize& size = wxDefaultSize,
+             long style = 0,
+             const wxValidator& validator = wxDefaultValidator,
+             const wxString& name = wxButtonNameStr)
+    {
+        Create(parent, id, label, pos, size, style, validator, name);
+    }
+
+    bool Create(wxWindow *parent,
+                wxWindowID id,
+                const wxString& label = wxEmptyString,
+                const wxPoint& pos = wxDefaultPosition,
+                const wxSize& size = wxDefaultSize,
+                long style = 0,
+                const wxValidator& validator = wxDefaultValidator,
+                const wxString& name = wxButtonNameStr);
+
+    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        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;
+    }
+    
+    // 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()
+};
+
+// OS X specific class, not part of public wx API
+class WXDLLIMPEXP_CORE wxDisclosureTriangle : public wxControl
+{
+public:
+    wxDisclosureTriangle(wxWindow *parent,
+             wxWindowID id,
+             const wxString& label = wxEmptyString,
+             const wxPoint& pos = wxDefaultPosition,
+             const wxSize& size = wxDefaultSize,
+             long style = wxBORDER_NONE,
+             const wxValidator& validator = wxDefaultValidator,
+             const wxString& name = wxButtonNameStr)
+    {
+        Create(parent, id, label, pos, size, style, validator, name);
+    }
+
+    bool Create(wxWindow *parent,
+                wxWindowID id,
+                const wxString& label = wxEmptyString,
+                const wxPoint& pos = wxDefaultPosition,
+                const wxSize& size = wxDefaultSize,
+                long style = wxBORDER_NONE,
+                const wxValidator& validator = wxDefaultValidator,
+                const wxString& name = wxButtonNameStr);
+
+    void SetOpen( bool open );
+    bool IsOpen() const;
+
+    // osx specific event handling common for all osx-ports
+
+    virtual bool        OSXHandleClicked( double timestampsec );
+
+protected:
+    virtual wxSize DoGetBestSize() const ;
+};
+
+#endif // _WX_OSX_BUTTON_H_