]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/osx/window.h
adding hook, but unfortunately no solution yet for wxComboBox::SetEditable
[wxWidgets.git] / include / wx / osx / window.h
index 5758b5a8c3a0e1dd1eb900df038dfcfdd28c3af3..57afc42463e7f0e00b259abd557a02205ecd8f56 100644 (file)
@@ -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
@@ -156,8 +166,6 @@ public:
     static long         MacRemoveBordersFromStyle( long style ) ;
 
 public:
-    void OnInternalIdle();
-
     // For implementation purposes:
     // sometimes decorations make the client area smaller
     virtual wxPoint GetClientAreaOrigin() const;
@@ -166,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 );
 
@@ -182,6 +190,7 @@ public:
     WXWindow            MacGetTopLevelWindowRef() const ;
     wxNonOwnedWindow*   MacGetTopLevelWindow() const ;
 
+    virtual long        MacGetWXBorderSize() const;
     virtual long        MacGetLeftBorderSize() const ;
     virtual long        MacGetRightBorderSize() const ;
     virtual long        MacGetTopBorderSize() const ;
@@ -202,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 ) ;
 
@@ -247,7 +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,14 +288,20 @@ 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;
 
     // the peer object, allowing for cleaner API support
-    wxOSXWidgetImpl *   m_peer ;
 
     void *              m_cgContextRef ;
 
@@ -287,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 ;
@@ -363,6 +389,7 @@ protected:
                                    unsigned timeout);
 
 private:
+    wxOSXWidgetImpl *   m_peer ;
     // common part of all ctors
     void Init();