#
# return function parameters
#
# If the return or parameter has a * in front of it, it's assumed to be a struct
# If there's no star, it's assumed to be an object. If it's int or double, well,
# it's taken to be an int or a double.
#

# Services
int NSShowsServicesMenuItem NSString
int NSSetShowsServicesMenuItem NSString int
void NSUpdateDynamicServices
int NSPerformService NSString NSPasteboard
void NSRegisterServicesProvider NSObject NSString

# Graphics
# TODO: Needs C array (NSColor **colors) support
void NSRectFill *NSRect
# void NSRectFillList(const NSRect *rects, int count);
# void NSRectFillListWithGrays(const NSRect *rects, const float *grays, int num);
# void NSRectFillListWithColors(const NSRect *rects, NSColor **colors, int num);
void NSRectFillUsingOperation *NSRect int
# void NSRectFillListUsingOperation(const NSRect *rects, int count, NSCompositingOperation op);
# void NSRectFillListWithColorsUsingOperation(const NSRect *rects, NSColor **colors, int num, NSCompositingOperation op);
void NSFrameRect *NSRect
void NSFrameRectWithWidth *NSRect double
void NSFrameRectWithWidthUsingOperation *NSRect double int
void NSRectClip *NSRect
# void NSRectClipList(const NSRect *rects, int count);
# NSRect NSDrawTiledRects(NSRect boundsRect, NSRect clipRect, const NSRectEdge *sides, const float *grays, int count);
void NSDrawGrayBezel *NSRect *NSRect
void NSDrawGroove *NSRect *NSRect
void NSDrawWhiteBezel *NSRect *NSRect
void NSDrawButton *NSRect *NSRect
void NSEraseRect *NSRect
NSColor NSReadPixel *NSPoint
# void NSDrawBitmap(NSRect rect, int width, int height, int bps, int spp, int bpp, int bpr, BOOL isPlanar, BOOL hasAlpha, NSString *colorSpaceName, const unsigned char *const data[5]);
# void NSCopyBitmapFromGState int *NSRect *NSRect
void NSCopyBits int *NSRect *NSPoint
void NSHighlightRect *NSRect
void NSBeep
# void NSCountWindows int* count
# void NSWindowList(int size, int list[]);
# void NSCountWindowsForContext(int context, int *count);
# void NSWindowListForContext(int context, int size, int list[]);
# NSRect NSDrawColorTiledRects(NSRect boundsRect, NSRect clipRect, const NSRectEdge *sides, NSColor **colors, int count);
void NSDrawDarkBezel *NSRect *NSRect
void NSDrawLightBezel *NSRect *NSRect
void NSDottedFrameRect *NSRect
void NSDrawWindowBackground *NSRect
void NSSetFocusRingStyle int

int NSInterfaceStyleForKey NSString NSResponder

# Alert panels
# NOTE: No support for variable argument lists - use Perl interpolation of variables into msg instead.
int NSRunAlertPanel NSString NSString NSString NSString NSString
int NSRunInformationalAlertPanel NSString NSString NSString NSString NSString
int NSRunCriticalAlertPanel NSString NSString NSString NSString NSString

# void NSBeginAlertSheet(NSString *title, NSString *defaultButton, NSString *alternateButton, NSString *otherButton, NSWindow *docWindow, id modalDelegate, SEL didEndSelector, SEL didDismissSelector, void *contextInfo, NSString *msg, ...);
# void NSBeginInformationalAlertSheet(NSString *title, NSString *defaultButton, NSString *alternateButton, NSString *otherButton, NSWindow *docWindow, id modalDelegate, SEL didEndSelector, SEL didDismissSelector, void *contextInfo, NSString *msg, ...);
# void NSBeginCriticalAlertSheet(NSString *title, NSString *defaultButton, NSString *alternateButton, NSString *otherButton, NSWindow *docWindow, id modalDelegate, SEL didEndSelector, SEL didDismissSelector, void *contextInfo, NSString *msg, ...);

NSObject NSGetAlertPanel NSString NSString NSString NSString NSString
NSObject NSGetInformationalAlertPanel NSString NSString NSString NSString NSString
NSObject NSGetCriticalAlertPanel NSString NSString NSString NSString NSString

void NSReleaseAlertPanel NSObject


# Copy and paste
NSString NSCreateFilenamePboardType NSString
NSString NSCreateFileContentsPboardType NSString
NSString NSGetFileType NSString
NSArray NSGetFileTypes NSArray
