00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef ADOBE_MACINTOSH_MEMORY_HPP
00010 #define ADOBE_MACINTOSH_MEMORY_HPP
00011
00012
00013
00014 #include <adobe/macintosh_carbon_safe.hpp>
00015 #include <adobe/memory.hpp>
00016
00017
00018
00019 namespace adobe {
00020
00021
00022
00023 #define ADOBE_DELETE_PTR_SPECIALIZATION(type, func) \
00024 template<> \
00025 struct delete_ptr<type> \
00026 { \
00027 void operator()(type x) const \
00028 { if (x) func(x); } \
00029 };
00030
00031
00032
00033
00034
00035 ADOBE_DELETE_PTR_SPECIALIZATION(::AEEventHandlerUPP, ::DisposeAEEventHandlerUPP)
00036 ADOBE_DELETE_PTR_SPECIALIZATION(::ATSUStyle, ::ATSUDisposeStyle)
00037 ADOBE_DELETE_PTR_SPECIALIZATION(::ATSUTextLayout, ::ATSUDisposeTextLayout)
00038 ADOBE_DELETE_PTR_SPECIALIZATION(::CFBundleRef, ::CFRelease)
00039 ADOBE_DELETE_PTR_SPECIALIZATION(::CFLocaleRef, ::CFRelease)
00040 ADOBE_DELETE_PTR_SPECIALIZATION(::CFMutableDictionaryRef, ::CFRelease)
00041 ADOBE_DELETE_PTR_SPECIALIZATION(::CFNumberFormatterRef, ::CFRelease)
00042 ADOBE_DELETE_PTR_SPECIALIZATION(::CFStringRef, ::CFRelease)
00043 ADOBE_DELETE_PTR_SPECIALIZATION(::CFURLRef, ::CFRelease)
00044 ADOBE_DELETE_PTR_SPECIALIZATION(::CGColorSpaceRef, ::CGColorSpaceRelease)
00045 ADOBE_DELETE_PTR_SPECIALIZATION(::CGDataProviderRef, ::CGDataProviderRelease)
00046 ADOBE_DELETE_PTR_SPECIALIZATION(::CGImageRef, ::CGImageRelease)
00047 ADOBE_DELETE_PTR_SPECIALIZATION(::ControlEditTextValidationUPP, ::DisposeControlEditTextValidationUPP)
00048 ADOBE_DELETE_PTR_SPECIALIZATION(::ControlUserPaneActivateUPP, ::DisposeControlUserPaneActivateUPP)
00049 ADOBE_DELETE_PTR_SPECIALIZATION(::ControlUserPaneDrawUPP, ::DisposeControlUserPaneDrawUPP)
00050 ADOBE_DELETE_PTR_SPECIALIZATION(::ControlUserPaneFocusUPP, ::DisposeControlUserPaneFocusUPP)
00051 ADOBE_DELETE_PTR_SPECIALIZATION(::ControlUserPaneHitTestUPP, ::DisposeControlUserPaneHitTestUPP)
00052
00053 ADOBE_DELETE_PTR_SPECIALIZATION(::ControlUserPaneKeyDownUPP, ::DisposeControlUserPaneKeyDownUPP)
00054 ADOBE_DELETE_PTR_SPECIALIZATION(::ControlUserPaneTrackingUPP, ::DisposeControlUserPaneTrackingUPP)
00055 ADOBE_DELETE_PTR_SPECIALIZATION(::DataBrowserAcceptDragUPP, ::DisposeDataBrowserAcceptDragUPP)
00056 ADOBE_DELETE_PTR_SPECIALIZATION(::DataBrowserAddDragItemUPP, ::DisposeDataBrowserAddDragItemUPP)
00057 ADOBE_DELETE_PTR_SPECIALIZATION(::DataBrowserDrawItemUPP, ::DisposeDataBrowserDrawItemUPP)
00058 ADOBE_DELETE_PTR_SPECIALIZATION(::DataBrowserEditItemUPP, ::DisposeDataBrowserEditItemUPP)
00059 ADOBE_DELETE_PTR_SPECIALIZATION(::DataBrowserGetContextualMenuUPP, ::DisposeDataBrowserGetContextualMenuUPP)
00060 ADOBE_DELETE_PTR_SPECIALIZATION(::DataBrowserHitTestUPP, ::DisposeDataBrowserHitTestUPP)
00061 ADOBE_DELETE_PTR_SPECIALIZATION(::DataBrowserItemAcceptDragUPP, ::DisposeDataBrowserItemAcceptDragUPP)
00062 ADOBE_DELETE_PTR_SPECIALIZATION(::DataBrowserItemCompareUPP, ::DisposeDataBrowserItemCompareUPP)
00063 ADOBE_DELETE_PTR_SPECIALIZATION(::DataBrowserItemDataUPP, ::DisposeDataBrowserItemDataUPP)
00064 ADOBE_DELETE_PTR_SPECIALIZATION(::DataBrowserItemDragRgnUPP, ::DisposeDataBrowserItemDragRgnUPP)
00065 ADOBE_DELETE_PTR_SPECIALIZATION(::DataBrowserItemHelpContentUPP, ::DisposeDataBrowserItemHelpContentUPP)
00066 ADOBE_DELETE_PTR_SPECIALIZATION(::DataBrowserItemNotificationUPP, ::DisposeDataBrowserItemNotificationUPP)
00067 ADOBE_DELETE_PTR_SPECIALIZATION(::DataBrowserItemNotificationWithItemUPP, ::DisposeDataBrowserItemNotificationWithItemUPP)
00068 ADOBE_DELETE_PTR_SPECIALIZATION(::DataBrowserItemReceiveDragUPP, ::DisposeDataBrowserItemReceiveDragUPP)
00069 ADOBE_DELETE_PTR_SPECIALIZATION(::DataBrowserItemUPP, ::DisposeDataBrowserItemUPP)
00070 ADOBE_DELETE_PTR_SPECIALIZATION(::DataBrowserPostProcessDragUPP, ::DisposeDataBrowserPostProcessDragUPP)
00071 ADOBE_DELETE_PTR_SPECIALIZATION(::DataBrowserSelectContextualMenuUPP, ::DisposeDataBrowserSelectContextualMenuUPP)
00072 ADOBE_DELETE_PTR_SPECIALIZATION(::DataBrowserTrackingUPP, ::DisposeDataBrowserTrackingUPP)
00073 ADOBE_DELETE_PTR_SPECIALIZATION(::EventHandlerRef, ::RemoveEventHandler)
00074 ADOBE_DELETE_PTR_SPECIALIZATION(::EventHandlerUPP, ::DisposeEventHandlerUPP)
00075 ADOBE_DELETE_PTR_SPECIALIZATION(::EventLoopIdleTimerUPP, ::DisposeEventLoopIdleTimerUPP)
00076 ADOBE_DELETE_PTR_SPECIALIZATION(::EventLoopTimerRef, ::RemoveEventLoopTimer)
00077 ADOBE_DELETE_PTR_SPECIALIZATION(::EventLoopTimerUPP, ::DisposeEventLoopTimerUPP)
00078 ADOBE_DELETE_PTR_SPECIALIZATION(::EventRef, ::ReleaseEvent)
00079 ADOBE_DELETE_PTR_SPECIALIZATION(::Handle, ::DisposeHandle)
00080 ADOBE_DELETE_PTR_SPECIALIZATION(::NavDialogRef, ::NavDialogDispose)
00081 ADOBE_DELETE_PTR_SPECIALIZATION(::NavReplyRecord*, ::NavDisposeReply)
00082
00083 #if !__LP64__
00084 ADOBE_DELETE_PTR_SPECIALIZATION(::ControlUserPaneBackgroundUPP, ::DisposeControlUserPaneBackgroundUPP)
00085 ADOBE_DELETE_PTR_SPECIALIZATION(::ControlRef, ::DisposeControl)
00086 ADOBE_DELETE_PTR_SPECIALIZATION(::MenuRef, ::DisposeMenu)
00087 ADOBE_DELETE_PTR_SPECIALIZATION(::WindowRef, ::ReleaseWindow)
00088 #endif
00089
00090
00091
00092 typedef adobe::auto_resource< ::CFStringRef > auto_cfstring_t;
00093 typedef adobe::auto_resource< ::ControlRef > auto_control_t;
00094
00095
00096
00097 }
00098
00099
00100
00101 #endif
00102
00103