3 * PROJECT: ReactOS System Control Panel
4 * LICENSE: GPL - See COPYING in the top level directory
5 * FILE: lib/cpl/system/sysdm.c
6 * PURPOSE: ReactOS System Control Panel
7 * COPYRIGHT: Copyright 2004 Johannes Anderwald (j_anderw@sbox.tugraz.at)
20 #define NUM_APPLETS (1)
22 LONG CALLBACK
SystemApplet(VOID
);
23 INT_PTR CALLBACK
DisplayPageProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
24 INT_PTR CALLBACK
GeneralPageProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
25 INT_PTR CALLBACK
KeyboardPageProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
26 INT_PTR CALLBACK
MousePageProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
27 INT_PTR CALLBACK
SoundPageProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
28 HINSTANCE hApplet
= 0;
31 APPLET Applets
[NUM_APPLETS
] =
33 {IDI_CPLACCESS
, IDS_CPLSYSTEMNAME
, IDS_CPLSYSTEMDESCRIPTION
, SystemApplet
}
37 InitPropSheetPage(PROPSHEETPAGE
*psp
, WORD idDlg
, DLGPROC DlgProc
)
39 ZeroMemory(psp
, sizeof(PROPSHEETPAGE
));
40 psp
->dwSize
= sizeof(PROPSHEETPAGE
);
41 psp
->dwFlags
= PSP_DEFAULT
;
42 psp
->hInstance
= hApplet
;
43 psp
->pszTemplate
= MAKEINTRESOURCE(idDlg
);
44 psp
->pfnDlgProc
= DlgProc
;
47 /* Property Sheet Callback */
57 case PSCB_BUTTONPRESSED
:
60 case PSBTN_OK
: /* OK */
62 case PSBTN_CANCEL
: /* Cancel */
64 case PSBTN_APPLYNOW
: /* Apply now */
66 case PSBTN_FINISH
: /* Close */
73 case PSCB_INITIALIZED
:
88 LoadString(hApplet
, IDS_CPLSYSTEMNAME
, Caption
, sizeof(Caption
) / sizeof(TCHAR
));
90 ZeroMemory(&psh
, sizeof(PROPSHEETHEADER
));
91 psh
.dwSize
= sizeof(PROPSHEETHEADER
);
92 psh
.dwFlags
= PSH_PROPSHEETPAGE
| PSH_USECALLBACK
| PSH_PROPTITLE
;
93 psh
.hwndParent
= NULL
;
94 psh
.hInstance
= hApplet
;
95 psh
.hIcon
= LoadIcon(hApplet
, MAKEINTRESOURCE(IDI_CPLACCESS
));
96 psh
.pszCaption
= Caption
;
97 psh
.nPages
= sizeof(psp
) / sizeof(PROPSHEETPAGE
);
100 psh
.pfnCallback
= PropSheetProc
;
102 InitPropSheetPage(&psp
[0], IDD_PROPPAGEKEYBOARD
, KeyboardPageProc
);
103 InitPropSheetPage(&psp
[1], IDD_PROPPAGESOUND
, SoundPageProc
);
104 InitPropSheetPage(&psp
[2], IDD_PROPPAGEDISPLAY
, DisplayPageProc
);
105 InitPropSheetPage(&psp
[3], IDD_PROPPAGEMOUSE
, MousePageProc
);
106 InitPropSheetPage(&psp
[4], IDD_PROPPAGEGENERAL
, GeneralPageProc
);
108 return (LONG
)(PropertySheet(&psh
) != -1);
111 /* Control Panel Callback */
119 int i
= (int)lParam1
;
133 CPLINFO
*CPlInfo
= (CPLINFO
*)lParam2
;
135 CPlInfo
->idIcon
= Applets
[i
].idIcon
;
136 CPlInfo
->idName
= Applets
[i
].idName
;
137 CPlInfo
->idInfo
= Applets
[i
].idDescription
;
142 Applets
[i
].AppletProc();
158 case DLL_PROCESS_ATTACH
:
159 case DLL_THREAD_ATTACH
: