Added base support for user settings.

svn path=/trunk/; revision=1804
This commit is contained in:
Nedko Arnaudov 2001-04-16 05:11:54 +00:00
parent 2957aa4ce5
commit add5e2d89f
3 changed files with 64 additions and 11 deletions

View file

@ -1,4 +1,4 @@
# $Id: Makefile,v 1.4 2001/01/10 01:25:29 narnaoud Exp $ # $Id: Makefile,v 1.5 2001/04/16 05:11:54 narnaoud Exp $
# #
# ReactOS makefile for RegExpl # ReactOS makefile for RegExpl
# #
@ -52,6 +52,8 @@ OBJECTS = \
TextHistory.o \ TextHistory.o \
Completion.o \ Completion.o \
Pattern.o \ Pattern.o \
Settings.o \
Prompt.o \
$(TARGET_NAME).coff $(TARGET_NAME).coff
CLEAN_FILES = \ CLEAN_FILES = \

View file

@ -1,4 +1,4 @@
/* $Id: RegistryExplorer.cpp,v 1.5 2001/04/15 22:17:50 narnaoud Exp $ /* $Id: RegistryExplorer.cpp,v 1.6 2001/04/16 05:11:54 narnaoud Exp $
* *
* regexpl - Console Registry Explorer * regexpl - Console Registry Explorer
* *
@ -20,7 +20,7 @@
* Boston, MA 02111-1307, USA. * Boston, MA 02111-1307, USA.
*/ */
// Registry Explorer.cpp : Defines the entry point for the console application. // RegistryExplorer.cpp : Defines the entry point for the Regiistry Explorer.
// //
#include "ph.h" #include "ph.h"
@ -46,6 +46,8 @@
#include "ShellCommandDeleteKey.h" #include "ShellCommandDeleteKey.h"
#include "ShellCommandSetValue.h" #include "ShellCommandSetValue.h"
#include "ShellCommandDeleteValue.h" #include "ShellCommandDeleteValue.h"
#include "Prompt.h"
#include "Settings.h"
TCHAR pchCurrentKey[PROMPT_BUFFER_SIZE]; TCHAR pchCurrentKey[PROMPT_BUFFER_SIZE];
@ -134,6 +136,38 @@ int main ()
int nRetCode = 0; int nRetCode = 0;
HRESULT hr;
CSettings *pSettings = NULL;
CPrompt *pPrompt = NULL;
pSettings = new CSettings();
if (!pSettings)
{
_ftprintf(stderr,_T("Cannot initialize settings. Out of memory.\n"));
goto Abort;
}
hr = pSettings->Load(SETTINGS_REGISTRY_KEY);
if (FAILED(hr))
{
_ftprintf(stderr,_T("Cannot load settings. Error is 0x%X.\n"),(unsigned int)hr);
goto Abort;
}
pPrompt = new CPrompt(Tree,hr);
if (!pPrompt)
{
_ftprintf(stderr,_T("Cannot initialize prompt. Out of memory.\n"));
goto Abort;
}
if (FAILED(hr))
{
_ftprintf(stderr,_T("Cannot initialize prompt. Error is 0x%X.\n"),(unsigned int)hr);
goto Abort;
}
// input buffer size in chars // input buffer size in chars
#define INPUT_BUFFER_SIZE 1024 #define INPUT_BUFFER_SIZE 1024
//#define INPUT_BUFFER_SIZE 128 //#define INPUT_BUFFER_SIZE 128
@ -154,7 +188,7 @@ int main ()
if (!Console.GetTextAttribute(wOldConsoleAttribute)) goto Abort; if (!Console.GetTextAttribute(wOldConsoleAttribute)) goto Abort;
Console.SetTitle(_T("Registry Explorer")); Console.SetTitle(_T("Registry Explorer"));
Console.SetTextAttribute(FOREGROUND_BLUE|FOREGROUND_GREEN|FOREGROUND_RED/*|FOREGROUND_INTENSITY*/); Console.SetTextAttribute(pSettings->GetNormalTextAttributes());
VERIFY(SetConsoleCtrlHandler((PHANDLER_ROUTINE)HandlerRoutine,TRUE)); VERIFY(SetConsoleCtrlHandler((PHANDLER_ROUTINE)HandlerRoutine,TRUE));
@ -164,25 +198,29 @@ int main ()
//Tree.SetDesiredOpenKeyAccess(KEY_READ); //Tree.SetDesiredOpenKeyAccess(KEY_READ);
const TCHAR *pszCurrentPath; hr = pPrompt->SetPrompt(pSettings->GetPrompt());
if (FAILED(hr))
{
_ftprintf(stderr,_T("Cannot initialize prompt. Error is 0x%X.\n"),(unsigned int)hr);
goto Abort;
}
GetCommand: GetCommand:
// prompt // prompt
// TODO: make prompt user-customizable // TODO: make prompt user-customizable
Console.EnableWrite(); Console.EnableWrite();
pszCurrentPath = Tree.GetCurrentPath(); pPrompt->ShowPrompt(Console);
Console.Write(pszCurrentPath?pszCurrentPath:_T("NULL (Internal Error)"));
Console.Write(_T("\n# "));
Console.FlushInputBuffer(); Console.FlushInputBuffer();
blnCommandExecutionInProgress = FALSE; blnCommandExecutionInProgress = FALSE;
// Set command line color // Set command line color
// Console.SetTextAttribute(/*FOREGROUND_BLUE|*/FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_INTENSITY); Console.SetTextAttribute(pSettings->GetPromptTextAttributes());
if (!Console.ReadLine()) if (!Console.ReadLine())
goto Abort; goto Abort;
// Set normal color // Set normal color
// Console.SetTextAttribute(FOREGROUND_BLUE|FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_INTENSITY); Console.SetTextAttribute(pSettings->GetNormalTextAttributes());
Console.BeginScrollingOperation(); Console.BeginScrollingOperation();
blnCommandExecutionInProgress = TRUE; blnCommandExecutionInProgress = TRUE;
@ -222,6 +260,14 @@ GetCommand:
Abort: Abort:
_ftprintf(stderr,_T("Abnormal program termination.\nPlease report bugs to ") EMAIL _T("\n")); _ftprintf(stderr,_T("Abnormal program termination.\nPlease report bugs to ") EMAIL _T("\n"));
nRetCode = 1; nRetCode = 1;
Exit: Exit:
if (pSettings)
delete pSettings;
if (pPrompt)
delete pPrompt;
return nRetCode; return nRetCode;
} }

View file

@ -1,4 +1,4 @@
/* $Id: RegistryExplorer.h,v 1.5 2001/01/13 23:53:23 narnaoud Exp $ */ /* $Id: RegistryExplorer.h,v 1.6 2001/04/16 05:11:54 narnaoud Exp $ */
#ifndef _REGISTRY_EXPLORER_H__INCLUDED #ifndef _REGISTRY_EXPLORER_H__INCLUDED
#define _REGISTRY_EXPLORER_H__INCLUDED #define _REGISTRY_EXPLORER_H__INCLUDED
@ -49,4 +49,9 @@
#define COMMAND_NA_ON_ROOT _T(" is not applicable to root key.\n") #define COMMAND_NA_ON_ROOT _T(" is not applicable to root key.\n")
#define SETTINGS_REGISTRY_KEY _T("SOFTWARE\\Registry Explorer")
#define NORMAL_TEXT_ATTRIBUTES_VALUE_NAME _T("Normal Text Color")
#define PROMPT_TEXT_ATTRIBUTES_VALUE_NAME _T("Prompt Text Color")
#define PROMPT_VALUE_NAME _T("Prompt")
#endif //#ifndef _REGISTRY_EXPLORER_H__INCLUDED #endif //#ifndef _REGISTRY_EXPLORER_H__INCLUDED