+//
+// helper class for allocating and deallocating Universal Proc Ptrs
+//
+
+template <typename procType, typename uppType , uppType (*newUPP)(procType) , void (*disposeUPP)(uppType) > class wxMacUPP
+{
+public :
+ wxMacUPP( procType proc )
+ {
+ m_upp = NULL ;
+ m_upp = (*newUPP)( NULL ) ;
+ }
+ ~wxMacUPP()
+ {
+ if ( m_upp )
+ disposeUPP( m_upp ) ;
+ }
+ operator uppType() { return m_upp ; }
+private :
+ uppType m_upp ;
+} ;
+
+typedef wxMacUPP<NMProcPtr,NMUPP,NewNMUPP,DisposeNMUPP> wxMacNMUPP ;
+
+#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 wxMacCreateBitmapButton( ControlButtonContentInfo*info , const wxBitmap& bitmap , int forceType = 0 ) ;
+
+#define MAC_WXCOLORREF(a) (*((RGBColor*)&(a)))
+#define MAC_WXHBITMAP(a) (GWorldPtr(a))
+#define MAC_WXHMETAFILE(a) (PicHandle(a))
+#define MAC_WXHICON(a) (CIconHandle(a))
+#define MAC_WXHCURSOR(a) (CursHandle(a))
+#define MAC_WXHRGN(a) (RgnHandle(a))
+#define MAC_WXHWND(a) (WindowPtr(a))
+#define MAC_WXRECPTR(a) ((Rect*)a)
+#define MAC_WXPOINTPTR(a) ((Point*)a)
+#define MAC_WXHMENU(a) ((MenuHandle)a)
+
+struct wxOpaqueWindowRef
+{
+ wxOpaqueWindowRef( WindowRef ref ) { m_data = ref ; }
+ operator WindowRef() { return m_data ; }
+private :
+ WindowRef m_data ;
+} ;
+
+wxWindow * wxFindControlFromMacControl(ControlRef inControl ) ;
+wxTopLevelWindowMac* wxFindWinFromMacWindow( WindowRef inWindow ) ;
+wxMenu* wxFindMenuFromMacMenu(MenuRef inMenuRef) ;
+
+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 ) ;
+