From de285c4081ea0f8e2ff5977128b32e2aab2ad632 Mon Sep 17 00:00:00 2001 From: Johannes Anderwald Date: Thu, 29 Jun 2006 18:10:15 +0000 Subject: [PATCH] * add ReactOS Console configuration DLL svn path=/trunk/; revision=22693 --- reactos/baseaddress.rbuild | 1 + reactos/dll/win32/console/colors.c | 37 +++++ reactos/dll/win32/console/console.c | 171 +++++++++++++++++++++++ reactos/dll/win32/console/console.def | 6 + reactos/dll/win32/console/console.h | 12 ++ reactos/dll/win32/console/console.rbuild | 19 +++ reactos/dll/win32/console/console.rc | 20 +++ reactos/dll/win32/console/en.rc | 71 ++++++++++ reactos/dll/win32/console/font.c | 38 +++++ reactos/dll/win32/console/layout.c | 37 +++++ reactos/dll/win32/console/options.c | 38 +++++ reactos/dll/win32/console/resource.h | 26 ++++ reactos/dll/win32/win32.rbuild | 3 + 13 files changed, 479 insertions(+) create mode 100644 reactos/dll/win32/console/colors.c create mode 100644 reactos/dll/win32/console/console.c create mode 100644 reactos/dll/win32/console/console.def create mode 100644 reactos/dll/win32/console/console.h create mode 100644 reactos/dll/win32/console/console.rbuild create mode 100644 reactos/dll/win32/console/console.rc create mode 100644 reactos/dll/win32/console/en.rc create mode 100644 reactos/dll/win32/console/font.c create mode 100644 reactos/dll/win32/console/layout.c create mode 100644 reactos/dll/win32/console/options.c create mode 100644 reactos/dll/win32/console/resource.h diff --git a/reactos/baseaddress.rbuild b/reactos/baseaddress.rbuild index a32704198d6..9f52d80f326 100644 --- a/reactos/baseaddress.rbuild +++ b/reactos/baseaddress.rbuild @@ -19,6 +19,7 @@ + diff --git a/reactos/dll/win32/console/colors.c b/reactos/dll/win32/console/colors.c new file mode 100644 index 00000000000..a2f5cc046dc --- /dev/null +++ b/reactos/dll/win32/console/colors.c @@ -0,0 +1,37 @@ +/* $Id$ + * + * PROJECT: ReactOS Console Configuration DLL + * LICENSE: GPL - See COPYING in the top level directory + * FILE: dll/win32/console/colors.c + * PURPOSE: displays colors dialog + * PROGRAMMERS: Johannes Anderwald (johannes.anderwald@student.tugraz.at) + */ + +#include "ntstatus.h" +#define WIN32_NO_STATUS +#include +#include +#include +#include "resource.h" + + +INT_PTR +CALLBACK +ColorsProc( + HWND hwndDlg, + UINT uMsg, + WPARAM wParam, + LPARAM lParam +) +{ + switch(uMsg) + { + case WM_INITDIALOG: + return TRUE; + + default: + break; + } + + return FALSE; +} diff --git a/reactos/dll/win32/console/console.c b/reactos/dll/win32/console/console.c new file mode 100644 index 00000000000..94caaa839b9 --- /dev/null +++ b/reactos/dll/win32/console/console.c @@ -0,0 +1,171 @@ +/* $Id$ + * + * PROJECT: ReactOS Console Configuration DLL + * LICENSE: GPL - See COPYING in the top level directory + * FILE: dll/win32/console/console.c + * PURPOSE: initialization of DLL + * PROGRAMMERS: Johannes Anderwald (johannes.anderwald@student.tugraz.at) + */ + +#include +#include +#include + +#include "resource.h" +#include "console.h" + +#define NUM_APPLETS (1) + +LONG APIENTRY InitApplet(HWND hwnd, UINT uMsg, LONG wParam, LONG lParam); +INT_PTR CALLBACK OptionsProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); +INT_PTR CALLBACK FontProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); +INT_PTR CALLBACK LayoutProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); +INT_PTR CALLBACK ColorsProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); + +HINSTANCE hApplet = 0; + +/* Applets */ +APPLET Applets[NUM_APPLETS] = +{ + {IDC_CPLICON, IDS_CPLNAME, IDS_CPLDESCRIPTION, InitApplet} +}; + +static void +InitPropSheetPage(PROPSHEETPAGE *psp, WORD idDlg, DLGPROC DlgProc) +{ + ZeroMemory(psp, sizeof(PROPSHEETPAGE)); + psp->dwSize = sizeof(PROPSHEETPAGE); + psp->dwFlags = PSP_DEFAULT; + psp->hInstance = hApplet; + psp->pszTemplate = MAKEINTRESOURCE(idDlg); + psp->pfnDlgProc = DlgProc; +} + + +/* Property Sheet Callback */ +int CALLBACK +PropSheetProc( + HWND hwndDlg, + UINT uMsg, + LPARAM lParam +) +{ + UNREFERENCED_PARAMETER(hwndDlg) + switch(uMsg) + { + case PSCB_BUTTONPRESSED: + switch(lParam) + { + case PSBTN_OK: /* OK */ + break; + case PSBTN_CANCEL: /* Cancel */ + break; + case PSBTN_APPLYNOW: /* Apply now */ + break; + case PSBTN_FINISH: /* Close */ + break; + default: + return FALSE; + } + break; + + case PSCB_INITIALIZED: + break; + } + return TRUE; +} + +/* First Applet */ +LONG APIENTRY +InitApplet(HWND hwnd, UINT uMsg, LONG wParam, LONG lParam) +{ + PROPSHEETPAGE psp[5]; + PROPSHEETHEADER psh; + TCHAR Caption[1024]; + INT i=0; + + UNREFERENCED_PARAMETER(hwnd) + UNREFERENCED_PARAMETER(uMsg) + UNREFERENCED_PARAMETER(wParam) + UNREFERENCED_PARAMETER(lParam) + + memset(Caption, 0x0, sizeof(Caption)); + LoadString(hApplet, IDS_CPLNAME, Caption, sizeof(Caption) / sizeof(TCHAR)); + + ZeroMemory(&psh, sizeof(PROPSHEETHEADER)); + psh.dwSize = sizeof(PROPSHEETHEADER); + psh.dwFlags = PSH_PROPSHEETPAGE | PSH_USECALLBACK | PSH_PROPTITLE; + psh.hwndParent = NULL; + psh.hInstance = hApplet; + psh.hIcon = LoadIcon(hApplet, MAKEINTRESOURCE(IDC_CPLICON)); + psh.pszCaption = Caption; + psh.nPages = 4; + psh.nStartPage = 0; + psh.ppsp = psp; + psh.pfnCallback = PropSheetProc; + + InitPropSheetPage(&psp[i++], IDD_PROPPAGEOPTIONS, (DLGPROC) OptionsProc); + InitPropSheetPage(&psp[i++], IDD_PROPPAGEFONT, (DLGPROC) FontProc); + InitPropSheetPage(&psp[i++], IDD_PROPPAGELAYOUT, (DLGPROC) LayoutProc); + InitPropSheetPage(&psp[i++], IDD_PROPPAGECOLORS, (DLGPROC) ColorsProc); + + return (LONG)(PropertySheet(&psh) != -1); +} + +/* Control Panel Callback */ +LONG CALLBACK +CPlApplet( + HWND hwndCPl, + UINT uMsg, + LPARAM lParam1, + LPARAM lParam2) +{ + int i = (int)lParam1; + + switch(uMsg) + { + case CPL_INIT: + { + return TRUE; + } + case CPL_GETCOUNT: + { + return NUM_APPLETS; + } + case CPL_INQUIRE: + { + CPLINFO *CPlInfo = (CPLINFO*)lParam2; + CPlInfo->lData = 0; + CPlInfo->idIcon = Applets[i].idIcon; + CPlInfo->idName = Applets[i].idName; + CPlInfo->idInfo = Applets[i].idDescription; + break; + } + case CPL_DBLCLK: + { + Applets[i].AppletProc(hwndCPl, uMsg, lParam1, lParam2); + break; + } + } + return FALSE; +} + + +BOOLEAN +WINAPI +DllMain( + HINSTANCE hinstDLL, + DWORD dwReason, + LPVOID lpvReserved) +{ + UNREFERENCED_PARAMETER(lpvReserved) + switch(dwReason) + { + case DLL_PROCESS_ATTACH: + case DLL_THREAD_ATTACH: + hApplet = hinstDLL; + break; + } + return TRUE; +} + diff --git a/reactos/dll/win32/console/console.def b/reactos/dll/win32/console/console.def new file mode 100644 index 00000000000..242d6e44708 --- /dev/null +++ b/reactos/dll/win32/console/console.def @@ -0,0 +1,6 @@ +LIBRARY console.dll + +EXPORTS +CPlApplet@16 + +; EOF diff --git a/reactos/dll/win32/console/console.h b/reactos/dll/win32/console/console.h new file mode 100644 index 00000000000..28390a8170c --- /dev/null +++ b/reactos/dll/win32/console/console.h @@ -0,0 +1,12 @@ +#ifndef CONSOLE_H__ +#define CONSOLE_H__ + +typedef struct +{ + int idIcon; + int idName; + int idDescription; + APPLET_PROC AppletProc; +} APPLET, *PAPPLET; + +#endif /* CONSOLE_H__ */ diff --git a/reactos/dll/win32/console/console.rbuild b/reactos/dll/win32/console/console.rbuild new file mode 100644 index 00000000000..68e94e68446 --- /dev/null +++ b/reactos/dll/win32/console/console.rbuild @@ -0,0 +1,19 @@ + + + . + + + + + 0x600 + 0x501 + kernel32 + user32 + comctl32 + console.c + options.c + font.c + layout.c + colors.c + console.rc + diff --git a/reactos/dll/win32/console/console.rc b/reactos/dll/win32/console/console.rc new file mode 100644 index 00000000000..8743be78158 --- /dev/null +++ b/reactos/dll/win32/console/console.rc @@ -0,0 +1,20 @@ +/* $Id$ + * + * PROJECT: ReactOS Console Configuration DLL + * LICENSE: GPL - See COPYING in the top level directory + * FILE: dll/win32/console/console.rc + * PURPOSE: main resource file + * PROGRAMMERS: Johannes Anderwald (johannes.anderwald@student.tugraz.at) + */ + + +#include +#include "resource.h" + +#define REACTOS_VERSION_DLL +#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Control Panel Console Applet\0" +#define REACTOS_STR_INTERNAL_NAME "powercfg\0" +#define REACTOS_STR_ORIGINAL_FILENAME "console.dll\0" +#include + +#include "en.rc" diff --git a/reactos/dll/win32/console/en.rc b/reactos/dll/win32/console/en.rc new file mode 100644 index 00000000000..e24ccf6c385 --- /dev/null +++ b/reactos/dll/win32/console/en.rc @@ -0,0 +1,71 @@ +/* $Id$ + * + * PROJECT: ReactOS Console Configuration DLL + * LICENSE: GPL - See COPYING in the top level directory + * FILE: dll/win32/console/en.rc + * PURPOSE: English resource file + * PROGRAMMERS: Johannes Anderwald (johannes.anderwald@student.tugraz.at) + */ + +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +IDD_PROPPAGEOPTIONS DIALOGEX 0, 0, 250, 220 +STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Options" +FONT 8, "MS Shell Dlg" +EXSTYLE DS_SHELLFONT +BEGIN +GROUPBOX "Cursor Size", -1, 15, 15, 120, 70 +CONTROL "&Small", IDC_RADIO_SMALL_CURSOR, "Button", 0x50010009, 25, 25, 90, 10 +CONTROL "&Medium", IDC_RADIO_MEDIUM_CURSOR, "Button", 0x50010009, 25, 40, 90, 10 +CONTROL "&Large", IDC_RADIO_LARGE_CURSOR, "Button", 0x50010009, 25, 55, 90, 10 +GROUPBOX "Display Options", -1, 140, 15, 100, 70 +CONTROL "&Window", IDC_RADIO_DISPLAY_WINDOW, "Button", 0x50010009, 150, 35, 70, 10 +CONTROL "F&ull Screen", IDC_RADIO_DISPLAY_FULL, "Button", 0x50010009, 150, 50, 70, 10 +GROUPBOX "Command History:", -1, 15, 90, 120, 70 +LTEXT "&Buffer Size", -1, 25, 100, 60, 15 +EDITTEXT IDC_EDIT_BUFFER_SIZE, 90, 100, 30, 15, ES_RIGHT | WS_GROUP +CONTROL "", IDC_UPDOWN_BUFFER_SIZE, UPDOWN_CLASS,UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | WS_BORDER | WS_GROUP, 115, 100, 12, 12 +LTEXT "&Number of Buffers:", -1, 25, 120, 80, 15 +EDITTEXT IDC_EDIT_NUM_BUFFER, 90, 120, 30, 15, ES_RIGHT | WS_GROUP +CONTROL "", IDC_UPDOWN_NUM_BUFFER, UPDOWN_CLASS,UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | WS_BORDER | WS_GROUP, 115, 120, 12, 12 +CHECKBOX "&Discard Old Duplicates", IDC_CHECK_DISCARD_DUPLICATES, 25, 140, 100, 15 + + +GROUPBOX "Edit Options", -1, 140, 90, 100, 70 +CHECKBOX "&QuickEdit Mode", IDC_CHECK_QUICK_EDIT, 150, 100, 60, 15 +CHECKBOX "&Insert Mode", IDC_CHECK_INSERT_MODE, 150, 120, 60, 15 +END + +IDD_PROPPAGEFONT DIALOGEX 0, 0, 220, 220 +STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Font" +FONT 8, "MS Shell Dlg" +EXSTYLE DS_SHELLFONT +BEGIN +LTEXT "This space is intentionally left blank", -1, 55, 103, 120, 10 +END + +IDD_PROPPAGELAYOUT DIALOGEX 0, 0, 220, 220 +STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Layout" +FONT 8, "MS Shell Dlg" +EXSTYLE DS_SHELLFONT +BEGIN +LTEXT "This space is intentionally left blank", -1, 55, 103, 120, 10 +END + +IDD_PROPPAGECOLORS DIALOGEX 0, 0, 220, 220 +STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Colors" +FONT 8, "MS Shell Dlg" +EXSTYLE DS_SHELLFONT +BEGIN +LTEXT "This space is intentionally left blank", -1, 55, 103, 120, 10 +END + +STRINGTABLE +BEGIN + IDS_CPLNAME "Console" + IDS_CPLDESCRIPTION "Configures console properties." +END diff --git a/reactos/dll/win32/console/font.c b/reactos/dll/win32/console/font.c new file mode 100644 index 00000000000..15f2739795b --- /dev/null +++ b/reactos/dll/win32/console/font.c @@ -0,0 +1,38 @@ +/* $Id$ + * + * PROJECT: ReactOS Console Configuration DLL + * LICENSE: GPL - See COPYING in the top level directory + * FILE: dll/win32/console/font.c + * PURPOSE: displays font dialog + * PROGRAMMERS: Johannes Anderwald (johannes.anderwald@student.tugraz.at) + */ + + +#include "ntstatus.h" +#define WIN32_NO_STATUS +#include +#include +#include +#include "resource.h" + + +INT_PTR +CALLBACK +FontProc( + HWND hwndDlg, + UINT uMsg, + WPARAM wParam, + LPARAM lParam +) +{ + switch(uMsg) + { + case WM_INITDIALOG: + return TRUE; + + default: + break; + } + + return FALSE; +} diff --git a/reactos/dll/win32/console/layout.c b/reactos/dll/win32/console/layout.c new file mode 100644 index 00000000000..f7082cfbaf2 --- /dev/null +++ b/reactos/dll/win32/console/layout.c @@ -0,0 +1,37 @@ +/* $Id$ + * + * PROJECT: ReactOS Console Configuration DLL + * LICENSE: GPL - See COPYING in the top level directory + * FILE: dll/win32/console/layout.c + * PURPOSE: displays layout dialog + * PROGRAMMERS: Johannes Anderwald (johannes.anderwald@student.tugraz.at) + */ + +#include "ntstatus.h" +#define WIN32_NO_STATUS +#include +#include +#include +#include "resource.h" + + +INT_PTR +CALLBACK +LayoutProc( + HWND hwndDlg, + UINT uMsg, + WPARAM wParam, + LPARAM lParam +) +{ + switch(uMsg) + { + case WM_INITDIALOG: + return TRUE; + + default: + break; + } + + return FALSE; +} diff --git a/reactos/dll/win32/console/options.c b/reactos/dll/win32/console/options.c new file mode 100644 index 00000000000..f55dfef820a --- /dev/null +++ b/reactos/dll/win32/console/options.c @@ -0,0 +1,38 @@ +/* $Id$ + * + * PROJECT: ReactOS Console Configuration DLL + * LICENSE: GPL - See COPYING in the top level directory + * FILE: dll/win32/console/options.c + * PURPOSE: displays options dialog + * PROGRAMMERS: Johannes Anderwald (johannes.anderwald@student.tugraz.at) + */ + + +#include "ntstatus.h" +#define WIN32_NO_STATUS +#include +#include +#include +#include "resource.h" + + +INT_PTR +CALLBACK +OptionsProc( + HWND hwndDlg, + UINT uMsg, + WPARAM wParam, + LPARAM lParam +) +{ + switch(uMsg) + { + case WM_INITDIALOG: + return TRUE; + + default: + break; + } + + return FALSE; +} diff --git a/reactos/dll/win32/console/resource.h b/reactos/dll/win32/console/resource.h new file mode 100644 index 00000000000..4499c8d2f66 --- /dev/null +++ b/reactos/dll/win32/console/resource.h @@ -0,0 +1,26 @@ +#ifndef RESOURCE_H__ +#define RESOURCE_H__ + +#define IDC_CPLICON 40 +#define IDS_CPLNAME 41 +#define IDS_CPLDESCRIPTION 42 + +#define IDD_PROPPAGEOPTIONS 100 +#define IDD_PROPPAGEFONT 101 +#define IDD_PROPPAGELAYOUT 102 +#define IDD_PROPPAGECOLORS 103 + +#define IDC_CHECK_QUICK_EDIT 200 +#define IDC_CHECK_INSERT_MODE 201 +#define IDC_CHECK_DISCARD_DUPLICATES 202 +#define IDC_EDIT_BUFFER_SIZE 203 +#define IDC_UPDOWN_BUFFER_SIZE 204 +#define IDC_EDIT_NUM_BUFFER 205 +#define IDC_UPDOWN_NUM_BUFFER 206 +#define IDC_RADIO_SMALL_CURSOR 207 +#define IDC_RADIO_MEDIUM_CURSOR 208 +#define IDC_RADIO_LARGE_CURSOR 209 +#define IDC_RADIO_DISPLAY_WINDOW 210 +#define IDC_RADIO_DISPLAY_FULL 211 + +#endif diff --git a/reactos/dll/win32/win32.rbuild b/reactos/dll/win32/win32.rbuild index a6a946b281c..54ff665e0a7 100644 --- a/reactos/dll/win32/win32.rbuild +++ b/reactos/dll/win32/win32.rbuild @@ -28,6 +28,9 @@ + + +