283 lines
6.8 KiB
C
283 lines
6.8 KiB
C
|
/*++
|
|||
|
|
|||
|
Copyright (c) 1993 Microsoft Corporation
|
|||
|
|
|||
|
Module Name:
|
|||
|
|
|||
|
spvideo.h
|
|||
|
|
|||
|
Abstract:
|
|||
|
|
|||
|
Public header file for text setup display utilitiy functions.
|
|||
|
|
|||
|
Author:
|
|||
|
|
|||
|
Ted Miller (tedm) 29-July-1993
|
|||
|
|
|||
|
Revision History:
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
|
|||
|
#ifndef _SPDSPUTL_DEFN_
|
|||
|
#define _SPDSPUTL_DEFN_
|
|||
|
|
|||
|
|
|||
|
#define HEADER_HEIGHT 3
|
|||
|
#define STATUS_HEIGHT 1
|
|||
|
#define CLIENT_HEIGHT (VideoVars.ScreenHeight - (HEADER_HEIGHT+STATUS_HEIGHT))
|
|||
|
#define CLIENT_TOP HEADER_HEIGHT
|
|||
|
|
|||
|
|
|||
|
#define CLEAR_ENTIRE_SCREEN() \
|
|||
|
\
|
|||
|
SpvidClearScreenRegion( \
|
|||
|
0, \
|
|||
|
0, \
|
|||
|
0, \
|
|||
|
0, \
|
|||
|
DEFAULT_BACKGROUND \
|
|||
|
)
|
|||
|
|
|||
|
#define CLEAR_CLIENT_SCREEN() \
|
|||
|
\
|
|||
|
SpvidClearScreenRegion( \
|
|||
|
0, \
|
|||
|
HEADER_HEIGHT, \
|
|||
|
VideoVars.ScreenWidth, \
|
|||
|
VideoVars.ScreenHeight-(HEADER_HEIGHT+STATUS_HEIGHT), \
|
|||
|
DEFAULT_BACKGROUND \
|
|||
|
)
|
|||
|
|
|||
|
#define CLEAR_HEADER_SCREEN() \
|
|||
|
\
|
|||
|
SpvidClearScreenRegion( \
|
|||
|
0, \
|
|||
|
0, \
|
|||
|
VideoVars.ScreenWidth, \
|
|||
|
HEADER_HEIGHT, \
|
|||
|
DEFAULT_BACKGROUND \
|
|||
|
)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
ULONG
|
|||
|
SpDisplayText(
|
|||
|
IN PWCHAR Message,
|
|||
|
IN ULONG MsgLen,
|
|||
|
IN BOOLEAN CenterHorizontally,
|
|||
|
IN BOOLEAN CenterVertically,
|
|||
|
IN UCHAR Attribute,
|
|||
|
IN ULONG X,
|
|||
|
IN ULONG Y
|
|||
|
);
|
|||
|
|
|||
|
|
|||
|
ULONG
|
|||
|
vSpDisplayFormattedMessage(
|
|||
|
IN ULONG MessageId,
|
|||
|
IN BOOLEAN CenterHorizontally,
|
|||
|
IN BOOLEAN CenterVertically,
|
|||
|
IN UCHAR Attribute,
|
|||
|
IN ULONG X,
|
|||
|
IN ULONG Y,
|
|||
|
IN va_list arglist
|
|||
|
);
|
|||
|
|
|||
|
|
|||
|
ULONG
|
|||
|
SpDisplayFormattedMessage(
|
|||
|
IN ULONG MessageId,
|
|||
|
IN BOOLEAN CenterHorizontally,
|
|||
|
IN BOOLEAN CenterVertically,
|
|||
|
IN UCHAR Attribute,
|
|||
|
IN ULONG X,
|
|||
|
IN ULONG Y,
|
|||
|
...
|
|||
|
);
|
|||
|
|
|||
|
|
|||
|
VOID
|
|||
|
SpStartScreen(
|
|||
|
IN ULONG MessageId,
|
|||
|
IN ULONG LeftMargin,
|
|||
|
IN ULONG TopLine,
|
|||
|
IN BOOLEAN CenterHorizontally,
|
|||
|
IN BOOLEAN CenterVertically,
|
|||
|
IN UCHAR Attribute,
|
|||
|
...
|
|||
|
);
|
|||
|
|
|||
|
|
|||
|
VOID
|
|||
|
SpContinueScreen(
|
|||
|
IN ULONG MessageId,
|
|||
|
IN ULONG LeftMargin,
|
|||
|
IN ULONG SpacingLines,
|
|||
|
IN BOOLEAN CenterHorizontally,
|
|||
|
IN UCHAR Attribute,
|
|||
|
...
|
|||
|
);
|
|||
|
|
|||
|
|
|||
|
VOID
|
|||
|
SpBugCheck(
|
|||
|
IN ULONG BugCode,
|
|||
|
IN ULONG Param1,
|
|||
|
IN ULONG Param2,
|
|||
|
IN ULONG Param3
|
|||
|
);
|
|||
|
|
|||
|
|
|||
|
VOID
|
|||
|
SpDisplayRawMessage(
|
|||
|
IN ULONG MessageId,
|
|||
|
IN ULONG SpacingLines,
|
|||
|
...
|
|||
|
);
|
|||
|
|
|||
|
|
|||
|
#define SpDisplayScreen(MessageId,LeftMargin,TopLine) \
|
|||
|
\
|
|||
|
SpStartScreen( \
|
|||
|
MessageId, \
|
|||
|
LeftMargin, \
|
|||
|
TopLine, \
|
|||
|
FALSE, \
|
|||
|
FALSE, \
|
|||
|
DEFAULT_ATTRIBUTE \
|
|||
|
)
|
|||
|
|
|||
|
|
|||
|
//
|
|||
|
// As messages are built on on-screen, with SpStartScreen and
|
|||
|
// SpContinueScreen, this value remembers where
|
|||
|
// the next message in the screen should be placed.
|
|||
|
//
|
|||
|
extern ULONG NextMessageTopLine;
|
|||
|
|
|||
|
|
|||
|
VOID
|
|||
|
SpDisplayHeaderText(
|
|||
|
IN ULONG MessageId,
|
|||
|
IN UCHAR Attribute
|
|||
|
);
|
|||
|
|
|||
|
|
|||
|
VOID
|
|||
|
SpDisplayStatusText(
|
|||
|
IN ULONG MessageId,
|
|||
|
IN UCHAR Attribute,
|
|||
|
...
|
|||
|
);
|
|||
|
|
|||
|
VOID
|
|||
|
SpCmdConsEnableStatusText(
|
|||
|
IN BOOLEAN EnableStatusText
|
|||
|
);
|
|||
|
|
|||
|
|
|||
|
VOID
|
|||
|
SpDisplayStatusOptions(
|
|||
|
IN UCHAR Attribute,
|
|||
|
...
|
|||
|
);
|
|||
|
|
|||
|
VOID
|
|||
|
SpDisplayStatusActionLabel(
|
|||
|
IN ULONG ActionMessageId, OPTIONAL
|
|||
|
IN ULONG FieldWidth
|
|||
|
);
|
|||
|
|
|||
|
VOID
|
|||
|
SpDisplayStatusActionObject(
|
|||
|
IN PWSTR ObjectText
|
|||
|
);
|
|||
|
|
|||
|
VOID
|
|||
|
SpDrawFrame(
|
|||
|
IN ULONG LeftX,
|
|||
|
IN ULONG Width,
|
|||
|
IN ULONG TopY,
|
|||
|
IN ULONG Height,
|
|||
|
IN UCHAR Attribute,
|
|||
|
IN BOOLEAN DoubleLines
|
|||
|
);
|
|||
|
|
|||
|
//
|
|||
|
// There are places where the user has to press C for custom setup, etc.
|
|||
|
// These keystrokes are referred to as the nmemonic keys, and they must be
|
|||
|
// localizable. To accomplish this, the enum below indexes the SP_MNEMONICS
|
|||
|
// message.
|
|||
|
//
|
|||
|
typedef enum {
|
|||
|
MnemonicUnused = 0,
|
|||
|
MnemonicCustom, // as in "C=Custom Setup"
|
|||
|
MnemonicCreatePartition, // as in "C=Create Partition"
|
|||
|
MnemonicDeletePartition, // as in "D=Delete Partition"
|
|||
|
MnemonicContinueSetup, // as in "C=Continue Setup"
|
|||
|
MnemonicFormat, // as in "F=Format"
|
|||
|
MnemonicConvert, // as in "C=Convert"
|
|||
|
MnemonicRemoveFiles, // as in "R=Remove Files"
|
|||
|
MnemonicNewPath, // as in "N=Different Directory"
|
|||
|
MnemonicSkipDetection, // as in "S=Skip Detection"
|
|||
|
MnemonicScsiAdapters, // as in "S=Specify Additional SCSI Adapter"
|
|||
|
MnemonicDeletePartition2, // as in "L=Delete"
|
|||
|
MnemonicOverwrite, // as in "O=Overwrite"
|
|||
|
MnemonicRepair, // as in "R=Repair"
|
|||
|
MnemonicRepairAll, // as in "A=Repair All"
|
|||
|
MnemonicUpgrade, // as in "U=Upgrade"
|
|||
|
MnemonicAutomatedSystemRecovery, // as in "A=ASR"
|
|||
|
MnemonicInitializeDisk, // as in "I=Initialize Disk"
|
|||
|
MnemonicLocate, // as in "L=Locate"
|
|||
|
MnemonicFastRepair, // as in "F=Fast Repair"
|
|||
|
MnemonicManualRepair, // as in "M=Manual Repair"
|
|||
|
MnemonicConsole, // as in "C=Console"
|
|||
|
MnemonicChangeDiskStyle, // as in "S=Change Disk Style"
|
|||
|
MnemonicMakeSystemPartition,// as in "M=Make System Partition"
|
|||
|
MnemonicMax
|
|||
|
} MNEMONIC_KEYS;
|
|||
|
|
|||
|
#define KEY_MNEMONIC 0x80000000
|
|||
|
|
|||
|
extern PWCHAR MnemonicValues;
|
|||
|
|
|||
|
ULONG
|
|||
|
SpWaitValidKey(
|
|||
|
IN PULONG ValidKeys1,
|
|||
|
IN PULONG ValidKeys2, OPTIONAL
|
|||
|
IN PULONG MnemonicKeys OPTIONAL
|
|||
|
);
|
|||
|
|
|||
|
//
|
|||
|
// Enum for values that can be retuned by a KEYRESS_CALLBACK routine.
|
|||
|
//
|
|||
|
typedef enum {
|
|||
|
ValidateAccept,
|
|||
|
ValidateReject,
|
|||
|
ValidateIgnore,
|
|||
|
ValidateTerminate,
|
|||
|
ValidateRepaint
|
|||
|
} ValidationValue;
|
|||
|
|
|||
|
//
|
|||
|
// Type for routine to be passed as ValidateKey parameter to SpGetInput().
|
|||
|
//
|
|||
|
typedef
|
|||
|
ValidationValue
|
|||
|
(*PKEYPRESS_CALLBACK) (
|
|||
|
IN ULONG Key
|
|||
|
);
|
|||
|
|
|||
|
BOOLEAN
|
|||
|
SpGetInput(
|
|||
|
IN PKEYPRESS_CALLBACK ValidateKey,
|
|||
|
IN ULONG X,
|
|||
|
IN ULONG Y,
|
|||
|
IN ULONG MaxLength,
|
|||
|
IN OUT PWCHAR Buffer,
|
|||
|
IN BOOLEAN ValidateEscape
|
|||
|
);
|
|||
|
|
|||
|
#endif // ndef _SPDSPUTL_DEFN_
|
|||
|
|