* colors.c: implement color dialog (reading from registry is not yet supported)

* font.c/layout.c/console.c/options.c: add UNREFERENCED_PARAMETER macros, fix sharing of global struct
* console.def: fix building with MSVC

svn path=/trunk/; revision=23629
This commit is contained in:
Johannes Anderwald 2006-08-20 23:55:08 +00:00
parent 74f108bb28
commit 44f2cc5731
9 changed files with 347 additions and 75 deletions

View file

@ -9,6 +9,80 @@
#include "console.h" #include "console.h"
static COLORREF s_Colors[] =
{
RGB(0, 0, 0),
RGB(0, 0, 128),
RGB(0, 128, 0),
RGB(0, 128, 128),
RGB(128, 0, 0),
RGB(128, 0, 128),
RGB(128, 128, 0),
RGB(192, 192, 192),
RGB(128, 128, 128),
RGB(0, 0, 255),
RGB(0, 255, 0),
RGB(0, 255, 255),
RGB(255, 0, 0),
RGB(255, 0, 255),
RGB(255, 255, 0),
RGB(255, 255, 255)
};
static TCHAR szText[1024];
static
BOOL
PaintStaticControls(HWND hwndDlg, PConsoleInfo pConInfo, LPDRAWITEMSTRUCT drawItem)
{
HBRUSH hBrush;
DWORD index;
if (drawItem->CtlID < IDC_STATIC_COLOR1 || drawItem->CtlID > IDC_STATIC_COLOR16)
{
COLORREF pbkColor, ptColor;
COLORREF nbkColor, ntColor;
/* draw static controls */
if (drawItem->CtlID == IDC_STATIC_SCREEN_COLOR)
{
nbkColor = pConInfo->ScreenBackground;
hBrush = CreateSolidBrush(nbkColor);
ntColor = pConInfo->ScreenText;
}
else
{
nbkColor = pConInfo->PopupBackground;
hBrush = CreateSolidBrush(nbkColor);
ntColor = pConInfo->PopupText;
}
FillRect(drawItem->hDC, &drawItem->rcItem, hBrush);
DeleteObject((HGDIOBJ)hBrush);
ptColor = SetTextColor(drawItem->hDC, ntColor);
pbkColor = SetBkColor(drawItem->hDC, nbkColor);
if (ntColor != nbkColor)
{
/* hide text when it has same background color as text color */
DrawText(drawItem->hDC, szText, _tcslen(szText), &drawItem->rcItem, 0);
}
SetTextColor(drawItem->hDC, ptColor);
SetBkColor(drawItem->hDC, pbkColor);
return TRUE;
}
index = drawItem->CtlID - IDC_STATIC_COLOR1;
hBrush = CreateSolidBrush(s_Colors[index]);
if (!hBrush)
{
return FALSE;
}
FillRect(drawItem->hDC, &drawItem->rcItem, hBrush);
DeleteObject((HGDIOBJ)hBrush);
return TRUE;
}
INT_PTR INT_PTR
CALLBACK CALLBACK
ColorsProc( ColorsProc(
@ -18,14 +92,160 @@ ColorsProc(
LPARAM lParam LPARAM lParam
) )
{ {
UNREFERENCED_PARAMETER(hwndDlg) PConsoleInfo pConInfo;
UNREFERENCED_PARAMETER(wParam) LPNMUPDOWN lpnmud;
UNREFERENCED_PARAMETER(lParam)
pConInfo = (PConsoleInfo) GetWindowLongPtr(hwndDlg, DWLP_USER);
switch(uMsg) switch(uMsg)
{ {
case WM_INITDIALOG: case WM_INITDIALOG:
{
pConInfo = (PConsoleInfo) ((LPPROPSHEETPAGE)lParam)->lParam;
SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pConInfo);
ZeroMemory(szText, sizeof(szText));
LoadString(hApplet, IDS_SCREEN_TEXT, szText, sizeof(szText) / sizeof(TCHAR));
SendMessage(GetDlgItem(hwndDlg, IDC_RADIO_SCREEN_BACKGROUND), BM_SETCHECK, BST_CHECKED, 0);
SendMessage(GetDlgItem(hwndDlg, IDC_UPDOWN_COLOR_RED), UDM_SETRANGE, 0, (LPARAM)MAKELONG(255, 0));
SendMessage(GetDlgItem(hwndDlg, IDC_UPDOWN_COLOR_GREEN), UDM_SETRANGE, 0, (LPARAM)MAKELONG(255, 0));
SendMessage(GetDlgItem(hwndDlg, IDC_UPDOWN_COLOR_BLUE), UDM_SETRANGE, 0, (LPARAM)MAKELONG(255, 0));
InvalidateRect(hwndDlg, NULL, TRUE);
return TRUE; return TRUE;
}
case WM_DRAWITEM:
{
return PaintStaticControls(hwndDlg, pConInfo, (LPDRAWITEMSTRUCT) lParam);
}
case WM_NOTIFY:
{
DWORD red = -1;
DWORD green = -1;
DWORD blue = -1;
lpnmud = (LPNMUPDOWN) lParam;
if (lpnmud->hdr.idFrom == IDC_UPDOWN_COLOR_RED)
{
red = lpnmud->iPos;
}
else if (lpnmud->hdr.idFrom == IDC_UPDOWN_COLOR_GREEN)
{
green = lpnmud->iPos;
}
else if (lpnmud->hdr.idFrom == IDC_UPDOWN_COLOR_BLUE)
{
blue = lpnmud->iPos;
}
if (red == -1)
{
red = SendMessage(GetDlgItem(hwndDlg, IDC_UPDOWN_COLOR_RED), UDM_GETPOS, 0, 0);
if (HIWORD(red))
{
//TODO: handle error
break;
}
red = LOBYTE(red);
}
if (green == -1)
{
green = SendMessage(GetDlgItem(hwndDlg, IDC_UPDOWN_COLOR_GREEN), UDM_GETPOS, 0, 0);
if (HIWORD(green))
{
//TODO: handle error
break;
}
green = LOBYTE(green);
}
if (blue == -1)
{
blue = SendMessage(GetDlgItem(hwndDlg, IDC_UPDOWN_COLOR_BLUE), UDM_GETPOS, 0, 0);
if (HIWORD(blue))
{
//TODO: handle error
break;
}
blue = LOBYTE(blue);
}
s_Colors[pConInfo->ActiveStaticControl] = RGB(red, green, blue);
InvalidateRect(hwndDlg, NULL, TRUE); //FIXME
break;
}
case WM_COMMAND:
{
switch(LOWORD(wParam))
{
case IDC_RADIO_SCREEN_TEXT:
{
SetDlgItemInt(hwndDlg, IDC_EDIT_COLOR_RED, GetRValue(pConInfo->ScreenText), FALSE);
SetDlgItemInt(hwndDlg, IDC_EDIT_COLOR_GREEN, GetGValue(pConInfo->ScreenText), FALSE);
SetDlgItemInt(hwndDlg, IDC_EDIT_COLOR_BLUE, GetBValue(pConInfo->ScreenText), FALSE);
InvalidateRect(GetDlgItem(hwndDlg, IDC_STATIC_SCREEN_COLOR), NULL, TRUE);
InvalidateRect(GetDlgItem(hwndDlg, IDC_STATIC_POPUP_COLOR), NULL, TRUE);
break;
}
case IDC_RADIO_SCREEN_BACKGROUND:
{
SetDlgItemInt(hwndDlg, IDC_EDIT_COLOR_RED, GetRValue(pConInfo->ScreenBackground), FALSE);
SetDlgItemInt(hwndDlg, IDC_EDIT_COLOR_GREEN, GetGValue(pConInfo->ScreenBackground), FALSE);
SetDlgItemInt(hwndDlg, IDC_EDIT_COLOR_BLUE, GetBValue(pConInfo->ScreenBackground), FALSE);
InvalidateRect(GetDlgItem(hwndDlg, IDC_STATIC_SCREEN_COLOR), NULL, TRUE);
InvalidateRect(GetDlgItem(hwndDlg, IDC_STATIC_POPUP_COLOR), NULL, TRUE);
break;
}
case IDC_RADIO_POPUP_TEXT:
{
SetDlgItemInt(hwndDlg, IDC_EDIT_COLOR_RED, GetRValue(pConInfo->PopupText), FALSE);
SetDlgItemInt(hwndDlg, IDC_EDIT_COLOR_GREEN, GetGValue(pConInfo->PopupText), FALSE);
SetDlgItemInt(hwndDlg, IDC_EDIT_COLOR_BLUE, GetBValue(pConInfo->PopupText), FALSE);
InvalidateRect(GetDlgItem(hwndDlg, IDC_STATIC_SCREEN_COLOR), NULL, TRUE);
InvalidateRect(GetDlgItem(hwndDlg, IDC_STATIC_POPUP_COLOR), NULL, TRUE);
break;
}
case IDC_RADIO_POPUP_BACKGROUND:
{
SetDlgItemInt(hwndDlg, IDC_EDIT_COLOR_RED, GetRValue(pConInfo->PopupBackground), FALSE);
SetDlgItemInt(hwndDlg, IDC_EDIT_COLOR_GREEN, GetGValue(pConInfo->PopupBackground), FALSE);
SetDlgItemInt(hwndDlg, IDC_EDIT_COLOR_BLUE, GetBValue(pConInfo->PopupBackground), FALSE);
InvalidateRect(GetDlgItem(hwndDlg, IDC_STATIC_SCREEN_COLOR), NULL, TRUE);
InvalidateRect(GetDlgItem(hwndDlg, IDC_STATIC_POPUP_COLOR), NULL, TRUE);
break;
}
}
if (HIWORD(wParam) == STN_CLICKED && LOWORD(wParam) >= IDC_STATIC_COLOR1 && LOWORD(wParam) <= IDC_STATIC_COLOR16)
{
DWORD index = LOWORD(wParam) - IDC_STATIC_COLOR1;
pConInfo->ActiveStaticControl = index;
SetDlgItemInt(hwndDlg, IDC_EDIT_COLOR_RED, GetRValue(s_Colors[index]), FALSE);
SetDlgItemInt(hwndDlg, IDC_EDIT_COLOR_GREEN, GetGValue(s_Colors[index]), FALSE);
SetDlgItemInt(hwndDlg, IDC_EDIT_COLOR_BLUE, GetBValue(s_Colors[index]), FALSE);
/* update global struct */
if (SendMessage(GetDlgItem(hwndDlg, IDC_RADIO_SCREEN_TEXT), BM_GETCHECK, 0, 0) & BST_CHECKED)
{
pConInfo->ScreenText = s_Colors[index];
}
else if (SendMessage(GetDlgItem(hwndDlg, IDC_RADIO_SCREEN_BACKGROUND), BM_GETCHECK, 0, 0) & BST_CHECKED)
{
pConInfo->ScreenBackground = s_Colors[index];
}
else if (SendMessage(GetDlgItem(hwndDlg, IDC_RADIO_POPUP_TEXT), BM_GETCHECK, 0, 0) & BST_CHECKED)
{
pConInfo->PopupText = s_Colors[index];
}
else if (SendMessage(GetDlgItem(hwndDlg, IDC_RADIO_POPUP_BACKGROUND), BM_GETCHECK, 0, 0) & BST_CHECKED)
{
pConInfo->PopupBackground = s_Colors[index];
}
InvalidateRect(GetDlgItem(hwndDlg, IDC_STATIC_SCREEN_COLOR), NULL, TRUE);
InvalidateRect(GetDlgItem(hwndDlg, IDC_STATIC_POPUP_COLOR), NULL, TRUE);
break;
}
}
default: default:
break; break;

View file

@ -26,7 +26,7 @@ APPLET Applets[NUM_APPLETS] =
}; };
static void static void
InitPropSheetPage(PROPSHEETPAGE *psp, WORD idDlg, DLGPROC DlgProc) InitPropSheetPage(PROPSHEETPAGE *psp, WORD idDlg, DLGPROC DlgProc, LPARAM lParam)
{ {
ZeroMemory(psp, sizeof(PROPSHEETPAGE)); ZeroMemory(psp, sizeof(PROPSHEETPAGE));
psp->dwSize = sizeof(PROPSHEETPAGE); psp->dwSize = sizeof(PROPSHEETPAGE);
@ -34,10 +34,11 @@ InitPropSheetPage(PROPSHEETPAGE *psp, WORD idDlg, DLGPROC DlgProc)
psp->hInstance = hApplet; psp->hInstance = hApplet;
psp->pszTemplate = MAKEINTRESOURCE(idDlg); psp->pszTemplate = MAKEINTRESOURCE(idDlg);
psp->pfnDlgProc = DlgProc; psp->pfnDlgProc = DlgProc;
psp->lParam = lParam;
} }
BOOL PConsoleInfo
InitConsoleInfo(HWND hwnd) InitConsoleInfo()
{ {
PConsoleInfo pConInfo; PConsoleInfo pConInfo;
STARTUPINFO StartupInfo; STARTUPINFO StartupInfo;
@ -46,15 +47,27 @@ InitConsoleInfo(HWND hwnd)
pConInfo = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(ConsoleInfo)); pConInfo = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(ConsoleInfo));
if (!pConInfo) if (!pConInfo)
return FALSE; {
return NULL;
}
/* initialize struct */ /* initialize struct */
pConInfo->InsertMode = TRUE; pConInfo->InsertMode = TRUE;
pConInfo->HistoryBufferSize = 50; pConInfo->HistoryBufferSize = 50;
pConInfo->NumberOfHistoryBuffers = 5; pConInfo->NumberOfHistoryBuffers = 5;
pConInfo->ScreenText = RGB(192, 192, 192);
pConInfo->ScreenBackground = RGB(0, 0, 0);
pConInfo->PopupText = RGB(128, 0, 128);
pConInfo->PopupBackground = RGB(255, 255, 255);
GetModuleFileName(NULL, pConInfo->szProcessName, MAX_PATH);
//MessageBox(hwnd, pConInfo->szProcessName, _T("GetModuleFileName"), MB_OK);
GetStartupInfo(&StartupInfo); GetStartupInfo(&StartupInfo);
if ( StartupInfo.lpTitle ) if ( StartupInfo.lpTitle )
{ {
if ( _tcslen(StartupInfo.lpTitle) ) if ( _tcslen(StartupInfo.lpTitle) )
@ -89,11 +102,7 @@ InitConsoleInfo(HWND hwnd)
{ {
_tcscpy(pConInfo->szProcessName, _T("Console")); _tcscpy(pConInfo->szProcessName, _T("Console"));
} }
return pConInfo;
SetWindowText(hwnd, pConInfo->szProcessName);
SetWindowLongPtr(hwnd, DWLP_USER , (LONG)pConInfo);
return TRUE;
} }
INT_PTR INT_PTR
@ -107,7 +116,7 @@ ApplyProc(
{ {
HWND hDlgCtrl; HWND hDlgCtrl;
UNREFERENCED_PARAMETER(lParam) UNREFERENCED_PARAMETER(lParam);
switch(uMsg) switch(uMsg)
{ {
@ -168,7 +177,7 @@ PropSheetProc(
LPARAM lParam LPARAM lParam
) )
{ {
PConsoleInfo pConInfo = (PConsoleInfo) GetWindowLongPtr(hwndDlg, DWLP_USER); PConsoleInfo pConInfo = (PConsoleInfo) GetWindowLongPtr(GetParent(hwndDlg), DWLP_USER);
switch(uMsg) switch(uMsg)
{ {
@ -197,10 +206,7 @@ PropSheetProc(
} }
break; break;
} }
case PSCB_INITIALIZED:
{
break;
}
default: default:
break; break;
} }
@ -214,13 +220,14 @@ InitApplet(HWND hwnd, UINT uMsg, LONG wParam, LONG lParam)
PROPSHEETPAGE psp[4]; PROPSHEETPAGE psp[4];
PROPSHEETHEADER psh; PROPSHEETHEADER psh;
INT i=0; INT i=0;
PConsoleInfo pConInfo;
UNREFERENCED_PARAMETER(hwnd) UNREFERENCED_PARAMETER(hwnd);
UNREFERENCED_PARAMETER(uMsg) UNREFERENCED_PARAMETER(uMsg);
UNREFERENCED_PARAMETER(wParam) UNREFERENCED_PARAMETER(wParam);
UNREFERENCED_PARAMETER(lParam) UNREFERENCED_PARAMETER(lParam);
pConInfo = InitConsoleInfo();
ZeroMemory(&psh, sizeof(PROPSHEETHEADER)); ZeroMemory(&psh, sizeof(PROPSHEETHEADER));
psh.dwSize = sizeof(PROPSHEETHEADER); psh.dwSize = sizeof(PROPSHEETHEADER);
@ -234,10 +241,10 @@ InitApplet(HWND hwnd, UINT uMsg, LONG wParam, LONG lParam)
psh.ppsp = psp; psh.ppsp = psp;
psh.pfnCallback = PropSheetProc; psh.pfnCallback = PropSheetProc;
InitPropSheetPage(&psp[i++], IDD_PROPPAGEOPTIONS, (DLGPROC) OptionsProc); InitPropSheetPage(&psp[i++], IDD_PROPPAGEOPTIONS, (DLGPROC) OptionsProc, (LPARAM)pConInfo);
InitPropSheetPage(&psp[i++], IDD_PROPPAGEFONT, (DLGPROC) FontProc); InitPropSheetPage(&psp[i++], IDD_PROPPAGEFONT, (DLGPROC) FontProc, (LPARAM)pConInfo);
InitPropSheetPage(&psp[i++], IDD_PROPPAGELAYOUT, (DLGPROC) LayoutProc); InitPropSheetPage(&psp[i++], IDD_PROPPAGELAYOUT, (DLGPROC) LayoutProc, (LPARAM)pConInfo);
InitPropSheetPage(&psp[i++], IDD_PROPPAGECOLORS, (DLGPROC) ColorsProc); InitPropSheetPage(&psp[i++], IDD_PROPPAGECOLORS, (DLGPROC) ColorsProc, (LPARAM)pConInfo);
return (PropertySheet(&psh) != -1); return (PropertySheet(&psh) != -1);
} }
@ -287,7 +294,7 @@ DllMain(
DWORD dwReason, DWORD dwReason,
LPVOID lpvReserved) LPVOID lpvReserved)
{ {
UNREFERENCED_PARAMETER(lpvReserved) UNREFERENCED_PARAMETER(lpvReserved);
switch(dwReason) switch(dwReason)
{ {

View file

@ -1,6 +1,6 @@
LIBRARY console.dll LIBRARY console.dll
EXPORTS EXPORTS
CPlApplet@16 CPlApplet
; EOF ; EOF

View file

@ -29,9 +29,17 @@ typedef struct TAGConsoleInfo
DWORD QuickEdit; DWORD QuickEdit;
DWORD InsertMode; DWORD InsertMode;
DWORD ActiveStaticControl;
COLORREF ScreenText;
COLORREF ScreenBackground;
COLORREF PopupText;
COLORREF PopupBackground;
} ConsoleInfo, *PConsoleInfo; } ConsoleInfo, *PConsoleInfo;
BOOL WriteConsoleOptions(PConsoleInfo pConInfo); BOOL WriteConsoleOptions(PConsoleInfo pConInfo);
BOOL InitConsoleInfo(HWND hwnd);
//globals
extern HINSTANCE hApplet;
#endif /* CONSOLE_H__ */ #endif /* CONSOLE_H__ */

View file

@ -7,6 +7,8 @@
* PROGRAMMERS: Johannes Anderwald (johannes.anderwald@student.tugraz.at) * PROGRAMMERS: Johannes Anderwald (johannes.anderwald@student.tugraz.at)
*/ */
#include <commctrl.h>
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
IDD_PROPPAGEOPTIONS DIALOGEX 0, 0, 250, 220 IDD_PROPPAGEOPTIONS DIALOGEX 0, 0, 250, 220
@ -101,31 +103,31 @@ LTEXT "&Red:", -1, 125, 25, 30, 10
EDITTEXT IDC_EDIT_COLOR_RED, 150, 25, 30, 10, ES_RIGHT | WS_GROUP EDITTEXT IDC_EDIT_COLOR_RED, 150, 25, 30, 10, ES_RIGHT | WS_GROUP
CONTROL "", IDC_UPDOWN_COLOR_RED, UPDOWN_CLASS, UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | WS_BORDER | WS_GROUP, 165, 25, 30, 10 CONTROL "", IDC_UPDOWN_COLOR_RED, UPDOWN_CLASS, UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | WS_BORDER | WS_GROUP, 165, 25, 30, 10
LTEXT "&Green:", -1, 125, 35, 30, 10 LTEXT "&Green:", -1, 125, 35, 30, 10
EDITTEXT IDC_EDIT_COLOR_BLUE, 150, 35, 30, 10, ES_RIGHT | WS_GROUP EDITTEXT IDC_EDIT_COLOR_GREEN, 150, 35, 30, 10, ES_RIGHT | WS_GROUP
CONTROL "", IDC_UPDOWN_COLOR_GREEN, UPDOWN_CLASS, UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | WS_BORDER | WS_GROUP, 165, 35, 30, 10 CONTROL "", IDC_UPDOWN_COLOR_GREEN, UPDOWN_CLASS, UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | WS_BORDER | WS_GROUP, 165, 35, 30, 10
LTEXT "&Blue:", -1, 125, 45, 30, 10 LTEXT "&Blue:", -1, 125, 45, 30, 10
EDITTEXT IDC_EDIT_COLOR_BLUE, 150, 45, 30, 10, ES_RIGHT | WS_GROUP EDITTEXT IDC_EDIT_COLOR_BLUE, 150, 45, 30, 10, ES_RIGHT | WS_GROUP
CONTROL "", IDC_UPDOWN_COLOR_BLUE, UPDOWN_CLASS, UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | WS_BORDER | WS_GROUP, 165, 45, 30, 10 CONTROL "", IDC_UPDOWN_COLOR_BLUE, UPDOWN_CLASS, UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | WS_BORDER | WS_GROUP, 165, 45, 30, 10
CONTROL "", IDC_STATIC_COLOR1, "Static", SS_BLACKRECT | SS_NOTIFY | SS_SUNKEN, 15, 90, 10, 10 CONTROL "", IDC_STATIC_COLOR1, "Static", SS_NOTIFY | SS_SUNKEN | SS_OWNERDRAW, 15, 90, 10, 10
CONTROL "", IDC_STATIC_COLOR2, "Static", SS_BLACKRECT | SS_NOTIFY | SS_SUNKEN, 27, 90, 10, 10 CONTROL "", IDC_STATIC_COLOR2, "Static", SS_NOTIFY | SS_SUNKEN | SS_OWNERDRAW, 27, 90, 10, 10
CONTROL "", IDC_STATIC_COLOR3, "Static", SS_BLACKRECT | SS_NOTIFY | SS_SUNKEN, 39, 90, 10, 10 CONTROL "", IDC_STATIC_COLOR3, "Static", SS_NOTIFY | SS_SUNKEN | SS_OWNERDRAW, 39, 90, 10, 10
CONTROL "", IDC_STATIC_COLOR4, "Static", SS_BLACKRECT | SS_NOTIFY | SS_SUNKEN, 51, 90, 10, 10 CONTROL "", IDC_STATIC_COLOR4, "Static", SS_NOTIFY | SS_SUNKEN | SS_OWNERDRAW, 51, 90, 10, 10
CONTROL "", IDC_STATIC_COLOR5, "Static", SS_BLACKRECT | SS_NOTIFY | SS_SUNKEN, 63, 90, 10, 10 CONTROL "", IDC_STATIC_COLOR5, "Static", SS_NOTIFY | SS_SUNKEN | SS_OWNERDRAW, 63, 90, 10, 10
CONTROL "", IDC_STATIC_COLOR6, "Static", SS_BLACKRECT | SS_NOTIFY | SS_SUNKEN, 75, 90, 10, 10 CONTROL "", IDC_STATIC_COLOR6, "Static", SS_NOTIFY | SS_SUNKEN | SS_OWNERDRAW, 75, 90, 10, 10
CONTROL "", IDC_STATIC_COLOR7, "Static", SS_BLACKRECT | SS_NOTIFY | SS_SUNKEN, 87, 90, 10, 10 CONTROL "", IDC_STATIC_COLOR7, "Static", SS_NOTIFY | SS_SUNKEN | SS_OWNERDRAW, 87, 90, 10, 10
CONTROL "", IDC_STATIC_COLOR8, "Static", SS_BLACKRECT | SS_NOTIFY | SS_SUNKEN, 99, 90, 10, 10 CONTROL "", IDC_STATIC_COLOR8, "Static", SS_NOTIFY | SS_SUNKEN | SS_OWNERDRAW, 99, 90, 10, 10
CONTROL "", IDC_STATIC_COLOR9, "Static", SS_BLACKRECT | SS_NOTIFY | SS_SUNKEN, 111, 90, 10, 10 CONTROL "", IDC_STATIC_COLOR9, "Static", SS_NOTIFY | SS_SUNKEN | SS_OWNERDRAW, 111, 90, 10, 10
CONTROL "", IDC_STATIC_COLOR10, "Static", SS_BLACKRECT | SS_NOTIFY | SS_SUNKEN, 123, 90, 10, 10 CONTROL "", IDC_STATIC_COLOR10, "Static", SS_NOTIFY | SS_SUNKEN | SS_OWNERDRAW, 123, 90, 10, 10
CONTROL "", IDC_STATIC_COLOR11, "Static", SS_BLACKRECT | SS_NOTIFY | SS_SUNKEN, 135, 90, 10, 10 CONTROL "", IDC_STATIC_COLOR11, "Static", SS_NOTIFY | SS_SUNKEN | SS_OWNERDRAW, 135, 90, 10, 10
CONTROL "", IDC_STATIC_COLOR12, "Static", SS_BLACKRECT | SS_NOTIFY | SS_SUNKEN, 147, 90, 10, 10 CONTROL "", IDC_STATIC_COLOR12, "Static", SS_NOTIFY | SS_SUNKEN | SS_OWNERDRAW, 147, 90, 10, 10
CONTROL "", IDC_STATIC_COLOR13, "Static", SS_BLACKRECT | SS_NOTIFY | SS_SUNKEN, 159, 90, 10, 10 CONTROL "", IDC_STATIC_COLOR13, "Static", SS_NOTIFY | SS_SUNKEN | SS_OWNERDRAW, 159, 90, 10, 10
CONTROL "", IDC_STATIC_COLOR14, "Static", SS_BLACKRECT | SS_NOTIFY | SS_SUNKEN, 171, 90, 10, 10 CONTROL "", IDC_STATIC_COLOR14, "Static", SS_NOTIFY | SS_SUNKEN | SS_OWNERDRAW, 171, 90, 10, 10
CONTROL "", IDC_STATIC_COLOR15, "Static", SS_BLACKRECT | SS_NOTIFY | SS_SUNKEN, 183, 90, 10, 10 CONTROL "", IDC_STATIC_COLOR15, "Static", SS_NOTIFY | SS_SUNKEN | SS_OWNERDRAW, 183, 90, 10, 10
CONTROL "", IDC_STATIC_COLOR16, "Static", SS_BLACKRECT | SS_NOTIFY | SS_SUNKEN, 195, 90, 10, 10 CONTROL "", IDC_STATIC_COLOR16, "Static", SS_NOTIFY | SS_SUNKEN | SS_OWNERDRAW, 195, 90, 10, 10
GROUPBOX "Selected Screen Colors", -1, 10, 110, 200, 40 GROUPBOX "Selected Screen Colors", -1, 10, 110, 200, 40
CONTROL "", IDC_STATIC_SCREEN_COLOR, "Static", SS_BLACKRECT | SS_SUNKEN, 15, 120, 180, 20 CONTROL "", IDC_STATIC_SCREEN_COLOR, "Static", SS_OWNERDRAW | SS_SUNKEN, 15, 120, 180, 20
GROUPBOX "Selected Popup Colors", -1, 10, 155, 200, 40 GROUPBOX "Selected Popup Colors", -1, 10, 155, 200, 40
CONTROL "", IDC_STATIC_POPUP_COLOR, "Static", SS_BLACKRECT | SS_SUNKEN, 15, 165, 180, 20 CONTROL "", IDC_STATIC_POPUP_COLOR, "Static", SS_OWNERDRAW | SS_SUNKEN, 15, 165, 180, 20
END END
IDD_APPLYOPTIONS DIALOGEX 0, 0, 220, 100 IDD_APPLYOPTIONS DIALOGEX 0, 0, 220, 100
@ -144,4 +146,5 @@ BEGIN
IDS_CPLNAME "Console" IDS_CPLNAME "Console"
IDS_CPLDESCRIPTION "Configures console properties." IDS_CPLDESCRIPTION "Configures console properties."
IDS_APPLY_SHORTCUT_ALL "Modify &shortcut that started this window" IDS_APPLY_SHORTCUT_ALL "Modify &shortcut that started this window"
IDS_SCREEN_TEXT "C:\ReactOS> dir\nSYSTEM <DIR> 10-01-99 5:00\nSYSTEM32 <DIR> 10-01-99 5:00"
END END

View file

@ -19,9 +19,9 @@ FontProc(
LPARAM lParam LPARAM lParam
) )
{ {
UNREFERENCED_PARAMETER(hwndDlg) UNREFERENCED_PARAMETER(hwndDlg);
UNREFERENCED_PARAMETER(wParam) UNREFERENCED_PARAMETER(wParam);
UNREFERENCED_PARAMETER(lParam)
switch(uMsg) switch(uMsg)
{ {

View file

@ -18,15 +18,19 @@ LayoutProc(
LPARAM lParam LPARAM lParam
) )
{ {
UNREFERENCED_PARAMETER(hwndDlg) PConsoleInfo pConInfo = (PConsoleInfo)GetWindowLongPtr(hwndDlg, DWLP_USER);
UNREFERENCED_PARAMETER(wParam)
UNREFERENCED_PARAMETER(lParam) UNREFERENCED_PARAMETER(hwndDlg);
UNREFERENCED_PARAMETER(wParam);
switch(uMsg) switch(uMsg)
{ {
case WM_INITDIALOG: case WM_INITDIALOG:
{
pConInfo = (PConsoleInfo) ((LPPROPSHEETPAGE)lParam)->lParam;
SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pConInfo);
return TRUE; return TRUE;
}
default: default:
break; break;
} }

View file

@ -9,7 +9,13 @@
#include "console.h" #include "console.h"
BOOLEAN InitializeOptionsDialog(); static
void
UpdateDialogElements(HWND hwndDlg, PConsoleInfo pConInfo);
static
BOOL
InitializeOptionsFromReg(TCHAR * Path, PConsoleInfo pConInfo);
INT_PTR INT_PTR
CALLBACK CALLBACK
@ -25,13 +31,17 @@ OptionsProc(
HWND hDlgCtrl; HWND hDlgCtrl;
LPPSHNOTIFY lppsn; LPPSHNOTIFY lppsn;
pConInfo = (PConsoleInfo) GetWindowLongPtr(GetParent(hwndDlg), DWLP_USER); pConInfo = (PConsoleInfo) GetWindowLongPtr(hwndDlg, DWLP_USER);
switch(uMsg) switch(uMsg)
{ {
case WM_INITDIALOG: case WM_INITDIALOG:
{ {
return InitializeOptionsDialog(hwndDlg); pConInfo = (PConsoleInfo) ((LPPROPSHEETPAGE)lParam)->lParam;
SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pConInfo);
InitializeOptionsFromReg(pConInfo->szProcessName, pConInfo);
UpdateDialogElements(hwndDlg, pConInfo);
return TRUE;
} }
case WM_NOTIFY: case WM_NOTIFY:
{ {
@ -149,6 +159,7 @@ OptionsProc(
return FALSE; return FALSE;
} }
static
BOOL InitializeOptionsFromReg(TCHAR * Path, PConsoleInfo pConInfo) BOOL InitializeOptionsFromReg(TCHAR * Path, PConsoleInfo pConInfo)
{ {
HKEY hKey; HKEY hKey;
@ -157,7 +168,9 @@ BOOL InitializeOptionsFromReg(TCHAR * Path, PConsoleInfo pConInfo)
DWORD dwIndex; DWORD dwIndex;
DWORD dwValueName; DWORD dwValueName;
DWORD dwValue; DWORD dwValue;
DWORD dwType;
TCHAR szValueName[MAX_PATH]; TCHAR szValueName[MAX_PATH];
TCHAR szValue[MAX_PATH];
DWORD Value; DWORD Value;
if ( RegOpenCurrentUser(KEY_READ, &hKey) != ERROR_SUCCESS ) if ( RegOpenCurrentUser(KEY_READ, &hKey) != ERROR_SUCCESS )
@ -170,15 +183,28 @@ BOOL InitializeOptionsFromReg(TCHAR * Path, PConsoleInfo pConInfo)
return FALSE; return FALSE;
} }
RegQueryInfoKey(hKey, NULL, NULL, NULL, &dwNumSubKeys, NULL, NULL, NULL, NULL, NULL, NULL, NULL ); RegQueryInfoKey(hSubKey, NULL, NULL, NULL, &dwNumSubKeys, NULL, NULL, NULL, NULL, NULL, NULL, NULL );
for (dwIndex = 0; dwIndex < dwNumSubKeys; dwIndex++) for (dwIndex = 0; dwIndex < dwNumSubKeys; dwIndex++)
{ {
dwValue = sizeof(Value); dwValue = sizeof(Value);
dwValueName = MAX_PATH; dwValueName = MAX_PATH;
if ( RegEnumValue(hSubKey, dwIndex, szValueName, &dwValueName, NULL, NULL, (BYTE*)&Value, &dwValue) != ERROR_SUCCESS) if ( RegEnumValue(hSubKey, dwIndex, szValueName, &dwValueName, NULL, &dwType, (BYTE*)&Value, &dwValue) != ERROR_SUCCESS)
{
if (dwType == REG_SZ)
{
/*
* retry in case of string value
*/
dwValue = sizeof(szValue);
dwValueName = MAX_PATH;
if (RegEnumValue(hSubKey, dwIndex, szValueName, &dwValueName, NULL, NULL, (BYTE*)szValue, &dwValue) != ERROR_SUCCESS)
break; break;
}
else
break;
}
if ( !_tcscmp(szValueName, _T("CursorSize")) ) if ( !_tcscmp(szValueName, _T("CursorSize")) )
{ {
@ -218,6 +244,7 @@ BOOL InitializeOptionsFromReg(TCHAR * Path, PConsoleInfo pConInfo)
return TRUE; return TRUE;
} }
static
void void
UpdateDialogElements(HWND hwndDlg, PConsoleInfo pConInfo) UpdateDialogElements(HWND hwndDlg, PConsoleInfo pConInfo)
{ {
@ -321,8 +348,7 @@ BOOLEAN InitializeOptionsDialog(HWND hwndDlg)
if (!pConInfo) if (!pConInfo)
return FALSE; return FALSE;
InitializeOptionsFromReg(pConInfo->szProcessName, pConInfo);
UpdateDialogElements(hwndDlg, pConInfo);
return TRUE; return TRUE;
} }

View file

@ -88,4 +88,8 @@
#define IDC_STATIC_COLOR15 626 #define IDC_STATIC_COLOR15 626
#define IDC_STATIC_COLOR16 627 #define IDC_STATIC_COLOR16 627
//string ids
#define IDS_SCREEN_TEXT 700
#endif #endif