X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c099b53353ec8c689681a1bc8f5117a584e4098d..032e024c1c6ab6a20226604baab9d00558620e72:/include/wx/osx/window.h diff --git a/include/wx/osx/window.h b/include/wx/osx/window.h index 8728a0a091..bdf48d8f74 100644 --- a/include/wx/osx/window.h +++ b/include/wx/osx/window.h @@ -17,17 +17,15 @@ class WXDLLIMPEXP_FWD_CORE wxButton; class WXDLLIMPEXP_FWD_CORE wxScrollBar; +class WXDLLIMPEXP_FWD_CORE wxPanel; class WXDLLIMPEXP_FWD_CORE wxNonOwnedWindow; #if wxOSX_USE_CARBON class WXDLLIMPEXP_FWD_CORE wxMacControl ; typedef wxMacControl wxOSXWidgetImpl; -#elif wxOSX_USE_COCOA - class WXDLLIMPEXP_FWD_CORE wxWidgetCocoaImpl ; - typedef wxWidgetCocoaImpl wxOSXWidgetImpl; -#elif wxOSX_USE_IPHONE - class WXDLLIMPEXP_FWD_CORE wxWidgetIPhoneImpl ; - typedef wxWidgetIPhoneImpl wxOSXWidgetImpl; +#elif wxOSX_USE_COCOA_OR_IPHONE + class WXDLLIMPEXP_FWD_CORE wxWidgetImpl ; + typedef wxWidgetImpl wxOSXWidgetImpl; #endif @@ -65,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; @@ -85,20 +93,6 @@ public: virtual int GetCharHeight() const; virtual int GetCharWidth() const; - virtual void GetTextExtent( const wxString& string, - int *x, int *y, - int *descent = NULL, - int *externalLeading = NULL, - const wxFont *theFont = NULL ) - const; -protected: - virtual void DoEnable( bool enable ); -#if wxUSE_MENUS - virtual bool DoPopupMenu( wxMenu *menu, int x, int y ); -#endif - - virtual void DoFreeze(); - virtual void DoThaw(); public: virtual void SetScrollbar( int orient, int pos, int thumbVisible, @@ -148,8 +142,6 @@ public: // event handlers // -------------- - void OnNcPaint( wxNcPaintEvent& event ); - void OnEraseBackground(wxEraseEvent& event ); void OnMouseEvent( wxMouseEvent &event ); void MacOnScroll( wxScrollEvent&event ); @@ -175,7 +167,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 ) ; @@ -254,12 +246,21 @@ 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 ); protected: @@ -294,6 +295,7 @@ protected: wxScrollBar* m_vScrollBar ; bool m_hScrollBarAlwaysShown; bool m_vScrollBarAlwaysShown; + wxPanel* m_growBox ; wxString m_label ; // set to true if we do a sharp clip at the content area of this window @@ -309,6 +311,20 @@ protected: void MacUpdateControlFont() ; // implement the base class pure virtuals + virtual void DoGetTextExtent(const wxString& string, + int *x, int *y, + int *descent = NULL, + int *externalLeading = NULL, + const wxFont *theFont = NULL ) const; + + virtual void DoEnable( bool enable ); +#if wxUSE_MENUS + virtual bool DoPopupMenu( wxMenu *menu, int x, int y ); +#endif + + virtual void DoFreeze(); + virtual void DoThaw(); + virtual wxSize DoGetBestSize() const; virtual wxSize DoGetSizeFromClientSize( const wxSize & size ) const; virtual void DoClientToScreen( int *x, int *y ) const; @@ -335,6 +351,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(); @@ -343,7 +364,6 @@ private: // AlwaysShowScrollbars() void DoUpdateScrollbarVisibility(); - wxDECLARE_NO_COPY_CLASS(wxWindowMac); DECLARE_EVENT_TABLE() };