home *** CD-ROM | disk | FTP | other *** search
- #ifndef MACH_H
- #define MACH_H
-
- /* $Log: mach.h,v $
- * Revision 37.002 93/10/14 08:48:00 Brian
- * Release 5.0.
- *
- *
- */
-
- #include <ctype.h>
- #include <devices/input.h>
- #include <devices/inputevent.h>
- #include <dos/datetime.h>
- #include <exec/types.h>
- #include <exec/libraries.h>
- #include <exec/memory.h>
- #include <exec/ports.h>
- #include <exec/semaphores.h>
-
-
- /* Clock Types */
-
- #define CLOCK_ONLY 0 /* hh:mm:ss */
- #define CLOCK_PLUSMEMORY 1 /* Chip xxxx Fast xxxxx hh:mm:ss */
- #define CLOCK_MEMORYONLY 2 /* Chip xxxx Fast xxxxx */
- #define CLOCK_PLUSDATE 3 /* 03-16-93 hh:mm:ss */
- #define CLOCK_COORDS 4 /* xxx yyy */
- #define CLOCK_COMMANDBAR 5 /* gadgets only! */
-
- #define CLOCK_BORDER_RIGHT 0 /* size gadget uses border on right. Normal */
- #define CLOCK_BORDER_BOTTOM 1 /* size gadget uses bottom border */
- #define CLOCK_BORDERLESS 2 /* no border at all! */
-
- #define KEYTASK "KeyTask" /* task name for "Select A Hotkey" */
- #define MACHV_REXX "MACHV_REXX"
-
- #define UNKEYED 128 /* index for unkeyed macros */
- #define MAXKEYS 128 /* keycodes 0-127. 128 is unkeyed */
- #define MAX_CFG_TITLE 80 /* configuration title length */
- #define MAX_LIST_TITLE 15 /* list window title */
- #define MAX_LIST_STRINGBUF 14 /* string gadget under list gadget */
- #define MAX_MACRO_NAME MAX_LIST_STRINGBUF
- #define MAX_DIR_NAME 80 /* path to MachV.prefs */
- #define MAX_FILE_NAME 31 /* MachV.prefs */
- #define MAX_PASTE_APPEND 7 /* pasting prepend and append text */
- #define MAX_ALARM_COMMAND 80 /* length of command for CLK_ALARM to use */
- #define MAX_SETMACH_PATH 40 /* path to find SetMachV */
- #define MAX_CUSTOM_MESSAGE 30 /* largest message for the clock. inc. \0 */
-
- #define MAX_VARIABLE 80 /* number of chars for ml_Variable */
- #define MAX_VARNAME 40 /* number of chars for ml_VarName */
-
- #define MAX_AREXX_RESULT 80 /* max length of results returned */
-
- #define MAX_NO_LAYERS 10 /* number of window titles to NOT layer */
-
- #define DEFAULTS_SIZE 41 /* sizeof default cfg */
-
- #define GAD_NOPOS -1 /* clock gadget has no position yet */
-
- /* The following are set in ml_GeneralEvent and then MachV is signaled.
- Some must be send with PutMsg(). These are noted below. */
-
- #define GE_BBLANK 0 /* blank the screen */
- #define GE_BUNBLANK 1 /* unblank it */
- #define GE_BBEEP 2 /* tell MachV to beep */
- #define GE_BKILLCLOCK 3 /* kill the clock */
- #define GE_BRUNCLOCK 4 /* run it */
- #define GE_BADDCONFIG 5 /* add new configuration. Use PutMsg() */
- #define GE_BDELCONFIG 6 /* del configuration. Use PutMsg() */
- #define GE_BSAVECONFIG 7 /* save configuration. Use PutMsg() */
- #define GE_BLOADCONFIG 8 /* load configuration. Use PutMsg() */
- #define GE_BSET_VARIABLE 9 /* set variable ml_VarName to ml_Variable */
- #define GE_BUPDATESETMACH 10 /* tell MachV to send update msg to interface */
- #define GE_BLOADBEEP 11 /* load a beep sound file. pathname in */
- /* ml_BeepFileName */
- #define GE_BSCREENUP 12 /* tell MachV to tell interface to come */
- /* to front and scroll up. */
- #define GE_BABORTPRINT 13 /* abort printing */
- #define GE_BDISPLAYTIME 14 /* display time (or message) in clock */
- #define GE_BFREEGADGETS 15 /* free clock gadgets */
- #define GE_BSET_MOUSE_PORT 16 /* set mouse port. port in mc_MousePort */
- #define GE_BNEWCONFIG 17 /* tell MachV to switch configurations */
- #define GE_BPRINTCLIP 18 /* print clipboard */
- #define GE_BUPDATE_PATTERNS 19 /* tell MachV to update its StringPatterns */
- #define GE_BTRACE 20 /* toggle tracing */
- #define GE_BNEW_WINDOW 21 /* tell MachV a new window is active */
- #define GE_BHOTKEY 22 /* tell MachV to do a hotkey */
- #define GE_BDO_VAR 23 /* set variable ml_VarName to ml_Variable */
- /* Use PutMsg(). \0 as first char gets it. */
- /* -1 as 1st char deletes the variable. */
-
- /* general event signals */
-
- #define GE_BLANK (1 << GE_BBLANK)
- #define GE_UNBLANK (1 << GE_BUNBLANK)
- #define GE_BEEP (1 << GE_BBEEP)
- #define GE_KILLCLOCK (1 << GE_BKILLCLOCK)
- #define GE_RUNCLOCK (1 << GE_BRUNCLOCK)
- #define GE_ADDCONFIG (1 << GE_BADDCONFIG)
- #define GE_DELCONFIG (1 << GE_BDELCONFIG)
- #define GE_SAVECONFIG (1 << GE_BSAVECONFIG)
- #define GE_LOADCONFIG (1 << GE_BLOADCONFIG)
- #define GE_SET_VARIABLE (1 << GE_BSET_VARIABLE)
- #define GE_UPDATESETMACH (1 << GE_BUPDATESETMACH)
- #define GE_LOADBEEP (1 << GE_BLOADBEEP)
- #define GE_SCREENUP (1 << GE_BSCREENUP)
- #define GE_ABORTPRINT (1 << GE_BABORTPRINT)
- #define GE_DISPLAYTIME (1 << GE_BDISPLAYTIME)
- #define GE_FREEGADGETS (1 << GE_BFREEGADGETS)
- #define GE_SET_MOUSE_PORT (1 << GE_BSET_MOUSE_PORT)
- #define GE_NEWCONFIG (1 << GE_BNEWCONFIG)
- #define GE_PRINTCLIP (1 << GE_BPRINTCLIP)
- #define GE_UPDATE_PATTERNS (1 << GE_BUPDATE_PATTERNS)
- #define GE_TRACE (1 << GE_BTRACE)
- #define GE_NEW_WINDOW (1 << GE_BNEW_WINDOW)
- #define GE_HOTKEY (1 << GE_BHOTKEY)
- #define GE_DO_VAR (1 << GE_BDO_VAR)
-
- /* These are set in ml_MouseEvents and then MachV is signaled. The handler */
- /* usually is the only one that needs to set these. */
-
- #define ME_BSUN 0 /* activate window under mouse */
- #define ME_BKEYSUN 1 /* activate window under mouse caused by keystroke */
- #define ME_BCLICKTF 2 /* move window under mouse to front */
- #define ME_BCYCLE 3 /* move window or screen under mouse to back */
- #define ME_BMOUSEOFF 4 /* turn mouse pointer off */
-
- #define ME_SUN (1 << ME_BSUN)
- #define ME_KEYSUN (1 << ME_BKEYSUN)
- #define ME_CLICKTF (1 << ME_BCLICKTF)
- #define ME_CYCLE (1 << ME_BCYCLE)
- #define ME_MOUSEOFF (1 << ME_BMOUSEOFF)
-
-
- /* SetMachV's screen flags. Set in ml_ScreenFlags */
-
- #define SF_WB 1 /* Open on Workbench */
- #define SF_CUSTOM 2 /* Open on custom screen */
- #define SF_LACE 4 /* Use interlaced custom screen */
- #define SF_SCROLL 8 /* Scroll up from bottom */
- #define SF_TITLEBAR 0x10 /* Show titlebar */
-
-
- /* ml_Trace flags. Set in ml_Trace */
-
- #define TRACE_SERIAL 1
- #define TRACE_CONSOLE 2
-
-
- /* used to wakeup tasks or interface */
-
- #define SIG_WAKEUP SIGBREAKF_CTRL_F
-
- /* mc_Flag flags */
-
- #define MC_BSUNMOUSE 0 /* can sun? */
- #define MC_BKEYACTIVATE 1 /* do key activate? */
- #define MC_BMOUSETOMENU 2 /* allow mouse to menu? */
- #define MC_BMENU_WRAP 3 /* let mouse wrap around menus? */
- #define MC_BWINDOWCYCLE 4 /* window cycling? */
- #define MC_BAUTO_POPTOP 5 /* auto pop to front? */
- #define MC_BKEYCLICK 6 /* key clicking? */
- #define MC_BCLOCK 7 /* clock on? */
- #define MC_BVERTICALCLOCK 8 /* vertical clock? */
- #define MC_BCLOCKTOPWINDOW 9 /* clock can pop to top window? */
- #define MC_BCLOCKFLOAT 10 /* clock can float when screen scrolls? */
- #define MC_BCLOCK_GADGETS 11 /* clock has gadgets? */
- #define MC_BCLOCK_SECONDS 12 /* clock has seconds? */
- #define MC_BMETER 13 /* meter on? */
- #define MC_BSPLINES 14 /* splines blanking? */
- #define MC_BQUICKBLANK 15 /* quick blanking on? */
- #define MC_BSPEAKMESSAGES 16 /* speak messages? */
- #define MC_BDEBUG 17 /* debug mode? */
- #define MC_BBUTTONSWAP 18 /* swap left and right mouse buttons? */
- #define MC_BHOLDQUALS 19 /* hold qualifiers? */
- #define MC_BHOTKEYENABLED 20 /* hotkeys enabled? */
- #define MC_BSEND_UPKEYS 21 /* send up key after each down key? */
- #define MC_BNOCAPSLOCK 22 /* disabled caps lock key? */
- #define MC_BCLIP_REMOVELF 23 /* remove lf? */
- #define MC_BCLIP_CRLF 24 /* lf to crlf? */
- #define MC_BFREEZEVERT 25 /* no vertical movements? */
- #define MC_BFREEZEHORZ 26 /* no horz movements */
- #define MC_BKEYSOFF 27 /* no keys? */
- //#define MC_BBORDERLESS 28 /* no border? */
- //#define MC_BBORDERBOTTOM 29 /* border bottom */
-
- #define MC_SUNMOUSE (1 << MC_BSUNMOUSE)
- #define MC_KEYACTIVATE (1 << MC_BKEYACTIVATE)
- #define MC_MOUSETOMENU (1 << MC_BMOUSETOMENU)
- #define MC_MENU_WRAP (1 << MC_BMENU_WRAP)
- #define MC_WINDOWCYCLE (1 << MC_BWINDOWCYCLE)
- #define MC_AUTO_POPTOP (1 << MC_BAUTO_POPTOP)
- #define MC_KEYCLICK (1 << MC_BKEYCLICK)
- #define MC_CLOCK (1 << MC_BCLOCK)
- #define MC_VERTICALCLOCK (1 << MC_BVERTICALCLOCK)
- #define MC_CLOCKTOPWINDOW (1 << MC_BCLOCKTOPWINDOW)
- #define MC_CLOCKFLOAT (1 << MC_BCLOCKFLOAT)
- #define MC_CLOCK_GADGETS (1 << MC_BCLOCK_GADGETS)
- #define MC_CLOCK_SECONDS (1 << MC_BCLOCK_SECONDS)
- #define MC_METER (1 << MC_BMETER)
- #define MC_SPLINES (1 << MC_BSPLINES)
- #define MC_QUICKBLANK (1 << MC_BQUICKBLANK)
- #define MC_SPEAKMESSAGES (1 << MC_BSPEAKMESSAGES)
- #define MC_DEBUG (1 << MC_BDEBUG)
- #define MC_BUTTONSWAP (1 << MC_BBUTTONSWAP)
- #define MC_HOLDQUALS (1 << MC_BHOLDQUALS)
- #define MC_HOTKEYENABLED (1 << MC_BHOTKEYENABLED)
- #define MC_SEND_UPKEYS (1 << MC_BSEND_UPKEYS)
- #define MC_NOCAPSLOCK (1 << MC_BNOCAPSLOCK)
- #define MC_CLIP_REMOVELF (1 << MC_BCLIP_REMOVELF)
- #define MC_CLIP_CRLF (1 << MC_BCLIP_CRLF)
- #define MC_FREEZEVERT (1 << MC_BFREEZEVERT)
- #define MC_FREEZEHORZ (1 << MC_BFREEZEHORZ)
- #define MC_KEYSOFF (1 << MC_BKEYSOFF)
- //#define MC_BORDERLESS (1 << MC_BBORDERLESS)
- //#define MC_BORDERBOTTOM (1 << MC_BBORDERBOTTOM)
-
- /* Macro mo_Flags. These control action of individual macros */
-
- #define MFLG_BAUTOEXEC 0 /* auto executing macro */
- #define MFLG_BGLOBAL 1 /* accessible from all configurations? */
- #define MFLG_BNONRECURSE 2 /* non-recursive */
- #define MFLG_BGADGET 3 /* has a gadget in the clock */
- #define MFLG_BRELATIVE 4 /* mouse moves relative to window le/te */
- #define MFLG_BTEMP 5 /* temporary? do not save */
- #define MFLG_BDISABLED 6 /* disabled? key passed through */
- #define MFLG_BWRITEPROT 7 /* write protected. cannot record over it */
- #define MFLG_BSUPPRESS_MSG 8 /* do not show Executing Macro */
- #define MFLG_BRESUME 9 /* macro resume execution */
- #define MFLG_BCOUNTDOWN 10 /* counting down (for "Later" alarms) */
- #define MFLG_BREXXMACRO 11 /* macro came from arexx */
- #define MFLG_BWAIT_WINDOW 12 /* macro is waiting for a window */
- #define MFLG_BRECURSE 13 /* recursive. execute again */
- #define MFLG_BRESERVED2 14 /* */
- #define MFLG_BRESERVED3 15 /* */
- #define MFLG_BRESERVED4 16 /* */
-
- #define MFLG_AUTOEXEC (1 << MFLG_BAUTOEXEC)
- #define MFLG_GLOBAL (1 << MFLG_BGLOBAL)
- #define MFLG_NONRECURSE (1 << MFLG_BNONRECURSE)
- #define MFLG_GADGET (1 << MFLG_BGADGET)
- #define MFLG_RELATIVE (1 << MFLG_BRELATIVE)
- #define MFLG_TEMP (1 << MFLG_BTEMP)
- #define MFLG_DISABLED (1 << MFLG_BDISABLED)
- #define MFLG_WRITEPROT (1 << MFLG_BWRITEPROT)
- #define MFLG_SUPPRESS_MSG (1 << MFLG_BSUPPRESS_MSG)
- #define MFLG_MACRO_TOGGLE (1 << MFLG_BMACRO_TOGGLE)
- #define MFLG_RESUME (1 << MFLG_BRESUME)
- #define MFLG_COUNTDOWN (1 << MFLG_BCOUNTDOWN)
- #define MFLG_REXXMACRO (1 << MFLG_BREXXMACRO)
- #define MFLG_WAIT_WINDOW (1 << MFLG_BWAIT_WINDOW)
- #define MFLG_RECURSE (1 << MFLG_BRECURSE)
-
- /* Macro mo_Link.ln_Type */
-
- #define NT_MACRO_SOLO 250 /* only executes when no others are waiting */
- #define NT_MACRO_RESUMEING 251 /* macro is resumeing execution */
- #define NT_MACRO_READY 252 /* ready to execute */
- #define NT_MACRO_RUNNING 253 /* is currently running */
- #define NT_MACRO_WAITING 254 /* is waiting */
-
- /* ml_MachForbid Flags */
-
- #define MF_NOHANDLER 0x8000 /* forbid all handler action */
-
- /* Interface sends these mm_Commands to MachV.
- mm_SubCommands are the general and mouse events listed above,
- that is, GE_RUNCLOCK, GE_LOADCONFIG, ME_MOUSEOFF etc.
- */
-
- #define MACHV_GENERAL_EVENT 1
- #define MACHV_MOUSE_EVENT 2
-
- /* MachV sends these mm_Commands to the interface */
-
- #define IFACE_GOTKEY 1 /* if "KeyTask" is running and user clicked */
- /* on clock gadget */
- #define IFACE_SCREENUP 2 /* interface screen front and up */
- #define IFACE_UPDATE 4 /* update interface gadgets */
- #define IFACE_DEBUG 8 /* debug msg. display malfunctioning hotkey */
-
- /* with IFACE_UPDATE command, these mm_SubCommands */
-
- #define UPDATE_CLIP_WINDOW 0x1
- #define UPDATE_CLOCK_WINDOW 0x2
- #define UPDATE_MFEAT_WINDOW 0x4
- #define UPDATE_MISC_WINDOW 0x8
- #define UPDATE_FLAGS_WINDOW 0x10
- #define UPDATE_MACROS 0x20
- #define UPDATE_ALL 0x40
-
- /* CodeLetterTable is an array of IECODEs and the ascii letter used to
- represent it. E = ESC, D = Del, u = up arrow etc. Numerics are special
- in that they change with the keyboard in use. When MachV is first run,
- these are setup.
- */
-
- #define CT_FIRST_NUMERIC 24 /* index into ml_CLTable 1st numeric */
- #define CT_LAST_NUMERIC 41 /* index for ml_CLTable last numeric */
-
-
- /* all locale text. ml_AppStrings will point to these */
-
- #ifndef STRINGARRAY
- struct AppString
- {
- LONG as_ID;
- STRPTR as_Str;
- };
- #endif
-
- /* message to and from interface */
-
- struct MachMessage {
- struct Message mm_Msg;
- UWORD mm_Command; /* MACHV_GENERAL_EVENT, MACHV_MOUSE_EVENT, */
- /* or IFACE_ command */
- ULONG mm_SubCommand; /* the GE_ or ME_ event, or UPDATE_ command */
- UWORD mm_Code; /* debug keycode */
- UWORD mm_Qualifier; /* its qualifier */
- UWORD mm_MacroPos; /* position in macro of error */
- };
-
-
- struct TaskInfo {
- struct Task *Task;
- long Sig;
- };
-
- /* string and its wildcard pattern */
-
- struct StringPattern {
- char *sp_String;
- STRPTR sp_Pattern;
- };
-
- /* code and letter table. see above */
-
- struct Code_Letter_Table {UBYTE code;char letter;};
-
- /* qualifier and letter table */
-
- struct Qual_Letter_Table {UWORD code;UWORD letter;};
-
- /* Every macro has this struct */
-
- struct MacroObject {
- struct Node mo_Link; /* for key and execution list linking */
- UWORD mo_Position; /* ordinal position (also long aligns) */
- long mo_Size; /* size of macro (including \0) */
- char *mo_Macro; /* the macro string! */
- char *mo_ResumePos; /* position in macro to resume at */
- APTR *mo_Owner; /* config owner or ARexx message ptr */
- char mo_Name[MAX_MACRO_NAME]; /* mo_Link.ln_Name points here */
- UWORD mo_Flags; /* see MFLG_ above */
- UWORD mo_Qual; /* hotkey qualifier for this macro */
- UWORD mo_Code; /* hotkey code */
- WORD mo_ExeCnt; /* number of times this macro has executed */
- WORD mo_DelayCnt; /* how long to delay before re-executing */
- BYTE mo_ErrorCode; /* this macro's error code */
- WORD mo_LE; /* only relevant when MFLG_GADGET is set. */
- WORD mo_TE; /* " */
- UWORD mo_GID; /* (mo_Code << 8) | mo_Qual */
- };
-
- /* every configuration has one of these structs */
-
- struct MachCfg {
- struct Node mc_Link;
- struct List mc_Hotkeys[MAXKEYS+1]; /* the configs hotkeys */
- struct Gadget *mc_CustomGadgets; /* list of gadgets for clock */
- char mc_Title[MAX_CFG_TITLE]; /* to match window, screen or program name */
- char mc_Append[MAX_PASTE_APPEND+1]; /* text to append when pasting*/
- char mc_Prepend[MAX_PASTE_APPEND+1]; /* text to prepend */
- char mc_ClockFont[MAX_FILE_NAME]; /* null for default font */
- ULONG mc_Clocksignature; /* signature using leftedge, topedge, type etc. */
- WORD mc_Cost; /* clock meter cost or time in minutes */
- WORD mc_Position; /* ordinal number of configuration. */
- WORD mc_Registered; /* 43 for registered version 4.3 */
- WORD mc_Accel; /* acceleration -9 to 9 */
- WORD mc_Threshold; /* acceleration threshold 0 to 9 */
- WORD mc_Clickstofront; /* number of clicks required */
- WORD mc_Clockle; /* clock left edge */
- WORD mc_Clockte;
- WORD mc_Clockwidth;
- WORD mc_Clockheight;
- WORD mc_Altle; /* alternate (zoomed) left edge */
- WORD mc_Altte;
- WORD mc_Altwidth;
- WORD mc_Altheight;
- WORD mc_Timele; /* left edge for time */
- WORD mc_Timete; /* top edge for time */
- WORD mc_Timetext; /* time pen for clock */
- WORD mc_Timeback; /* background pen */
- WORD mc_Datedelay; /* delay in seconds to show date */
- WORD mc_Lowmem; /* low memory alert in kbytes */
- WORD mc_Hours; /* 12 or 24 */
- WORD mc_Rate; /* rate for meter */
- WORD mc_Blankdelay; /* delay in seconds */
- WORD mc_Blanklevel; /* 0 to 15 */
- WORD mc_Mouseoffdelay; /* delay in seconds */
- WORD mc_Normalpriority; /* -127 to 127 */
- WORD mc_Playbackpriority;
- WORD mc_Playdelay; /* delay between mouse moves during playback in 50ths */
- WORD mc_Buffersize; /* buffer size when recording */
- WORD mc_Chardelay; /* delay in 50ths of sec. when pasting*/
- WORD mc_Linedelay;
- UWORD mc_MMB; /* qualifiers to substitute for mmb */
- WORD mc_MousePort; /* 0 or 1 */
- WORD mc_BeepVolume; /* 0-64 */
- WORD mc_KeyClickVolume; /* 0-64 */
- WORD mc_Clocktype; /* CLOCK_ONLY, CLOCK_PLUSMEMORY etc. */
- WORD mc_ClockBorder; /* CLOCK_BORDERLESS, CLOCK_BORDER_RIGHT etc. */
- WORD mc_DateFormat; /* FORMAT_DOS, FORMAT_INT, FORMAT_USA, FORMAT_CDN */
- WORD mc_DateSeparator; /* -, /, . etc. */
- WORD mc_NextLE; /* left edge for next gadget to be added */
- WORD mc_NextTE;
- WORD mc_Pad; /* ensure longword alignment from mc_Registered! */
- ULONG mc_Flags; /* sunmouse, cycle, clock on, etc */
- struct StringPattern mc_SunWindows; /* for windows that this will work in */
- struct StringPattern mc_KeyActWindows;
- struct StringPattern mc_AutoPopWindows;
- struct StringPattern mc_CycleWindows;
- struct StringPattern mc_MTMWindows;
- struct StringPattern mc_MenuWrapWindows;
- struct StringPattern mc_ClickWindows;
- struct StringPattern mc_ClockScreens;
- };
-
- /* the library base. Everything is accessible from here */
-
- struct MachLibrary {
- struct Library ml_Lib;
- ULONG ml_SegList;
- ULONG ml_Flags;
- APTR ml_ExecBase;
- struct SignalSemaphore ml_BaseSemaphore; /* Semaphore to Obtain/Release */
- struct List ml_ConfigHead; /* The first configuration */
- struct MachCfg *ml_CurConfig; /* The current configuration */
- struct List *ml_MacroQueue; /* Macros executing or waiting. */
- struct MsgPort *ml_MsgPort; /* MachV receives msgs here */
- struct Window *ml_ClockWindow; /* NULL if no clock */
- struct Window *ml_InterfaceWindow;/* Pointer to interface window. */
- struct Window *ml_ListWindow; /* List window pointer if open */
- struct MsgPort *ml_Interface_Port; /* Interface receives msgs here */
- struct TaskInfo ml_MachV_Task; /* MachV itself! */
- struct TaskInfo ml_Interface_Task; /* User interface task */
- struct Task *ml_List_Task; /* Task spawned by mach.library */
- struct Task *ml_ScrCloseTask; /* Task currently closing a screen */
- struct AppString *ml_AppStrings; /* All text (localized) */
- struct Code_Letter_Table *ml_CLTable; /* iecodes and their letters */
- char *ml_ListSelection; /* last list selection */
- char *ml_TempMacroBuffer; /* ptr to recording buffer */
- char *ml_Variable; /* ptr to buffer MAX_VARIABLE in len */
- char *ml_VarName; /* ptr to name of variable */
- char *ml_RegName; /* ptr to registered users name/num */
- char *ml_Interface_Path; /* path to interface */
- char ml_PrefsDirName[MAX_DIR_NAME]; /* path to prefs */
- char ml_PrefsFileName[MAX_FILE_NAME];/* name of pref file */
- char ml_BeepFileName[MAX_DIR_NAME+MAX_FILE_NAME];
- char ml_AlarmCommand[MAX_ALARM_COMMAND]; /* default echo >speak: */
- ULONG ml_MouseEvent; /* MachV mouse events */
- ULONG ml_GeneralEvent; /* MachV other events */
- ULONG ml_ReqKeyQual; /* -1 = request key/qualifier from MachV */
- UWORD ml_GVF_Flags; /* Flags for env variables. def = GVF_LOCAL_ONLY */
- WORD ml_MachForbid; /* Forbid the handler from doing anything! */
- WORD ml_Recording; /* Currently recording a macro. */
- WORD ml_SuspendAll; /* Suspend MachV */
- WORD ml_HandlerPri; /* priority of interrupt handler */
- UWORD ml_Trace; /* Trace options. TRACE_SERIAL or TRACE_CONSOLE */
- UWORD ml_ScreenFlags; /* SetMachV screen types desired */
- char *ml_TodaysDate; /* e.g. 03-25-93 (updated every second) */
- char *ml_TodaysTime; /* e.g. 17:45:29 (updated every second) */
- WORD ml_Smle; /* Left/Top edges of SetMachV windows */
- WORD ml_Smte;
- WORD ml_Cliple;
- WORD ml_Clipte;
- WORD ml_Mfeatle;
- WORD ml_Mfeatte;
- WORD ml_Cfeatle;
- WORD ml_Cfeatte;
- WORD ml_Miscle;
- WORD ml_Miscte;
- };
-
- #endif
-
-