topical media & game development
lib-of-vs-libs-QTDevWin-CIncludes-Terminals.h / h
/*
File: Terminals.h
Contains: Communications Toolbox Terminal tool Interfaces.
Version: Technology: System 7.5
Release: QuickTime 6.0.2
Copyright: (c) 1988-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 __TERMINALS__
define __TERMINALS__
ifndef __CONDITIONALMACROS__
include <ConditionalMacros.h>
endif
ifndef __DIALOGS__
include <Dialogs.h>
endif
ifndef __CTBUTILITIES__
include <CTBUtilities.h>
endif
ifndef __CONNECTIONS__
include <Connections.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
if CALL_NOT_IN_CARBON
enum {
curTMVersion = 2 /* current Terminal Manager version */
};
enum {
curTermEnvRecVers = 0 /* current Terminal Manager Environment Record version */
};
enum {
/* error codes */
tmGenericError = -1,
tmNoErr = 0,
tmNotSent = 1,
tmEnvironsChanged = 2,
tmNotSupported = 7,
tmNoTools = 8
};
typedef OSErr TMErr;
enum {
tmInvisible = 1 << 0,
tmSaveBeforeClear = 1 << 1,
tmNoMenus = 1 << 2,
tmAutoScroll = 1 << 3,
tmConfigChanged = 1 << 4
};
typedef unsigned long TMFlags;
enum {
selTextNormal = 1 << 0,
selTextBoxed = 1 << 1,
selGraphicsMarquee = 1 << 2,
selGraphicsLasso = 1 << 3,
tmSearchNoDiacrit = 1 << 8,
tmSearchNoCase = 1 << 9
};
typedef unsigned short TMSearchTypes;
typedef short TMSelTypes;
enum {
cursorText = 1,
cursorGraphics = 2
};
typedef unsigned short TMCursorTypes;
enum {
tmTextTerminal = 1 << 0,
tmGraphicsTerminal = 1 << 1
};
typedef unsigned short TMTermTypes;
struct TermDataBlock {
TMTermTypes flags;
Handle theData;
Handle auxData;
long reserved;
};
typedef struct TermDataBlock TermDataBlock;
typedef TermDataBlock * TermDataBlockPtr;
typedef TermDataBlockPtr * TermDataBlockH;
typedef TermDataBlockPtr * TermDataBlockHandle;
struct TermEnvironRec {
short version;
TMTermTypes termType;
short textRows;
short textCols;
Point cellSize;
Rect graphicSize;
Point slop;
Rect auxSpace;
};
typedef struct TermEnvironRec TermEnvironRec;
typedef TermEnvironRec * TermEnvironPtr;
union TMSelection {
Rect selRect;
RgnHandle selRgnHandle;
};
typedef union TMSelection TMSelection;
typedef struct TermRecord TermRecord;
typedef TermRecord * TermPtr;
typedef TermPtr * TermHandle;
typedef CALLBACK_API( long , TerminalSendProcPtr )(Ptr thePtr, long theSize, long refCon, CMFlags flags);
typedef CALLBACK_API( void , TerminalBreakProcPtr )(long duration, long refCon);
typedef CALLBACK_API( long , TerminalCacheProcPtr )(long refCon, TermDataBlockPtr theTermData);
typedef CALLBACK_API( void , TerminalSearchCallBackProcPtr )(TermHandle hTerm, short refNum, Rect *foundRect);
typedef CALLBACK_API( Boolean , TerminalClikLoopProcPtr )(long refCon);
typedef CALLBACK_API( CMErr , TerminalEnvironsProcPtr )(long refCon, ConnEnvironRec *theEnvirons);
typedef CALLBACK_API( void , TerminalChooseIdleProcPtr )(void );
typedef CALLBACK_API( long , TerminalToolDefProcPtr )(TermHandle hTerm, short msg, long p1, long p2, long p3);
typedef STACK_UPP_TYPE(TerminalSendProcPtr) TerminalSendUPP;
typedef STACK_UPP_TYPE(TerminalBreakProcPtr) TerminalBreakUPP;
typedef STACK_UPP_TYPE(TerminalCacheProcPtr) TerminalCacheUPP;
typedef STACK_UPP_TYPE(TerminalSearchCallBackProcPtr) TerminalSearchCallBackUPP;
typedef STACK_UPP_TYPE(TerminalClikLoopProcPtr) TerminalClikLoopUPP;
typedef STACK_UPP_TYPE(TerminalEnvironsProcPtr) TerminalEnvironsUPP;
typedef STACK_UPP_TYPE(TerminalChooseIdleProcPtr) TerminalChooseIdleUPP;
typedef STACK_UPP_TYPE(TerminalToolDefProcPtr) TerminalToolDefUPP;
/* TMTermTypes */
struct TermRecord {
short procID;
TMFlags flags;
TMErr errCode;
long refCon;
long userData;
TerminalToolDefUPP defProc;
Ptr config;
Ptr oldConfig;
TerminalEnvironsUPP environsProc;
long reserved1;
long reserved2;
Ptr tmPrivate;
TerminalSendUPP sendProc;
TerminalBreakUPP breakProc;
TerminalCacheUPP cacheProc;
TerminalClikLoopUPP clikLoop;
WindowPtr owner;
Rect termRect;
Rect viewRect;
Rect visRect;
long lastIdle;
TMSelection selection;
TMSelTypes selType;
long mluField;
};
if OPAQUE_UPP_TYPES
if CALL_NOT_IN_CARBON
EXTERN_API(TerminalSendUPP)
NewTerminalSendUPP (TerminalSendProcPtr userRoutine);
EXTERN_API(TerminalBreakUPP)
NewTerminalBreakUPP (TerminalBreakProcPtr userRoutine);
EXTERN_API(TerminalCacheUPP)
NewTerminalCacheUPP (TerminalCacheProcPtr userRoutine);
EXTERN_API(TerminalSearchCallBackUPP)
NewTerminalSearchCallBackUPP (TerminalSearchCallBackProcPtr userRoutine);
EXTERN_API(TerminalClikLoopUPP)
NewTerminalClikLoopUPP (TerminalClikLoopProcPtr userRoutine);
EXTERN_API(TerminalEnvironsUPP)
NewTerminalEnvironsUPP (TerminalEnvironsProcPtr userRoutine);
EXTERN_API(TerminalChooseIdleUPP)
NewTerminalChooseIdleUPP (TerminalChooseIdleProcPtr userRoutine);
EXTERN_API(TerminalToolDefUPP)
NewTerminalToolDefUPP (TerminalToolDefProcPtr userRoutine);
EXTERN_API(void)
DisposeTerminalSendUPP (TerminalSendUPP userUPP);
EXTERN_API(void)
DisposeTerminalBreakUPP (TerminalBreakUPP userUPP);
EXTERN_API(void)
DisposeTerminalCacheUPP (TerminalCacheUPP userUPP);
EXTERN_API(void)
DisposeTerminalSearchCallBackUPP (TerminalSearchCallBackUPP userUPP);
EXTERN_API(void)
DisposeTerminalClikLoopUPP (TerminalClikLoopUPP userUPP);
EXTERN_API(void)
DisposeTerminalEnvironsUPP (TerminalEnvironsUPP userUPP);
EXTERN_API(void)
DisposeTerminalChooseIdleUPP (TerminalChooseIdleUPP userUPP);
EXTERN_API(void)
DisposeTerminalToolDefUPP (TerminalToolDefUPP userUPP);
EXTERN_API(long)
InvokeTerminalSendUPP (Ptr thePtr,
long theSize,
long refCon,
CMFlags flags,
TerminalSendUPP userUPP);
EXTERN_API(void)
InvokeTerminalBreakUPP (long duration,
long refCon,
TerminalBreakUPP userUPP);
EXTERN_API(long)
InvokeTerminalCacheUPP (long refCon,
TermDataBlockPtr theTermData,
TerminalCacheUPP userUPP);
EXTERN_API(void)
InvokeTerminalSearchCallBackUPP (TermHandle hTerm,
short refNum,
Rect * foundRect,
TerminalSearchCallBackUPP userUPP);
EXTERN_API(Boolean)
InvokeTerminalClikLoopUPP (long refCon,
TerminalClikLoopUPP userUPP);
EXTERN_API(CMErr)
InvokeTerminalEnvironsUPP (long refCon,
ConnEnvironRec * theEnvirons,
TerminalEnvironsUPP userUPP);
EXTERN_API(void)
InvokeTerminalChooseIdleUPP (TerminalChooseIdleUPP userUPP);
EXTERN_API(long)
InvokeTerminalToolDefUPP (TermHandle hTerm,
short msg,
long p1,
long p2,
long p3,
TerminalToolDefUPP userUPP);
endif /* CALL_NOT_IN_CARBON */
else
enum { uppTerminalSendProcInfo = 0x00002FF0 }; /* pascal 4_bytes Func(4_bytes, 4_bytes, 4_bytes, 2_bytes) */
enum { uppTerminalBreakProcInfo = 0x000003C0 }; /* pascal no_return_value Func(4_bytes, 4_bytes) */
enum { uppTerminalCacheProcInfo = 0x000003F0 }; /* pascal 4_bytes Func(4_bytes, 4_bytes) */
enum { uppTerminalSearchCallBackProcInfo = 0x00000EC0 }; /* pascal no_return_value Func(4_bytes, 2_bytes, 4_bytes) */
enum { uppTerminalClikLoopProcInfo = 0x000000D0 }; /* pascal 1_byte Func(4_bytes) */
enum { uppTerminalEnvironsProcInfo = 0x000003E0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes) */
enum { uppTerminalChooseIdleProcInfo = 0x00000000 }; /* pascal no_return_value Func() */
enum { uppTerminalToolDefProcInfo = 0x0000FEF0 }; /* pascal 4_bytes Func(4_bytes, 2_bytes, 4_bytes, 4_bytes, 4_bytes) */
#define NewTerminalSendUPP(userRoutine) (TerminalSendUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalSendProcInfo, GetCurrentArchitecture())
#define NewTerminalBreakUPP(userRoutine) (TerminalBreakUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalBreakProcInfo, GetCurrentArchitecture())
#define NewTerminalCacheUPP(userRoutine) (TerminalCacheUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalCacheProcInfo, GetCurrentArchitecture())
#define NewTerminalSearchCallBackUPP(userRoutine) (TerminalSearchCallBackUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalSearchCallBackProcInfo, GetCurrentArchitecture())
#define NewTerminalClikLoopUPP(userRoutine) (TerminalClikLoopUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalClikLoopProcInfo, GetCurrentArchitecture())
#define NewTerminalEnvironsUPP(userRoutine) (TerminalEnvironsUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalEnvironsProcInfo, GetCurrentArchitecture())
#define NewTerminalChooseIdleUPP(userRoutine) (TerminalChooseIdleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalChooseIdleProcInfo, GetCurrentArchitecture())
#define NewTerminalToolDefUPP(userRoutine) (TerminalToolDefUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalToolDefProcInfo, GetCurrentArchitecture())
#define DisposeTerminalSendUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define DisposeTerminalBreakUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define DisposeTerminalCacheUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define DisposeTerminalSearchCallBackUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define DisposeTerminalClikLoopUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define DisposeTerminalEnvironsUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define DisposeTerminalChooseIdleUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define DisposeTerminalToolDefUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define InvokeTerminalSendUPP(thePtr, theSize, refCon, flags, userUPP) (long)CALL_FOUR_PARAMETER_UPP((userUPP), uppTerminalSendProcInfo, (thePtr), (theSize), (refCon), (flags))
#define InvokeTerminalBreakUPP(duration, refCon, userUPP) CALL_TWO_PARAMETER_UPP((userUPP), uppTerminalBreakProcInfo, (duration), (refCon))
#define InvokeTerminalCacheUPP(refCon, theTermData, userUPP) (long)CALL_TWO_PARAMETER_UPP((userUPP), uppTerminalCacheProcInfo, (refCon), (theTermData))
#define InvokeTerminalSearchCallBackUPP(hTerm, refNum, foundRect, userUPP) CALL_THREE_PARAMETER_UPP((userUPP), uppTerminalSearchCallBackProcInfo, (hTerm), (refNum), (foundRect))
#define InvokeTerminalClikLoopUPP(refCon, userUPP) (Boolean)CALL_ONE_PARAMETER_UPP((userUPP), uppTerminalClikLoopProcInfo, (refCon))
#define InvokeTerminalEnvironsUPP(refCon, theEnvirons, userUPP) (CMErr)CALL_TWO_PARAMETER_UPP((userUPP), uppTerminalEnvironsProcInfo, (refCon), (theEnvirons))
#define InvokeTerminalChooseIdleUPP(userUPP) CALL_ZERO_PARAMETER_UPP((userUPP), uppTerminalChooseIdleProcInfo)
#define InvokeTerminalToolDefUPP(hTerm, msg, p1, p2, p3, userUPP) (long)CALL_FIVE_PARAMETER_UPP((userUPP), uppTerminalToolDefProcInfo, (hTerm), (msg), (p1), (p2), (p3))
endif
/* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
define NewTerminalSendProc(userRoutine) NewTerminalSendUPP(userRoutine)
define NewTerminalBreakProc(userRoutine) NewTerminalBreakUPP(userRoutine)
define NewTerminalCacheProc(userRoutine) NewTerminalCacheUPP(userRoutine)
define NewTerminalSearchCallBackProc(userRoutine) NewTerminalSearchCallBackUPP(userRoutine)
define NewTerminalClikLoopProc(userRoutine) NewTerminalClikLoopUPP(userRoutine)
define NewTerminalEnvironsProc(userRoutine) NewTerminalEnvironsUPP(userRoutine)
define NewTerminalChooseIdleProc(userRoutine) NewTerminalChooseIdleUPP(userRoutine)
define NewTerminalToolDefProc(userRoutine) NewTerminalToolDefUPP(userRoutine)
define CallTerminalSendProc(userRoutine, thePtr, theSize, refCon, flags) InvokeTerminalSendUPP(thePtr, theSize, refCon, flags, userRoutine)
define CallTerminalBreakProc(userRoutine, duration, refCon) InvokeTerminalBreakUPP(duration, refCon, userRoutine)
define CallTerminalCacheProc(userRoutine, refCon, theTermData) InvokeTerminalCacheUPP(refCon, theTermData, userRoutine)
define CallTerminalSearchCallBackProc(userRoutine, hTerm, refNum, foundRect) InvokeTerminalSearchCallBackUPP(hTerm, refNum, foundRect, userRoutine)
define CallTerminalClikLoopProc(userRoutine, refCon) InvokeTerminalClikLoopUPP(refCon, userRoutine)
define CallTerminalEnvironsProc(userRoutine, refCon, theEnvirons) InvokeTerminalEnvironsUPP(refCon, theEnvirons, userRoutine)
define CallTerminalChooseIdleProc(userRoutine) InvokeTerminalChooseIdleUPP(userRoutine)
define CallTerminalToolDefProc(userRoutine, hTerm, msg, p1, p2, p3) InvokeTerminalToolDefUPP(hTerm, msg, p1, p2, p3, userRoutine)
if CALL_NOT_IN_CARBON
EXTERN_API( TMErr )
InitTM (void);
EXTERN_API( Handle )
TMGetVersion (TermHandle hTerm);
EXTERN_API( short )
TMGetTMVersion (void);
EXTERN_API( TermHandle )
TMNew (const Rect * termRect,
const Rect * viewRect,
TMFlags flags,
short procID,
WindowPtr owner,
TerminalSendUPP sendProc,
TerminalCacheUPP cacheProc,
TerminalBreakUPP breakProc,
TerminalClikLoopUPP clikLoop,
TerminalEnvironsUPP environsProc,
long refCon,
long userData);
EXTERN_API( void )
TMDispose (TermHandle hTerm);
EXTERN_API( void )
TMKey (TermHandle hTerm,
const EventRecord * theEvent);
EXTERN_API( void )
TMUpdate (TermHandle hTerm,
RgnHandle visRgn);
EXTERN_API( void )
TMPaint (TermHandle hTerm,
const TermDataBlock * theTermData,
const Rect * theRect);
EXTERN_API( void )
TMActivate (TermHandle hTerm,
Boolean activate);
EXTERN_API( void )
TMResume (TermHandle hTerm,
Boolean resume);
EXTERN_API( void )
TMClick (TermHandle hTerm,
const EventRecord * theEvent);
EXTERN_API( void )
TMIdle (TermHandle hTerm);
EXTERN_API( long )
TMStream (TermHandle hTerm,
void * theBuffer,
long theLength,
CMFlags flags);
EXTERN_API( Boolean )
TMMenu (TermHandle hTerm,
short menuID,
short item);
EXTERN_API( void )
TMReset (TermHandle hTerm);
EXTERN_API( void )
TMClear (TermHandle hTerm);
EXTERN_API( void )
TMResize (TermHandle hTerm,
const Rect * newViewRect);
EXTERN_API( long )
TMGetSelect (TermHandle hTerm,
Handle theData,
ResType * theType);
EXTERN_API( void )
TMGetLine (TermHandle hTerm,
short lineNo,
TermDataBlock * theTermData);
EXTERN_API( void )
TMSetSelection (TermHandle hTerm,
const TMSelection * theSelection,
TMSelTypes selType);
EXTERN_API( void )
TMScroll (TermHandle hTerm,
short dh,
short dv);
EXTERN_API( Boolean )
TMValidate (TermHandle hTerm);
EXTERN_API( void )
TMDefault (Ptr * theConfig,
short procID,
Boolean allocate);
EXTERN_API( Handle )
TMSetupPreflight (short procID,
long * magicCookie);
EXTERN_API( void )
TMSetupSetup (short procID,
const void * theConfig,
short count,
DialogPtr theDialog,
long * magicCookie);
EXTERN_API( Boolean )
TMSetupFilter (short procID,
const void * theConfig,
short count,
DialogPtr theDialog,
EventRecord * theEvent,
short * theItem,
long * magicCookie);
EXTERN_API( void )
TMSetupItem (short procID,
const void * theConfig,
short count,
DialogPtr theDialog,
short * theItem,
long * magicCookie);
EXTERN_API( void )
TMSetupXCleanup (short procID,
const void * theConfig,
short count,
DialogPtr theDialog,
Boolean OKed,
long * magicCookie);
EXTERN_API( void )
TMSetupPostflight (short procID);
EXTERN_API( Ptr )
TMGetConfig (TermHandle hTerm);
EXTERN_API( short )
TMSetConfig (TermHandle hTerm,
const void * thePtr);
EXTERN_API( OSErr )
TMIntlToEnglish (TermHandle hTerm,
const void * inputPtr,
Ptr * outputPtr,
short language);
EXTERN_API( OSErr )
TMEnglishToIntl (TermHandle hTerm,
const void * inputPtr,
Ptr * outputPtr,
short language);
EXTERN_API( void )
TMGetToolName (short id,
Str255 name);
EXTERN_API( short )
TMGetProcID (ConstStr255Param name);
EXTERN_API( void )
TMSetRefCon (TermHandle hTerm,
long refCon);
EXTERN_API( long )
TMGetRefCon (TermHandle hTerm);
EXTERN_API( void )
TMSetUserData (TermHandle hTerm,
long userData);
EXTERN_API( long )
TMGetUserData (TermHandle hTerm);
EXTERN_API( short )
TMAddSearch (TermHandle hTerm,
ConstStr255Param theString,
const Rect * where,
TMSearchTypes searchType,
TerminalSearchCallBackUPP callBack);
EXTERN_API( void )
TMRemoveSearch (TermHandle hTerm,
short refnum);
EXTERN_API( void )
TMClearSearch (TermHandle hTerm);
EXTERN_API( Point )
TMGetCursor (TermHandle hTerm,
TMCursorTypes cursType);
EXTERN_API( TMErr )
TMGetTermEnvirons (TermHandle hTerm,
TermEnvironRec * theEnvirons);
EXTERN_API( short )
TMChoose (TermHandle * hTerm,
Point where,
TerminalChooseIdleUPP idleProc);
EXTERN_API( void )
TMEvent (TermHandle hTerm,
const EventRecord * theEvent);
EXTERN_API( Boolean )
TMDoTermKey (TermHandle hTerm,
ConstStr255Param theKey);
EXTERN_API( short )
TMCountTermKeys (TermHandle hTerm);
EXTERN_API( void )
TMGetIndTermKey (TermHandle hTerm,
short id,
Str255 theKey);
EXTERN_API( void )
TMGetErrorString (TermHandle hTerm,
short id,
Str255 errMsg);
endif /* CALL_NOT_IN_CARBON */
endif /* CALL_NOT_IN_CARBON */
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 /* __TERMINALS__ */
(C) Æliens
04/09/2009
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.