summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/NSL.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/quicktime_win32/NSL.h')
-rw-r--r--common/quicktime_win32/NSL.h362
1 files changed, 362 insertions, 0 deletions
diff --git a/common/quicktime_win32/NSL.h b/common/quicktime_win32/NSL.h
new file mode 100644
index 0000000..26ed061
--- /dev/null
+++ b/common/quicktime_win32/NSL.h
@@ -0,0 +1,362 @@
+/*
+ File: NSL.h
+
+ Contains: Interface to API for using the NSL User Interface
+
+ Version: QuickTime 7.3
+
+ Copyright: (c) 2007 (c) 1997-2001 by Apple Computer, Inc., all rights reserved
+
+ Bugs?: For bug reports, consult the following page on
+ the World Wide Web:
+
+ http://developer.apple.com/bugreporter/
+
+*/
+#ifndef __NSL__
+#define __NSL__
+
+#ifndef __NSLCORE__
+#include <NSLCore.h>
+#endif
+
+#ifndef __EVENTS__
+#include <Events.h>
+#endif
+
+
+
+
+#if PRAGMA_ONCE
+#pragma once
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if PRAGMA_IMPORT
+#pragma import on
+#endif
+
+#if PRAGMA_STRUCT_ALIGN
+ #pragma options align=mac68k
+#elif PRAGMA_STRUCT_PACKPUSH
+ #pragma pack(push, 2)
+#elif PRAGMA_STRUCT_PACK
+ #pragma pack(2)
+#endif
+
+typedef UInt32 NSLDialogOptionFlags;
+enum {
+ kNSLDefaultNSLDlogOptions = 0x00000000, /* use defaults for all the options */
+ kNSLNoURLTEField = 0x00000001, /* don't show url text field for manual entry */
+ kNSLAddServiceTypes = 0x00000002, /* add the service type if a user enters an incomplete URL */
+ kNSLClientHandlesRecents = 0x00000004 /* Stops NSLStandardGetURL from adding the selection to the recent items folder */
+};
+
+
+struct NSLDialogOptions {
+ UInt16 version;
+ NSLDialogOptionFlags dialogOptionFlags; /* option flags for affecting the dialog's behavior */
+ Str255 windowTitle;
+ Str255 actionButtonLabel; /* label of the default button (or null string for default) */
+ Str255 cancelButtonLabel; /* label of the cancel button (or null string for default) */
+ Str255 message; /* custom message prompt (or null string for default) */
+};
+typedef struct NSLDialogOptions NSLDialogOptions;
+typedef CALLBACK_API( Boolean , NSLURLFilterProcPtr )(char *url, Str255 displayString);
+/* you can provide for calls to NSLStandardGetURL*/
+typedef CALLBACK_API( void , NSLEventProcPtr )(EventRecord *newEvent, void *userContext);
+typedef STACK_UPP_TYPE(NSLURLFilterProcPtr) NSLURLFilterUPP;
+typedef STACK_UPP_TYPE(NSLEventProcPtr) NSLEventUPP;
+/*
+ * NewNSLURLFilterUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( NSLURLFilterUPP )
+NewNSLURLFilterUPP(NSLURLFilterProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppNSLURLFilterProcInfo = 0x000003D0 }; /* pascal 1_byte Func(4_bytes, 4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(NSLURLFilterUPP) NewNSLURLFilterUPP(NSLURLFilterProcPtr userRoutine) { return (NSLURLFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppNSLURLFilterProcInfo, GetCurrentArchitecture()); }
+ #else
+ #define NewNSLURLFilterUPP(userRoutine) (NSLURLFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppNSLURLFilterProcInfo, GetCurrentArchitecture())
+ #endif
+#endif
+
+/*
+ * NewNSLEventUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( NSLEventUPP )
+NewNSLEventUPP(NSLEventProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppNSLEventProcInfo = 0x000003C0 }; /* pascal no_return_value Func(4_bytes, 4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(NSLEventUPP) NewNSLEventUPP(NSLEventProcPtr userRoutine) { return (NSLEventUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppNSLEventProcInfo, GetCurrentArchitecture()); }
+ #else
+ #define NewNSLEventUPP(userRoutine) (NSLEventUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppNSLEventProcInfo, GetCurrentArchitecture())
+ #endif
+#endif
+
+/*
+ * DisposeNSLURLFilterUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+DisposeNSLURLFilterUPP(NSLURLFilterUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeNSLURLFilterUPP(NSLURLFilterUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
+ #else
+ #define DisposeNSLURLFilterUPP(userUPP) DisposeRoutineDescriptor(userUPP)
+ #endif
+#endif
+
+/*
+ * DisposeNSLEventUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+DisposeNSLEventUPP(NSLEventUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeNSLEventUPP(NSLEventUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
+ #else
+ #define DisposeNSLEventUPP(userUPP) DisposeRoutineDescriptor(userUPP)
+ #endif
+#endif
+
+/*
+ * InvokeNSLURLFilterUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( Boolean )
+InvokeNSLURLFilterUPP(
+ char * url,
+ Str255 displayString,
+ NSLURLFilterUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(Boolean) InvokeNSLURLFilterUPP(char * url, Str255 displayString, NSLURLFilterUPP userUPP) { return (Boolean)CALL_TWO_PARAMETER_UPP(userUPP, uppNSLURLFilterProcInfo, url, displayString); }
+ #else
+ #define InvokeNSLURLFilterUPP(url, displayString, userUPP) (Boolean)CALL_TWO_PARAMETER_UPP((userUPP), uppNSLURLFilterProcInfo, (url), (displayString))
+ #endif
+#endif
+
+/*
+ * InvokeNSLEventUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+InvokeNSLEventUPP(
+ EventRecord * newEvent,
+ void * userContext,
+ NSLEventUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) InvokeNSLEventUPP(EventRecord * newEvent, void * userContext, NSLEventUPP userUPP) { CALL_TWO_PARAMETER_UPP(userUPP, uppNSLEventProcInfo, newEvent, userContext); }
+ #else
+ #define InvokeNSLEventUPP(newEvent, userContext, userUPP) CALL_TWO_PARAMETER_UPP((userUPP), uppNSLEventProcInfo, (newEvent), (userContext))
+ #endif
+#endif
+
+#if CALL_NOT_IN_CARBON || OLDROUTINENAMES
+ /* support for pre-Carbon UPP routines: New...Proc and Call...Proc */
+ #define NewNSLURLFilterProc(userRoutine) NewNSLURLFilterUPP(userRoutine)
+ #define NewNSLEventProc(userRoutine) NewNSLEventUPP(userRoutine)
+ #define CallNSLURLFilterProc(userRoutine, url, displayString) InvokeNSLURLFilterUPP(url, displayString, userRoutine)
+ #define CallNSLEventProc(userRoutine, newEvent, userContext) InvokeNSLEventUPP(newEvent, userContext, userRoutine)
+#endif /* CALL_NOT_IN_CARBON */
+
+
+/* <--- function returns OSStatus of the operation. noErr will be returned if valid, kNSLUserCanceled will be returned if the user cancels */
+/* ---> dialogOptions */
+/* ---> eventProc */
+/* ---> eventProcContextPtr */
+/* ---> filterProc */
+/* ---> serviceTypeList */
+/* <--- userSelectedURL */
+/* NSLDialogOptions* dialogOptions */
+/*
+ dialogOptions is a user defined structure defining the look, feel and operation of NSLStandardGetURL dialog
+ default behavior can be achieved by passing in a pointer to a structure that has been filled out by a previous
+ call to NSLGetDefaultDialogOptions or by passing in NULL.
+*/
+/* NSLEventUPP eventProc */
+/*
+ the eventProc is a callback NSLURLFilterUPP that will
+ get called with Events that the dialog doesn't handle. If you pass in nil,
+ you won't get update events while the NSLStandardGetURL dialog is open.
+*/
+/* void* eventProcContextPtr */
+/* you can provide a pointer to some contextual data that you want to have sent to your eventProc filter*/
+/* NSLURLFilterProcPtr filterProc */
+/*
+ the filter param is a callback NSLURLFilterUPP that
+ will get called (if not nil) for each url that is going to be displayed in
+ the dialog's result list. A result of false will not include the url for the
+ user to select from. You also have the option of handling the way the url looks
+ in the dialog listing by copying the preferred name into the displayString
+ parameter. (If left alone, NSLStandardGetURL dialog will strip the service type
+ portion off the url).
+*/
+/* char* serviceTypeList */
+/*
+ the serviceTypeList parameter is a null terminated string that will
+ directly affect the contents of the services popup in the dialog.
+ The structure of this string is a set of tuples as follows:
+ Name of ServiceType as to be represented in the popup followed by
+ a comma delimted list of service descriptors (ie http,https) that will
+ used in the search of that type. Each comma delimited tuple is delimited
+ by semi-colons.
+*/
+/*
+ For example:
+ If you want to search for services of type http (web), https (secure web),
+ and ftp, you could pass in the string "Web Servers,http,https;FTP Servers,ftp".
+ This would result in a popup list with two items ("Web Servers" and "FTP Servers")
+ and searches performed on them will provide results of type http and https for the
+ first, and ftp for the second.
+*/
+
+/*
+ Results list Icons:
+ NSLStandardGetURL provides icons in its listings for the following types:
+ "http", "https", "ftp", "afp", "lpr", "LaserWriter", "AFPServer"
+ any other types will get a generic icon. However, you can provide icons
+ if you wish by including an '#ics8' resource id at the end of your comma
+ delimited list. The dialog will then use that icon if found in its results
+ list. This icon will be used for all types in a tuple.
+ For example:
+ The param "Web Servers,http,https;Telnet Servers,telnet;NFS Servers,nfs,129"
+ would result in lists of http and https services to be shown with their default
+ icons, telnet servers would be shown with the default misc. icon and nfs
+ servers would be shown with your icon at resource id 129.
+*/
+
+/* char** url */
+/*
+ pass in the address of a char* and it will point to the resulting url. If the user
+ cancels (the function returns false), the pointer will be set to nil. If the function
+ returns true (user selected a url), then you must call NSLFreeURL on the pointer when
+ you are done with it.
+*/
+/*
+ Call this to have the user select a url based service from a dialog.
+ Function takes on input an optional filter proc, a serviceTypeList, and an address to a Ptr.
+ Function sets the value of the Ptr to a newly created c-style null terminated string
+ containing the user's choice of URL.
+*/
+
+/*
+ * NSLStandardGetURL()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NSLPPCLib 1.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( OSStatus )
+NSLStandardGetURL(
+ NSLDialogOptions * dialogOptions, /* can be NULL */
+ NSLEventUPP eventProc, /* can be NULL */
+ void * eventProcContextPtr, /* can be NULL */
+ NSLURLFilterUPP filterProc, /* can be NULL */
+ char * serviceTypeList,
+ char ** userSelectedURL);
+
+
+/*
+ * NSLGetDefaultDialogOptions()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NSLPPCLib 1.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( OSStatus )
+NSLGetDefaultDialogOptions(NSLDialogOptions * dialogOptions);
+
+
+/* <--- function returns null (useful for setting variable at same time as freeing it */
+/* ---> url is memory created by a call to NSLStandardGetURL */
+/*
+ * NSLFreeURL()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NSLPPCLib 1.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( char * )
+NSLFreeURL(char * url);
+
+
+/* <--- function returns kNSLErrNullPtrError, file mgr errors, or resource mgr errors */
+/* ---> folderSelectorType is one of the well-known folders defined in Folders.h */
+/* ---> url is any valid url */
+/* ---> userFriendlyName is used for the file name and the display name (in the UI) */
+/*
+ * NSLSaveURLAliasToFolder()
+ *
+ * Availability:
+ * Non-Carbon CFM: in NSLPPCLib 1.1 and later
+ * CarbonLib: not available
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( OSErr )
+NSLSaveURLAliasToFolder(
+ OSType folderSelectorType,
+ const char * url,
+ const char * userFriendlyName);
+
+
+
+
+
+#if PRAGMA_STRUCT_ALIGN
+ #pragma options align=reset
+#elif PRAGMA_STRUCT_PACKPUSH
+ #pragma pack(pop)
+#elif PRAGMA_STRUCT_PACK
+ #pragma pack()
+#endif
+
+#ifdef PRAGMA_IMPORT_OFF
+#pragma import off
+#elif PRAGMA_IMPORT
+#pragma import reset
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __NSL__ */
+