Mac OS 9
Navigation.h
Go to the documentation of this file.
1 
19 #ifndef __NAVIGATION__
20 #define __NAVIGATION__
21 
22 #ifndef __MACTYPES__
23 #include <MacTypes.h>
24 #endif
25 
26 #ifndef __APPLEEVENTS__
27 #include <AppleEvents.h>
28 #endif
29 
30 #ifndef __TRANSLATION__
31 #include <Translation.h>
32 #endif
33 
34 #ifndef __MACWINDOWS__
35 #include <MacWindows.h>
36 #endif
37 
38 #ifndef __CODEFRAGMENTS__
39 #include <CodeFragments.h>
40 #endif
41 
42 #ifndef __MACERRORS__
43 #include <MacErrors.h>
44 #endif
45 
46 #ifndef __CFARRAY__
47 #include <CFArray.h>
48 #endif
49 
50 #ifndef __CFSTRING__
51 #include <CFString.h>
52 #endif
53 
54 #if PRAGMA_ONCE
55 #pragma once
56 #endif
57 
58 #ifdef __cplusplus
59 extern "C" {
60 #endif
61 
62 #if PRAGMA_IMPORT
63 #pragma import on
64 #endif
65 
66 #if PRAGMA_STRUCT_ALIGN
67 #pragma options align = mac68k
68 #elif PRAGMA_STRUCT_PACKPUSH
69 #pragma pack(push, 2)
70 #elif PRAGMA_STRUCT_PACK
71 #pragma pack(2)
72 #endif
73 
74 typedef UInt32 NavAskSaveChangesAction;
75 enum {
76  /* input action codes for NavAskSaveChanges() */
77  kNavSaveChangesClosingDocument = 1,
78  kNavSaveChangesQuittingApplication = 2,
79  kNavSaveChangesOther = 0
80 };
81 
82 typedef UInt32 NavAskSaveChangesResult;
83 enum {
84  /* result codes for NavAskSaveChanges() */
85  kNavAskSaveChangesSave = 1,
86  kNavAskSaveChangesCancel = 2,
87  kNavAskSaveChangesDontSave = 3
88 };
89 
90 typedef UInt32 NavAskDiscardChangesResult;
91 enum {
92  /* result codes for NavAskDiscardChanges() */
93  kNavAskDiscardChanges = 1,
94  kNavAskDiscardChangesCancel = 2
95 };
96 
97 typedef SInt16 NavFilterModes;
98 enum {
99  /* which elements are being filtered for objects: */
100  kNavFilteringBrowserList = 0,
101  kNavFilteringFavorites = 1,
102  kNavFilteringRecents = 2,
103  kNavFilteringShortCutVolumes = 3,
104  kNavFilteringLocationPopup = 4 /* for v1.1 or greater */
105 };
106 
107 enum { kNavFileOrFolderVersion = 1 };
108 
110  UInt16 version;
111  Boolean isFolder;
112  Boolean visible;
113  UInt32 creationDate;
114  UInt32 modificationDate;
115  union {
116  struct {
117  Boolean locked; /* file is locked */
118  Boolean resourceOpen; /* resource fork is opened */
119  Boolean dataOpen; /* data fork is opened */
120  Boolean reserved1;
121  UInt32 dataSize; /* size of the data fork */
122  UInt32 resourceSize; /* size of the resource fork */
123  FInfo finderInfo; /* more file info: */
124  FXInfo finderXInfo;
125  } fileInfo;
126  struct {
127  Boolean shareable;
128  Boolean sharePoint;
129  Boolean mounted;
130  Boolean readable;
131  Boolean writeable;
132  Boolean reserved2;
133  UInt32 numberOfFiles;
134  DInfo finderDInfo;
135  DXInfo finderDXInfo;
136  OSType folderType; /* package type, For struct version >= 1 */
137  OSType folderCreator; /* package creator, For struct version >= 1 */
138  char reserved3[206];
139  } folderInfo;
140 
141  } fileAndFolder;
142 };
145  EventRecord *event; /* for event processing */
146  void *param; /* points to event specific data */
147 };
148 typedef union NavEventDataInfo NavEventDataInfo;
149 struct NavEventData {
150  NavEventDataInfo eventDataParms; /* the event data */
151  SInt16 itemHit; /* the dialog item number, for v1.1 or greater */
152 };
153 typedef struct NavEventData NavEventData;
154 
172 typedef struct __NavDialog *NavDialogRef;
173 #if CALL_NOT_IN_CARBON
174 /* NavContext is the old name for NavDialogRef */
175 
176 typedef NavDialogRef NavContext;
177 #endif /* CALL_NOT_IN_CARBON */
178 
198 typedef UInt32 NavUserAction;
199 enum {
200 
206 
211 
216 
221 
227 
232 
237 
242 
248 
254 
260 };
261 
262 enum { kNavCBRecVersion = 1 };
263 
275 struct NavCBRec {
276 
280  UInt16 version;
281 
286 
291 
296 
301 
306 
312 
316  char reserved[218];
317 };
318 typedef struct NavCBRec NavCBRec;
319 typedef NavCBRec *NavCBRecPtr;
320 
327 typedef SInt32 NavEventCallbackMessage;
328 enum {
329 
335 
343 
350 
355 
362 
370 
375 
382 
392 
397 
402 
409 
417 
423  kNavCBOpenSelection = (long)0x80000000
424 };
425 
426 typedef void *NavCallBackUserData;
427 /* for events and customization: */
428 typedef CALLBACK_API(void,
429  NavEventProcPtr)(NavEventCallbackMessage callBackSelector,
431  void *callBackUD);
432 /* for preview support: */
433 typedef CALLBACK_API(Boolean, NavPreviewProcPtr)(NavCBRecPtr callBackParms,
434  void *callBackUD);
435 /* filtering callback information: */
436 typedef CALLBACK_API(Boolean,
437  NavObjectFilterProcPtr)(AEDesc *theItem, void *info,
438  void *callBackUD,
439  NavFilterModes filterMode);
440 typedef STACK_UPP_TYPE(NavEventProcPtr) NavEventUPP;
441 typedef STACK_UPP_TYPE(NavPreviewProcPtr) NavPreviewUPP;
442 typedef STACK_UPP_TYPE(NavObjectFilterProcPtr) NavObjectFilterUPP;
451 NavEventUPP
452 NewNavEventUPP(NavEventProcPtr userRoutine);
453 #if !OPAQUE_UPP_TYPES
454 enum {
455  uppNavEventProcInfo = 0x00000FC0
456 }; /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes) */
457 #ifdef __cplusplus
458 inline NavEventUPP NewNavEventUPP(NavEventProcPtr userRoutine) {
459  return (NavEventUPP)NewRoutineDescriptor(
460  (ProcPtr)(userRoutine), uppNavEventProcInfo, GetCurrentArchitecture());
461 }
462 #else
463 #define NewNavEventUPP(userRoutine) \
464  (NavEventUPP) NewRoutineDescriptor( \
465  (ProcPtr)(userRoutine), uppNavEventProcInfo, GetCurrentArchitecture())
466 #endif
467 #endif
468 
477 NavPreviewUPP
478 NewNavPreviewUPP(NavPreviewProcPtr userRoutine);
479 #if !OPAQUE_UPP_TYPES
480 enum {
481  uppNavPreviewProcInfo = 0x000003D0
482 }; /* pascal 1_byte Func(4_bytes, 4_bytes) */
483 #ifdef __cplusplus
484 inline NavPreviewUPP NewNavPreviewUPP(NavPreviewProcPtr userRoutine) {
485  return (NavPreviewUPP)NewRoutineDescriptor(
486  (ProcPtr)(userRoutine), uppNavPreviewProcInfo, GetCurrentArchitecture());
487 }
488 #else
489 #define NewNavPreviewUPP(userRoutine) \
490  (NavPreviewUPP) NewRoutineDescriptor( \
491  (ProcPtr)(userRoutine), uppNavPreviewProcInfo, GetCurrentArchitecture())
492 #endif
493 #endif
494 
503 NavObjectFilterUPP
504 NewNavObjectFilterUPP(NavObjectFilterProcPtr userRoutine);
505 #if !OPAQUE_UPP_TYPES
506 enum {
507  uppNavObjectFilterProcInfo = 0x00002FD0
508 }; /* pascal 1_byte Func(4_bytes, 4_bytes, 4_bytes, 2_bytes) */
509 #ifdef __cplusplus
510 inline NavObjectFilterUPP
511 NewNavObjectFilterUPP(NavObjectFilterProcPtr userRoutine) {
512  return (NavObjectFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),
513  uppNavObjectFilterProcInfo,
514  GetCurrentArchitecture());
515 }
516 #else
517 #define NewNavObjectFilterUPP(userRoutine) \
518  (NavObjectFilterUPP) \
519  NewRoutineDescriptor((ProcPtr)(userRoutine), uppNavObjectFilterProcInfo, \
520  GetCurrentArchitecture())
521 #endif
522 #endif
523 
532 void
533 DisposeNavEventUPP(NavEventUPP userUPP);
534 #if !OPAQUE_UPP_TYPES
535 #ifdef __cplusplus
536 inline void DisposeNavEventUPP(NavEventUPP userUPP) {
537  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
538 }
539 #else
540 #define DisposeNavEventUPP(userUPP) DisposeRoutineDescriptor(userUPP)
541 #endif
542 #endif
543 
552 void
553 DisposeNavPreviewUPP(NavPreviewUPP userUPP);
554 #if !OPAQUE_UPP_TYPES
555 #ifdef __cplusplus
556 inline void DisposeNavPreviewUPP(NavPreviewUPP userUPP) {
557  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
558 }
559 #else
560 #define DisposeNavPreviewUPP(userUPP) DisposeRoutineDescriptor(userUPP)
561 #endif
562 #endif
563 
572 void
573 DisposeNavObjectFilterUPP(NavObjectFilterUPP userUPP);
574 #if !OPAQUE_UPP_TYPES
575 #ifdef __cplusplus
576 inline void DisposeNavObjectFilterUPP(NavObjectFilterUPP userUPP) {
577  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
578 }
579 #else
580 #define DisposeNavObjectFilterUPP(userUPP) DisposeRoutineDescriptor(userUPP)
581 #endif
582 #endif
583 
592 void
594  NavCBRecPtr callBackParms, void *callBackUD,
595  NavEventUPP userUPP);
596 #if !OPAQUE_UPP_TYPES
597 #ifdef __cplusplus
598 inline void InvokeNavEventUPP(NavEventCallbackMessage callBackSelector,
599  NavCBRecPtr callBackParms, void *callBackUD,
600  NavEventUPP userUPP) {
601  CALL_THREE_PARAMETER_UPP(userUPP, uppNavEventProcInfo, callBackSelector,
602  callBackParms, callBackUD);
603 }
604 #else
605 #define InvokeNavEventUPP(callBackSelector, callBackParms, callBackUD, \
606  userUPP) \
607  CALL_THREE_PARAMETER_UPP((userUPP), uppNavEventProcInfo, (callBackSelector), \
608  (callBackParms), (callBackUD))
609 #endif
610 #endif
611 
620 Boolean
622  NavPreviewUPP userUPP);
623 #if !OPAQUE_UPP_TYPES
624 #ifdef __cplusplus
625 inline Boolean InvokeNavPreviewUPP(NavCBRecPtr callBackParms, void *callBackUD,
626  NavPreviewUPP userUPP) {
627  return (Boolean)CALL_TWO_PARAMETER_UPP(userUPP, uppNavPreviewProcInfo,
628  callBackParms, callBackUD);
629 }
630 #else
631 #define InvokeNavPreviewUPP(callBackParms, callBackUD, userUPP) \
632  (Boolean) CALL_TWO_PARAMETER_UPP((userUPP), uppNavPreviewProcInfo, \
633  (callBackParms), (callBackUD))
634 #endif
635 #endif
636 
645 Boolean
646 InvokeNavObjectFilterUPP(AEDesc *theItem, void *info, void *callBackUD,
647  NavFilterModes filterMode, NavObjectFilterUPP userUPP);
648 #if !OPAQUE_UPP_TYPES
649 #ifdef __cplusplus
650 inline Boolean InvokeNavObjectFilterUPP(AEDesc *theItem, void *info,
651  void *callBackUD,
652  NavFilterModes filterMode,
653  NavObjectFilterUPP userUPP) {
654  return (Boolean)CALL_FOUR_PARAMETER_UPP(userUPP, uppNavObjectFilterProcInfo,
655  theItem, info, callBackUD,
656  filterMode);
657 }
658 #else
659 #define InvokeNavObjectFilterUPP(theItem, info, callBackUD, filterMode, \
660  userUPP) \
661  (Boolean) \
662  CALL_FOUR_PARAMETER_UPP((userUPP), uppNavObjectFilterProcInfo, \
663  (theItem), (info), (callBackUD), (filterMode))
664 #endif
665 #endif
666 
667 #if CALL_NOT_IN_CARBON || OLDROUTINENAMES
668 /* support for pre-Carbon UPP routines: New...Proc and Call...Proc */
669 #define NewNavEventProc(userRoutine) NewNavEventUPP(userRoutine)
670 #define NewNavPreviewProc(userRoutine) NewNavPreviewUPP(userRoutine)
671 #define NewNavObjectFilterProc(userRoutine) NewNavObjectFilterUPP(userRoutine)
672 #define CallNavEventProc(userRoutine, callBackSelector, callBackParms, \
673  callBackUD) \
674  InvokeNavEventUPP(callBackSelector, callBackParms, callBackUD, userRoutine)
675 #define CallNavPreviewProc(userRoutine, callBackParms, callBackUD) \
676  InvokeNavPreviewUPP(callBackParms, callBackUD, userRoutine)
677 #define CallNavObjectFilterProc(userRoutine, theItem, info, callBackUD, \
678  filterMode) \
679  InvokeNavObjectFilterUPP(theItem, info, callBackUD, filterMode, userRoutine)
680 #endif /* CALL_NOT_IN_CARBON */
681 
682 typedef SInt32 NavCustomControlMessage;
683 enum {
684  kNavCtlShowDesktop = 0, /* show desktop, parms = nil */
685  kNavCtlSortBy = 1, /* sort key field, parms->NavSortKeyField */
686  kNavCtlSortOrder = 2, /* sort order, parms->NavSortOrder */
687  kNavCtlScrollHome = 3, /* scroll list home, parms = nil */
688  kNavCtlScrollEnd = 4, /* scroll list end, parms = nil */
689  kNavCtlPageUp = 5, /* page list up, parms = nil */
690  kNavCtlPageDown = 6, /* page list down, parms = nil */
691  kNavCtlGetLocation = 7, /* get current location, parms<-AEDesc* */
692  kNavCtlSetLocation = 8, /* set current location, parms->AEDesc* */
693  kNavCtlGetSelection =
694  9, /* get current selection, parms<-AEDescList* */
695  kNavCtlSetSelection =
696  10, /* set current selection, parms->AEDescList* */
697  kNavCtlShowSelection = 11, /* make selection visible, parms = nil */
698  kNavCtlOpenSelection = 12, /* open view of selection, parms = nil */
699  kNavCtlEjectVolume = 13, /* eject volume, parms->vRefNum */
700  kNavCtlNewFolder = 14, /* create a new folder, parms->StringPtr */
701  kNavCtlCancel = 15, /* cancel dialog, parms = nil */
702  kNavCtlAccept = 16, /* accept dialog default, parms = nil */
703  kNavCtlIsPreviewShowing = 17, /* query preview status, parms<-Boolean */
704  kNavCtlAddControl =
705  18, /* add one control to dialog, parms->ControlHandle */
706  kNavCtlAddControlList =
707  19, /* add control list to dialog, parms->Handle (DITL rsrc) */
708  kNavCtlGetFirstControlID =
709  20, /* get 1st control ID, parms<-UInt16 */
710  kNavCtlSelectCustomType =
711  21, /* select a custom menu item parms->NavMenuItemSpec* */
712  kNavCtlSelectAllType = 22, /* select an "All" menu item parms->SInt16 */
713  kNavCtlGetEditFileName =
714  23, /* get save dlog's file name parms<-StringPtr */
715  kNavCtlSetEditFileName =
716  24, /* set save dlog's file name parms->StringPtr */
717  kNavCtlSelectEditFileName =
718  25, /* select save dlog file name parms->ControlEditTextSelectionRec*,
719  v1.1 or greater */
720  kNavCtlBrowserSelectAll =
721  26, /* re-scan the browser list parms = nil, v2.0 or greater */
722  kNavCtlGotoParent =
723  27, /* navigate to parent parms = nil, v2.0 or greater */
724  kNavCtlSetActionState = 28, /* restrict navigation parms->NavActionState
725  (flags), v2.0 or greater */
726  kNavCtlBrowserRedraw =
727  29, /* rescan browser list parms = nil, v2.0 or greater */
728  kNavCtlTerminate =
729  30 /* terminate/dismiss dialog parms = nil, v2.0 or greater */
730 };
731 
732 typedef UInt32 NavActionState;
733 enum {
734  kNavNormalState = 0x00000000, /* normal/default state */
735  kNavDontOpenState = 0x00000001, /* disallow opening files/folders */
736  kNavDontSaveState = 0x00000002, /* disallow saving files */
737  kNavDontChooseState = 0x00000004, /* disallow choosing objects */
738  kNavDontNewFolderState = 0x00000010 /* disallow creating new folders */
739 };
740 
741 typedef UInt16 NavPopupMenuItem;
742 enum { kNavAllKnownFiles = 0, kNavAllReadableFiles = 1, kNavAllFiles = 2 };
743 
744 typedef UInt16 NavSortKeyField;
745 enum { kNavSortNameField = 0, kNavSortDateField = 1 };
746 
747 typedef UInt16 NavSortOrder;
748 enum { kNavSortAscending = 0, kNavSortDescending = 1 };
749 
750 typedef UInt32 NavDialogOptionFlags;
751 enum {
752  kNavDefaultNavDlogOptions = 0x000000E4, /* use defaults for all the options */
753  kNavNoTypePopup =
754  0x00000001, /* don't show file type/extension popup on Open/Save */
755  kNavDontAutoTranslate =
756  0x00000002, /* don't automatically translate on Open */
757  kNavDontAddTranslateItems =
758  0x00000004, /* don't add translation choices on Open/Save */
759  kNavAllFilesInPopup =
760  0x00000010, /* "All Files" menu item in the type popup on Open */
761  kNavAllowStationery = 0x00000020, /* allow saving of stationery files */
762  kNavAllowPreviews = 0x00000040, /* allow preview to show */
763  kNavAllowMultipleFiles = 0x00000080, /* allow multiple items to be selected */
764  kNavAllowInvisibleFiles = 0x00000100, /* allow invisible items to be shown */
765  kNavDontResolveAliases = 0x00000200, /* don't resolve aliases */
766  kNavSelectDefaultLocation =
767  0x00000400, /* make the default location the browser selection */
768  kNavSelectAllReadableItem =
769  0x00000800, /* make the dialog select "All Readable Documents" on open */
770  kNavSupportPackages =
771  0x00001000, /* recognize file system packages, v2.0 or greater */
772  kNavAllowOpenPackages =
773  0x00002000, /* allow opening of packages, v2.0 or greater */
774  kNavDontAddRecents = 0x00004000, /* don't add chosen objects to the recents
775  list, v2.0 or greater */
776  kNavDontUseCustomFrame =
777  0x00008000, /* don't draw the custom area bevel frame, v2.0 or greater */
778  kNavDontConfirmReplacement =
779  0x00010000, /* don't show the "Replace File?" alert on save conflict, v3.0
780  or greater */
781  kNavPreserveSaveFileExtension =
782  0x00020000 /* extension in default file name is preserved and initially
783  hidden, v3.1 or greater */
784 };
785 
786 typedef UInt32 NavTranslationOptions;
787 enum {
788  kNavTranslateInPlace = 0, /* translate in place, replacing translation
789  source file (default for Save) */
790  kNavTranslateCopy =
791  1 /* translate to a copy of the source file (default for Open) */
792 };
793 
794 enum { kNavMenuItemSpecVersion = 0 };
795 
797  UInt16 version;
798  OSType menuCreator;
799  OSType menuType;
800  Str255 menuItemName;
801  char reserved[245];
802 };
803 typedef struct NavMenuItemSpec NavMenuItemSpec;
808 enum { kNavGenericSignature = FOUR_CHAR_CODE('****') };
809 
810 struct NavTypeList {
811  OSType componentSignature;
812  short reserved;
813  short osTypeCount;
814  OSType osType[1];
815 };
816 typedef struct NavTypeList NavTypeList;
817 typedef NavTypeList *NavTypeListPtr;
819 enum { kNavDialogOptionsVersion = 0 };
820 
822  UInt16 version;
823  NavDialogOptionFlags
824  dialogOptionFlags; /* option flags for affecting the dialog's behavior */
825  Point location; /* top-left location of the dialog, or {-1,-1} for default
826  position */
827  Str255 clientName;
828  Str255 windowTitle;
829  Str255 actionButtonLabel; /* label of the default button (or null string for
830  default) */
831  Str255 cancelButtonLabel; /* label of the cancel button (or null string for
832  default) */
833  Str255 savedFileName; /* default name for text box in NavPutFile (or null
834  string for default) */
835  Str255 message; /* custom message prompt (or null string for default) */
836  UInt32 preferenceKey; /* a key for to managing preferences for using multiple
837  utility dialogs */
838  NavMenuItemSpecArrayHandle popupExtension; /* extended popup menu items, an
839  array of NavMenuItemSpecs */
840  char reserved[494];
841 };
842 typedef struct NavDialogOptions NavDialogOptions;
843 enum { kNavReplyRecordVersion = 2 };
844 
861 
867  UInt16 version;
868 
873 
881 
887 
893 
911 
916  ScriptCode keyScript;
917 
925 
929  UInt32 reserved1;
930 
937  CFStringRef saveFileName;
938 
951 
955  UInt8 reserved2;
956 
960  char reserved[225];
961 };
962 typedef struct NavReplyRecord NavReplyRecord;
971 OSErr
972 NavLoad(void);
973 
982 OSErr
983 NavUnload(void);
984 
993 UInt32
995 
1004 OSErr
1006 
1015 OSErr
1016 NavGetFile(AEDesc *defaultLocation, /* can be NULL */
1018  NavDialogOptions *dialogOptions, /* can be NULL */
1019  NavEventUPP eventProc, /* can be NULL */
1020  NavPreviewUPP previewProc, /* can be NULL */
1021  NavObjectFilterUPP filterProc, /* can be NULL */
1022  NavTypeListHandle typeList, /* can be NULL */
1023  void *callBackUD); /* can be NULL */
1024 
1033 OSErr
1034 NavPutFile(AEDesc *defaultLocation, /* can be NULL */
1036  NavDialogOptions *dialogOptions, /* can be NULL */
1037  NavEventUPP eventProc, /* can be NULL */
1038  OSType fileType, OSType fileCreator,
1039  void *callBackUD); /* can be NULL */
1040 
1049 OSErr
1051  NavAskSaveChangesAction action,
1052  NavAskSaveChangesResult *reply,
1053  NavEventUPP eventProc, /* can be NULL */
1054  void *callBackUD); /* can be NULL */
1055 
1064 OSErr
1066  NavAskSaveChangesResult *reply,
1067  NavEventUPP eventProc, /* can be NULL */
1068  void *callBackUD); /* can be NULL */
1069 
1078 OSErr
1080  NavAskDiscardChangesResult *reply,
1081  NavEventUPP eventProc, /* can be NULL */
1082  void *callBackUD); /* can be NULL */
1083 
1092 OSErr
1093 NavChooseFile(AEDesc *defaultLocation, /* can be NULL */
1095  NavDialogOptions *dialogOptions, /* can be NULL */
1096  NavEventUPP eventProc, /* can be NULL */
1097  NavPreviewUPP previewProc, /* can be NULL */
1098  NavObjectFilterUPP filterProc, /* can be NULL */
1099  NavTypeListHandle typeList, /* can be NULL */
1100  void *callBackUD); /* can be NULL */
1101 
1110 OSErr
1111 NavChooseFolder(AEDesc *defaultLocation, /* can be NULL */
1113  NavDialogOptions *dialogOptions, /* can be NULL */
1114  NavEventUPP eventProc, /* can be NULL */
1115  NavObjectFilterUPP filterProc, /* can be NULL */
1116  void *callBackUD); /* can be NULL */
1117 
1126 OSErr
1127 NavChooseVolume(AEDesc *defaultSelection, /* can be NULL */
1129  NavDialogOptions *dialogOptions, /* can be NULL */
1130  NavEventUPP eventProc, /* can be NULL */
1131  NavObjectFilterUPP filterProc, /* can be NULL */
1132  void *callBackUD); /* can be NULL */
1133 
1142 OSErr
1143 NavChooseObject(AEDesc *defaultLocation, /* can be NULL */
1145  NavDialogOptions *dialogOptions, /* can be NULL */
1146  NavEventUPP eventProc, /* can be NULL */
1147  NavObjectFilterUPP filterProc, /* can be NULL */
1148  void *callBackUD); /* can be NULL */
1149 
1158 OSErr
1159 NavNewFolder(AEDesc *defaultLocation, /* can be NULL */
1161  NavDialogOptions *dialogOptions, /* can be NULL */
1162  NavEventUPP eventProc, /* can be NULL */
1163  void *callBackUD); /* can be NULL */
1164 
1173 OSErr
1174 NavTranslateFile(NavReplyRecord *reply, NavTranslationOptions howToTranslate);
1175 
1184 OSErr
1185 NavCompleteSave(NavReplyRecord *reply, NavTranslationOptions howToTranslate);
1186 
1195 OSErr
1196 NavCustomControl(NavDialogRef dialog, NavCustomControlMessage selector,
1197  void *parms);
1198 
1207 OSErr
1208 NavCreatePreview(AEDesc *theObject, OSType previewDataType,
1209  const void *previewData, Size previewDataSize);
1210 
1219 OSErr
1221 
1230 Boolean
1232 
1233 #if TARGET_RT_MAC_CFM
1234 #ifdef __cplusplus
1235 inline pascal Boolean NavServicesAvailable() {
1236  return ((NavLibraryVersion != (void *)kUnresolvedCFragSymbolAddress) &&
1237  NavServicesCanRun());
1238 }
1239 #else
1240 #define NavServicesAvailable() \
1241  ((NavLibraryVersion != (void *)kUnresolvedCFragSymbolAddress) && \
1242  NavServicesCanRun())
1243 #endif
1244 #elif TARGET_RT_MAC_MACHO
1245 /* Navigation is always available on OS X */
1246 #ifdef __cplusplus
1247 inline pascal Boolean NavServicesAvailable() { return true; }
1248 #else
1249 #define NavServicesAvailable() (true)
1250 #endif
1251 #else
1252 /* NavServicesAvailable() is implemented in Navigation.o for classic 68K
1253  * clients*/
1254 #if CALL_NOT_IN_CARBON
1263 Boolean
1265 
1266 #endif /* CALL_NOT_IN_CARBON */
1267 
1268 #endif /* */
1269 
1270 /* Carbon API */
1271 /* Includes support for Unicode and long file names (where available). */
1272 
1273 enum { kNavDialogCreationOptionsVersion = 0 };
1274 
1293 
1298  UInt16 version;
1299 
1304  NavDialogOptionFlags optionFlags;
1305 
1312 
1321  CFStringRef clientName;
1322 
1327  CFStringRef windowTitle;
1328 
1333  CFStringRef actionButtonLabel;
1334 
1339  CFStringRef cancelButtonLabel;
1340 
1345  CFStringRef saveFileName;
1346 
1352  CFStringRef message;
1353 
1363 
1369  CFArrayRef popupExtension;
1370 
1378 
1384 
1388  char reserved[16];
1389 };
1415 OSStatus
1417 
1467 OSStatus
1469  const NavDialogCreationOptions *inOptions, /* can be NULL */
1470  NavTypeListHandle inTypeList, /* can be NULL */
1471  NavEventUPP inEventProc, /* can be NULL */
1472  NavPreviewUPP inPreviewProc, /* can be NULL */
1473  NavObjectFilterUPP inFilterProc, /* can be NULL */
1474  void *inClientData, /* can be NULL */
1475  NavDialogRef *outDialog);
1476 
1524 OSStatus
1526  const NavDialogCreationOptions *inOptions, /* can be NULL */
1527  OSType inFileType, OSType inFileCreator,
1528  NavEventUPP inEventProc, /* can be NULL */
1529  void *inClientData, /* can be NULL */
1530  NavDialogRef *outDialog);
1531 
1585 OSStatus
1587  UInt32 inDocumentCount,
1588  NavEventUPP inEventProc, /* can be NULL */
1589  void *inClientData, /* can be NULL */
1590  NavDialogRef *outDialog);
1591 
1637 OSStatus
1639  NavAskSaveChangesAction inAction,
1640  NavEventUPP inEventProc, /* can be NULL */
1641  void *inClientData, /* can be NULL */
1642  NavDialogRef *outDialog);
1643 
1683 OSStatus
1685  NavEventUPP inEventProc, /* can be NULL */
1686  void *inClientData, /* can be NULL */
1687  NavDialogRef *outDialog);
1688 
1739 OSStatus
1741  const NavDialogCreationOptions *inOptions, /* can be NULL */
1742  NavTypeListHandle inTypeList, /* can be NULL */
1743  NavEventUPP inEventProc, /* can be NULL */
1744  NavPreviewUPP inPreviewProc, /* can be NULL */
1745  NavObjectFilterUPP inFilterProc, /* can be NULL */
1746  void *inClientData, /* can be NULL */
1747  NavDialogRef *outDialog);
1748 
1790 OSStatus
1792  const NavDialogCreationOptions *inOptions, /* can be NULL */
1793  NavEventUPP inEventProc, /* can be NULL */
1794  NavObjectFilterUPP inFilterProc, /* can be NULL */
1795  void *inClientData, /* can be NULL */
1796  NavDialogRef *outDialog);
1797 
1839 OSStatus
1841  const NavDialogCreationOptions *inOptions, /* can be NULL */
1842  NavEventUPP inEventProc, /* can be NULL */
1843  NavObjectFilterUPP inFilterProc, /* can be NULL */
1844  void *inClientData, /* can be NULL */
1845  NavDialogRef *outDialog);
1846 
1893 OSStatus
1895  const NavDialogCreationOptions *inOptions, /* can be NULL */
1896  NavEventUPP inEventProc, /* can be NULL */
1897  NavPreviewUPP inPreviewProc, /* can be NULL */
1898  NavObjectFilterUPP inFilterProc, /* can be NULL */
1899  void *inClientData, /* can be NULL */
1900  NavDialogRef *outDialog);
1901 
1941 OSStatus
1943  const NavDialogCreationOptions *inOptions, /* can be NULL */
1944  NavEventUPP inEventProc, /* can be NULL */
1945  void *inClientData, /* can be NULL */
1946  NavDialogRef *outDialog);
1947 
1986 OSStatus
1988 
2011 void
2013 
2038 WindowRef
2040 
2077 
2109 OSStatus
2111 
2143 CFStringRef
2145 
2176 OSStatus
2177 NavDialogSetSaveFileName(NavDialogRef inPutFileDialog, CFStringRef inFileName);
2178 
2205 Boolean
2207 
2237 OSStatus
2239  Boolean inHidden);
2240 
2241 #if PRAGMA_STRUCT_ALIGN
2242 #pragma options align = reset
2243 #elif PRAGMA_STRUCT_PACKPUSH
2244 #pragma pack(pop)
2245 #elif PRAGMA_STRUCT_PACK
2246 #pragma pack()
2247 #endif
2248 
2249 #ifdef PRAGMA_IMPORT_OFF
2250 #pragma import off
2251 #elif PRAGMA_IMPORT
2252 #pragma import reset
2253 #endif
2254 
2255 #ifdef __cplusplus
2256 }
2257 #endif
2258 
2259 #endif /* __NAVIGATION__ */
AppleEvent Package Interfaces.
Public Code Fragment Manager Interfaces.
OSErr codes.
Basic Macintosh data types.
unsigned char Boolean
Definition: MacTypes.h:318
Window Manager Interfaces.
UInt32 WindowModality
Definition: MacWindows.h:1644
void DisposeRoutineDescriptor(UniversalProcPtr theUPP)
#define STACK_UPP_TYPE(name)
Definition: MixedMode.h:734
UniversalProcPtr NewRoutineDescriptor(ProcPtr theProc, ProcInfoType theProcInfo, ISAType theISA)
OSStatus NavDialogSetSaveFileName(NavDialogRef inPutFileDialog, CFStringRef inFileName)
OSErr NavUnload(void)
OSStatus NavCreateChooseFolderDialog(const NavDialogCreationOptions *inOptions, NavEventUPP inEventProc, NavObjectFilterUPP inFilterProc, void *inClientData, NavDialogRef *outDialog)
OSErr NavGetDefaultDialogOptions(NavDialogOptions *dialogOptions)
OSStatus NavCreateAskDiscardChangesDialog(const NavDialogCreationOptions *inOptions, NavEventUPP inEventProc, void *inClientData, NavDialogRef *outDialog)
OSStatus NavCreateNewFolderDialog(const NavDialogCreationOptions *inOptions, NavEventUPP inEventProc, void *inClientData, NavDialogRef *outDialog)
OSStatus NavCreateGetFileDialog(const NavDialogCreationOptions *inOptions, NavTypeListHandle inTypeList, NavEventUPP inEventProc, NavPreviewUPP inPreviewProc, NavObjectFilterUPP inFilterProc, void *inClientData, NavDialogRef *outDialog)
void DisposeNavEventUPP(NavEventUPP userUPP)
OSErr NavCustomControl(NavDialogRef dialog, NavCustomControlMessage selector, void *parms)
OSErr NavCreatePreview(AEDesc *theObject, OSType previewDataType, const void *previewData, Size previewDataSize)
Boolean InvokeNavPreviewUPP(NavCBRecPtr callBackParms, void *callBackUD, NavPreviewUPP userUPP)
void InvokeNavEventUPP(NavEventCallbackMessage callBackSelector, NavCBRecPtr callBackParms, void *callBackUD, NavEventUPP userUPP)
NavEventUPP NewNavEventUPP(NavEventProcPtr userRoutine)
Boolean NavDialogGetSaveFileExtensionHidden(NavDialogRef inPutFileDialog)
NavObjectFilterUPP NewNavObjectFilterUPP(NavObjectFilterProcPtr userRoutine)
UInt32 NavLibraryVersion(void)
@ kNavCBTerminate
Definition: Navigation.h:354
@ kNavCBNewLocation
Definition: Navigation.h:369
@ kNavCBCancel
Definition: Navigation.h:401
@ kNavCBAccept
Definition: Navigation.h:396
@ kNavCBOpenSelection
Definition: Navigation.h:423
@ kNavCBAdjustRect
Definition: Navigation.h:361
@ kNavCBAdjustPreview
Definition: Navigation.h:408
@ kNavCBEvent
Definition: Navigation.h:334
@ kNavCBUserAction
Definition: Navigation.h:416
@ kNavCBPopupMenuSelect
Definition: Navigation.h:391
@ kNavCBShowDesktop
Definition: Navigation.h:374
@ kNavCBSelectEntry
Definition: Navigation.h:381
@ kNavCBStart
Definition: Navigation.h:349
@ kNavCBCustomize
Definition: Navigation.h:342
OSErr NavChooseObject(AEDesc *defaultLocation, NavReplyRecord *reply, NavDialogOptions *dialogOptions, NavEventUPP eventProc, NavObjectFilterUPP filterProc, void *callBackUD)
void NavDialogDispose(NavDialogRef inDialog)
OSErr NavChooseFolder(AEDesc *defaultLocation, NavReplyRecord *reply, NavDialogOptions *dialogOptions, NavEventUPP eventProc, NavObjectFilterUPP filterProc, void *callBackUD)
OSErr NavChooseFile(AEDesc *defaultLocation, NavReplyRecord *reply, NavDialogOptions *dialogOptions, NavEventUPP eventProc, NavPreviewUPP previewProc, NavObjectFilterUPP filterProc, NavTypeListHandle typeList, void *callBackUD)
OSStatus NavCreateChooseObjectDialog(const NavDialogCreationOptions *inOptions, NavEventUPP inEventProc, NavPreviewUPP inPreviewProc, NavObjectFilterUPP inFilterProc, void *inClientData, NavDialogRef *outDialog)
OSErr NavTranslateFile(NavReplyRecord *reply, NavTranslationOptions howToTranslate)
OSErr NavChooseVolume(AEDesc *defaultSelection, NavReplyRecord *reply, NavDialogOptions *dialogOptions, NavEventUPP eventProc, NavObjectFilterUPP filterProc, void *callBackUD)
OSStatus NavDialogSetSaveFileExtensionHidden(NavDialogRef inPutFileDialog, Boolean inHidden)
OSStatus NavCreatePutFileDialog(const NavDialogCreationOptions *inOptions, OSType inFileType, OSType inFileCreator, NavEventUPP inEventProc, void *inClientData, NavDialogRef *outDialog)
OSStatus NavDialogRun(NavDialogRef inDialog)
OSStatus NavDialogGetReply(NavDialogRef inDialog, NavReplyRecord *outReply)
Boolean NavServicesCanRun(void)
Boolean NavServicesAvailable(void)
WindowRef NavDialogGetWindow(NavDialogRef inDialog)
OSErr NavDisposeReply(NavReplyRecord *reply)
OSStatus NavCreateChooseVolumeDialog(const NavDialogCreationOptions *inOptions, NavEventUPP inEventProc, NavObjectFilterUPP inFilterProc, void *inClientData, NavDialogRef *outDialog)
OSErr NavAskSaveChanges(NavDialogOptions *dialogOptions, NavAskSaveChangesAction action, NavAskSaveChangesResult *reply, NavEventUPP eventProc, void *callBackUD)
OSStatus NavGetDefaultDialogCreationOptions(NavDialogCreationOptions *outOptions)
OSErr NavCompleteSave(NavReplyRecord *reply, NavTranslationOptions howToTranslate)
OSStatus NavCreateChooseFileDialog(const NavDialogCreationOptions *inOptions, NavTypeListHandle inTypeList, NavEventUPP inEventProc, NavPreviewUPP inPreviewProc, NavObjectFilterUPP inFilterProc, void *inClientData, NavDialogRef *outDialog)
OSErr NavAskDiscardChanges(NavDialogOptions *dialogOptions, NavAskDiscardChangesResult *reply, NavEventUPP eventProc, void *callBackUD)
NavPreviewUPP NewNavPreviewUPP(NavPreviewProcPtr userRoutine)
struct __NavDialog * NavDialogRef
Definition: Navigation.h:172
CFStringRef NavDialogGetSaveFileName(NavDialogRef inPutFileDialog)
@ kNavUserActionDiscardChanges
Definition: Navigation.h:247
@ kNavUserActionSaveAs
Definition: Navigation.h:220
@ kNavUserActionNone
Definition: Navigation.h:205
@ kNavUserActionNewFolder
Definition: Navigation.h:231
@ kNavUserActionDontSaveChanges
Definition: Navigation.h:241
@ kNavUserActionReviewDocuments
Definition: Navigation.h:253
@ kNavUserActionDiscardDocuments
Definition: Navigation.h:259
@ kNavUserActionOpen
Definition: Navigation.h:215
@ kNavUserActionSaveChanges
Definition: Navigation.h:236
@ kNavUserActionChoose
Definition: Navigation.h:226
@ kNavUserActionCancel
Definition: Navigation.h:210
OSStatus NavCreateAskSaveChangesDialog(const NavDialogCreationOptions *inOptions, NavAskSaveChangesAction inAction, NavEventUPP inEventProc, void *inClientData, NavDialogRef *outDialog)
void DisposeNavPreviewUPP(NavPreviewUPP userUPP)
SInt32 NavEventCallbackMessage
Definition: Navigation.h:327
OSStatus NavCreateAskReviewDocumentsDialog(const NavDialogCreationOptions *inOptions, UInt32 inDocumentCount, NavEventUPP inEventProc, void *inClientData, NavDialogRef *outDialog)
NavUserAction NavDialogGetUserAction(NavDialogRef inDialog)
Boolean InvokeNavObjectFilterUPP(AEDesc *theItem, void *info, void *callBackUD, NavFilterModes filterMode, NavObjectFilterUPP userUPP)
OSErr NavPutFile(AEDesc *defaultLocation, NavReplyRecord *reply, NavDialogOptions *dialogOptions, NavEventUPP eventProc, OSType fileType, OSType fileCreator, void *callBackUD)
OSErr NavNewFolder(AEDesc *defaultLocation, NavReplyRecord *reply, NavDialogOptions *dialogOptions, NavEventUPP eventProc, void *callBackUD)
UInt32 NavUserAction
Definition: Navigation.h:198
void DisposeNavObjectFilterUPP(NavObjectFilterUPP userUPP)
OSErr NavCustomAskSaveChanges(NavDialogOptions *dialogOptions, NavAskSaveChangesResult *reply, NavEventUPP eventProc, void *callBackUD)
OSErr NavLoad(void)
OSErr NavGetFile(AEDesc *defaultLocation, NavReplyRecord *reply, NavDialogOptions *dialogOptions, NavEventUPP eventProc, NavPreviewUPP previewProc, NavObjectFilterUPP filterProc, NavTypeListHandle typeList, void *callBackUD)
Translation Manager (Macintosh Easy Open) Interfaces.
Definition: AEDataModel.h:175
Definition: Finder.h:334
Definition: Finder.h:349
Definition: Events.h:224
Definition: Finder.h:303
Definition: Finder.h:319
Definition: Translation.h:80
Definition: Quickdraw.h:1648
Definition: Navigation.h:275
Rect customRect
Definition: Navigation.h:295
NavUserAction userAction
Definition: Navigation.h:311
NavEventData eventData
Definition: Navigation.h:305
Rect previewRect
Definition: Navigation.h:300
NavDialogRef context
Definition: Navigation.h:285
UInt16 version
Definition: Navigation.h:280
WindowRef window
Definition: Navigation.h:290
Definition: Navigation.h:1292
Point location
Definition: Navigation.h:1311
CFStringRef actionButtonLabel
Definition: Navigation.h:1333
NavDialogOptionFlags optionFlags
Definition: Navigation.h:1304
CFStringRef clientName
Definition: Navigation.h:1321
CFStringRef saveFileName
Definition: Navigation.h:1345
CFStringRef cancelButtonLabel
Definition: Navigation.h:1339
UInt16 version
Definition: Navigation.h:1298
CFArrayRef popupExtension
Definition: Navigation.h:1369
WindowModality modality
Definition: Navigation.h:1377
UInt32 preferenceKey
Definition: Navigation.h:1362
CFStringRef message
Definition: Navigation.h:1352
WindowRef parentWindow
Definition: Navigation.h:1383
CFStringRef windowTitle
Definition: Navigation.h:1327
Definition: Navigation.h:821
Definition: Navigation.h:149
Definition: Navigation.h:109
Definition: Navigation.h:796
Definition: Navigation.h:860
UInt16 version
Definition: Navigation.h:867
AEDescList selection
Definition: Navigation.h:910
UInt32 reserved1
Definition: Navigation.h:929
CFStringRef saveFileName
Definition: Navigation.h:937
Boolean translationNeeded
Definition: Navigation.h:892
Boolean saveFileExtensionHidden
Definition: Navigation.h:950
Boolean isStationery
Definition: Navigation.h:886
UInt8 reserved2
Definition: Navigation.h:955
Boolean validRecord
Definition: Navigation.h:872
FileTranslationSpecArrayHandle fileTranslation
Definition: Navigation.h:924
Boolean replacing
Definition: Navigation.h:880
Definition: Navigation.h:810
Definition: MacTypes.h:520
Definition: MacTypes.h:527
Definition: Navigation.h:144