boot3/OS/PPC/PPCBrowserPriv.h
Elliot Nunn 5b0f0cc134 Bring in CubeE sources
Resource forks are included only for .rsrc files. These are DeRezzed into their data fork. 'ckid' resources, from the Projector VCS, are not included.

The Tools directory, containing mostly junk, is also excluded.
2017-12-26 10:02:57 +08:00

270 lines
11 KiB
C

/*
File: PPCBrowserPriv.h
Contains: Private header file for the PPC Browser
Written by: Jeff Miller
Copyright: © 1990, 1992 by Apple Computer, Inc., all rights reserved.
This file is used in these builds:
Change History (most recent first):
<18> 7/5/92 csd #1034096 <gbm>: Changed listFont and listFontSize to use the
application font and size by setting them to 1 and 0
respectively. This will make the Browser show the lists in the
application font which works better for other script systems.
<17> 3/30/92 DCL Include StandardFile.h. It used to be indirectly included
through Packages.h.
<16> 9/21/90 JSM Use angle brackets again since we're using the real
PPCToolbox.h, update some stuff to reflect this.
<15> 9/15/90 ngk Fix include of PPCToolbox to use quotes instead of angle
brackets
<14> 9/14/90 JSM Add theLocNBPType to globals.
<13> 8/21/90 JSM Add DefaultPromptStr constant.
<12> 7/25/90 JSM Add ZoneListColumns, MachListColumns, and AppListColumns
constants, define NoCellSelected explicitly as a short to reduce
code size.
<11> 7/11/90 JSM #include String.h to avoid C compiler warnings.
<10> 5/29/90 JSM Update to add support for new Chooser-style interface.
<9> 5/3/90 JSM #include IntlUtilsPriv, add support for type select utilities to
globals.
<8> 4/24/90 JSM Add okEnabled field to globals, #define buttonEnabledHilite and
buttonDisabledHilite.
<7> 3/19/90 JSM Add support for machine not registered on network, call filter
with PortInfo instead of PortName.
<6> 3/15/90 JSM Add support for browser configuration resource.
<5> 3/14/90 JSM Update MachListData structure to specify local machine.
<4> 3/12/90 JSM Add support for zones coming and going.
<3> 3/8/90 JSM Update to do asynchronous NBP lookups and IPCListPorts.
<2> 2/20/90 JSM Add some lowmem #defines, add hasAT to browser globals.
<1> 2/19/90 JSM First checked in.
*/
#include <Types.h>
#include <stdio.h>
#include <Resources.h>
#include <ToolUtils.h>
#include <Memory.h>
#include <Errors.h>
#include <Packages.h>
#include <StandardFile.h> /*<17>*/
#include <Lists.h>
#include <IntlUtilsPriv.h>
#include <String.h> /* for memcmp definition */
#include <PPCToolbox.h>
/* resource types */
#define BrowseConfigType 'ppcc' /* browser configuration resource */
/* resource IDs to use */
#define BrowseConfigID -5856 /* browser configuration */
#define BrowseDLOGID -5856 /* browser dialog */
#define BrowseSTR -5856 /* browser STR# */
#define PPCToolboxSTR -16409 /* STR# with entity type of PPCToolbox */
#define PPCMachNameSTR -16413 /* STR with machine name */
/* items in browse dialog */
#define OKOutlineItem 3 /* outline of OK button */
#define PromptText 4 /* prompt at top of dialog */
#define ZoneText 5 /* title for zone list */
#define MachText 6 /* title for machine list */
#define ApplText 7 /* title for application list */
/* note - keep lists sequential! */
#define ZoneListItem 8 /* zone list */
#define MachListItem 9 /* machine list */
#define ApplListItem 10 /* application list */
/* note - keep list outlines sequential! */
#define ZoneListOutlineItem 11 /* outline for zone list */
#define MachListOutlineItem 12 /* outline for machine list */
#define ApplListOutlineItem 13 /* outline for application list */
/* indexes into BrowseSTR */
#define ZoneTitle 1 /* title for zone list */
#define MachTitle 2 /* title for machine list */
#define ApplTitle 3 /* default title for application list */
#define DefaultPromptStr 4 /* default prompt */
#define NoMachineStr 5 /* default name of local machine when there is no machine name */
/* indexes into PPCToolboxSTR */
#define PPCNBPType 1 /* NBP type string - "PPCToolbox" */
/* indexes into theList - keep zero based */
#define ZoneListIndex 0
#define MachListIndex 1
#define ApplListIndex 2
/* number of columns in each list */
#define ZoneListColumns 1
#define MachListColumns 2 /* second column not displayed, used to store data for each entry */
#define ApplListColumns 2 /* second column not displayed, used to store data for each entry */
#define typeDelay 60 /* long delay between keys for matching */
/* value for zoneCell, machCell, and applCell when no cell selected */
#define NoCellSelected ((short)-1)
/* font information for list cell font */
#define listFont 1 /* geneva */
#define listFontSize 0
#define listFrameSize 2 /* thickness of pen for framing of active list */
#define buttonEnabledHilite 0 /* contrlHilite of enabled button */
#define buttonDisabledHilite 255 /* contrlHilite of disabled button */
/* constants corresponding to keys of interest */
#define charUpArrow 0x1E /* up arrow key */
#define charDownArrow 0x1F /* down arrow key */
#define charReturn 0x0D /* return key */
#define charEnter 0x03 /* enter key */
#define charDelete 0x08 /* delete/backspace key */
#define charClear 0x1B /* clear key on keypad */
#define charEscape 0x1B /* escape key is same as clear key, soÉ */
#define kcEscape 0x35 /* we need the key code to be unambiguous */
#define charTab 0x09 /* tab key */
#define charPeriod 0x2E /* period character for Cancel */
/* some global variables we look at */
#define KeyThresh *((short*)0x18E) /* key threshold */
#define SPConfig *((unsigned char*)0x1FB) /* serial port config */
/* stuff for NBP */
/* defines stolen from ATalkEqu.a so we can look directly at the NBP response buffer */
#define tupleNet 0 /* Offset to network no. [word] */
#define tupleNode 2 /* Offset to node ID [byte] */
#define tupleName 5 /* Offset to name part of tuple [byte] */
/* maximum size of a single response from a lookup (in bytes) */
#define NBPMaxResponseSize 72 /* name + type + "\p*" + addrBlock */
/* minimum number of bytes left before growing response buffer */
#define NBPOverflowTolerance NBPMaxResponseSize
/* initial guess at how big the response buffer should be (in bytes) */
#define NBPGuess 512
/* how much to increment the response buffer size if we overflow (in bytes) */
#define NBPIncrement 512
/* stuff for IPCListPorts */
/* initial guess at how many PPC ports we'll get for one location */
#define PPCGuess 5
/* how many ports to increment the buffer by if we overflow */
#define PPCIncrement 2
/* macro to get global variables */
#define GetBrowseGlobals(theDialog) (browseGlobals*)GetWRefCon(theDialog)
/*
Structure for the PPC Browser configuration resource.
This is in 'ppcc' resource id -5856. Default values
are in parentheses.
*/
typedef struct
{
unsigned char NBPInterval; /* NBP lookup interval (1) */
unsigned char NBPCount; /* NBP lookup count (5) */
short NBPMaxLives; /* NBP maximum lives an entry has before deletion (9) */
short NBPMaxToGet; /* NBP maximum number of entities (256) */
short NBPMaxIdle; /* NBP idle time in ticks between lookups (120) */
short PPCMaxToGet; /* PPC maximum number of ports (128) */
short PPCMaxIdle; /* PPC idle time in ticks between list ports (120) */
} BrowseConfigRes;
/*
Structure for list cell data for second column of machine list.
We never actually display this, but use it to store further
data related to the machine in column 0.
*/
typedef struct
{
short age; /* for aging entries */
Boolean isHomeMachine; /* true if this is the local machine */
} MachListData;
/*
Structure for list cell data for second column of application list.
We never actually display this, but use it to store further
data related to the application in column 0.
*/
typedef struct
{
Boolean exists; /* set to true if it exists */
PortInfoRec thePortInfo; /* from IPCListPorts */
} ApplListData;
/* global variables hung off of dialog's refCon */
typedef struct
{
DialogPtr theDialog; /* pointer to dialog */
ListHandle theList[3]; /* zone, machine, and application lists */
short machListBottDelta; /* bottom coordinate of mach list */
short currList; /* index into theList of current list */
short zoneCell; /* currently selected row in zone list */
short machCell; /* currently selected row in mach list */
short applCell; /* currently selected row in appl list */
/* stuff for doing NBP lookups */
MPPParamBlock *NBPpb; /* parameter block for NBP */
long NBPBackoff; /* backoff timer */
short NBPOffset; /* current offset into the response buffer */
short NBPNumFound; /* number of names found last time we looked */
EntityName NBPEntity; /* the name we're looking up */
Str32 homeZone; /* name of the zone we're in */
/* NBP configuration info from resource */
unsigned char NBPInterval; /* NBP lookup interval */
unsigned char NBPCount; /* NBP lookup count */
short NBPMaxLives; /* NBP maximum lives an entry has before deletion */
short NBPMaxToGet; /* NBP maximum number of entities */
short NBPMaxIdle; /* NBP idle time in ticks between lookups */
/* stuff for listing PPC ports */
IPCListPortsPBRec *PPCpb; /* parameter block for IPCListPorts */
long PPCBackoff; /* backoff timer */
LocationNameRec PPCLoc; /* location of ports we're looking up */
PPCPortRec PPCPort; /* the port we're looking up */
/* PPC configuration info from resource */
short PPCMaxToGet; /* PPC maximum number of ports */
short PPCMaxIdle; /* PPC idle time in ticks between list ports */
/* stuff for list keyboard navigation */
TypeSelectRecord theTSR; /* record for type selecting */
/* labels in browse dialog */
char promptStr[256]; /* prompt */
char applListTitle[256]; /* title for application list */
/* parameters passed in by caller */
PPCFilterProcPtr portFilter; /* filter for port list */
LocationNameRec *theLoc; /* default location */
PortInfoRec *thePortInfo; /* default port info */
Str32 theLocNBPType; /* NBP type to use for location lookups */
/* group Booleans here for alignment */
Boolean NBPBackingOff; /* true if backing off NBP lookup */
Boolean PPCBackingOff; /* true if backing off listing ports */
Boolean machineRegistered; /* true if our machine is registered on the network */
Boolean firstHomeLookup; /* true if doing first lookup in our home zone */
Boolean defaultSpecified; /* true if trying to select a specified default */
Boolean selectingDefault; /* true if trying to do any default selection */
Boolean hasZones; /* true if zones present */
Boolean hasAT; /* true if AppleTalk enabled */
Boolean okEnabled; /* true if OK button enabled */
Boolean zoneListShown; /* true if zone list shown */
} browseGlobals;