X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/12b5f4b4d2d8a07962da7ba3b78c8c1ec2634a67..43ff861df48f0837dac98005dd397c5f127ca136:/include/wx/osx/button.h diff --git a/include/wx/osx/button.h b/include/wx/osx/button.h index 6c599dfaaa..1d0353ef87 100644 --- a/include/wx/osx/button.h +++ b/include/wx/osx/button.h @@ -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,51 @@ 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 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(); + } + +#if wxUSE_MARKUP && wxOSX_USE_COCOA + virtual bool DoSetLabelMarkup(const wxString& markup); +#endif // wxUSE_MARKUP && wxOSX_USE_COCOA + + + // 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 +95,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 +107,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 +115,11 @@ public: bool IsOpen() const; // osx specific event handling common for all osx-ports - + virtual bool OSXHandleClicked( double timestampsec ); protected: virtual wxSize DoGetBestSize() const ; - }; -#endif - // _WX_BUTTON_H_ +#endif // _WX_OSX_BUTTON_H_