X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b89f23763c6bfcc2e20698cfdea63152d95e856e..c50f92d08cc3633f8127931e7cf5d362ab8ac392:/include/wx/mac/private.h diff --git a/include/wx/mac/private.h b/include/wx/mac/private.h index a2db2e0e71..7c50c1f2fe 100644 --- a/include/wx/mac/private.h +++ b/include/wx/mac/private.h @@ -5,10 +5,10 @@ // with "wx". // Author: Stefan Csomor // Modified by: -// Created: ??/??/98 +// Created: 1998-01-01 // RCS-ID: $Id$ // Copyright: (c) Stefan Csomor -// Licence: wxWindows licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef _WX_PRIVATE_H_ @@ -17,9 +17,8 @@ #include "wx/defs.h" #include "wx/app.h" -#if defined(__POWERPC__) && defined(__DARWIN__) +#ifdef __DARWIN__ # include -# define TARGET_CARBON 1 #else # include # include @@ -34,6 +33,8 @@ #error "please update to Apple's lastest universal headers from http://developer.apple.com/sdk/" #endif +#if wxUSE_GUI + #include "wx/window.h" class wxMacPortStateHelper @@ -51,14 +52,14 @@ public: GrafPtr GetCurrentPort() { return m_currentPort ; } private: - GrafPtr m_currentPort ; - GrafPtr m_oldPort ; - RgnHandle m_clip ; + GrafPtr m_currentPort ; + GrafPtr m_oldPort ; + RgnHandle m_clip ; ThemeDrawingState m_drawingState ; - short m_textFont ; - short m_textSize ; - short m_textStyle ; - short m_textMode ; + short m_textFont ; + short m_textSize ; + short m_textStyle ; + short m_textMode ; } ; class WXDLLEXPORT wxMacPortSetter @@ -108,9 +109,12 @@ private: // app.h bool wxMacConvertEventToRecord( EventRef event , EventRecord *rec) ; +#endif // wxUSE_GUI + // filefn.h WXDLLEXPORT wxString wxMacFSSpec2MacFilename( const FSSpec *spec ) ; WXDLLEXPORT void wxMacFilename2FSSpec( const char *path , FSSpec *spec ) ; +WXDLLEXPORT void wxMacFilename2FSSpec( const wxChar *path , FSSpec *spec ) ; # ifndef __DARWIN__ // Mac file names are POSIX (Unix style) under Darwin, so these are not needed WXDLLEXPORT wxString wxMacFSSpec2UnixFilename( const FSSpec *spec ) ; @@ -124,12 +128,14 @@ WXDLLEXPORT wxString wxMacFindFolder(short vRefNum, OSType folderType, Boolean createFolder); -GWorldPtr wxMacCreateGWorld( int width , int height , int depth ) ; -void wxMacDestroyGWorld( GWorldPtr gw ) ; -PicHandle wxMacCreatePict( GWorldPtr gw , GWorldPtr mask = NULL ) ; +#if wxUSE_GUI + +GWorldPtr wxMacCreateGWorld( int width , int height , int depth ) ; +void wxMacDestroyGWorld( GWorldPtr gw ) ; +PicHandle wxMacCreatePict( GWorldPtr gw , GWorldPtr mask = NULL ) ; CIconHandle wxMacCreateCIcon(GWorldPtr image , GWorldPtr mask , short dstDepth , short iconSize ) ; -void wxMacSetColorTableEntry( CTabHandle newColors , int index , int red , int green , int blue ) ; -CTabHandle wxMacCreateColorTable( int numColors ) ; +void wxMacSetColorTableEntry( CTabHandle newColors , int index , int red , int green , int blue ) ; +CTabHandle wxMacCreateColorTable( int numColors ) ; void wxMacCreateBitmapButton( ControlButtonContentInfo*info , const wxBitmap& bitmap , int forceType = 0 ) ; #define MAC_WXCOLORREF(a) (*((RGBColor*)&(a))) @@ -143,18 +149,90 @@ void wxMacCreateBitmapButton( ControlButtonContentInfo*info , const wxBitmap& bi #define MAC_WXPOINTPTR(a) ((Point*)a) #define MAC_WXHMENU(a) ((MenuHandle)a) -// string conversions / +#endif // wxUSE_GUI -#if TARGET_CARBON -// converts this string into a carbon foundation string with optional pc 2 mac encoding -CFStringRef wxMacCreateCFString( const wxString &str , bool pc2macEncoding ) ; +//--------------------------------------------------------------------------- +// wxMac string conversions +//--------------------------------------------------------------------------- + +void wxMacSetupConverters() ; +void wxMacCleanupConverters() ; + +void wxMacStringToPascal( const wxString&from , StringPtr to ) ; +wxString wxMacMakeStringFromPascal( ConstStringPtr from ) ; -// converts this string into a carbon foundation string with optional pc 2 mac encoding -inline CFStringRef wxMacCreateCFString( const wxString &str ) - { return wxMacCreateCFString( str , wxApp::s_macDefaultEncodingIsPC ) ; } +void wxMacConvertNewlines13To10( char * data ) ; +void wxMacConvertNewlines10To13( char * data ) ; +void wxMacConvertNewlines13To10( wxString *data ) ; +void wxMacConvertNewlines10To13( wxString *data ) ; -#endif //TARGET_CARBON +#if wxUSE_UNICODE +void wxMacConvertNewlines13To10( wxChar * data ) ; +void wxMacConvertNewlines10To13( wxChar * data ) ; +#endif + +#if TARGET_CARBON +class wxMacCFStringHolder +{ +public: + wxMacCFStringHolder() + { + m_cfs = NULL ; + m_release = false ; + } + + wxMacCFStringHolder(const wxString &str) + { + m_cfs = NULL ; + m_release = false ; + Assign( str ) ; + } + + wxMacCFStringHolder(CFStringRef ref , bool release = true ) + { + m_cfs = ref ; + m_release = release ; + } + + ~wxMacCFStringHolder() + { + Release() ; + } + + wxMacCFStringHolder& operator=(const wxString& str) + { + Release() ; + Assign( str ) ; + return *this; + } + + CFStringRef Detach() + { + CFStringRef retval = m_cfs ; + m_release = false ; + m_cfs = NULL ; + return retval ; + } + + void Release() + { + if ( m_release && m_cfs) + CFRelease( m_cfs ) ; + m_cfs = NULL ; + } + + operator CFStringRef () { return m_cfs; } + wxString AsString() ; + +private: + void Assign( const wxString &str ) ; + + CFStringRef m_cfs; + bool m_release ; +} ; + +#endif #endif // _WX_PRIVATE_H_