X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0dbd6262a9ee7d735fb3930707346298f71b2cb7..f1c75e0f93b4ec9f45827cc5a2d16ef17a675dfc:/include/wx/mac/control.h?ds=sidebyside diff --git a/include/wx/mac/control.h b/include/wx/mac/control.h index c75756a72a..ddad4ae07d 100644 --- a/include/wx/mac/control.h +++ b/include/wx/mac/control.h @@ -1,50 +1,125 @@ ///////////////////////////////////////////////////////////////////////////// // Name: control.h // Purpose: wxControl class -// Author: AUTHOR +// Author: Stefan Csomor // Modified by: -// Created: ??/??/98 +// Created: 1998-01-01 // RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence +// Copyright: (c) Stefan Csomor +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef _WX_CONTROL_H_ #define _WX_CONTROL_H_ -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(__APPLE__) #pragma interface "control.h" #endif -#include "wx/window.h" -#include "wx/list.h" -#include "wx/validate.h" +WXDLLEXPORT_DATA(extern const wxChar*) wxControlNameStr; // General item class -class WXDLLEXPORT wxControl: public wxWindow +class WXDLLEXPORT wxControl : public wxControlBase { - DECLARE_ABSTRACT_CLASS(wxControl) + DECLARE_ABSTRACT_CLASS(wxControl) + public: wxControl(); - ~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 + virtual void Command(wxCommandEvent& event) { ProcessCommand(event); } + + // implementation from now on + // -------------------------- + + // Calls the callback and appropriate event handlers + bool ProcessCommand(wxCommandEvent& event); + virtual void SetLabel(const wxString& title) ; - virtual void Command(wxCommandEvent& WXUNUSED(event)) {}; // Simulates an event - virtual void ProcessCommand(wxCommandEvent& event); // Calls the callback and - // appropriate event handlers - virtual void SetLabel(const wxString& label); - virtual wxString GetLabel() const ; + wxList& GetSubcontrols() { return m_subControls; } + + void OnEraseBackground(wxEraseEvent& event); + + virtual bool Enable(bool enable = TRUE) ; + virtual bool Show(bool show = TRUE) ; - // Places item in centre of panel - so can't be used BEFORE panel->Fit() - void Centre(int direction = wxHORIZONTAL); - inline void Callback(const wxFunction function) { m_callback = function; }; // Adds callback + virtual void MacRedrawControl () ; + virtual void MacHandleControlClick( WXWidget control , wxInt16 controlpart , bool mouseStillDown ) ; + 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 ;} - inline wxFunction GetCallback() { return m_callback; } +#if WXWIN_COMPATIBILITY + virtual void SetButtonColour(const wxColour& WXUNUSED(col)) { } + wxColour* GetButtonColour() const { return NULL; } + + inline virtual void SetLabelFont(const wxFont& font); + inline virtual void SetButtonFont(const wxFont& font); + inline wxFont& GetLabelFont() const; + inline wxFont& GetButtonFont() const; +#endif // WXWIN_COMPATIBILITY protected: - wxFunction m_callback; // Callback associated with the window + // For controls like radiobuttons which are really composite + WXWidget m_macControl ; + void* m_macControlAction ; + bool m_macControlIsShown ; + wxList m_subControls; + int m_macHorizontalBorder ; + int m_macVerticalBorder ; + + virtual wxSize DoGetBestSize() const; -DECLARE_EVENT_TABLE() +private: + DECLARE_EVENT_TABLE() }; + +#if WXWIN_COMPATIBILITY + inline wxFont& wxControl::GetLabelFont() const { return GetFont(); } + inline wxFont& wxControl::GetButtonFont() const { return GetFont(); } + inline void wxControl::SetLabelFont(const wxFont& font) { SetFont(font); } + inline void wxControl::SetButtonFont(const wxFont& font) { SetFont(font); } +#endif // WXWIN_COMPATIBILITY + +wxControl *wxFindControlFromMacControl(WXWidget inControl ) ; +void wxAssociateControlWithMacControl(WXWidget inControl, wxControl *control) ; +void wxRemoveMacControlAssociation(wxControl *control) ; + #endif // _WX_CONTROL_H_