Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenjoy.c
Go to the documentation of this file.
00001 /* 00002 * ReactOS 00003 * Copyright (C) 2004 ReactOS Team 00004 * 00005 * This program is free software; you can redistribute it and/or modify 00006 * it under the terms of the GNU General Public License as published by 00007 * the Free Software Foundation; either version 2 of the License, or 00008 * (at your option) any later version. 00009 * 00010 * This program is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 * GNU General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU General Public License along 00016 * with this program; if not, write to the Free Software Foundation, Inc., 00017 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 00018 */ 00019 /* 00020 * 00021 * PROJECT: ReactOS Software Control Panel 00022 * FILE: dll/cpl/joy/joy.c 00023 * PURPOSE: ReactOS Software Control Panel 00024 * PROGRAMMER: Dmitry Chapyshev (lentind@yandex.ru) 00025 * UPDATE HISTORY: 00026 * 10-18-2007 Created 00027 */ 00028 00029 #include "joy.h" 00030 00031 #define NUM_APPLETS (1) 00032 00033 LONG CALLBACK SystemApplet(VOID); 00034 HINSTANCE hApplet = 0; 00035 HWND MainDlg; 00036 00037 /* Applets */ 00038 00039 APPLET Applets[NUM_APPLETS] = 00040 { 00041 {IDI_CPLSYSTEM, IDS_CPLSYSTEMNAME, IDS_CPLSYSTEMDESCRIPTION, SystemApplet} 00042 }; 00043 00044 VOID 00045 AddColumns(HWND hList) 00046 { 00047 LV_COLUMN dummy; 00048 RECT rect; 00049 int Size; 00050 TCHAR szBuf[256]; 00051 00052 GetClientRect(hList, &rect); 00053 Size = rect.right - rect.left - 250; 00054 00055 LoadString(hApplet, IDS_STATUS, szBuf, sizeof(szBuf) / sizeof(TCHAR)); 00056 00057 ZeroMemory(&dummy, sizeof(LV_COLUMN)); 00058 dummy.mask = LVCF_TEXT | LVCF_WIDTH | LVCF_SUBITEM; 00059 dummy.iSubItem = 0; 00060 dummy.pszText = (LPTSTR)szBuf; 00061 dummy.cx = Size; 00062 (void)ListView_InsertColumn(hList, 0, &dummy); 00063 00064 GetClientRect(hList, &rect); 00065 00066 LoadString(hApplet, IDS_CONTROLLER, szBuf, sizeof(szBuf) / sizeof(TCHAR)); 00067 00068 ZeroMemory(&dummy, sizeof(LV_COLUMN)); 00069 dummy.mask = LVCF_TEXT | LVCF_WIDTH | LVCF_SUBITEM; 00070 dummy.iSubItem = 0; 00071 dummy.pszText = (LPTSTR)szBuf; 00072 dummy.cx = rect.right - rect.left - Size; 00073 (void)ListView_InsertColumn(hList, 0, &dummy); 00074 } 00075 00076 INT_PTR CALLBACK 00077 AdvancedPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) 00078 { 00079 UNREFERENCED_PARAMETER(lParam); 00080 00081 switch (uMsg) 00082 { 00083 case WM_INITDIALOG: 00084 break; 00085 00086 case WM_COMMAND: 00087 switch (LOWORD(wParam)) 00088 { 00089 case IDOK: 00090 EndDialog(hwndDlg,LOWORD(wParam)); 00091 break; 00092 00093 case IDCANCEL: 00094 EndDialog(hwndDlg,LOWORD(wParam)); 00095 break; 00096 } 00097 break; 00098 00099 case WM_NOTIFY: 00100 break; 00101 00102 case WM_SYSCOMMAND: 00103 switch (LOWORD(wParam)) 00104 { 00105 case SC_CONTEXTHELP: 00106 // Not implemented yet 00107 break; 00108 } 00109 break; 00110 } 00111 return 0; 00112 } 00113 00114 INT_PTR CALLBACK 00115 CustomPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) 00116 { 00117 UNREFERENCED_PARAMETER(lParam); 00118 00119 switch (uMsg) 00120 { 00121 case WM_INITDIALOG: 00122 break; 00123 00124 case WM_COMMAND: 00125 switch (LOWORD(wParam)) 00126 { 00127 case IDOK: 00128 EndDialog(hwndDlg,LOWORD(wParam)); 00129 break; 00130 00131 case IDCANCEL: 00132 EndDialog(hwndDlg,LOWORD(wParam)); 00133 break; 00134 } 00135 break; 00136 00137 case WM_NOTIFY: 00138 break; 00139 00140 case WM_SYSCOMMAND: 00141 switch (LOWORD(wParam)) 00142 { 00143 case SC_CONTEXTHELP: 00144 // Not implemented yet 00145 break; 00146 } 00147 break; 00148 } 00149 return 0; 00150 } 00151 00152 INT_PTR CALLBACK 00153 AddPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) 00154 { 00155 UNREFERENCED_PARAMETER(lParam); 00156 00157 switch (uMsg) 00158 { 00159 case WM_INITDIALOG: 00160 break; 00161 00162 case WM_COMMAND: 00163 switch (LOWORD(wParam)) 00164 { 00165 case IDC_CUSTOM_BUTTON: 00166 DialogBox(hApplet, 00167 MAKEINTRESOURCE(IDD_CUSTOM), 00168 hwndDlg, 00169 CustomPageProc); 00170 break; 00171 00172 case IDOK: 00173 EndDialog(hwndDlg,LOWORD(wParam)); 00174 break; 00175 00176 case IDCANCEL: 00177 EndDialog(hwndDlg,LOWORD(wParam)); 00178 break; 00179 } 00180 break; 00181 00182 case WM_NOTIFY: 00183 break; 00184 00185 case WM_SYSCOMMAND: 00186 switch (LOWORD(wParam)) 00187 { 00188 case SC_CONTEXTHELP: 00189 // Not implemented yet 00190 break; 00191 } 00192 break; 00193 } 00194 return 0; 00195 } 00196 00197 /* Property page dialog callback */ 00198 INT_PTR CALLBACK 00199 MainPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) 00200 { 00201 UNREFERENCED_PARAMETER(lParam); 00202 00203 switch (uMsg) 00204 { 00205 case WM_INITDIALOG: 00206 AddColumns(GetDlgItem(hwndDlg,IDC_CONTROLLER_LIST)); 00207 break; 00208 00209 case WM_COMMAND: 00210 switch (LOWORD(wParam)) 00211 { 00212 case IDC_ADD_BUTTON: 00213 DialogBox(hApplet, 00214 MAKEINTRESOURCE(IDD_ADD), 00215 hwndDlg, 00216 AddPageProc); 00217 break; 00218 00219 case IDC_ADVANCED_BUTTON: 00220 DialogBox(hApplet, 00221 MAKEINTRESOURCE(IDD_ADVANCED), 00222 hwndDlg, 00223 AdvancedPageProc); 00224 break; 00225 00226 case IDOK: 00227 EndDialog(hwndDlg,LOWORD(wParam)); 00228 break; 00229 } 00230 break; 00231 00232 case WM_NOTIFY: 00233 break; 00234 00235 case WM_SYSCOMMAND: 00236 switch (LOWORD(wParam)) 00237 { 00238 case SC_CLOSE: 00239 EndDialog(hwndDlg,LOWORD(wParam)); 00240 break; 00241 00242 case SC_CONTEXTHELP: 00243 // Not implemented yet 00244 break; 00245 } 00246 break; 00247 } 00248 return 0; 00249 } 00250 00251 /* First Applet */ 00252 LONG CALLBACK 00253 SystemApplet(VOID) 00254 { 00255 DialogBox(hApplet, 00256 MAKEINTRESOURCE(IDD_PROPPAGEMAIN), 00257 MainDlg, 00258 MainPageProc); 00259 00260 return (LONG)TRUE; 00261 } 00262 00263 /* Control Panel Callback */ 00264 LONG CALLBACK 00265 CPlApplet(HWND hwndCPl, UINT uMsg, LPARAM lParam1, LPARAM lParam2) 00266 { 00267 CPLINFO *CPlInfo; 00268 DWORD i; 00269 00270 UNREFERENCED_PARAMETER(hwndCPl); 00271 00272 i = (DWORD)lParam1; 00273 switch (uMsg) 00274 { 00275 case CPL_INIT: 00276 return TRUE; 00277 00278 case CPL_GETCOUNT: 00279 return NUM_APPLETS; 00280 00281 case CPL_INQUIRE: 00282 CPlInfo = (CPLINFO*)lParam2; 00283 CPlInfo->lData = 0; 00284 CPlInfo->idIcon = Applets[i].idIcon; 00285 CPlInfo->idName = Applets[i].idName; 00286 CPlInfo->idInfo = Applets[i].idDescription; 00287 break; 00288 00289 case CPL_DBLCLK: 00290 { 00291 MainDlg = hwndCPl; 00292 Applets[i].AppletProc(); 00293 } 00294 break; 00295 } 00296 00297 return FALSE; 00298 } 00299 00300 BOOL WINAPI 00301 DllMain(HINSTANCE hinstDLL, DWORD dwReason, LPVOID lpvReserved) 00302 { 00303 UNREFERENCED_PARAMETER(lpvReserved); 00304 00305 switch (dwReason) 00306 { 00307 case DLL_PROCESS_ATTACH: 00308 case DLL_THREAD_ATTACH: 00309 CoInitialize(NULL); 00310 hApplet = hinstDLL; 00311 break; 00312 } 00313 00314 return TRUE; 00315 } Generated on Sun May 27 2012 04:20:58 for ReactOS by
1.7.6.1
|