X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/519cb848a8f4c91c73421bb75314754284e593a4..f114b8580b980c54e7b6194fe6494a86cb833907:/include/wx/mac/control.h diff --git a/include/wx/mac/control.h b/include/wx/mac/control.h index 7d8f6d185d..c97686d258 100644 --- a/include/wx/mac/control.h +++ b/include/wx/mac/control.h @@ -12,10 +12,12 @@ #ifndef _WX_CONTROL_H_ #define _WX_CONTROL_H_ -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(__APPLE__) #pragma interface "control.h" #endif +WXDLLEXPORT_DATA(extern const wxChar*) wxControlNameStr; + // General item class class WXDLLEXPORT wxControl : public wxControlBase { @@ -23,6 +25,20 @@ class WXDLLEXPORT wxControl : public wxControlBase public: wxControl(); + wxControl(wxWindow *parent, wxWindowID id, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, long style = 0, + const wxValidator& validator = wxDefaultValidator, + const wxString& name = wxControlNameStr) + { + Create(parent, id, pos, size, style, validator, name); + } + + bool Create(wxWindow *parent, wxWindowID id, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, long style = 0, + const wxValidator& validator = wxDefaultValidator, + const wxString& name = wxControlNameStr); virtual ~wxControl(); // Simulates an event @@ -33,11 +49,40 @@ public: // Calls the callback and appropriate event handlers bool ProcessCommand(wxCommandEvent& event); - + virtual void SetLabel(const wxString& title) ; wxList& GetSubcontrols() { return m_subControls; } - + void OnEraseBackground(wxEraseEvent& event); + + virtual bool Enable(bool enable = TRUE) ; + virtual bool Show(bool show = TRUE) ; + + virtual void MacRedrawControl () ; + virtual void MacHandleControlClick( WXWidget control , short controlpart ) ; + virtual void MacPreControlCreate( wxWindow *parent, wxWindowID id, wxString label , + const wxPoint& pos, + const wxSize& size, long style, + const wxValidator& validator, + const wxString& name , + WXRECTPTR outBounds , + unsigned char* maclabel ) ; + virtual void MacPostControlCreate() ; + virtual void MacAdjustControlRect() ; + virtual WXWidget MacGetContainerForEmbedding() ; + virtual void MacSuperChangedPosition() ; + virtual void MacSuperEnabled( bool enabled ) ; + virtual void MacSuperShown( bool show ) ; + virtual bool MacCanFocus() const ; + virtual void MacUpdateDimensions() ; + void* MacGetControlAction() { return m_macControlAction ; } + + virtual void DoSetSize(int x, int y,int width, int height,int sizeFlags = wxSIZE_AUTO ) ; + void OnKeyDown( wxKeyEvent &event ) ; + void OnMouseEvent( wxMouseEvent &event ) ; + void OnPaint(wxPaintEvent& event) ; + virtual void Refresh(bool eraseBack = TRUE, const wxRect *rect = NULL) ; + WXWidget GetMacControl() { return m_macControl ;} #if WXWIN_COMPATIBILITY virtual void SetButtonColour(const wxColour& WXUNUSED(col)) { } @@ -59,17 +104,14 @@ protected: protected: // For controls like radiobuttons which are really composite - wxList m_subControls; - - virtual wxSize DoGetBestSize(); - - // create the control of the given class with the given style, returns FALSE - // if creation failed - bool MSWCreateControl(const wxChar *classname, WXDWORD style); + WXWidget m_macControl ; + void* m_macControlAction ; + bool m_macControlIsShown ; + wxList m_subControls; + int m_macHorizontalBorder ; + int m_macVerticalBorder ; - // determine the extended styles combination for this window (may slightly - // modify styl parameter) - WXDWORD GetExStyle(WXDWORD& style) const; + virtual wxSize DoGetBestSize() const; private: DECLARE_EVENT_TABLE() @@ -84,8 +126,8 @@ private: inline void wxControl::SetButtonFont(const wxFont& font) { SetFont(font); } #endif // WXWIN_COMPATIBILITY -wxControl *wxFindControlFromMacControl(ControlHandle inControl ) ; -void wxAssociateControlWithMacControl(ControlHandle inControl, wxControl *control) ; +wxControl *wxFindControlFromMacControl(WXWidget inControl ) ; +void wxAssociateControlWithMacControl(WXWidget inControl, wxControl *control) ; void wxRemoveMacControlAssociation(wxControl *control) ; #endif