Author: fireball
Date: Sat Oct 20 14:20:05 2007
New Revision: 29705
URL: 
http://svn.reactos.org/svn/reactos?rev=29705&view=rev
Log:
Dmitry Chapyshev <lentind(a)yandex.ru>
- Implement a joy.cpl applet. Works good on Windows XP.
Added:
    trunk/reactos/dll/cpl/joy/
    trunk/reactos/dll/cpl/joy/joy.c   (with props)
    trunk/reactos/dll/cpl/joy/joy.def   (with props)
    trunk/reactos/dll/cpl/joy/joy.h   (with props)
    trunk/reactos/dll/cpl/joy/joy.rbuild   (with props)
    trunk/reactos/dll/cpl/joy/joy.rc   (with props)
    trunk/reactos/dll/cpl/joy/lang/
    trunk/reactos/dll/cpl/joy/lang/en-US.rc   (with props)
    trunk/reactos/dll/cpl/joy/lang/ru-RU.rc   (with props)
    trunk/reactos/dll/cpl/joy/manifest.xml   (with props)
    trunk/reactos/dll/cpl/joy/resource.h   (with props)
    trunk/reactos/dll/cpl/joy/resources/
    trunk/reactos/dll/cpl/joy/resources/applet.ico   (with props)
    trunk/reactos/dll/cpl/joy/rsrc.rc   (with props)
Modified:
    trunk/reactos/baseaddress.rbuild
    trunk/reactos/dll/cpl/cpl.rbuild
Modified: trunk/reactos/baseaddress.rbuild
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/baseaddress.rbuild?rev=297…
==============================================================================
--- trunk/reactos/baseaddress.rbuild (original)
+++ trunk/reactos/baseaddress.rbuild Sat Oct 20 14:20:05 2007
@@ -7,6 +7,7 @@
   <property name="BASEADDRESS_DEVENUM" value="0x35680000" />
   <property name="BASEADDRESS_PWRCFG" value="0x587e0000" />
   <property name="BASEADDRESS_MMSYS" value="0x588a0000" />
+  <property name="BASEADDRESS_JOY" value="0x589b0000" />
   <property name="BASEADDRESS_UXTHEME" value="0x5ad70000" />
   <property name="BASEADDRESS_VDMDBG" value="0x5b0d0000" />
   <property name="BASEADDRESS_OBJSEL" value="0x5b400000" />
Modified: trunk/reactos/dll/cpl/cpl.rbuild
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/cpl.rbuild?rev=297…
==============================================================================
--- trunk/reactos/dll/cpl/cpl.rbuild (original)
+++ trunk/reactos/dll/cpl/cpl.rbuild Sat Oct 20 14:20:05 2007
@@ -18,6 +18,9 @@
 </directory>
 <directory name="intl">
        <xi:include href="intl/intl.rbuild" />
+</directory>
+<directory name="joy">
+       <xi:include href="joy/joy.rbuild" />
 </directory>
 <directory name="main">
        <xi:include href="main/main.rbuild" />
Added: trunk/reactos/dll/cpl/joy/joy.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/joy/joy.c?rev=2970…
==============================================================================
--- trunk/reactos/dll/cpl/joy/joy.c (added)
+++ trunk/reactos/dll/cpl/joy/joy.c Sat Oct 20 14:20:05 2007
@@ -1,0 +1,302 @@
+/*
+ *  ReactOS
+ *  Copyright (C) 2004 ReactOS Team
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+/*
+ *
+ * PROJECT:                    ReactOS Software Control Panel
+ * FILE:                       dll/cpl/joy/joy.c
+ * PURPOSE:                    ReactOS Software Control Panel
+ * PROGRAMMER: Dmitry Chapyshev (lentind(a)yandex.ru)
+ * UPDATE HISTORY:
+ *     10-18-2007  Created
+ */
+
+#include "joy.h"
+
+#define NUM_APPLETS    (1)
+
+LONG CALLBACK SystemApplet(VOID);
+HINSTANCE hApplet = 0;
+HWND MainDlg;
+
+/* Applets */
+
+APPLET Applets[NUM_APPLETS] =
+{
+    {IDI_CPLSYSTEM, IDS_CPLSYSTEMNAME, IDS_CPLSYSTEMDESCRIPTION, SystemApplet}
+};
+
+VOID AddColumns(HWND hList)
+{
+       LV_COLUMN dummy;
+       RECT rect;
+       int Size;
+       TCHAR szBuf[256];
+
+       GetClientRect(hList, &rect);
+       ZeroMemory(&dummy, sizeof(LV_COLUMN));
+       dummy.mask      = LVCF_TEXT | LVCF_WIDTH | LVCF_SUBITEM;
+       dummy.iSubItem  = 0;
+       LoadString(hApplet, IDS_STATUS, szBuf, sizeof(szBuf) / sizeof(TCHAR));
+       dummy.pszText   = (LPTSTR)szBuf;
+       Size                    = rect.right - rect.left - 250;
+       dummy.cx        = Size;
+       (void)ListView_InsertColumn(hList, 0, &dummy);
+
+       GetClientRect(hList, &rect);
+       ZeroMemory(&dummy, sizeof(LV_COLUMN));
+       dummy.mask      = LVCF_TEXT | LVCF_WIDTH | LVCF_SUBITEM;
+       dummy.iSubItem  = 0;
+       LoadString(hApplet, IDS_CONTROLLER, szBuf, sizeof(szBuf) / sizeof(TCHAR));
+       dummy.pszText   = (LPTSTR)szBuf;
+       dummy.cx        = rect.right - rect.left - Size;
+       (void)ListView_InsertColumn(hList, 0, &dummy);
+}
+
+INT_PTR CALLBACK
+AdvancedPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+    UNREFERENCED_PARAMETER(lParam);
+
+    switch (uMsg)
+    {
+        case WM_INITDIALOG:
+
+        break;
+
+        case WM_COMMAND:
+                       switch (LOWORD(wParam))
+                       {
+                               case IDOK:
+                                       EndDialog(hwndDlg,LOWORD(wParam));
+                               break;
+                               case IDCANCEL:
+                                       EndDialog(hwndDlg,LOWORD(wParam));
+                               break;
+                       }
+        break;
+               case WM_NOTIFY:
+
+               break;
+               case WM_SYSCOMMAND:
+                       switch (LOWORD(wParam))
+                       {
+                               case SC_CONTEXTHELP:
+                                       // not implemented
+                               break;
+                       }
+               break;
+    }
+       return 0;
+}
+
+INT_PTR CALLBACK
+CustomPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+    UNREFERENCED_PARAMETER(lParam);
+
+    switch (uMsg)
+    {
+        case WM_INITDIALOG:
+
+        break;
+
+        case WM_COMMAND:
+                       switch (LOWORD(wParam))
+                       {
+                               case IDOK:
+                                       EndDialog(hwndDlg,LOWORD(wParam));
+                               break;
+                               case IDCANCEL:
+                                       EndDialog(hwndDlg,LOWORD(wParam));
+                               break;
+                       }
+        break;
+               case WM_NOTIFY:
+
+               break;
+               case WM_SYSCOMMAND:
+                       switch (LOWORD(wParam))
+                       {
+                               case SC_CONTEXTHELP:
+                                       // not implemented
+                               break;
+                       }
+               break;
+    }
+       return 0;
+}
+
+INT_PTR CALLBACK
+AddPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+    UNREFERENCED_PARAMETER(lParam);
+
+    switch (uMsg)
+    {
+        case WM_INITDIALOG:
+
+        break;
+
+        case WM_COMMAND:
+                       switch (LOWORD(wParam))
+                       {
+                               case IDC_CUSTOM_BUTTON:
+                                       DialogBox(hApplet,
+                                                         MAKEINTRESOURCE(IDD_CUSTOM),
+                                                         hwndDlg,
+                                                         CustomPageProc);
+                               break;
+                               case IDOK:
+                                       EndDialog(hwndDlg,LOWORD(wParam));
+                               break;
+                               case IDCANCEL:
+                                       EndDialog(hwndDlg,LOWORD(wParam));
+                               break;
+                       }
+        break;
+               case WM_NOTIFY:
+
+               break;
+               case WM_SYSCOMMAND:
+                       switch (LOWORD(wParam))
+                       {
+                               case SC_CONTEXTHELP:
+                                       // not implemented
+                               break;
+                       }
+               break;
+    }
+       return 0;
+}
+
+/* Property page dialog callback */
+INT_PTR CALLBACK
+MainPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+    UNREFERENCED_PARAMETER(lParam);
+
+    switch (uMsg)
+    {
+        case WM_INITDIALOG:
+                       AddColumns(GetDlgItem(hwndDlg,IDC_CONTROLLER_LIST));
+        break;
+
+        case WM_COMMAND:
+                       switch (LOWORD(wParam))
+                       {
+                               case IDC_ADD_BUTTON:
+                                       DialogBox(hApplet,
+                                                         MAKEINTRESOURCE(IDD_ADD),
+                                                         hwndDlg,
+                                                         AddPageProc);
+                               break;
+                               case IDC_ADVANCED_BUTTON:
+                                       DialogBox(hApplet,
+                                                         MAKEINTRESOURCE(IDD_ADVANCED),
+                                                         hwndDlg,
+                                                         AdvancedPageProc);
+                               break;
+                               case IDOK:
+                                       EndDialog(hwndDlg,LOWORD(wParam));
+                               break;
+                       }
+        break;
+               case WM_NOTIFY:
+
+               break;
+               case WM_SYSCOMMAND:
+                       switch (LOWORD(wParam))
+                       {
+                               case SC_CLOSE:
+                                       EndDialog(hwndDlg,LOWORD(wParam));
+                               break;
+                               case SC_CONTEXTHELP:
+                                       // not implemented
+                               break;
+                       }
+               break;
+    }
+       return 0;
+}
+
+/* First Applet */
+LONG CALLBACK
+SystemApplet(VOID)
+{
+    DialogBox(hApplet,
+              MAKEINTRESOURCE(IDD_PROPPAGEMAIN),
+              MainDlg,
+              MainPageProc);
+
+    return (LONG)TRUE;
+}
+
+/* Control Panel Callback */
+LONG CALLBACK
+CPlApplet(HWND hwndCPl, UINT uMsg, LPARAM lParam1, LPARAM lParam2)
+{
+    CPLINFO *CPlInfo;
+    DWORD i;
+
+    UNREFERENCED_PARAMETER(hwndCPl);
+
+    i = (DWORD)lParam1;
+    switch (uMsg)
+    {
+        case CPL_INIT:
+            return TRUE;
+
+        case CPL_GETCOUNT:
+            return NUM_APPLETS;
+
+        case CPL_INQUIRE:
+            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:
+               {
+                       MainDlg = hwndCPl;
+            Applets[i].AppletProc();
+               }
+            break;
+    }
+
+    return FALSE;
+}
+
+BOOL WINAPI
+DllMain(HINSTANCE hinstDLL, DWORD dwReason, LPVOID lpvReserved)
+{
+    UNREFERENCED_PARAMETER(lpvReserved);
+
+    switch (dwReason)
+    {
+        case DLL_PROCESS_ATTACH:
+        case DLL_THREAD_ATTACH:
+            CoInitialize(NULL);
+            hApplet = hinstDLL;
+            break;
+    }
+
+    return TRUE;
+}
Propchange: trunk/reactos/dll/cpl/joy/joy.c
------------------------------------------------------------------------------
    svn:eol-style = native
Added: trunk/reactos/dll/cpl/joy/joy.def
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/joy/joy.def?rev=29…
==============================================================================
--- trunk/reactos/dll/cpl/joy/joy.def (added)
+++ trunk/reactos/dll/cpl/joy/joy.def Sat Oct 20 14:20:05 2007
@@ -1,0 +1,6 @@
+LIBRARY joy.cpl
+
+EXPORTS
+CPlApplet
+
+; EOF
Propchange: trunk/reactos/dll/cpl/joy/joy.def
------------------------------------------------------------------------------
    svn:eol-style = native
Added: trunk/reactos/dll/cpl/joy/joy.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/joy/joy.h?rev=2970…
==============================================================================
--- trunk/reactos/dll/cpl/joy/joy.h (added)
+++ trunk/reactos/dll/cpl/joy/joy.h Sat Oct 20 14:20:05 2007
@@ -1,0 +1,40 @@
+#ifndef __CPL_JOY_H
+#define __CPL_JOY_H
+
+#include <windows.h>
+#include <commctrl.h>
+#include <cpl.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <stdarg.h>
+#include <tchar.h>
+#include <process.h>
+
+#include "resource.h"
+
+typedef LONG (CALLBACK *CPLAPPLET_PROC)(VOID);
+
+typedef struct
+{
+  int idIcon;
+  int idName;
+  int idDescription;
+  CPLAPPLET_PROC AppletProc;
+} APPLET, *PAPPLET;
+
+typedef struct
+{
+   WCHAR szTarget[MAX_PATH];
+   WCHAR szWorkingDirectory[MAX_PATH];
+   WCHAR szDescription[MAX_PATH];
+   WCHAR szLinkName[MAX_PATH];
+}CREATE_LINK_CONTEXT, *PCREATE_LINK_CONTEXT;
+
+
+extern HINSTANCE hApplet;
+
+void ShowLastWin32Error(HWND hWndOwner);
+
+#endif /* __CPL_JOY_H */
+
+/* EOF */
Propchange: trunk/reactos/dll/cpl/joy/joy.h
------------------------------------------------------------------------------
    svn:eol-style = native
Added: trunk/reactos/dll/cpl/joy/joy.rbuild
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/joy/joy.rbuild?rev…
==============================================================================
--- trunk/reactos/dll/cpl/joy/joy.rbuild (added)
+++ trunk/reactos/dll/cpl/joy/joy.rbuild Sat Oct 20 14:20:05 2007
@@ -1,0 +1,19 @@
+<?xml version="1.0"?>
+<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
+<module name="joy" type="win32dll" extension=".cpl"
baseaddress="${BASEADDRESS_JOY}"  installbase="system32"
installname="joy.cpl" unicode="yes">
+       <importlibrary definition="joy.def" />
+       <include base="joy">.</include>
+       <define name="__USE_W32API" />
+       <define name="_WIN32_IE">0x600</define>
+       <define name="_WIN32_WINNT">0x501</define>
+       <library>kernel32</library>
+       <library>advapi32</library>
+       <library>user32</library>
+       <library>comctl32</library>
+       <library>msvcrt</library>
+       <library>ole32</library>
+       <library>uuid</library>
+       <library>shell32</library>
+       <file>joy.c</file>
+       <file>joy.rc</file>
+</module>
Propchange: trunk/reactos/dll/cpl/joy/joy.rbuild
------------------------------------------------------------------------------
    svn:eol-style = native
Added: trunk/reactos/dll/cpl/joy/joy.rc
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/joy/joy.rc?rev=297…
==============================================================================
--- trunk/reactos/dll/cpl/joy/joy.rc (added)
+++ trunk/reactos/dll/cpl/joy/joy.rc Sat Oct 20 14:20:05 2007
@@ -1,0 +1,20 @@
+#include "resource.h"
+#include <windows.h>
+
+LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
+
+#define REACTOS_VERSION_DLL
+#define REACTOS_STR_FILE_DESCRIPTION   "ReactOS Software Control Panel\0"
+#define REACTOS_STR_INTERNAL_NAME      "joy\0"
+#define REACTOS_STR_ORIGINAL_FILENAME  "joy.cpl\0"
+#ifdef _MSC_VER
+#include <../../../reactos/version.rc>
+#else
+#include <reactos/version.rc>
+#endif
+
+123 24 DISCARDABLE "manifest.xml"
+
+IDI_CPLSYSTEM ICON "resources/applet.ico"
+
+#include "rsrc.rc"
Propchange: trunk/reactos/dll/cpl/joy/joy.rc
------------------------------------------------------------------------------
    svn:eol-style = native
Added: trunk/reactos/dll/cpl/joy/lang/en-US.rc
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/joy/lang/en-US.rc?…
==============================================================================
--- trunk/reactos/dll/cpl/joy/lang/en-US.rc (added)
+++ trunk/reactos/dll/cpl/joy/lang/en-US.rc Sat Oct 20 14:20:05 2007
@@ -1,0 +1,84 @@
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+
+IDD_PROPPAGEMAIN DIALOGEX 0, 0, 252, 205
+STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
+EXSTYLE WS_EX_CONTEXTHELP
+CAPTION "Game Controllers"
+FONT 8, "MS Shell Dlg"
+{
+       ICON IDI_CPLSYSTEM, -1, 7, 7, 20, 20
+       LTEXT "These settings help you configure the game controllers installed on
your computer.", -1, 33, 7, 214, 20, NOT WS_GROUP
+       GROUPBOX "I&nstalled game controllers", -1, 7, 34, 238, 117
+       CONTROL "List1", IDC_CONTROLLER_LIST, "SysListView32",
WS_BORDER | WS_GROUP | WS_TABSTOP | 0x0000808D, 14, 44, 224, 80
+       PUSHBUTTON "&Add...", IDC_ADD_BUTTON, 35, 129, 65, 14
+       PUSHBUTTON "&Remove", IDC_REMOVE_BUTTON, 104, 129, 65, 14,
WS_DISABLED
+       PUSHBUTTON "&Properties", IDC_PROPERTIES_BUTTON, 173, 129, 65, 14,
WS_DISABLED
+       PUSHBUTTON "A&dvanced...", IDC_ADVANCED_BUTTON, 111, 157, 65, 14
+       PUSHBUTTON "&Troubleshoot...", IDC_TROUBLESHOOT_BUTTON, 180, 157,
65, 14
+       PUSHBUTTON "OK", IDOK, 195, 185, 50, 14
+}
+
+IDD_ADD DIALOGEX 0, 0, 265, 200
+STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | WS_POPUPWINDOW |
WS_CAPTION
+EXSTYLE WS_EX_CONTEXTHELP
+CAPTION "Add Game Controller"
+FONT 8, "MS Shell Dlg"
+{
+       ICON IDI_CPLSYSTEM, -1, 8, 7, 20, 20
+       LTEXT "Select a game controller from the list below, and then click OK.  If
your game controller does not appear in the list, click Custom.", -1, 35, 7, 210, 33
+       LTEXT "&Game controllers:", -1, 8, 45, 126, 8
+       LISTBOX IDC_GAME_CONTROLLERS_LIST, 7, 55, 251, 57, LBS_STANDARD |
LBS_NOINTEGRALHEIGHT | LBS_WANTKEYBOARDINPUT | WS_HSCROLL | WS_TABSTOP
+       AUTOCHECKBOX "&Enable rudders and pedals",
IDC_ENABLE_RUDDERS_CHECKBOX, 7, 114, 100, 10, WS_GROUP
+       LTEXT "&Game Port:", -1, 7, 134, 38, 8, NOT WS_VISIBLE
+       COMBOBOX IDC_GAME_PORT_COMBO, 7, 147, 140, 50, CBS_DROPDOWNLIST | CBS_SORT | NOT
WS_VISIBLE | WS_VSCROLL
+       PUSHBUTTON "&Custom...", IDC_CUSTOM_BUTTON, 208, 147, 50, 14
+       CONTROL "", -25525, "STATIC", SS_ETCHEDHORZ, 7, 170, 251, 1
+       DEFPUSHBUTTON "OK", IDOK, 155, 179, 50, 14
+       PUSHBUTTON "Cancel", IDCANCEL, 208, 179, 50, 14
+}
+
+IDD_CUSTOM DIALOGEX 0, 0, 265, 183, 0
+STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | WS_POPUPWINDOW |
WS_CAPTION
+EXSTYLE WS_EX_CONTEXTHELP
+CAPTION "Custom Game Controller"
+FONT 8, "MS Shell Dlg"
+{
+       GROUPBOX "Special characteristics", -1, 7, 7, 245, 52
+       AUTORADIOBUTTON "&Joystick", IDC_JOYSTICK_RADIO, 17, 23, 55, 10
+       AUTORADIOBUTTON "&Flight yoke or flight stick",
IDC_FLIGHT_YOKE_RADIO, 147, 23, 89, 10
+       AUTORADIOBUTTON "&Game pad", IDC_GAME_PAD_RADIO, 17, 40, 65, 10
+       AUTORADIOBUTTON "&Race car controller", IDC_RACE_CAR_RADIO, 147, 40,
93, 10
+       GROUPBOX "&Axes", -1, 7, 67, 116, 44, WS_GROUP
+       COMBOBOX IDC_AXES_COMBO, 37, 79, 48, 50, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL
+       AUTORADIOBUTTON "Rudder/Pedals", IDC_RUDDER_PEDALS_RADIO, 14, 97, 63,
10, NOT WS_VISIBLE
+       AUTORADIOBUTTON "Z Axis", IDC_Z_AXIS_RADIO, 81, 97, 35, 10, NOT
WS_VISIBLE
+       GROUPBOX "&Buttons", -1, 137, 67, 116, 44
+       COMBOBOX IDC_BUTTONS_COMBO, 178, 79, 48, 50, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL |
CBS_SORT | WS_VSCROLL, WS_EX_CLIENTEDGE
+       AUTOCHECKBOX "Includes a &point of view control",
IDC_INC_POINT_CHECKBOX, 7, 123, 115, 10
+       LTEXT "C&ontroller name:", -1, 7, 139, 200, 9
+       EDITTEXT IDC_CONTROLLER_NAME_EDIT, 7, 150, 116, 15, ES_AUTOHSCROLL,
WS_EX_CLIENTEDGE | WS_EX_STATICEDGE
+       DEFPUSHBUTTON "OK", IDOK, 137, 150, 50, 14
+       PUSHBUTTON "Cancel", IDCANCEL, 203, 150, 50, 14
+}
+
+IDD_ADVANCED DIALOGEX 0, 0, 220, 86
+STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
+EXSTYLE WS_EX_CONTEXTHELP
+CAPTION "Advanced Settings"
+FONT 8, "MS Shell Dlg"
+{
+       ICON IDI_CPLSYSTEM, -1, 7, 24, 20, 20
+       DEFPUSHBUTTON "OK", IDOK, 106, 65, 50, 14
+       PUSHBUTTON "Cancel", IDCANCEL, 163, 65, 50, 14
+       LTEXT "Select the device you want to use with older programs.", -1, 7,
7, 208, 10
+       LTEXT "&Preferred device:", -1, 34, 24, 70, 10
+       COMBOBOX IDC_PREFERRED_DEV_COMBO, 34, 38, 179, 75, CBS_DROPDOWNLIST | CBS_SORT |
WS_VSCROLL
+}
+
+STRINGTABLE
+BEGIN
+       IDS_CPLSYSTEMNAME "Game Controllers"
+       IDS_CPLSYSTEMDESCRIPTION "Add, remove, and configure game controller hardware
such as joysticks and gamepads."
+       IDS_CONTROLLER "Controller"
+       IDS_STATUS "Status"
+END
Propchange: trunk/reactos/dll/cpl/joy/lang/en-US.rc
------------------------------------------------------------------------------
    svn:eol-style = native
Added: trunk/reactos/dll/cpl/joy/lang/ru-RU.rc
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/joy/lang/ru-RU.rc?…
==============================================================================
--- trunk/reactos/dll/cpl/joy/lang/ru-RU.rc (added)
+++ trunk/reactos/dll/cpl/joy/lang/ru-RU.rc Sat Oct 20 14:20:05 2007
@@ -1,0 +1,84 @@
+LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
+
+IDD_PROPPAGEMAIN DIALOGEX 0, 0, 252, 205
+STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
+EXSTYLE WS_EX_CONTEXTHELP
+CAPTION "Èãðîâûå óñòðîéñòâà"
+FONT 8, "MS Shell Dlg"
+{
+       ICON IDI_CPLSYSTEM, -1, 7, 7, 20, 20
+       LTEXT "Ýòè ïàðàìåòðû ïîçâîëÿþò íàñòðîèòü èãðîâûå óñòðîéñòâà, óñòàíîâëåííûå íà
êîìïüþòåðå.", -1, 33, 7, 214, 20, NOT WS_GROUP
+       GROUPBOX "Óñòàíîâëåííûå &èãðîâûå óñòðîéñòâà", -1, 7, 34, 238, 117
+       CONTROL "List1", IDC_CONTROLLER_LIST, "SysListView32",
WS_BORDER | WS_GROUP | WS_TABSTOP | 0x0000808D, 14, 44, 224, 80
+       PUSHBUTTON "Äî&áàâèòü...", IDC_ADD_BUTTON, 35, 129, 65, 14
+       PUSHBUTTON "&Óäàëèòü", IDC_REMOVE_BUTTON, 104, 129, 65, 14,
WS_DISABLED
+       PUSHBUTTON "Ñâî&éñòâà", IDC_PROPERTIES_BUTTON, 173, 129, 65, 14,
WS_DISABLED
+       PUSHBUTTON "Ä&îïîëíèòåëüíî...", IDC_ADVANCED_BUTTON, 101, 157, 70,
14
+       PUSHBUTTON "Äèà&ãíîñòèêà...", IDC_TROUBLESHOOT_BUTTON, 175, 157, 70,
14
+       PUSHBUTTON "OK", IDOK, 195, 185, 50, 14
+}
+
+IDD_ADD DIALOGEX 0, 0, 265, 200
+STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | WS_POPUPWINDOW |
WS_CAPTION
+EXSTYLE WS_EX_CONTEXTHELP
+CAPTION "Äîáàâëåíèå èãðîâîãî óñòðîéñòâà"
+FONT 8, "MS Shell Dlg"
+{
+       ICON IDI_CPLSYSTEM, -1, 8, 7, 20, 20
+       LTEXT "Âûáåðèòå èãðîâîé êîíòðîëëåð â ðàñïîëîæåííîì íèæå ñïèñêå è íàæìèòå
êíîïêó ÎÊ. Åñëè âàø èãðîâîé êîíòðîëëåð îòñóòñòâóåò â ñïèñêå, íàæìèòå êíîïêó
""Äðóãîé"".", -1, 35, 7, 210, 33
+       LTEXT "&Èãðîâûå óñòðîéñòâà:", -1, 8, 45, 126, 8
+       LISTBOX IDC_GAME_CONTROLLERS_LIST, 7, 55, 251, 57, LBS_STANDARD |
LBS_NOINTEGRALHEIGHT | LBS_WANTKEYBOARDINPUT | WS_HSCROLL | WS_TABSTOP
+       AUTOCHECKBOX "&Ïîäêëþ÷èòü ðóëü èëè ïåäàëè",
IDC_ENABLE_RUDDERS_CHECKBOX, 7, 114, 120, 10, WS_GROUP
+       LTEXT "&Èãðîâîé ïîðò:", -1, 7, 134, 38, 8, NOT WS_VISIBLE
+       COMBOBOX IDC_GAME_PORT_COMBO, 7, 147, 140, 50, CBS_DROPDOWNLIST | CBS_SORT | NOT
WS_VISIBLE | WS_VSCROLL
+       PUSHBUTTON "&Äðóãîé...", IDC_CUSTOM_BUTTON, 208, 147, 50, 14
+       CONTROL "", -25525, "STATIC", SS_ETCHEDHORZ, 7, 170, 251, 1
+       DEFPUSHBUTTON "OK", IDOK, 155, 179, 50, 14
+       PUSHBUTTON "Îòìåíà", IDCANCEL, 208, 179, 50, 14
+}
+
+IDD_CUSTOM DIALOGEX 0, 0, 265, 183, 0
+STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | WS_POPUPWINDOW |
WS_CAPTION
+EXSTYLE WS_EX_CONTEXTHELP
+CAPTION "Îñîáîå èãðîâîå óñòðîéñòâî"
+FONT 8, "MS Shell Dlg"
+{
+       GROUPBOX "Îñîáåííîñòè", -1, 7, 7, 245, 52
+       AUTORADIOBUTTON "&Äæîéñòèê", IDC_JOYSTICK_RADIO, 17, 23, 55, 10
+       AUTORADIOBUTTON "&Øòóðâàë èëè ðóêîÿòêà óïðàâëåíèÿ",
IDC_FLIGHT_YOKE_RADIO, 100, 23, 143, 10
+       AUTORADIOBUTTON "&Èãðîâîé ïëàíøåò", IDC_GAME_PAD_RADIO, 17, 40, 75,
10
+       AUTORADIOBUTTON "Óïðàâëåíèå ãîíî÷íîé &àâòîìàøèíîé",
IDC_RACE_CAR_RADIO, 100, 40, 143, 10
+       GROUPBOX "&Ñòåïåíü ñâîáîäû", -1, 7, 67, 116, 44, WS_GROUP
+       COMBOBOX IDC_AXES_COMBO, 37, 79, 48, 50, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL
+       AUTORADIOBUTTON "Ðóëü óïðàâëåíèÿ èëè ïåäàëè", IDC_RUDDER_PEDALS_RADIO,
14, 97, 63, 10, NOT WS_VISIBLE
+       AUTORADIOBUTTON "Îñü Z", IDC_Z_AXIS_RADIO, 81, 97, 35, 10, NOT
WS_VISIBLE
+       GROUPBOX "Ê&íîïêè", -1, 137, 67, 116, 44
+       COMBOBOX IDC_BUTTONS_COMBO, 178, 79, 48, 50, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL |
CBS_SORT | WS_VSCROLL, WS_EX_CLIENTEDGE
+       AUTOCHECKBOX "Èìååòñÿ &ïåðåêëþ÷àòåëü POV", IDC_INC_POINT_CHECKBOX,
7, 123, 115, 10
+       LTEXT "&Êîíòðîëåð:", -1, 7, 139, 200, 9
+       EDITTEXT IDC_CONTROLLER_NAME_EDIT, 7, 150, 116, 15, ES_AUTOHSCROLL,
WS_EX_CLIENTEDGE | WS_EX_STATICEDGE
+       DEFPUSHBUTTON "OK", IDOK, 137, 150, 50, 14
+       PUSHBUTTON "Îòìåíà", IDCANCEL, 203, 150, 50, 14
+}
+
+IDD_ADVANCED DIALOGEX 0, 0, 220, 86
+STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
+EXSTYLE WS_EX_CONTEXTHELP
+CAPTION "Äîïîëíèòåëüíûå ïàðàìåòðû"
+FONT 8, "MS Shell Dlg"
+{
+       ICON IDI_CPLSYSTEM, -1, 7, 24, 20, 20
+       LTEXT "Âûáåðèòå óñòðîéñòâî, êîòîðîå ñëåäóåò èñïîëüçîâàòü ñî ñòàðûìè
ïðîãðàììàìè.", -1, 7, 5, 208, 17
+       LTEXT "&Ïðåäïî÷èòàåìîå óñòðîéñòâî:", -1, 34, 24, 180, 10
+       COMBOBOX IDC_PREFERRED_DEV_COMBO, 34, 38, 179, 75, CBS_DROPDOWNLIST | CBS_SORT |
WS_VSCROLL
+       DEFPUSHBUTTON "OK", IDOK, 106, 65, 50, 14
+       PUSHBUTTON "Îòìåíà", IDCANCEL, 163, 65, 50, 14
+}
+
+STRINGTABLE
+BEGIN
+       IDS_CPLSYSTEMNAME "Èãðîâûå óñòðîéñòâà"
+       IDS_CPLSYSTEMDESCRIPTION "Äîáàâëåíèå, óäàëåíèå è íàñòðîéêà  ïàðàìåòðîâ
èãðîâûõ óñòðîéñòâ, íàïðèìåð, äæîéñòèêîâ èëè èãðîâûõ ïëàíøåòîâ."
+       IDS_CONTROLLER "Óñòðîéñòâî"
+       IDS_STATUS "Ñîñòîÿíèå"
+END
Propchange: trunk/reactos/dll/cpl/joy/lang/ru-RU.rc
------------------------------------------------------------------------------
    svn:eol-style = native
Added: trunk/reactos/dll/cpl/joy/manifest.xml
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/joy/manifest.xml?r…
==============================================================================
--- trunk/reactos/dll/cpl/joy/manifest.xml (added)
+++ trunk/reactos/dll/cpl/joy/manifest.xml Sat Oct 20 14:20:05 2007
@@ -1,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"
standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
+ <assemblyIdentity
+  version="1.0.0.0"
+  processorArchitecture="X86"
+  name="ReactOS.System.ControlPanel.System"
+  type="win32"
+ />
+ <description>ReactOS System Control Panel</description>
+ <dependency>
+  <dependentAssembly>
+   <assemblyIdentity
+    type="win32"
+    name="Microsoft.Windows.Common-Controls"
+    version="6.0.0.0"
+    processorArchitecture="X86"
+    publicKeyToken="6595b64144ccf1df"
+    language="*"
+   />
+  </dependentAssembly>
+ </dependency>
+</assembly>
+
+<!-- EOF -->
Propchange: trunk/reactos/dll/cpl/joy/manifest.xml
------------------------------------------------------------------------------
    svn:eol-style = native
Added: trunk/reactos/dll/cpl/joy/resource.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/joy/resource.h?rev…
==============================================================================
--- trunk/reactos/dll/cpl/joy/resource.h (added)
+++ trunk/reactos/dll/cpl/joy/resource.h Sat Oct 20 14:20:05 2007
@@ -1,0 +1,44 @@
+#ifndef __CPL_RESOURCE_H
+#define __CPL_RESOURCE_H
+
+/* icons */
+#define IDI_CPLSYSTEM  102
+
+/* dialogs */
+#define IDD_PROPPAGEMAIN               101
+#define IDD_ADD                                        119
+#define IDD_CUSTOM                             4099
+#define IDD_ADVANCED                   8188
+
+/* strings */
+#define IDS_CPLSYSTEMNAME                      1076
+#define IDS_CPLSYSTEMDESCRIPTION       1099
+#define IDS_CONTROLLER                         1151
+#define IDS_STATUS                                     1152
+
+/* controls */
+#define IDC_CONTROLLER_LIST                    1020
+#define IDC_ADD_BUTTON                         1011
+#define IDC_REMOVE_BUTTON                      1028
+#define IDC_PROPERTIES_BUTTON          1002
+#define IDC_ADVANCED_BUTTON                    1311
+#define IDC_TROUBLESHOOT_BUTTON                1007
+#define IDC_CUSTOM_BUTTON                      1169
+#define IDC_GAME_PORT_COMBO                    1168
+#define IDC_GAME_CONTROLLERS_LIST      1057
+#define IDC_ENABLE_RUDDERS_CHECKBOX    1000
+#define IDC_JOYSTICK_RADIO                     1054
+#define IDC_FLIGHT_YOKE_RADIO          1051
+#define IDC_GAME_PAD_RADIO                     1052
+#define IDC_RACE_CAR_RADIO                     1053
+#define IDC_AXES_COMBO                         1030
+#define IDC_RUDDER_PEDALS_RADIO                1172
+#define IDC_Z_AXIS_RADIO                       1174
+#define IDC_BUTTONS_COMBO                      1048
+#define IDC_INC_POINT_CHECKBOX         1072
+#define IDC_CONTROLLER_NAME_EDIT       1056
+#define IDC_PREFERRED_DEV_COMBO                8195
+
+#endif /* __CPL_RESOURCE_H */
+
+/* EOF */
Propchange: trunk/reactos/dll/cpl/joy/resource.h
------------------------------------------------------------------------------
    svn:eol-style = native
Added: trunk/reactos/dll/cpl/joy/resources/applet.ico
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/joy/resources/appl…
==============================================================================
Binary file - no diff available.
Propchange: trunk/reactos/dll/cpl/joy/resources/applet.ico
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream
Added: trunk/reactos/dll/cpl/joy/rsrc.rc
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/joy/rsrc.rc?rev=29…
==============================================================================
--- trunk/reactos/dll/cpl/joy/rsrc.rc (added)
+++ trunk/reactos/dll/cpl/joy/rsrc.rc Sat Oct 20 14:20:05 2007
@@ -1,0 +1,5 @@
+#include "resource.h"
+#include <windows.h>
+
+#include "lang/en-US.rc"
+#include "lang/ru-RU.rc"
Propchange: trunk/reactos/dll/cpl/joy/rsrc.rc
------------------------------------------------------------------------------
    svn:eol-style = native