ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

joy.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.