X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/22756322824e8f377b792897209d052ca9281534..3678169caab0f713415414dce013a638305f3cce:/include/wx/osx/window.h?ds=sidebyside diff --git a/include/wx/osx/window.h b/include/wx/osx/window.h index 41bfb61a0e..57afc42463 100644 --- a/include/wx/osx/window.h +++ b/include/wx/osx/window.h @@ -55,6 +55,8 @@ public: long style = 0, const wxString& name = wxPanelNameStr ); + virtual void SendSizeEvent(int flags = 0); + // implement base class pure virtuals virtual void SetLabel( const wxString& label ); virtual wxString GetLabel() const; @@ -114,6 +116,14 @@ public: virtual bool Reparent( wxWindowBase *newParent ); +#if wxUSE_HOTKEY && wxOSX_USE_COCOA_OR_CARBON + // hot keys (system wide accelerators) + // ----------------------------------- + + virtual bool RegisterHotKey(int hotkeyId, int modifiers, int keycode); + virtual bool UnregisterHotKey(int hotkeyId); +#endif // wxUSE_HOTKEY + #if wxUSE_DRAG_AND_DROP virtual void SetDropTarget( wxDropTarget *dropTarget ); #endif @@ -164,7 +174,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 ); @@ -201,9 +211,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 ) ; @@ -246,8 +256,21 @@ 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(); + + // return true unless DontCreatePeer() had been called + bool ShouldCreatePeer() const; + + // 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 @@ -265,11 +288,15 @@ public: virtual bool OSXHandleClicked( double timestampsec ); virtual bool OSXHandleKeyEvent( wxKeyEvent& event ); + virtual void OSXSimulateFocusEvents(); bool IsNativeWindowWrapper() const { return m_isNativeWindowWrapper; } float GetContentScaleFactor() const ; + // internal response to size events + virtual void MacOnInternalSize() {} + protected: // For controls like radio buttons which are genuinely composite wxList m_subControls; @@ -289,9 +316,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 ;