1 line
4.4 KiB
C
1 line
4.4 KiB
C
// ===========================================================================
|
|
// UAMDLOGUtils.h © 1997 Microsoft Corp. All rights reserved.
|
|
// ===========================================================================
|
|
|
|
#pragma once
|
|
|
|
#define textMargin 2
|
|
|
|
#define Abs(x) ((x) < 0 ? -(x) : (x))
|
|
|
|
#define HiShort(longNum) (short)(((longNum) >> 16) & 0xFFFF)
|
|
#define LoShort(longNum) (short)((longNum) & 0xFFFF)
|
|
|
|
#define Max(x, y) ((x) > (y) ? (x) : (y))
|
|
#define Min(x, y) ((x) < (y) ? (x) : (y))
|
|
|
|
#define UAM_DLOG(d) (*((UAMDialogRecP)d))
|
|
|
|
#define kMaxGatedItems 3
|
|
#define kMaxBulletItems 3
|
|
|
|
#define kPasswordBulletText '*'
|
|
|
|
//
|
|
//These item defines are needed because we can't navigate a list
|
|
//box using arrow keys because we can't call LGetSelect from a
|
|
//completion or callback routine.
|
|
//
|
|
|
|
#define DITEM_ListNavigationKey 20000
|
|
#define DITEM_ListMoveToKey 20001
|
|
|
|
|
|
#define UAMKey_Home 0x01
|
|
#define UAMKey_Enter 0x03
|
|
#define UAMKey_End 0x04
|
|
#define UAMKey_PageUp 0x0B
|
|
#define UAMKey_PageDown 0x0C
|
|
#define UAMKey_BackDel 0x08
|
|
#define UAMKey_Tab 0x09
|
|
#define UAMKey_Escape 0x1b
|
|
#define UAMKey_Left 0x1c
|
|
#define UAMKey_Right 0x1d
|
|
#define UAMKey_Up 0x1e
|
|
#define UAMKey_Down 0x1f
|
|
#define UAMKey_Return 0x0d
|
|
#define UAMKey_Space 0x20
|
|
#define UAMKey_FwdDel 0x7f
|
|
#define UAMKey_Period '.'
|
|
|
|
//
|
|
//Struct needed for maintaining gated dialog items.
|
|
//
|
|
|
|
typedef struct {
|
|
short controlID;
|
|
short textID;
|
|
short state;
|
|
}GatedItems;
|
|
|
|
//
|
|
//Struct needed to maintain bullet edit fields.
|
|
//
|
|
|
|
typedef struct {
|
|
short editID;
|
|
short maxLength;
|
|
TEHandle hTE;
|
|
}BulletEditRec;
|
|
|
|
//
|
|
//This is the main struct. It is made part of the actual dialog record and holds
|
|
//key private information for us to maintain a dialog which is capable of displaying
|
|
//several custom items such as lists, scrolling text, bullet edit fields, etc.
|
|
//
|
|
|
|
typedef struct {
|
|
//
|
|
//This is the standard dialog recrod, it must be first in our rec.
|
|
//
|
|
|
|
DialogRecord standardDialog;
|
|
|
|
//
|
|
//The following is used for scrolling text fields within a dialog.
|
|
//
|
|
|
|
Boolean hasScrollBar;
|
|
TEHandle dialogTE;
|
|
Rect dialogTERect;
|
|
ControlHandle scrollBar;
|
|
short deltaV;
|
|
short vOffset;
|
|
ControlActionUPP scrollActionProc;
|
|
|
|
//
|
|
//These are private items needed to maintain a list box in a dialog.
|
|
//
|
|
|
|
Boolean hasList;
|
|
short listID;
|
|
Boolean doubleClick;
|
|
ListHandle dialogList;
|
|
Rect listRect;
|
|
Rect dataBounds;
|
|
Point cSize;
|
|
Cell lastCell;
|
|
short listFont;
|
|
short listSize;
|
|
Boolean listHasScrollBar;
|
|
short lastKeyCode;
|
|
unsigned long lastKeyTime;
|
|
long modifiers;
|
|
|
|
//
|
|
//Fields for various other tasks with our dialog.
|
|
//
|
|
|
|
Boolean supportCmdKeys; //Support edit command keys?
|
|
ModalFilterUPP customFilter; //Custom filter provided by user
|
|
GatedItems gateItems[kMaxGatedItems]; //All gated controls
|
|
BulletEditRec bulletItems[kMaxBulletItems]; //All bullet fields
|
|
} UAMDialogRec, *UAMDialogRecP;
|
|
|
|
|
|
Rect UAM_GetScreenBounds ( void );
|
|
void UAM_DisposeDialog ( DialogPtr );
|
|
ControlHandle UAM_GetCHandle ( DialogPtr, short );
|
|
Rect UAM_GetItemRect ( DialogPtr, short );
|
|
void UAM_ToggleControl ( DialogPtr, short );
|
|
void UAM_GetText ( DialogPtr, short, Str255 * );
|
|
void UAM_SetText ( DialogPtr, short, Str255 );
|
|
void UAM_HiliteItem ( DialogPtr, short, short );
|
|
Boolean UAM_IsActive ( DialogPtr, short );
|
|
short UAM_GetCValue ( DialogPtr, short );
|
|
void UAM_SetCValue ( DialogPtr, short, short );
|
|
void UAM_PositionDialog ( ResType, short );
|
|
short UAM_GetItemType ( DialogPtr, short );
|
|
DialogPtr UAM_NewDialog ( short, Boolean );
|
|
void UAM_Update ( DialogPtr );
|
|
pascal Boolean UAM_DialogFilter ( DialogPtr, EventRecord *, short * );
|
|
void UAM_CheckGatedControls ( DialogPtr );
|
|
pascal void UAM_FrameItem ( DialogPtr, short );
|
|
Rect UAM_GetDRect ( short );
|
|
void UAM_SetUpUserItem ( DialogPtr, short, UserItemUPP, short );
|
|
void UAM_GateControl ( DialogPtr, short, short );
|
|
void UAM_StopGate ( DialogPtr, short );
|
|
void UAM_SetBulletItem ( DialogPtr, short, short );
|
|
void UAM_SetBulletText ( DialogPtr , short , Str255 );
|
|
void UAM_ClearBulletText (DialogPtr inDialog, short item);
|
|
Boolean UAM_ProcessKeydown ( DialogPtr, EventRecord *, short * );
|
|
void UAM_GetBulletBuffer ( DialogPtr, short, StringPtr );
|
|
void UAM_SupportCmdKeys ( DialogPtr, Boolean );
|
|
void UAM_SetCustomFilterProc ( DialogPtr, ModalFilterUPP );
|
|
|
|
|
|
|