]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/osx/window.h
reuse wxObjectRefData for various ref-counted classes (closes #10886)
[wxWidgets.git] / include / wx / osx / window.h
index 1137022d2163b2d409e3c9aa1619e5560c23c989..d81975dea59c9689428bb1573179cc7639abd335 100644 (file)
@@ -19,8 +19,14 @@ class WXDLLIMPEXP_FWD_CORE wxButton;
 class WXDLLIMPEXP_FWD_CORE wxScrollBar;
 class WXDLLIMPEXP_FWD_CORE wxNonOwnedWindow;
 
-class WXDLLIMPEXP_FWD_CORE wxMacControl ;
-class WXDLLIMPEXP_FWD_CORE wxWidgetImpl ;
+#if wxOSX_USE_CARBON
+    class WXDLLIMPEXP_FWD_CORE wxMacControl ;
+    typedef wxMacControl wxOSXWidgetImpl;
+#elif wxOSX_USE_COCOA_OR_IPHONE
+    class WXDLLIMPEXP_FWD_CORE wxWidgetImpl ;
+    typedef wxWidgetImpl wxOSXWidgetImpl;
+#endif
+
 
 class WXDLLIMPEXP_CORE wxWindowMac: public wxWindowBase
 {
@@ -76,20 +82,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,
@@ -138,7 +130,7 @@ public:
 
     // event handlers
     // --------------
-    void OnPaint( wxPaintEvent& event );
+
     void OnNcPaint( wxNcPaintEvent& event );
     void OnEraseBackground(wxEraseEvent& event );
     void OnMouseEvent( wxMouseEvent &event );
@@ -163,11 +155,12 @@ public:
     wxWindowMac *FindItemByHWND(WXHWND hWnd, bool controlOnly = false) const;
 
     virtual void        TriggerScrollEvent( wxEventType scrollEvent ) ;
-    virtual bool        MacDoRedraw( void* updatergn , long time ) ;
-
     // 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 ) ;
     void                MacPaintGrowBox();
 
@@ -197,7 +190,10 @@ public:
     bool                MacIsReallyEnabled() ;
     bool                MacIsReallyHilited() ;
 
+#if WXWIN_COMPATIBILITY_2_8
     bool                MacIsUserPane() { return m_macIsUserPane; }
+#endif
+    bool                MacIsUserPane() const { return m_macIsUserPane; }
 
     virtual bool        MacSetupCursor( const wxPoint& pt ) ;
 
@@ -240,11 +236,7 @@ public:
                                            int& w, int& h , bool adjustForOrigin ) const ;
 
     // the 'true' OS level control for this wxWindow
-#if wxOSX_USE_CARBON
-    wxMacControl*       GetPeer() const { return m_peer ; }
-#else
-    wxWidgetImpl*       GetPeer() const { return m_peer ; }
-#endif
+    wxOSXWidgetImpl*       GetPeer() const { return m_peer ; }
  
     void *              MacGetCGContextRef() { return m_cgContextRef ; }
     void                MacSetCGContextRef(void * cg) { m_cgContextRef = cg ; }
@@ -257,12 +249,9 @@ protected:
     // For controls like radio buttons which are genuinely composite
     wxList              m_subControls;
 
-#if wxOSX_USE_CARBON
     // the peer object, allowing for cleaner API support
-    wxMacControl *       m_peer ;
-#else
-    wxWidgetImpl *       m_peer ;
-#endif
+    wxOSXWidgetImpl *   m_peer ;
+
     void *              m_cgContextRef ;
 
     // cache the clipped rectangles within the window hierarchy
@@ -303,6 +292,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;
@@ -338,7 +341,7 @@ private:
     void DoUpdateScrollbarVisibility();
 
 
-    DECLARE_NO_COPY_CLASS(wxWindowMac)
+    wxDECLARE_NO_COPY_CLASS(wxWindowMac);
     DECLARE_EVENT_TABLE()
 };