###############################################################################
# Copyright (c) 2000, 2006 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################
org_eclipse_swt_internal_cocoa_Cocoa=
Cocoa_HIWebViewCreate=
Cocoa_HIWebViewCreate_0=cast=HIViewRef *

Cocoa_HIWebViewGetWebView=
Cocoa_HIWebViewGetWebView_0=cast=HIViewRef

Cocoa_NSDeviceRGBColorSpace=flags=const

Cocoa_WebInitForCarbon=

Cocoa_memcpy=
Cocoa_memcpy_0=
Cocoa_memcpy_1=cast=(void *
Cocoa_memcpy_2=

Cocoa_objc_getClass=
Cocoa_objc_getClass_0=cast=(const char *)

Cocoa_objc_1msgSend__II=
Cocoa_objc_1msgSend__II_0=cast=(id)
Cocoa_objc_1msgSend__II_1=cast=(SEL)

Cocoa_objc_1msgSend__IIF=flags=no_gen
Cocoa_objc_1msgSend__IIF_0=cast=(id)
Cocoa_objc_1msgSend__IIF_1=cast=(SEL)
Cocoa_objc_1msgSend__IIF_2=

Cocoa_objc_1msgSend__III=
Cocoa_objc_1msgSend__III_0=cast=(id)
Cocoa_objc_1msgSend__III_1=cast=(SEL)
Cocoa_objc_1msgSend__III_2=

Cocoa_objc_1msgSend__IIII=
Cocoa_objc_1msgSend__IIII_0=cast=(id)
Cocoa_objc_1msgSend__IIII_1=cast=(SEL)
Cocoa_objc_1msgSend__IIII_2=
Cocoa_objc_1msgSend__IIII_3=

Cocoa_objc_1msgSend__IIIII=
Cocoa_objc_1msgSend__IIIII_0=cast=(id)
Cocoa_objc_1msgSend__IIIII_1=cast=(SEL)
Cocoa_objc_1msgSend__IIIII_2=
Cocoa_objc_1msgSend__IIIII_3=
Cocoa_objc_1msgSend__IIIII_4=

Cocoa_objc_1msgSend__IIIIII=
Cocoa_objc_1msgSend__IIIIII_0=cast=(id)
Cocoa_objc_1msgSend__IIIIII_1=cast=(SEL)
Cocoa_objc_1msgSend__IIIIII_2=
Cocoa_objc_1msgSend__IIIIII_3=
Cocoa_objc_1msgSend__IIIIII_4=
Cocoa_objc_1msgSend__IIIIII_5=

Cocoa_objc_1msgSend__IIILorg_eclipse_swt_internal_cocoa_NSPoint_2=
Cocoa_objc_1msgSend__IIILorg_eclipse_swt_internal_cocoa_NSPoint_2_0=cast=(id)
Cocoa_objc_1msgSend__IIILorg_eclipse_swt_internal_cocoa_NSPoint_2_1=cast=(SEL)
Cocoa_objc_1msgSend__IIILorg_eclipse_swt_internal_cocoa_NSPoint_2_2=
Cocoa_objc_1msgSend__IIILorg_eclipse_swt_internal_cocoa_NSPoint_2_3=flags=struct

Cocoa_objc_1msgSend__IIILorg_eclipse_swt_internal_cocoa_NSRect_2I=
Cocoa_objc_1msgSend__IIILorg_eclipse_swt_internal_cocoa_NSRect_2I_0=cast=(id)
Cocoa_objc_1msgSend__IIILorg_eclipse_swt_internal_cocoa_NSRect_2I_1=cast=(SEL)
Cocoa_objc_1msgSend__IIILorg_eclipse_swt_internal_cocoa_NSRect_2I_2=
Cocoa_objc_1msgSend__IIILorg_eclipse_swt_internal_cocoa_NSRect_2I_3=flags=struct
Cocoa_objc_1msgSend__IIILorg_eclipse_swt_internal_cocoa_NSRect_2I_4=

Cocoa_objc_1msgSend__IILorg_eclipse_swt_internal_cocoa_NSPoint_2=
Cocoa_objc_1msgSend__IILorg_eclipse_swt_internal_cocoa_NSPoint_2_0=cast=(id)
Cocoa_objc_1msgSend__IILorg_eclipse_swt_internal_cocoa_NSPoint_2_1=cast=(SEL)
Cocoa_objc_1msgSend__IILorg_eclipse_swt_internal_cocoa_NSPoint_2_2=

Cocoa_objc_1msgSend__IILorg_eclipse_swt_internal_cocoa_NSPoint_2I=
Cocoa_objc_1msgSend__IILorg_eclipse_swt_internal_cocoa_NSPoint_2I_0=cast=(id)
Cocoa_objc_1msgSend__IILorg_eclipse_swt_internal_cocoa_NSPoint_2I_1=cast=(SEL)
Cocoa_objc_1msgSend__IILorg_eclipse_swt_internal_cocoa_NSPoint_2I_2=flags=struct
Cocoa_objc_1msgSend__IILorg_eclipse_swt_internal_cocoa_NSPoint_2I_3=

Cocoa_objc_1msgSend__IILorg_eclipse_swt_internal_cocoa_NSRect_2=
Cocoa_objc_1msgSend__IILorg_eclipse_swt_internal_cocoa_NSRect_2_0=cast=(id)
Cocoa_objc_1msgSend__IILorg_eclipse_swt_internal_cocoa_NSRect_2_1=cast=(SEL)
Cocoa_objc_1msgSend__IILorg_eclipse_swt_internal_cocoa_NSRect_2_2=flags=struct

Cocoa_objc_1msgSend__IILorg_eclipse_swt_internal_cocoa_NSRect_2I=
Cocoa_objc_1msgSend__IILorg_eclipse_swt_internal_cocoa_NSRect_2I_0=cast=(id)
Cocoa_objc_1msgSend__IILorg_eclipse_swt_internal_cocoa_NSRect_2I_1=cast=(SEL)
Cocoa_objc_1msgSend__IILorg_eclipse_swt_internal_cocoa_NSRect_2I_2=flags=struct
Cocoa_objc_1msgSend__IILorg_eclipse_swt_internal_cocoa_NSRect_2I_3=

Cocoa_objc_1msgSend__IILorg_eclipse_swt_internal_cocoa_NSSize_2=
Cocoa_objc_1msgSend__IILorg_eclipse_swt_internal_cocoa_NSSize_2_0=cast=(id)
Cocoa_objc_1msgSend__IILorg_eclipse_swt_internal_cocoa_NSSize_2_1=cast=(SEL)
Cocoa_objc_1msgSend__IILorg_eclipse_swt_internal_cocoa_NSSize_2_2=flags=struct

Cocoa_objc_1msgSend__II_3IIIIIIIIIII=
Cocoa_objc_1msgSend__II_3IIIIIIIIIII_0=cast=(id)
Cocoa_objc_1msgSend__II_3IIIIIIIIIII_1=cast=SEL
Cocoa_objc_1msgSend__II_3IIIIIIIIIII_2=
Cocoa_objc_1msgSend__II_3IIIIIIIIIII_3=
Cocoa_objc_1msgSend__II_3IIIIIIIIIII_4=
Cocoa_objc_1msgSend__II_3IIIIIIIIIII_5=
Cocoa_objc_1msgSend__II_3IIIIIIIIIII_6=
Cocoa_objc_1msgSend__II_3IIIIIIIIIII_7=
Cocoa_objc_1msgSend__II_3IIIIIIIIIII_8=
Cocoa_objc_1msgSend__II_3IIIIIIIIIII_9=
Cocoa_objc_1msgSend__II_3IIIIIIIIIII_10=
Cocoa_objc_1msgSend__II_3IIIIIIIIIII_11=
Cocoa_objc_1msgSend__II_3IIIIIIIIIII_12=

Cocoa_sel_registerName=
Cocoa_sel_registerName_0=cast=(const char *)


org_eclipse_swt_internal_cocoa_NSPoint=
NSPoint_x=
NSPoint_y=

org_eclipse_swt_internal_cocoa_NSRect=
NSRect_x=accessor=origin.x
NSRect_y=accessor=origin.y
NSRect_width=accessor=size.width
NSRect_height=accessor=size.height

org_eclipse_swt_internal_cocoa_NSSize=
NSSize_width=
NSSize_height=

