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_
|
||
|