X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ddb08e02c4f2244300ec11d3beb2fe615cbc253c..b4626104e5a68430c5c7c4f3a0b79425be9945e8:/include/wx/mac/carbon/private.h diff --git a/include/wx/mac/carbon/private.h b/include/wx/mac/carbon/private.h index d6ec8a1623..63109375ca 100644 --- a/include/wx/mac/carbon/private.h +++ b/include/wx/mac/carbon/private.h @@ -29,9 +29,10 @@ # include # include # include +# include #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 { @@ -378,8 +380,6 @@ CIconHandle wxMacCreateCIcon(GWorldPtr image , GWorldPtr mask , short dstDep void wxMacSetColorTableEntry( CTabHandle newColors , int index , int red , int green , int blue ) ; CTabHandle wxMacCreateColorTable( int numColors ) ; */ -PicHandle wxMacCreatePicHandle( const wxBitmap &bmp ) ; -IconRef wxMacCreateIconRef(const wxBitmap& bmp) ; void wxMacCreateBitmapButton( ControlButtonContentInfo*info , const wxBitmap& bitmap , int forceType = 0 ) ; void wxMacReleaseBitmapButton( ControlButtonContentInfo*info ) ; @@ -402,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) ; @@ -410,25 +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 ) ; +ControlActionUPP GetwxMacLiveScrollbarActionProc() ; + class wxMacControl { public : - wxMacControl() - { - m_controlRef = NULL ; - } + wxMacControl( wxWindow* peer , bool isRootControl = false ) ; + wxMacControl( wxWindow* peer , ControlRef control ) ; + wxMacControl( wxWindow* peer , WXWidget control ) ; + virtual ~wxMacControl() ; - wxMacControl( ControlRef control ) - { - m_controlRef = control ; - } - wxMacControl( WXWidget control ) - { - m_controlRef = (ControlRef) control ; - } - virtual ~wxMacControl() - { - } + void Init() ; virtual void Dispose() ; @@ -467,6 +464,7 @@ public : virtual OSStatus SetFocus( ControlFocusPart focusPart ) ; virtual bool HasFocus() const ; virtual bool NeedsFocusRect() const ; + virtual void SetNeedsFocusRect( bool needs ) ; // templated helpers @@ -498,7 +496,11 @@ public : // Flash the control for the specified amount of time virtual void Flash( ControlPartCode part , UInt32 ticks = 8 ) ; + 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 ) ; @@ -515,13 +517,23 @@ public : // invalidates this control and all children virtual void InvalidateWithChildren() ; virtual void SetDrawingEnabled( bool enable ) ; +#ifdef __WXMAC_OSX__ virtual bool GetNeedsDisplay() const ; - virtual void SetNeedsDisplay( bool needsDisplay , RgnHandle where = NULL ) ; +#endif + // 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 ) ; - virtual void ScrollRect( const wxRect &rect , int dx , int dy ) ; + // 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 ) ; @@ -563,10 +575,16 @@ public : // 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 ; + bool m_needsFocusRect ; + bool m_isCompositing ; + bool m_isRootControl ; } ; #if wxMAC_USE_CORE_GRAPHICS @@ -621,10 +639,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 { @@ -662,9 +684,23 @@ public: #endif // wxUSE_PALETTE wxMask * m_bitmapMask; // Optional mask -#if wxMAC_USE_CORE_GRAPHICS +#ifdef __WXMAC_OSX__ CGImageRef CGImageCreate() const ; #endif + + // returns true if the bitmap has a size that + // can be natively transferred into a true icon + // if no is returned GetIconRef will still produce + // an icon but it will be generated via a PICT and + // rescaled to 16 x 16 + bool HasNativeSize() ; + + // caller should increase ref count if needed longer + // than the bitmap exists + IconRef GetIconRef() ; + + // returns a Pict from the bitmap content + PicHandle GetPictHandle() ; GWorldPtr GetHBITMAP(GWorldPtr * mask = NULL ) const ; void UpdateAlphaMask() const ; @@ -680,9 +716,11 @@ 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 ; + PicHandle m_pictHandle ; GWorldPtr m_hBitmap; GWorldPtr m_hMaskBitmap ; wxMemoryBuffer m_maskMemBuf ; @@ -712,8 +750,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 //--------------------------------------------------------------------------- @@ -724,10 +775,6 @@ void wxMacCleanupConverters() ; 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 ) ;