]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/mac/carbon/private.h
added wx_truncate_cast and use it (sometimes instead of wx_static_cast) to explicitel...
[wxWidgets.git] / include / wx / mac / carbon / private.h
index a3f409471912eb0bb3478b6f40fb51e073e82d02..bc08be5c3d86d71d863063ac974a6be65b7dc677 100644 (file)
 #    include <LowMem.h>
 #    include <Gestalt.h>
 #    include <FixMath.h>
+#    include <CoreServices.h>
 #endif
 
-#if UNIVERSAL_INTERFACES_VERSION < 0x0340
+#if UNIVERSAL_INTERFACES_VERSION < 0x0342
     #error "please update to Apple's lastest universal headers from http://developer.apple.com/sdk/"
 #endif
 
@@ -64,6 +65,7 @@ inline int    FixedToInt( Fixed inFixed )
 
 #include "wx/dc.h"
 #include "wx/window.h"
+#include "wx/toplevel.h"
 
 class wxMacPortStateHelper 
 {
@@ -400,6 +402,11 @@ private :
     WindowRef m_data ;
 } ;
 
+void wxMacRectToNative( const wxRect *wx , Rect *n ) ;
+void wxMacNativeToRect( const Rect *n , wxRect* wx ) ;
+void wxMacPointToNative( const wxPoint* wx , Point *n ) ;
+void wxMacNativeToPoint( const Point *n , wxPoint* wx ) ;
+
 wxWindow *              wxFindControlFromMacControl(ControlRef inControl ) ;
 wxTopLevelWindowMac*    wxFindWinFromMacWindow( WindowRef inWindow ) ;
 wxMenu*                 wxFindMenuFromMacMenu(MenuRef inMenuRef) ;
@@ -408,10 +415,12 @@ extern wxWindow* g_MacLastWindow ;
 pascal OSStatus wxMacTopLevelMouseEventHandler( EventHandlerCallRef handler , EventRef event , void *data ) ;
 Rect wxMacGetBoundsForControl( wxWindow* window , const wxPoint& pos , const wxSize &size , bool adjustForOrigin = true ) ;
 
+ControlActionUPP GetwxMacLiveScrollbarActionProc() ;
+
 class wxMacControl
 {
 public :
-    wxMacControl( wxWindow* peer) ;    
+    wxMacControl( wxWindow* peer , bool isRootControl = false ) ;    
     wxMacControl( wxWindow* peer , ControlRef control ) ;
     wxMacControl( wxWindow* peer , WXWidget control ) ;
     virtual ~wxMacControl() ;
@@ -510,12 +519,21 @@ public :
     virtual void SetDrawingEnabled( bool enable ) ;
 #ifdef __WXMAC_OSX__
     virtual bool GetNeedsDisplay() const ;
-    virtual void SetNeedsDisplay( bool needsDisplay , RgnHandle where = NULL ) ;
 #endif
-    virtual void ScrollRect( const wxRect &rect , int dx , int dy ) ;
+    // where is in native window relative coordinates
+    virtual void SetNeedsDisplay( RgnHandle where ) ;
+    // where is in native window relative coordinates
+    virtual void SetNeedsDisplay( Rect* where = NULL ) ;
 
+       // if rect = NULL, entire view
+    virtual void ScrollRect( wxRect *rect , int dx , int dy ) ;
+
+    // in native parent window relative coordinates
     virtual void GetRect( Rect *r ) ;
+
+    // in native parent window relative coordinates
     virtual void SetRect( Rect *r ) ;
+
     virtual void GetRectInWindowCoords( Rect *r ) ;
     virtual void GetBestRect( Rect *r ) ;
     virtual void SetTitle( const wxString &title ) ;
@@ -558,6 +576,7 @@ public :
     
     virtual OSStatus SetTabEnabled( SInt16 tabNo , bool enable ) ;
     bool    IsCompositing() { return m_isCompositing ; }
+    bool    IsRootControl() { return m_isRootControl ; }
 protected :
     ControlRef  m_controlRef ;
     wxFont      m_font ;
@@ -565,6 +584,7 @@ protected :
     wxWindow*   m_peer ;
     bool        m_needsFocusRect ;
     bool        m_isCompositing ;
+    bool        m_isRootControl ;
 } ;
 
 #if wxMAC_USE_CORE_GRAPHICS
@@ -579,6 +599,7 @@ public :
     //  Starts a new subpath at
     void MoveToPoint( wxCoord x1 , wxCoord y1 ) ;
     void AddLineToPoint( wxCoord x1 , wxCoord y1 ) ;
+    void AddQuadCurveToPoint( wxCoord cx1, wxCoord cy1, wxCoord x1, wxCoord y1 ) ;
     void AddRectangle( wxCoord x, wxCoord y, wxCoord w, wxCoord h ) ;
     void AddCircle( wxCoord x, wxCoord y , wxCoord r ) ;
     
@@ -619,10 +640,14 @@ private:
     wxBrush m_brush ;
 } ;
 
+#endif // wxMAC_USE_CORE_GRAPHICS
+
+#ifdef __WXMAC_OSX__
+
 CGColorSpaceRef wxMacGetGenericRGBColorSpace(void) ;
 void wxMacMemoryBufferReleaseProc(void *info, const void *data, size_t size) ;
 
-#endif // wxMAC_USE_CORE_GRAPHICS
+#endif
 
 class WXDLLEXPORT wxBitmapRefData: public wxGDIRefData
 {
@@ -660,7 +685,7 @@ public:
 #endif // wxUSE_PALETTE
     
     wxMask *      m_bitmapMask; // Optional mask
-#if wxMAC_USE_CORE_GRAPHICS
+#ifdef __WXMAC_OSX__
     CGImageRef    CGImageCreate() const ;
 #endif
      
@@ -692,7 +717,7 @@ private :
     wxMemoryBuffer m_memBuf ;
     int           m_rawAccessCount ;
     bool          m_ok;
-#if wxMAC_USE_CORE_GRAPHICS
+#ifdef __WXMAC_OSX__
     mutable CGImageRef    m_cgImageRef ;
 #endif
     IconRef       m_iconRef ;
@@ -726,8 +751,21 @@ private :
     int m_height ;
 };
 
+// toplevel.cpp
+
+ControlRef wxMacFindControlUnderMouse( wxTopLevelWindowMac* toplevelWindow, Point location , WindowRef window , ControlPartCode *outPart ) ;
+
 #endif // wxUSE_GUI
 
+#define wxMAC_DEFINE_PROC_GETTER( UPP , x ) \
+UPP Get##x()                                \
+{                                           \
+    static UPP sHandler = NULL;             \
+    if ( sHandler == NULL )                 \
+        sHandler = New##UPP( x );           \
+    return sHandler;                        \
+}
+
 //---------------------------------------------------------------------------
 // wxMac string conversions
 //---------------------------------------------------------------------------
@@ -738,10 +776,6 @@ void wxMacCleanupConverters() ;
 void wxMacStringToPascal( const wxString&from , StringPtr to ) ;
 wxString wxMacMakeStringFromPascal( ConstStringPtr from ) ;
 
-// toplevel.cpp
-
-ControlRef wxMacFindControlUnderMouse( wxTopLevelWindowMac* toplevelWindow, Point location , WindowRef window , ControlPartCode *outPart ) ;
-
 // filefn.cpp
 
 wxString wxMacFSRefToPath( const FSRef *fsRef , CFStringRef additionalPathComponent = NULL ) ;