|
|
/*++
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 const ULONG *ValidKeys1, IN const ULONG *ValidKeys2, OPTIONAL IN const ULONG *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, IN WCHAR CoverCharacter );
#endif // ndef _SPDSPUTL_DEFN_
|