X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/17e2694c5957fa82f3da9b338cd0937a98106005..85047589a993f5c5529e1dae284be8af84cd68ef:/include/wx/osx/window.h diff --git a/include/wx/osx/window.h b/include/wx/osx/window.h index 9f5b7ae7bf..86604ab7f2 100644 --- a/include/wx/osx/window.h +++ b/include/wx/osx/window.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: include/wx/mac/carbon/window.h +// Name: wx/osx/window.h // Purpose: wxWindowMac class // Author: Stefan Csomor // Modified by: @@ -91,6 +91,8 @@ public: virtual bool SetBackgroundColour( const wxColour &colour ); virtual bool SetForegroundColour( const wxColour &colour ); + virtual bool SetBackgroundStyle(wxBackgroundStyle style); + virtual int GetCharHeight() const; virtual int GetCharWidth() const; @@ -154,8 +156,6 @@ public: static long MacRemoveBordersFromStyle( long style ) ; public: - void OnInternalIdle(); - // For implementation purposes: // sometimes decorations make the client area smaller virtual wxPoint GetClientAreaOrigin() const; @@ -164,7 +164,7 @@ public: wxWindowMac *FindItemByHWND(WXHWND hWnd, bool controlOnly = false) const; virtual void TriggerScrollEvent( wxEventType scrollEvent ) ; - // this should not be overriden in classes above wxWindowMac + // this should not be overridden in classes above wxWindowMac // because it is called from its destructor via DeleteChildren virtual void RemoveChild( wxWindowBase *child ); @@ -180,6 +180,7 @@ public: WXWindow MacGetTopLevelWindowRef() const ; wxNonOwnedWindow* MacGetTopLevelWindow() const ; + virtual long MacGetWXBorderSize() const; virtual long MacGetLeftBorderSize() const ; virtual long MacGetRightBorderSize() const ; virtual long MacGetTopBorderSize() const ; @@ -200,9 +201,9 @@ public: bool MacIsReallyHilited() ; #if WXWIN_COMPATIBILITY_2_8 - bool MacIsUserPane() { return m_macIsUserPane; } + bool MacIsUserPane(); #endif - bool MacIsUserPane() const { return m_macIsUserPane; } + bool MacIsUserPane() const; virtual bool MacSetupCursor( const wxPoint& pt ) ; @@ -245,7 +246,18 @@ public: int& w, int& h , bool adjustForOrigin ) const ; // the 'true' OS level control for this wxWindow - wxOSXWidgetImpl* GetPeer() const { return m_peer ; } + wxOSXWidgetImpl* GetPeer() const; + + // optimization to avoid creating a user pane in wxWindow::Create if we already know + // we will replace it with our own peer + void DontCreatePeer(); + + // sets the native implementation wrapper, can replace an existing peer, use peer = NULL to + // release existing peer + void SetPeer(wxOSXWidgetImpl* peer); + + // wraps the already existing peer with the wrapper + void SetWrappingPeer(wxOSXWidgetImpl* wrapper); #if wxOSX_USE_COCOA_OR_IPHONE // the NSView or NSWindow of this window: can be used for both child and @@ -263,14 +275,16 @@ public: virtual bool OSXHandleClicked( double timestampsec ); virtual bool OSXHandleKeyEvent( wxKeyEvent& event ); - + bool IsNativeWindowWrapper() const { return m_isNativeWindowWrapper; } + + float GetContentScaleFactor() const ; + protected: // For controls like radio buttons which are genuinely composite wxList m_subControls; // the peer object, allowing for cleaner API support - wxOSXWidgetImpl * m_peer ; void * m_cgContextRef ; @@ -285,9 +299,6 @@ protected: mutable wxRegion m_cachedClippedRegion ; mutable wxRegion m_cachedClippedClientRegion ; - // true if is is not a native control but a wxWindow control - bool m_macIsUserPane ; - // insets of the mac control from the wx top left corner wxPoint m_macTopLeftInset ; wxPoint m_macBottomRightInset ; @@ -299,7 +310,7 @@ protected: bool m_vScrollBarAlwaysShown; wxWindow* m_growBox ; wxString m_label ; - + bool m_isNativeWindowWrapper; // set to true if we do a sharp clip at the content area of this window @@ -361,6 +372,7 @@ protected: unsigned timeout); private: + wxOSXWidgetImpl * m_peer ; // common part of all ctors void Init();