X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/69ce9cea39ee9f6edf588101dd78948d2d9f4ba2..ff46415213f7435aa64ab4f5b7dfdbb7b31f3796:/include/wx/osx/window.h diff --git a/include/wx/osx/window.h b/include/wx/osx/window.h index 49d6e54a49..54446478ad 100644 --- a/include/wx/osx/window.h +++ b/include/wx/osx/window.h @@ -17,6 +17,7 @@ class WXDLLIMPEXP_FWD_CORE wxButton; class WXDLLIMPEXP_FWD_CORE wxScrollBar; +class WXDLLIMPEXP_FWD_CORE wxPanel; class WXDLLIMPEXP_FWD_CORE wxNonOwnedWindow; #if wxOSX_USE_CARBON @@ -62,6 +63,16 @@ public: virtual void Lower(); virtual bool Show( bool show = true ); + virtual bool ShowWithEffect(wxShowEffect effect, + unsigned timeout = 0) + { + return OSXShowWithEffect(true, effect, timeout); + } + virtual bool HideWithEffect(wxShowEffect effect, + unsigned timeout = 0) + { + return OSXShowWithEffect(false, effect, timeout); + } virtual bool IsShownOnScreen() const; @@ -80,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; @@ -156,7 +169,7 @@ public: // this should not be overriden in classes above wxWindowMac // because it is called from its destructor via DeleteChildren virtual void RemoveChild( wxWindowBase *child ); - + virtual bool MacDoRedraw( long time ) ; virtual void MacPaintChildrenBorders(); virtual void MacPaintBorders( int left , int top ) ; @@ -217,7 +230,7 @@ public: { return ((wxWindow*)m_hScrollBar == sb || (wxWindow*)m_vScrollBar == sb) ; } virtual bool IsClientAreaChild(const wxWindow *child) const { - return !MacIsWindowScrollbar(child) && + return !MacIsWindowScrollbar(child) && !((wxWindow*)m_growBox==child) && wxWindowBase::IsClientAreaChild(child); } @@ -235,14 +248,25 @@ public: // the 'true' OS level control for this wxWindow wxOSXWidgetImpl* GetPeer() const { return m_peer ; } - + +#if wxOSX_USE_COCOA_OR_IPHONE + // the NSView or NSWindow of this window: can be used for both child and + // non-owned windows + // + // this is useful for a few Cocoa function which can work with either views + // or windows indiscriminately, e.g. for setting NSViewAnimationTargetKey + virtual void *OSXGetViewOrWindow() const { return GetHandle(); } +#endif // Cocoa + void * MacGetCGContextRef() { return m_cgContextRef ; } void MacSetCGContextRef(void * cg) { m_cgContextRef = cg ; } // osx specific event handling common for all osx-ports - + virtual bool OSXHandleClicked( double timestampsec ); virtual bool OSXHandleKeyEvent( wxKeyEvent& event ); + + bool IsNativeWindowWrapper() const { return m_isNativeWindowWrapper; } protected: // For controls like radio buttons which are genuinely composite wxList m_subControls; @@ -275,7 +299,10 @@ protected: wxScrollBar* m_vScrollBar ; bool m_hScrollBarAlwaysShown; 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 // must be dynamic as eg a panel normally is not clipping precisely, but if @@ -330,6 +357,11 @@ protected: virtual void DoSetToolTip( wxToolTip *tip ); #endif + // common part of Show/HideWithEffect() + virtual bool OSXShowWithEffect(bool show, + wxShowEffect effect, + unsigned timeout); + private: // common part of all ctors void Init(); @@ -338,7 +370,6 @@ private: // AlwaysShowScrollbars() void DoUpdateScrollbarVisibility(); - wxDECLARE_NO_COPY_CLASS(wxWindowMac); DECLARE_EVENT_TABLE() };