summaryrefslogtreecommitdiffstats
path: root/Mac/Contrib/BBPy/source/BB-stuff/ExternalInterface.h
diff options
context:
space:
mode:
Diffstat (limited to 'Mac/Contrib/BBPy/source/BB-stuff/ExternalInterface.h')
-rw-r--r--Mac/Contrib/BBPy/source/BB-stuff/ExternalInterface.h716
1 files changed, 0 insertions, 716 deletions
diff --git a/Mac/Contrib/BBPy/source/BB-stuff/ExternalInterface.h b/Mac/Contrib/BBPy/source/BB-stuff/ExternalInterface.h
deleted file mode 100644
index 51d206d..0000000
--- a/Mac/Contrib/BBPy/source/BB-stuff/ExternalInterface.h
+++ /dev/null
@@ -1,716 +0,0 @@
-#pragma once
-
-#include <MixedMode.h>
-#include <Dialogs.h>
-#include <Files.h>
-#include <Windows.h>
-#include <AppleEvents.h>
-#include <StandardFile.h>
-
-#if defined(powerc) || defined (__powerc)
-#pragma options align=mac68k
-#endif
-
-typedef struct
-{
- FSSpec spec; // designates file on disk
- long key; // reserved for future expansion
-
- char tree; // 0 for absolute, 1 for project, 2 for system
- Boolean found; // FALSE if file couldn't be located; if so, all other info is moot
-
- OSType type; // file type of found file
- OSType crtr; // signature of found file's creator
-
- short spare0; // reserved for future expansion
- long spare1;
-} ProjectEntry;
-
-enum
-{
- kNeitherTree,
- kProjectTree,
- kSystemTree
-};
-
-enum
-{
- kTHINKCProject,
- kTHINKPascalProject,
- kCodeWarriorProject
-};
-
-// masks for the "flags" argument to new-convention interfaces
-
-#define xfWindowOpen 0x00000001
-#define xfWindowChangeable 0x00000002
-#define xfHasSelection 0x00000004
-#define xfUseDefaults 0x00000008
-#define xfIsBBEditLite 0x00000040
-#define xfIsBBEditDemo 0x00000080
-
-typedef struct
-{
- FSSpec spec;
- OSType key;
-
- short error_kind;
- long line_number;
-
- Str255 message;
-} ErrorEntry;
-
-typedef enum
-{
- kNote = 0,
- kError,
- kWarning
-} ErrorKind;
-
-#define kCurrentExternalVersion 5 // current version of callbacks
-
-// Universal callback interfaces
-
-#if USESROUTINEDESCRIPTORS
-
-#define ExtensionUPPInfo (kPascalStackBased \
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ExternalCallbackBlock *))) \
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(WindowPtr))))
-
-#define NewExtensionUPPInfo (kPascalStackBased \
- | RESULT_SIZE(SIZE_CODE(sizeof(OSErr))) \
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ExternalCallbackBlock *))) \
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(WindowPtr))) \
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long))) \
- | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(AppleEvent *))) \
- | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(AppleEvent *))))
-
-#define GetWindowContentsUPPInfo (kPascalStackBased \
- | RESULT_SIZE(SIZE_CODE(sizeof(Handle))) \
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(WindowPtr))))
-
-#define GetSelectionUPPInfo (kPascalStackBased \
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(long *))) \
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long *))) \
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long *))))
-
-#define SetSelectionUPPInfo (kPascalStackBased \
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(long))) \
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long))) \
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long))))
-
-#define GetDocInfoUPPInfo (kPascalStackBased \
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(WindowPtr))) \
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(unsigned char *))) \
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(short *))) \
- | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(long *))))
-
-#define GetModDateUPPInfo (kPascalStackBased \
- | RESULT_SIZE(SIZE_CODE(sizeof(long))) \
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(WindowPtr))))
-
-#define CopyUPPInfo (kPascalStackBased \
- | RESULT_SIZE(SIZE_CODE(sizeof(Handle))))
-
-#define PasteUPPInfo (kPascalStackBased \
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Handle))))
-
-#define GetLastLineUPPInfo (kPascalStackBased | RESULT_SIZE(SIZE_CODE(sizeof(long))))
-
-#define GetLineNumberUPPInfo (kPascalStackBased \
- | RESULT_SIZE(SIZE_CODE(sizeof(long))) \
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(long))))
-
-#define GetLineStartUPPInfo (kPascalStackBased \
- | RESULT_SIZE(SIZE_CODE(sizeof(long))) \
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(long))))
-
-#define GetLineEndUPPInfo (kPascalStackBased \
- | RESULT_SIZE(SIZE_CODE(sizeof(long))) \
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(long))))
-
-#define GetLinePosUPPInfo (kPascalStackBased \
- | RESULT_SIZE(SIZE_CODE(sizeof(long))) \
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(long))))
-
-#define InsertUPPInfo (kPascalStackBased \
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(char *))) \
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long))))
-
-#define DeleteUPPInfo (kPascalStackBased)
-
-#define SetWindowContentsUPPInfo (kPascalStackBased \
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(WindowPtr))) \
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Handle))))
-
-#define ContentsChangedUPPInfo (kPascalStackBased \
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(WindowPtr))))
-
-#define GetFileTextUPPInfo (kPascalStackBased \
- | RESULT_SIZE(SIZE_CODE(sizeof(Handle))) \
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(short))) \
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long))) \
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(unsigned char *))) \
- | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(Boolean *))))
-
-#define GetFolderUPPInfo (kPascalStackBased \
- | RESULT_SIZE(SIZE_CODE(sizeof(Boolean))) \
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(unsigned char *))) \
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short *))) \
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long *))))
-
-#define OpenSeveralUPPInfo (kPascalStackBased \
- | RESULT_SIZE(SIZE_CODE(sizeof(Boolean))) \
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Boolean))) \
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short *))) \
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(StandardFileReply ***))))
-
-#define CenterDialogUPPInfo (kPascalStackBased \
- | RESULT_SIZE(SIZE_CODE(sizeof(DialogPtr))) \
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(short))))
-
-#define StandardFilterUPPInfo uppModalFilterProcInfo
-
-#define FrameDialogItemUPPInfo uppUserItemProcInfo
-
-#define NewDocumentUPPInfo (kPascalStackBased \
- | RESULT_SIZE(SIZE_CODE(sizeof(WindowPtr))))
-
-#define OpenDocumentUPPInfo (kPascalStackBased \
- | RESULT_SIZE(SIZE_CODE(sizeof(WindowPtr))))
-
-#define AllocateUPPInfo (kPascalStackBased \
- | RESULT_SIZE(SIZE_CODE(sizeof(Handle))) \
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(long))) \
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Boolean))))
-
-#define FindPatternUPPInfo (kPascalStackBased \
- | RESULT_SIZE(SIZE_CODE(sizeof(long))) \
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(char *))) \
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long))) \
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long))) \
- | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(char *))) \
- | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(long))) \
- | STACK_ROUTINE_PARAMETER(6, SIZE_CODE(sizeof(Boolean))))
-
-#define ReportOSErrorUPPInfo (kPascalStackBased)
-
-#define GetPreferenceUPPInfo (kPascalStackBased \
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ResType))) \
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short))) \
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(void *))) \
- | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(short *))))
-
-#define SetPreferenceUPPInfo (kPascalStackBased \
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ResType))) \
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short))) \
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(void *))) \
- | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(short *))))
-
-#define StartProgressUPPInfo (kPascalStackBased \
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(unsigned char *))) \
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long))) \
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(Boolean))))
-
-#define DoProgressUPPInfo (kPascalStackBased \
- | RESULT_SIZE(SIZE_CODE(sizeof(Boolean))) \
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(long))))
-
-#define DoneProgressUPPInfo (kPascalStackBased)
-
-#define GetProjectListUPPInfo (kPascalStackBased \
- | RESULT_SIZE(SIZE_CODE(sizeof(Boolean))) \
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(FSSpec *))) \
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short *))) \
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(short *))) \
- | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(ProjectEntry***))))
-
-#define ProjectTextListUPPInfo (kPascalStackBased \
- | RESULT_SIZE(SIZE_CODE(sizeof(Boolean))) \
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(FSSpec *))) \
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Handle *))))
-
-#define PresetUndoUPPInfo (kPascalStackBased \
- | RESULT_SIZE(SIZE_CODE(sizeof(Boolean))))
-
-#define SetUndoUPPInfo (kPascalStackBased)
-
-#define OpenFileUPPInfo (kPascalStackBased \
- | RESULT_SIZE(SIZE_CODE(sizeof(Boolean))) \
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(FSSpec *))) \
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(WindowPtr *))))
-
-#define PrepareUndoUPPInfo (kPascalStackBased \
- | RESULT_SIZE(SIZE_CODE(sizeof(Boolean))) \
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(long))) \
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long))) \
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long))) \
- | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(long))))
-
-#define CommitUndoUPPInfo (kPascalStackBased \
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(long))))
-
-#define CreateResultsUPPInfo (kPascalStackBased \
- | RESULT_SIZE(SIZE_CODE(sizeof(Boolean))) \
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(unsigned char *))) \
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short))) \
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(Handle))) \
- | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(WindowPtr *))))
-
-typedef UniversalProcPtr GetWindowContentsProc;
-typedef UniversalProcPtr GetSelectionProc;
-typedef UniversalProcPtr SetSelectionProc;
-typedef UniversalProcPtr GetDocInfoProc;
-typedef UniversalProcPtr GetModDateProc;
-typedef UniversalProcPtr CopyProc;
-typedef UniversalProcPtr PasteProc;
-
-typedef UniversalProcPtr GetLastLineProc;
-typedef UniversalProcPtr GetLineNumberProc;
-typedef UniversalProcPtr GetLineStartProc;
-typedef UniversalProcPtr GetLineEndProc;
-typedef UniversalProcPtr GetLinePosProc;
-
-typedef UniversalProcPtr InsertProc;
-typedef UniversalProcPtr DeleteProc;
-
-typedef UniversalProcPtr SetWindowContentsProc;
-typedef UniversalProcPtr ContentsChangedProc;
-
-typedef UniversalProcPtr GetFileTextProc;
-
-typedef UniversalProcPtr GetFolderProc;
-typedef UniversalProcPtr OpenSeveralProc;
-
-typedef UniversalProcPtr CenterDialogProc;
-typedef UniversalProcPtr StandardFilterProc;
-typedef UniversalProcPtr FrameDialogItemProc;
-
-typedef UniversalProcPtr NewDocumentProc;
-typedef UniversalProcPtr OpenDocumentProc;
-
-typedef UniversalProcPtr AllocateProc;
-typedef UniversalProcPtr FindPatternProc;
-
-typedef UniversalProcPtr ReportOSErrorProc;
-
-typedef UniversalProcPtr GetPreferenceProc;
-typedef UniversalProcPtr SetPreferenceProc;
-
-typedef UniversalProcPtr StartProgressProc;
-typedef UniversalProcPtr DoProgressProc;
-typedef UniversalProcPtr DoneProgressProc;
-
-typedef UniversalProcPtr GetProjectListProc;
-typedef UniversalProcPtr ProjectTextListProc;
-
-typedef UniversalProcPtr PresetUndoProc;
-typedef UniversalProcPtr SetUndoProc;
-
-typedef UniversalProcPtr OpenFileProc;
-
-typedef UniversalProcPtr PrepareUndoProc;
-typedef UniversalProcPtr CommitUndoProc;
-
-typedef UniversalProcPtr CreateResultsProc;
-
-#define CallGetWindowContents(proc, w) \
- (Handle)(CallUniversalProc(proc, GetWindowContentsUPPInfo, (w)))
-
-#define CallGetSelection(proc, selStart, selEnd, firstChar) \
- (CallUniversalProc(proc, GetSelectionUPPInfo, (selStart), (selEnd), (firstChar)))
-
-#define CallSetSelection(proc, selStart, selEnd, firstChar) \
- (CallUniversalProc(proc, SetSelectionUPPInfo, (selStart), (selEnd), (firstChar)))
-
-#define CallGetDocInfo(proc, w, name, vRefNum, dirID) \
- (CallUniversalProc(proc, GetDocInfoUPPInfo, (w), (name), (vRefNum), (dirID)))
-
-#define CallGetModDate(proc, w) \
- (CallUniversalProc(proc, GetModDateUPPInfo, (w)))
-
-#define CallCopy(proc) \
- (Handle)(CallUniversalProc(proc, CopyUPPInfo))
-
-#define CallPaste(proc, h) \
- (CallUniversalProc(proc, PasteUPPInfo, (h)))
-
-#define CallGetLastLine(proc) \
- (CallUniversalProc(proc, GetLastLineUPPInfo))
-
-#define CallGetLineNumber(proc, sel) \
- (CallUniversalProc(proc, GetLineNumberUPPInfo, (sel)))
-
-#define CallGetLineStart(proc, sel) \
- (CallUniversalProc(proc, GetLineStartUPPInfo, (sel)))
-
-#define CallGetLineEnd(proc, sel) \
- (CallUniversalProc(proc, GetLineEndUPPInfo, (sel)))
-
-#define CallGetLinePos(proc, sel) \
- (CallUniversalProc(proc, GetLinePosUPPInfo, (sel)))
-
-#define CallInsert(proc, text, len) \
- (CallUniversalProc(proc, InsertUPPInfo, (text), (len)))
-
-#define CallDelete(proc) \
- (CallUniversalProc(proc, DeleteUPPInfo))
-
-#define CallSetWindowContents(proc, w, h) \
- (CallUniversalProc(proc, SetWindowContentsUPPInfo, (w), (h)))
-
-#define CallContentsChanged(proc, w) \
- (CallUniversalProc(proc, ContentsChangedUPPInfo, (w)))
-
-#define CallGetFileText(proc, vRefNum, dirID, name, canDispose) \
- (Handle)(CallUniversalProc(proc, GetFileTextUPPInfo, (vRefNum), (dirID), (name), (canDispose)))
-
-#define CallGetFolder(proc, prompt, vRefNum, dirID) \
- (Boolean)(CallUniversalProc(proc, GetFolderUPPInfo, (prompt), (vRefNum), (dirID)))
-
-#define CallOpenSeveral(proc, sort, file_count, files) \
- (Boolean)(CallUniversalProc(proc, OpenSeveralUPPInfo, (sort), (file_count), (files)))
-
-#define CallCenterDialog(proc, dialogID) \
- (DialogPtr)(CallUniversalProc(proc, CenterDialogUPPInfo, (dialogID)))
-
-#define CallStandardFilter(proc, d, event, item) \
- CallModalFilterProc(proc, (d), (event), (item))
-
-#define CallFrameDialogItem(proc, d, item) \
- CallUserItemProc(proc, (d), (item))
-
-#define CallNewDocument(proc) \
- (WindowPtr)(CallUniversalProc(proc, NewDocumentUPPInfo))
-
-#define CallOpenDocument(proc) \
- (WindowPtr)(CallUniversalProc(proc, OpenDocumentUPPInfo))
-
-#define CallAllocate(proc, size, clear) \
- (Handle)(CallUniversalProc(proc, AllocateUPPInfo, (size), (clear)))
-
-#define CallFindPattern(proc, text, text_len, text_offset, pat, pat_len, case_sens) \
- (CallUniversalProc(proc, FindPatternUPPInfo, (text), (text_len), (text_offset), \
- (pat), (pat_len), (case_sens)))
-
-#define CallReportOSError(proc, code) \
- (CallUniversalProc(proc, ReportOSErrorUPPInfo, (code)))
-
-#define CallGetPreference(proc, prefType, req_len, buffer, act_len) \
- (CallUniversalProc(proc, GetPreferenceUPPInfo, (prefType), (req_len), (buffer), (act_len)))
-
-#define CallSetPreference(proc, prefType, req_len, buffer, act_len) \
- (CallUniversalProc(proc, SetPreferenceUPPInfo, (prefType), (req_len), (buffer), (act_len)))
-
-#define CallStartProgress(proc, str, total, cancel_allowed) \
- (CallUniversalProc(proc, StartProgressUPPInfo, (str), (total), (cancel_allowed)))
-
-#define CallDoProgress(proc, done) \
- (Boolean)(CallUniversalProc(proc, DoProgressUPPInfo, (done)))
-
-#define CallDoneProgress(proc) \
- (CallUniversalProc(proc, DoneProgressUPPInfo))
-
-#define CallGetProjectList(proc, spec, kind, count, entries) \
- (Boolean)(CallUniversalProc(proc, GetProjectListUPPInfo, (spec), (kind), (count), (entries)))
-
-#define CallProjectTextList(proc, spec, text) \
- (Boolean)(CallUniversalProc(proc, ProjectTextListUPPInfo, (spec), (text)))
-
-#define CallPresetUndo(proc) \
- (Boolean)(CallUniversalProc(proc, PresetUndoUPPInfo))
-
-#define CallSetUndo(proc) \
- (CallUniversalProc(proc, SetUndoUPPInfo))
-
-#define CallOpenFile(proc, spec, w) \
- (Boolean)(CallUniversalProc(proc, OpenFileUPPInfo, (spec), (w)))
-
-#define CallPrepareUndo(proc, undo_start, undo_end, sel_start, sel_end) \
- (Boolean)(CallUniversalProc(proc, PrepareUndoUPPInfo, (undo_start), (undo_end), \
- (sel_start), (sel_end)))
-
-#define CallCommitUndo(proc, new_end) \
- (CallUniversalProc(proc, CommitUndoUPPInfo, (new_end)))
-
-#define CallCreateResults(proc, title, count, results, w) \
- (Boolean)(CallUniversalProc(proc, CreateResultsUPPInfo, (title), (count), (results), (w)))
-
-#else
-
-typedef pascal Handle (*GetWindowContentsProc)(WindowPtr w);
-typedef pascal void (*GetSelectionProc)(long *selStart, long *selEnd, long *firstChar);
-typedef pascal void (*SetSelectionProc)(long selStart, long selEnd, long firstChar);
-typedef pascal void (*GetDocInfoProc)(WindowPtr w, Str255 fName, short *vRefNum, long *dirID);
-typedef pascal long (*GetModDateProc)(WindowPtr w);
-typedef pascal Handle (*CopyProc)(void);
-typedef pascal void (*PasteProc)(Handle pasteText);
-
-typedef pascal long (*GetLastLineProc)(void);
-typedef pascal long (*GetLineNumberProc)(long selection);
-typedef pascal long (*GetLineStartProc)(long selection);
-typedef pascal long (*GetLineEndProc)(long selection);
-typedef pascal long (*GetLinePosProc)(long line);
-
-typedef pascal void (*InsertProc)(char *text, long len);
-typedef pascal void (*DeleteProc)(void);
-
-typedef pascal void (*SetWindowContentsProc)(WindowPtr w, Handle h);
-typedef pascal void (*ContentsChangedProc)(WindowPtr w);
-
-typedef pascal Handle (*GetFileTextProc)(short vRefNum, long dirID, Str255 fName, Boolean *canDispose);
-
-typedef pascal Boolean (*GetFolderProc)(Str255 prompt, short *vRefNum, long *dirID);
-typedef pascal Boolean (*OpenSeveralProc)(Boolean sort, short *file_count, StandardFileReply ***files);
-
-typedef pascal DialogPtr (*CenterDialogProc)(short dialogID);
-typedef pascal Boolean (*StandardFilterProc)(DialogPtr d, EventRecord *event, short *item);
-typedef pascal void (*FrameDialogItemProc)(DialogPtr d, short item);
-
-typedef pascal WindowPtr (*NewDocumentProc)(void);
-typedef pascal WindowPtr (*OpenDocumentProc)(void);
-
-typedef pascal Handle (*AllocateProc)(long size, Boolean clear);
-typedef pascal long (*FindPatternProc)(char *text, long text_len, long text_offset,
- char *pat, long pat_len,
- Boolean case_sensitive);
-
-typedef pascal void (*ReportOSErrorProc)(short code);
-
-typedef pascal void (*GetPreferenceProc)(ResType prefType, short req_len, void *buffer, short *act_len);
-typedef pascal void (*SetPreferenceProc)(ResType prefType, short req_len, void *buffer, short *act_len);
-
-typedef pascal void (*StartProgressProc)(Str255 str, long total, Boolean cancel_allowed);
-typedef pascal Boolean (*DoProgressProc)(long done);
-typedef pascal void (*DoneProgressProc)(void);
-
-typedef pascal Boolean (*GetProjectListProc)(FSSpec *spec, short *kind, short *count, ProjectEntry ***entries);
-typedef pascal Boolean (*ProjectTextListProc)(FSSpec *spec, Handle *text);
-
-typedef pascal Boolean (*PresetUndoProc)(void);
-typedef pascal void (*SetUndoProc)(void);
-
-typedef pascal Boolean (*OpenFileProc)(FSSpec *spec, WindowPtr *w);
-
-typedef pascal Boolean (*PrepareUndoProc)(long undo_start, long undo_end,
- long sel_start, long sel_end);
-typedef pascal void (*CommitUndoProc)(long new_end);
-
-typedef pascal Boolean (*CreateResultsProc)(Str255 title, short count, Handle results, WindowPtr *w);
-
-#define CallGetWindowContents(proc, w) \
- ((proc))((w))
-
-#define CallGetSelection(proc, selStart, selEnd, firstChar) \
- ((proc))((selStart), (selEnd), (firstChar))
-
-#define CallSetSelection(proc, selStart, selEnd, firstChar) \
- ((proc))((selStart), (selEnd), (firstChar))
-
-#define CallGetDocInfo(proc, w, name, vRefNum, dirID) \
- ((proc))((w), (name), (vRefNum), (dirID))
-
-#define CallGetModDate(proc, w) \
- ((proc))((w))
-
-#define CallCopy(proc) \
- ((proc))()
-
-#define CallPaste(proc, h) \
- ((proc))((h))
-
-#define CallGetLastLine(proc) \
- ((proc))()
-
-#define CallGetLineNumber(proc, sel) \
- ((proc))((sel))
-
-#define CallGetLineStart(proc, sel) \
- ((proc))((sel))
-
-#define CallGetLineEnd(proc, sel) \
- ((proc))((sel))
-
-#define CallGetLinePos(proc, sel) \
- ((proc))((sel))
-
-#define CallInsert(proc, text, len) \
- ((proc))((text), (len))
-
-#define CallDelete(proc) \
- ((proc))()
-
-#define CallSetWindowContents(proc, w, h) \
- ((proc))((w), (h))
-
-#define CallContentsChanged(proc, w) \
- ((proc))((w))
-
-#define CallGetFileText(proc, vRefNum, dirID, name, canDispose) \
- ((proc))((vRefNum), (dirID), (name), (canDispose))
-
-#define CallGetFolder(proc, prompt, vRefNum, dirID) \
- ((proc))((prompt), (vRefNum), (dirID))
-
-#define CallOpenSeveral(proc, sort, file_count, files) \
- ((proc))((sort), (file_count), (files))
-
-#define CallCenterDialog(proc, dialogID) \
- ((proc))((dialogID))
-
-#define CallStandardFilter(proc, d, event, item) \
- ((proc))((d), (event), (item))
-
-#define CallFrameDialogItem(proc, d, item) \
- ((proc))((d), (item))
-
-#define CallNewDocument(proc) \
- ((proc))()
-
-#define CallOpenDocument(proc) \
- ((proc))()
-
-#define CallAllocate(proc, size, clear) \
- ((proc))((size), (clear))
-
-#define CallFindPattern(proc, text, text_len, text_offset, pat, pat_len, case_sens) \
- ((proc))((text), (text_len), (text_offset), (pat), (pat_len), (case_sens))
-
-#define CallReportOSError(proc, code) \
- ((proc))((code))
-
-#define CallGetPreference(proc, prefType, req_len, buffer, act_len) \
- ((proc))((prefType), (req_len), (buffer), (act_len))
-
-#define CallSetPreference(proc, prefType, req_len, buffer, act_len) \
- ((proc))((prefType), (req_len), (buffer), (act_len))
-
-#define CallStartProgress(proc, str, total, cancel_allowed) \
- ((proc))((str), (total), (cancel_allowed))
-
-#define CallDoProgress(proc, done) \
- ((proc))((done))
-
-#define CallDoneProgress(proc) \
- ((proc))()
-
-#define CallGetProjectList(proc, spec, kind, count, entries) \
- ((proc))((spec), (kind), (count), (entries))
-
-#define CallProjectTextList(proc, spec, text) \
- ((proc))((spec), (text))
-
-#define CallPresetUndo(proc) \
- ((proc))()
-
-#define CallSetUndo(proc) \
- ((proc))()
-
-#define CallOpenFile(proc, spec, w) \
- ((proc))((spec), (w))
-
-#define CallPrepareUndo(proc, undo_start, undo_end, sel_start, sel_end) \
- ((proc))((undo_start), (undo_end), (sel_start), (sel_end))
-
-#define CallCommitUndo(proc, new_end) \
- ((proc))((new_end))
-
-#define CallCreateResults(proc, title, count, results, w) \
- ((proc))((title), (count), (results), (w))
-
-#endif
-
-
-typedef struct
-{
- short version;
-
- // version 1 callbacks
-
- GetWindowContentsProc GetWindowContents;
- GetSelectionProc GetSelection;
- SetSelectionProc SetSelection;
- GetDocInfoProc GetDocInfo;
- GetModDateProc GetModDate;
- CopyProc Copy;
- PasteProc Paste;
-
- // version 2 callbacks
-
- /* Text-Editing stuff */
- GetLastLineProc GetLastLine;
- GetLineNumberProc GetLineNumber;
- GetLineStartProc GetLineStart;
- GetLineEndProc GetLineEnd;
- GetLinePosProc GetLinePos;
-
- InsertProc Insert;
- DeleteProc Delete;
-
- /* Getting and Setting window text */
- SetWindowContentsProc SetWindowContents;
- ContentsChangedProc ContentsChanged;
-
- /* Reading file text */
- GetFileTextProc GetFileText;
-
- /* Direct user-interface calls */
- GetFolderProc GetFolder;
- OpenSeveralProc OpenSeveral;
-
- CenterDialogProc CenterDialog;
- StandardFilterProc StandardFilter;
- FrameDialogItemProc FrameDialogItem;
-
- NewDocumentProc NewDocument;
- OpenDocumentProc OpenDocument;
-
- /* Utility Routines */
- AllocateProc Allocate;
- FindPatternProc FindPattern;
-
- ReportOSErrorProc ReportOSError;
-
- /* Preference routines */
- GetPreferenceProc GetPreference;
- SetPreferenceProc SetPreference;
-
- /* Progress routines */
- StartProgressProc StartProgress;
- DoProgressProc DoProgress;
- DoneProgressProc DoneProgress;
-
- // Version 3 callbacks
- GetProjectListProc GetProjectList;
- ProjectTextListProc ProjectTextList;
-
- // version 4 callbacks
-
- PresetUndoProc PresetUndo;
- SetUndoProc SetUndo;
-
- OpenFileProc OpenFile;
-
- // version 5 callbacks
-
- PrepareUndoProc PrepareUndo;
- CommitUndoProc CommitUndo;
-
- CreateResultsProc CreateResults;
-
-} ExternalCallbackBlock;
-
-#if defined(powerc) || defined (__powerc)
-#pragma options align=reset
-#endif
-
-/*
- 'main' for a BBXT is declared:
-
-pascal void main(ExternalCallbackBlock *callbacks, WindowPtr w); [C]
-
- The 'new' calling convention, which passes more information
- and allows scriptability, is this:
-
-pascal OSErr main(ExternalCallbackBlock *callbacks, WindowPtr w, long flags, AppleEvent *event, AppleEvent *reply);
-*/