]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/mac/carbon/private.h
wxMSWUniv build fix.
[wxWidgets.git] / include / wx / mac / carbon / private.h
index 17426052d28b38464390b47fdaecc8739140cc77..63109375ca1c67b3ce5f84303c20173e3d4d2468 100644 (file)
 #    include <LowMem.h>
 #    include <Gestalt.h>
 #    include <FixMath.h>
 #    include <LowMem.h>
 #    include <Gestalt.h>
 #    include <FixMath.h>
+#    include <CoreServices.h>
 #endif
 
 #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
 
     #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/dc.h"
 #include "wx/window.h"
+#include "wx/toplevel.h"
 
 class wxMacPortStateHelper 
 {
 
 class wxMacPortStateHelper 
 {
@@ -400,6 +402,11 @@ private :
     WindowRef m_data ;
 } ;
 
     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) ;
 wxWindow *              wxFindControlFromMacControl(ControlRef inControl ) ;
 wxTopLevelWindowMac*    wxFindWinFromMacWindow( WindowRef inWindow ) ;
 wxMenu*                 wxFindMenuFromMacMenu(MenuRef inMenuRef) ;
@@ -408,29 +415,17 @@ 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 ) ;
 
 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 :
 class wxMacControl
 {
 public :
-    wxMacControl(wxWindow* peer)
-    {
-        m_peer = peer ;
-        m_controlRef = NULL ;
-    }
+    wxMacControl( wxWindow* peer , bool isRootControl = false ) ;    
+    wxMacControl( wxWindow* peer , ControlRef control ) ;
+    wxMacControl( wxWindow* peer , WXWidget control ) ;
+    virtual ~wxMacControl() ;
     
     
-    wxMacControl( wxWindow* peer , ControlRef control ) 
-    {
-        m_peer = peer ;
-        m_controlRef = control ;
-    }
-    wxMacControl( wxWindow* peer , WXWidget control )
-    {
-        m_peer = peer ;
-        m_controlRef = (ControlRef) control ;
-    }
-
-    virtual ~wxMacControl()
-    {
-    }
+    void Init() ;
     
     virtual void Dispose() ;
 
     
     virtual void Dispose() ;
 
@@ -469,6 +464,7 @@ public :
     virtual OSStatus SetFocus( ControlFocusPart focusPart ) ;
     virtual bool HasFocus() const ;
     virtual bool NeedsFocusRect() const ;
     virtual OSStatus SetFocus( ControlFocusPart focusPart ) ;
     virtual bool HasFocus() const ;
     virtual bool NeedsFocusRect() const ;
+    virtual void SetNeedsFocusRect( bool needs ) ;
     
     // templated helpers
 
     
     // templated helpers
 
@@ -500,7 +496,11 @@ public :
        
     // Flash the control for the specified amount of time
     virtual void Flash( ControlPartCode part , UInt32 ticks = 8 ) ;
        
     // Flash the control for the specified amount of time
     virtual void Flash( ControlPartCode part , UInt32 ticks = 8 ) ;
+
     virtual void VisibilityChanged( bool shown ) ;
     virtual void VisibilityChanged( bool shown ) ;
+    virtual void SuperChangedPosition() ;
+
+
     virtual void SetFont( const wxFont & font , const wxColour& foreground , long windowStyle ) ;
     virtual void SetBackground( const wxBrush &brush ) ;
     virtual ControlPartCode HandleKey(  SInt16 keyCode,  SInt16 charCode, EventModifiers modifiers ) ;
     virtual void SetFont( const wxFont & font , const wxColour& foreground , long windowStyle ) ;
     virtual void SetBackground( const wxBrush &brush ) ;
     virtual ControlPartCode HandleKey(  SInt16 keyCode,  SInt16 charCode, EventModifiers modifiers ) ;
@@ -519,12 +519,21 @@ public :
     virtual void SetDrawingEnabled( bool enable ) ;
 #ifdef __WXMAC_OSX__
     virtual bool GetNeedsDisplay() const ;
     virtual void SetDrawingEnabled( bool enable ) ;
 #ifdef __WXMAC_OSX__
     virtual bool GetNeedsDisplay() const ;
-    virtual void SetNeedsDisplay( bool needsDisplay , RgnHandle where = NULL ) ;
 #endif
 #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 ) ;
     virtual void GetRect( Rect *r ) ;
+
+    // in native parent window relative coordinates
     virtual void SetRect( Rect *r ) ;
     virtual void SetRect( Rect *r ) ;
+
     virtual void GetRectInWindowCoords( Rect *r ) ;
     virtual void GetBestRect( Rect *r ) ;
     virtual void SetTitle( const wxString &title ) ;
     virtual void GetRectInWindowCoords( Rect *r ) ;
     virtual void GetBestRect( Rect *r ) ;
     virtual void SetTitle( const wxString &title ) ;
@@ -566,11 +575,16 @@ public :
     // to be moved into a tab control class
     
     virtual OSStatus SetTabEnabled( SInt16 tabNo , bool enable ) ;
     // to be moved into a tab control class
     
     virtual OSStatus SetTabEnabled( SInt16 tabNo , bool enable ) ;
+    bool    IsCompositing() { return m_isCompositing ; }
+    bool    IsRootControl() { return m_isRootControl ; }
 protected :
     ControlRef  m_controlRef ;
     wxFont      m_font ;
     long        m_windowStyle ; 
     wxWindow*   m_peer ;
 protected :
     ControlRef  m_controlRef ;
     wxFont      m_font ;
     long        m_windowStyle ; 
     wxWindow*   m_peer ;
+    bool        m_needsFocusRect ;
+    bool        m_isCompositing ;
+    bool        m_isRootControl ;
 } ;
 
 #if wxMAC_USE_CORE_GRAPHICS
 } ;
 
 #if wxMAC_USE_CORE_GRAPHICS
@@ -625,10 +639,14 @@ private:
     wxBrush m_brush ;
 } ;
 
     wxBrush m_brush ;
 } ;
 
+#endif // wxMAC_USE_CORE_GRAPHICS
+
+#ifdef __WXMAC_OSX__
+
 CGColorSpaceRef wxMacGetGenericRGBColorSpace(void) ;
 void wxMacMemoryBufferReleaseProc(void *info, const void *data, size_t size) ;
 
 CGColorSpaceRef wxMacGetGenericRGBColorSpace(void) ;
 void wxMacMemoryBufferReleaseProc(void *info, const void *data, size_t size) ;
 
-#endif // wxMAC_USE_CORE_GRAPHICS
+#endif
 
 class WXDLLEXPORT wxBitmapRefData: public wxGDIRefData
 {
 
 class WXDLLEXPORT wxBitmapRefData: public wxGDIRefData
 {
@@ -666,7 +684,7 @@ public:
 #endif // wxUSE_PALETTE
     
     wxMask *      m_bitmapMask; // Optional mask
 #endif // wxUSE_PALETTE
     
     wxMask *      m_bitmapMask; // Optional mask
-#if wxMAC_USE_CORE_GRAPHICS
+#ifdef __WXMAC_OSX__
     CGImageRef    CGImageCreate() const ;
 #endif
      
     CGImageRef    CGImageCreate() const ;
 #endif
      
@@ -698,7 +716,7 @@ private :
     wxMemoryBuffer m_memBuf ;
     int           m_rawAccessCount ;
     bool          m_ok;
     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 ;
     mutable CGImageRef    m_cgImageRef ;
 #endif
     IconRef       m_iconRef ;
@@ -732,8 +750,21 @@ private :
     int m_height ;
 };
 
     int m_height ;
 };
 
+// toplevel.cpp
+
+ControlRef wxMacFindControlUnderMouse( wxTopLevelWindowMac* toplevelWindow, Point location , WindowRef window , ControlPartCode *outPart ) ;
+
 #endif // wxUSE_GUI
 
 #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
 //---------------------------------------------------------------------------
 //---------------------------------------------------------------------------
 // wxMac string conversions
 //---------------------------------------------------------------------------
@@ -744,10 +775,6 @@ void wxMacCleanupConverters() ;
 void wxMacStringToPascal( const wxString&from , StringPtr to ) ;
 wxString wxMacMakeStringFromPascal( ConstStringPtr from ) ;
 
 void wxMacStringToPascal( const wxString&from , StringPtr to ) ;
 wxString wxMacMakeStringFromPascal( ConstStringPtr from ) ;
 
-// toplevel.cpp
-
-ControlRef wxMacFindControlUnderMouse( Point location , WindowRef window , ControlPartCode *outPart ) ;
-
 // filefn.cpp
 
 wxString wxMacFSRefToPath( const FSRef *fsRef , CFStringRef additionalPathComponent = NULL ) ;
 // filefn.cpp
 
 wxString wxMacFSRefToPath( const FSRef *fsRef , CFStringRef additionalPathComponent = NULL ) ;