Retired Document
Important: This sample code may not represent best practices for current development. The project may use deprecated symbols and illustrate technologies and techniques that are no longer recommended.
SimpleApp/SimpleApp.h
/************************************************************************* |
** Apple Macintosh Developer Technical Support |
** |
** Simple App Framework |
** |
** by Matthew Xavier Mora, Apple Developer Technical Support mxmora@apple.com |
** |
** File: SimpleApp.h |
** |
** Copyright © 1995-1996 Apple Computer, Inc. |
** All rights reserved. |
** |
** You may incorporate this sample code into your applications without |
** restriction, though the sample code has been provided "AS IS" and the |
** responsibility for its operation is 100% yours. However, what you are |
** not permitted to do is to redistribute the source as "DSC Sample Code" |
** after having made changes. If you're going to re-distribute the source, |
** we require that you make it clear in the source that the code was |
** descended from Apple Sample Code, but that you've made changes. |
** |
**************************************************************************/ |
#include <Lists.h> |
#include <AppleEvents.h> |
#include <Drag.h> |
#ifndef __SIMPLEAPP__ |
#define __SIMPLEAPP__ |
/*---------------------------------------------------------------------------------- */ |
#pragma mark Defines |
/*---------------------------------------------------------------------------------- */ |
#define kMagicSig (0x4D584D21) /* 'MXM!' our magic signature */ |
#define kMaxMenus (20) |
#define kMaxMenuItems (128) |
#define kMaxButtons (128) |
#define kMaxEventProcs (10) |
#define kAppleEventLoadingErr (129) |
#define kScrollBarType 'scrl' |
#define kEventPassThru (true) /* This lets the event pass thru to the default handler */ |
#define kEventOverRide (false) /* This overides the event and doesn't call to the default handler */ |
#define kUpArrow (30) |
#define kDownArrow (31) |
#define kEnterKey (0x03) |
#define kReturnKey (0x0D) |
#define kTabKey (0x09) |
#define kAppleNum (128) |
#define kFileNum (129) |
#define kEditNum (130) |
#define kMenuStartID (127) |
#define kMargin (5) |
#define kUseStandardMenu (true) |
#define kErrorBase ( 0 ) // Base value for SimpleApp Error Numbers |
#define kSAStandardDebugAlert ( 9999) |
#define kSANonFatalError ( kErrorBase ) |
#define kSAFatalError ( kErrorBase - 1 ) |
#define kSABadSelectorErr ( kErrorBase - 2 ) |
#define kSABadProcPtr ( kErrorBase - 3 ) |
#define kNotOurWindowError ( kErrorBase - 4 ) |
#define kNotValidObject ( kErrorBase - 5 ) |
#define kSAInObject (1) |
#define kSANotInObject (2) |
#define kSAObjectWasHit (3) |
#define kSAObjectWasNotHit (4) |
#define kSANoCommandKey ( 0 ) // value for no command key equivalent |
#define kAboutText (1) |
#define kButtonName (2) |
#define kStaticStrings (1000) |
/*---------------------------------------------------------------------------------- */ |
#pragma mark typedefs |
/*---------------------------------------------------------------------------------- */ |
typedef Str255 StringArray; |
typedef StringArray *StringArrayPtr,**StringArrayHandle ; |
typedef ControlRef ControlArray[]; |
typedef ControlArray *ControlArrayPtr,**ControlArrayHandle; |
typedef struct GroupRec GroupRec, *GroupRecPtr, **GroupRecHandle; |
typedef struct ObjectItemRec ObjectItemRec, *ObjectItemRecPtr, **ObjectItemRecHandle; |
typedef struct MenuItemRec MenuItemRec, *MenuItemRecPtr , **MenuItemRecHandle ; |
typedef struct ButtonItemRec ButtonItemRec, *ButtonItemRecPtr, **ButtonItemRecHandle; |
typedef ButtonItemRecHandle ButtonItemRef; |
typedef ObjectItemRecHandle ObjectItemRef; |
typedef pascal SInt16 (* MenuHitProc) ( SInt32 modifiers); |
typedef pascal SInt16 (* MenuUpdateProc ) ( SInt32 modifiers); |
typedef pascal SInt16 (* ButtonHitProc) ( ButtonItemRef me,SInt32 modifiers) ; |
typedef pascal SInt16 (* ButtonUpdateProc)( ButtonItemRef me,SInt32 modifiers); |
typedef pascal void (* MyActionProc) ( ControlHandle control,SInt16 part); |
typedef pascal Boolean (* AboutProc) ( SInt32 data); |
typedef pascal Boolean (* PreGroupHitProc) (SInt32 modifiers ,Point pt, ControlArrayPtr cap , SInt16 count) ; |
typedef pascal SInt16 (* PostGroupHitProc) ( SInt32 modifiers ,ControlRef cr,ButtonItemRecHandle brh, SInt16 item); |
typedef pascal SInt16 (* GroupUpdateProc) ( WindowRef wind,GroupRecHandle grh ); |
typedef pascal SInt16 (* WindowHitProc) ( SInt32 modifiers); |
typedef pascal SInt16 (* ListHitProc ) ( SInt32 modifiers) ; |
typedef pascal SInt16 (* EditFieldHitProc) ( SInt32 modifiers) ; |
typedef pascal SInt16 (* WindowUpdateProc) ( SInt32 modifiers) ; |
typedef pascal SInt16 (* ListUpdateProc) ( SInt32 modifiers) ; |
typedef pascal void (* ListDrawCellProc) ( Point thecell, Rect *bounds ,ListRef listID ); |
typedef pascal SInt16 (* EditFieldUpdateProc)( SInt32 modifiers) ; |
typedef pascal SInt16 (* WindowIdleProc) ( SInt32 modifiers ) ; |
typedef pascal SInt16 (* ListIdleProc ) ( SInt32 modifiers ) ; |
typedef pascal SInt16 (* EditFieldIdleProc) ( SInt32 modifiers ) ; |
typedef pascal SInt16 (* WindowGrowProc) ( EventRecord *event ); |
typedef pascal SInt16 (* WindowZoomProc) ( EventRecord *event ); |
typedef pascal SInt16 (* WindowActivateProc) ( Boolean isActivating ) ; |
typedef pascal SInt16 (* TextFieldHitProc) ( SInt32 modifiers) ; |
typedef pascal SInt16 (* TextFieldUpdateProc)( SInt32 modifiers) ; |
typedef pascal SInt16 (* EventProcs ) ( EventRecord *event) ; |
typedef pascal Boolean (* PreEventProc ) (EventRecord * event,long refCon); |
typedef pascal SInt16 (* TerminateProc) ( SInt32 flags) ; |
typedef pascal SInt16 (* InitializeProc) ( SInt32 flags) ; |
typedef pascal SInt16 (* LowMemProc) ( SInt32 flags ) ; |
typedef pascal SInt16 (* MenuEventProc) ( SInt32 menuResult); |
typedef pascal void (* WindowCloseProc) ( WindowRef * theWindow); |
/* generic object stuff */ |
typedef pascal Handle (* ObjectInitProc) ( ObjectItemRecHandle orh); |
typedef pascal OSErr (* ObjectDisposeProc) ( ObjectItemRecHandle orh); |
typedef pascal SInt16 (* ObjectHitProc ) ( Point *pt,SInt32 modifiers, ObjectItemRecHandle me); |
typedef pascal SInt16 (* ObjectTrackProc ) ( Point *pt,SInt32 modifiers, ObjectItemRecHandle me); |
typedef pascal SInt16 (* ObjectUpdateProc) ( WindowRef window, RgnHandle update,ObjectItemRecHandle me) ; |
typedef pascal void (* ObjectKeyProc ) ( char keyCode, char theChar,SInt32 modifiers); |
typedef pascal void (* ObjectIdleProc ) ( ObjectItemRecHandle orh); |
typedef pascal SInt16 (* ObjectEditProc ) ( ObjectItemRecHandle orh,SInt16 editAction); |
typedef pascal SInt16 (* GetDragDataProc) (ObjectItemRef orh,OSType * theType,Ptr * data,long * len,long * flags); |
typedef pascal SInt16 (* PutDragDataProc ) (ObjectItemRef orh,OSType theType,Ptr data,long len,long flags); |
typedef pascal SInt16 (* CalcObjectRegionProc) (ObjectItemRef orh,RgnHandle theRgn); |
typedef pascal SInt16 (* ObjectReceiveProc) (ObjectItemRef orh,DragReference theDrag); |
/* Apple Event Stuff */ |
typedef pascal OSErr (* OpenDocProc ) ( AppleEvent *ae, AppleEvent * AEreply,SInt32 handlerRefcon); |
typedef pascal OSErr (* OpenAppProc ) ( AppleEvent *ae, AppleEvent * AEreply, SInt32 handlerRefcon); |
typedef pascal OSErr (* QuitAppProc ) ( AppleEvent *ae, AppleEvent * AEreply, SInt32 handlerRefcon); |
typedef pascal OSErr (* PrintDocProc ) ( AppleEvent *ae, AppleEvent * AEreply, SInt32 handlerRefcon); |
typedef pascal SInt16 (* ScriptProc ) ( SInt16 resId); |
typedef pascal OSErr (* OpenFileProc) (FSSpecPtr myFSSPtr); |
typedef pascal OSErr (* NewDocProc ) (long refCon); |
struct MenuItemRec { |
SInt16 menuID ; |
SInt16 menuItem ; |
Handle menuObject ; |
MenuHitProc menuHit ; |
MenuUpdateProc menuUpdate ; |
}; |
struct GroupRec { |
long groupType; |
GroupRecHandle nextGroup; |
short groupID; |
WindowRef window ; |
Str255 groupTitle; |
long groupRefCon; |
short groupControlCount; |
StringArrayPtr groupControlnames; |
Rect groupBounds ; |
short groupHSpacing; |
short groupVSpacing ; |
short groupFlags; |
PreGroupHitProc groupPreHit ; |
PostGroupHitProc groupPostHit ; |
GroupUpdateProc groupUpdate ; |
ControlArrayPtr groupControlArray; |
}; |
struct ButtonItemRec { |
long buttonType; |
ButtonItemRef nextButton ; |
SInt16 buttonID ; |
ControlRef buttonObject ; |
long buttonRefCon; |
GroupRecHandle buttonGroup; |
ButtonHitProc buttonHit ; |
ButtonUpdateProc buttonUpdate ; |
}; |
struct ObjectItemRec { |
long objectType; |
ObjectItemRef nextObject; |
SInt16 objectID; |
Handle objectHandle; |
Str255 objectName; |
Rect objectRect; |
UInt8 objectCmdKey; |
WindowRef objectOwner; |
GroupRecHandle objectGroup; |
ObjectInitProc objectInit; |
ObjectDisposeProc objectDispose; |
ObjectHitProc objectHit; |
ObjectHitProc objectTrack; |
ObjectUpdateProc objectUpdate; |
ObjectIdleProc objectIdle; |
ObjectKeyProc objectKey; |
ObjectEditProc objectEdit; |
UInt32 objectRefCon; |
UInt32 objectFlags; |
SInt16 objectState; |
}; |
/* |
buttonType:longint; |
nextButton: ButtonItemRecHandle; |
buttonID: integer; |
buttonObject: ControlHandle; |
buttonRefCon : longint; |
buttonGroup:GroupRecHandle; |
buttonHit: ButtonHitProc; |
buttonUpdate: ButtonUpdateProc; |
*/ |
typedef struct ScrollItemRec ScrollItemRec,*ScrollItemRecPtr, **ScrollItemRecHandle; |
struct ScrollItemRec { |
SInt32 scrollType; |
ScrollItemRecHandle nextScroll; |
SInt16 scrollID; |
ControlHandle scrollObject; |
MyActionProc scrollHit; |
MyActionProc scrollUpdate; |
MyActionProc scrollIndicator; |
MyActionProc scrollButton; |
}; |
struct PrintAreaRec { |
Rect windowPrintRect ; |
SInt16 windowPrintHorz ; |
SInt16 windowPrintVert ; |
SInt16 windowPrintLineHeight ; |
SInt16 windowPrintMaxVert ; |
SInt16 windowPrintMargin ; |
}; |
typedef struct PrintAreaRec PrintAreaRec ,* PrintAreaRecPtr,**PrintAreaRecHandle; |
typedef struct ListItemRec ListItemRec,*ListItemRecPtr,**ListItemRecHandle ; |
struct ListItemRec { |
ListItemRecHandle nextList ; |
ListRef listObject ; |
SInt16 listID ; |
ListHitProc listHit ; |
ListUpdateProc listUpdate ; |
ListIdleProc listIdle ; |
}; |
typedef struct EditFieldItemRec EditFieldItemRec,*EditFieldItemRecPtr,**EditFieldItemRecHandle ; |
struct EditFieldItemRec { |
EditFieldItemRecHandle nextEdit ; |
SInt16 editFieldID ; |
SInt32 editFieldFlags ; |
TEHandle editFieldObject ; |
EditFieldHitProc editFieldHit ; |
EditFieldUpdateProc editFieldUpdate ; |
EditFieldIdleProc editFieldIdle ; |
}; |
enum { |
EditType, |
ListType, |
ButtonType |
} ; |
typedef SInt8 contentItemType; |
struct ContentRec { |
SInt16 contentCount ; |
contentItemType kind ; |
union { |
EditFieldItemRec efr ; |
ListItemRec lir ; |
ButtonItemRec bir ; |
}; |
}; |
typedef struct ContentRec ContentRec,* ContentRecPtr; |
typedef ContentRec WindowItemsArray[]; |
typedef ContentRec * WindowItemsArrayPtr; |
struct WindowItemRec { |
SInt32 windowMagic ; /* Signature so we know our windows */ |
SInt16 windowID ; |
WindowRef windowObject ; |
WindowHitProc windowHit ; |
WindowUpdateProc windowUpdate ; |
WindowIdleProc windowIdle ; |
WindowGrowProc windowGrow ; |
WindowActivateProc windowActivate ; |
WindowCloseProc windowClose; |
WindowZoomProc windowZoom; |
PrintAreaRec windowPrintAreaRec ; |
FSSpec windowFSSpec ; |
SInt16 windowRefNum; |
ListItemRecHandle windowLists ; |
EditFieldItemRecHandle windowEdits ; |
ButtonItemRecHandle windowButtons ; |
ScrollItemRecHandle windowScroll; |
Boolean windowHasControls ; |
Boolean windowHasLists ; |
Boolean windowHasEditField ; |
SInt16 windowItemCount ; |
WindowItemsArrayPtr windowItems ; |
}; |
typedef struct WindowItemRec WindowItemRec, *WindowItemRecPtr,**WindowItemRecHandle; |
struct ProcTableRec { |
EventProcs EventProcsArray[kMaxEventProcs]; |
TerminateProc Terminate ; |
InitializeProc Initialize; |
LowMemProc LowMem ; |
MenuEventProc MenuEvent ; |
AboutProc About; |
OpenFileProc openFile; |
OpenDocProc openDocAE ; |
OpenAppProc openAppAE; |
QuitAppProc quitAppAE; |
PrintDocProc printDocAE; |
NewDocProc newDoc; |
}; |
#if __POWERPC__ |
// they are in the TOC |
#else |
#define gSACurrentWindow GSACURRENTWINDOW |
#define gSACurControl GSACURCONTROL |
#define gSAVPageSize GSAVPAGESIZE |
#define gSAHPageSize GSAHPAGESIZE |
#define gSAVLineSize GSAVLINESIZE |
#define gSAHLineSize GSAHLINESIZE |
#define gSAEvent GSAEVENT |
#define gSAProcs GSAPROCS |
#define gSAMac GSAMAC |
#define gSAIsInBackground GSAISINBACKGROUND |
#endif |
typedef struct ProcTableRec ProcTableRec, *ProcTablePtr; |
/*---------------------------------------------------------------------------------- */ |
#pragma mark Globals |
/*---------------------------------------------------------------------------------- */ |
extern ListRef gSAMyList ; |
extern SInt16 gSATerminateReason ; /* When Quiting this tells us why we are quiting */ |
extern Boolean gSADebug ; /* Activate Debug Alerts. May make this an SInt16 */ |
/* for levels of debug */ |
extern ProcTableRec gSAProcs ; |
extern Boolean gOApped ; |
extern Boolean gSADone ; |
extern Boolean gSAHasAppleEvents ; |
extern Boolean gSAHasTE ; |
extern Boolean gSAHasList ; |
extern MenuRef gSAAppleMenu ; |
extern MenuRef gSAFileMenu ; |
extern MenuRef gSAEditMenu ; |
extern EventRecord gSAEvent ; |
extern Boolean gSAHasControls ; |
extern WindowRef gSACurrentWindow ; |
extern SInt16 gSADefaultFont ; |
extern SInt16 gsADefaultSize ; |
extern SysEnvRec gSAMac ; |
extern WindowItemRecHandle gSACurWRecHandle ; |
extern SInt16 gSAWindowID ; |
extern TEHandle gSACurTE ; |
extern ControlHandle gSACurControl; |
extern ListRef gSACurList ; |
extern SInt16 gSACurrentItem; |
extern Boolean gSAIsInBackground; |
/*---------------------------------------------------------------------------------- */ |
#pragma mark Prototypes |
/*---------------------------------------------------------------------------------- */ |
pascal SInt16 SAExecuteScript(SInt16 resID); |
pascal void SAMoveObject (ObjectItemRecHandle orh,SInt16 h,SInt16 v, Boolean reDraw); |
pascal void SADrawGroup(GroupRecHandle grh,RgnHandle update); |
pascal void InitSimpleApp (SInt16 masters , Boolean wantsStandardMenu); |
pascal void Run(void); |
pascal void CloseSimpleApp(void); |
pascal void SADoWindowClose(WindowRef * theWindow); |
pascal SInt16 DefaultMenuHit ( SInt32 modifiers); |
pascal SInt16 InstallFontMenu(SInt16 menuID, |
ConstStr255Param name, |
MenuHitProc menuHit, |
MenuUpdateProc menuUpdate); |
pascal SInt16 InstallMenu (SInt16 menuID, |
ConstStr255Param menuTitle, |
Boolean Hierarchical, |
MenuHitProc menuHit, |
MenuUpdateProc menuUpdate ); |
pascal SInt16 InstallResourceMenu (SInt16 menuID, |
ConstStr255Param menuTitle, |
OSType resourceType, |
SInt16 afterItem, |
MenuHitProc menuHit, |
MenuUpdateProc menuUpdate); |
pascal SInt16 InstallMenuItem (SInt16 menuID, |
SInt16 MenuItem, |
ConstStr255Param menuTitle, |
UInt8 mark, |
UInt8 cmdChar, |
MenuHitProc menuHit, |
MenuUpdateProc menuUpdate); |
pascal SInt16 InstallPushButton (SInt32 *buttonID, |
WindowRef window, |
ConstStr255Param name, |
Rect *r, |
UInt8 cmdKey, |
ButtonHitProc bhp , |
ButtonUpdateProc bup ); |
pascal SInt16 InstallCustomObject (SInt32 * objectID, |
WindowRef window , |
ConstStr255Param name , |
Rect * r , |
UInt8 cmdKey , |
ObjectInitProc oip , |
ObjectDisposeProc odp , |
ObjectHitProc ohp , |
ObjectTrackProc otp , |
ObjectUpdateProc oup , |
long refCon); |
pascal SInt16 InstallControl (SInt32 * buttonID, |
WindowRef window, |
ConstStr255Param name, |
Rect * r , |
UInt8 cmdKey, |
SInt16 controlType, |
ButtonHitProc bhp , |
ButtonUpdateProc bup ); |
pascal SInt16 InstallCheckBox (SInt32 *buttonID, |
WindowRef window, |
ConstStr255Param name, |
Rect * r , |
UInt8 cmdKey, |
SInt16 initialValue, |
ButtonHitProc bhp , /* set to nil for default checkbox action */ |
ButtonUpdateProc bup ); |
pascal SInt16 InstallScrollBar (SInt32 * buttonID, |
WindowRef window, |
ConstStr255Param name, |
Rect *r, |
UInt8 cmdKey, |
MyActionProc scrollHitProc , |
MyActionProc scrollButtonProc , |
MyActionProc scrollIndicatorProc); |
pascal SInt16 InstallPopUp (long *theButtonID, |
WindowRef window, |
ConstStr255Param name, |
Rect * r, |
SInt16 options, |
SInt16 styles, |
SInt16 MenuID, |
OSType resID, |
ButtonHitProc bhp, |
ButtonUpdateProc bup |
); |
pascal SInt16 InstallRadioGroup (SInt16 theGroupID, |
WindowRef window, |
SInt16 count, |
ConstStr255Param title, |
StringArrayPtr names, |
Rect * r, |
SInt16 defaultItem, |
SInt16 hSpacing, |
SInt16 vSpacing, |
SInt16 buttonHeight, |
SInt16 buttonWidth, |
PreGroupHitProc PreGHP, |
PostGroupHitProc PostGHP, |
GroupUpdateProc gup ); |
pascal SInt16 CreateDocumentWindow (ConstStr255Param name , |
Rect * bounds , |
Boolean visable ); |
pascal void SAInitScripting(void); |
pascal SInt16 GetDocumentWindow ( SInt16 resID); |
pascal void Print (Str255 s ); /* Print no CR */ |
pascal void PrintLine (Str255 s); /* Print with CR */ |
pascal void PrintTextHandle (Handle text ); /* Print a buffer full of text with CR */ |
pascal void SetRectLocation ( Rect *r,SInt16 h, SInt16 v); /* This Sets a rects anchor point */ |
pascal void SetRectDimensions (Rect *r,SInt16 h, SInt16 v); /* This Sets its size without changing its position */ |
pascal void GetPrintArea (WindowRef window ,Rect * bounds ); |
pascal void SetPrintArea (WindowRef window, Rect * bounds ); |
pascal EditFieldItemRecHandle SAGetEditField (WindowRef wind,SInt16 editID) ; |
pascal void SASetFocus (WindowRef theWindow, EditFieldItemRecHandle efrh); |
pascal SInt16 AttachMenuToItem(SInt16 menuIDToAdd,SInt16 AttachMenuID,SInt16 AttachItem); |
pascal SInt16 InstallEditField (SInt32 * editID , |
WindowRef window, |
ConstStr255Param name , |
Rect * r, |
EditFieldHitProc hitProc , |
EditFieldUpdateProc updateProc , |
ObjectKeyProc keyProc , |
SInt32 flags ); |
pascal SInt16 InstallList (SInt32 * listID , |
WindowRef window, |
Rect * r, |
ListHitProc lhp , |
ListUpdateProc lup , |
ListDrawCellProc ldcp , |
SInt32 flags ); |
pascal SInt16 InstallPopUp(SInt32 *buttonID, |
WindowRef window, |
ConstStr255Param name, |
Rect *r, |
SInt16 options, |
SInt16 styles, |
SInt16 MenuID, |
OSType resID, |
ButtonHitProc bhp, |
ButtonHitProc bup); |
pascal SInt16 GetTEString (SInt16 editFieldID ,ConstStr255Param s ) ; |
pascal OSErr AddStringToList (ListRef listID ,ConstStr255Param s ); |
pascal void BlastString (SInt16 h, SInt16 v ,Str255 s ); /* These will blast text at the location specified. It erases as it draws */ |
pascal void BlastText (SInt16 h,SInt16 v ,Handle text ); |
pascal void InstallIdleProc(EventProcs ip); |
pascal void SetMyTitle(Str255 title); |
pascal void SAEnableMe(void); |
pascal void SADisableMe(void); |
pascal void SAEnableObject(SInt32 thing); |
pascal void SADisableObject(SInt32 thing); |
pascal void SADisableMe(); |
pascal ButtonItemRecHandle SAGetGroupItem(WindowRef wind,SInt16 groupID,SInt16 item); |
pascal SInt16 SADrawObject(ObjectItemRecHandle orh,RgnHandle update); |
pascal SInt16 InstallStaticText(SInt32 * textID,WindowRef window,ConstStr255Param s ,Rect *r); |
pascal void ErrorMessage(ConstStr255Param msg,SInt32 error,SInt16 flags); |
pascal Handle SAGetObjectHandle(long thing); |
pascal void SetWindowHitProc (WindowRef window,WindowHitProc theProc ); |
pascal void SetWindowUpdateProc (WindowRef window,WindowUpdateProc theProc ); |
pascal void SetWindowIdleProc (WindowRef window,WindowIdleProc theProc ); |
pascal void SetWindowGrowProc (WindowRef window,WindowGrowProc theProc ); |
pascal void SetWindowActivateProc(WindowRef window,WindowActivateProc theProc ); |
pascal void SetWindowCloseProc (WindowRef window,WindowCloseProc theProc ); |
pascal void SetWindowZoomProc (WindowRef window,WindowZoomProc theProc ); |
pascal void SetWindowFSSpec (WindowRef window,FSSpecPtr FSSpec); |
pascal OSErr GetWindowFSSpec (WindowRef window,FSSpecPtr theFSSpec ); |
pascal WindowCloseProc GetWindowCloseProc (WindowRef window); |
pascal void SelectFile(void); |
pascal void SetOpenFileProc (OpenFileProc openFile); |
pascal void InstallPreEventHandler (PreEventProc eventHandler,long refCon); |
pascal short SASetSleepValue(short sleep); |
// drag stuff |
pascal OSErr SADoWindowContentDrag (WindowPtr theWindow, EventRecord *theEvent); |
pascal OSErr SAInstallDragHandlers (WindowPtr theWindow,DragTrackingHandlerProcPtr track,DragReceiveHandlerProcPtr receive); |
pascal OSErr SAInstallStandardDragHandlers (WindowPtr theWindow); |
pascal OSErr SAAddDataType(WindowPtr theWindow,OSType theType); |
pascal OSErr SAAddWindowDragDataTypes(WindowPtr theWindow,OSType theType); |
pascal OSErr InstallDragObject(long * ObjectID,WindowRef window,ConstStr255Param name,Rect * r,GetDragDataProc gdp,PutDragDataProc pdp,ObjectReceiveProc orp, long refCon); |
#endif |
Copyright © 2003 Apple Computer, Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2003-01-14