[ros-diffs] [dchapyshev] 33109: - Add "Preferences" button

dchapyshev at svn.reactos.org dchapyshev at svn.reactos.org
Tue Apr 22 22:01:09 CEST 2008


Author: dchapyshev
Date: Tue Apr 22 15:01:08 2008
New Revision: 33109

URL: http://svn.reactos.org/svn/reactos?rev=33109&view=rev
Log:
- Add "Preferences" button

Modified:
    trunk/reactos/base/applications/kbswitch/kbswitch.c
    trunk/reactos/base/applications/kbswitch/kbswitch.h
    trunk/reactos/base/applications/kbswitch/lang/de-DE.rc
    trunk/reactos/base/applications/kbswitch/lang/en-US.rc
    trunk/reactos/base/applications/kbswitch/lang/ru-RU.rc
    trunk/reactos/base/applications/kbswitch/resource.h

Modified: trunk/reactos/base/applications/kbswitch/kbswitch.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/kbswitch/kbswitch.c?rev=33109&r1=33108&r2=33109&view=diff
==============================================================================
--- trunk/reactos/base/applications/kbswitch/kbswitch.c [iso-8859-1] (original)
+++ trunk/reactos/base/applications/kbswitch/kbswitch.c [iso-8859-1] Tue Apr 22 15:01:08 2008
@@ -117,8 +117,8 @@
 BOOL CALLBACK
 EnumWindowsProc(HWND hwnd, LPARAM lParam)
 {
-	SendMessage(hwnd, WM_INPUTLANGCHANGEREQUEST, 0, lParam);
-	return TRUE;
+    SendMessage(hwnd, WM_INPUTLANGCHANGEREQUEST, 0, lParam);
+    return TRUE;
 }
 
 static VOID
@@ -142,7 +142,6 @@
     HMENU hMenu;
     HKEY hKey;
     DWORD dwIndex, dwSize;
-    TCHAR szExit[MAX_PATH];
     TCHAR szLayoutNum[CCH_ULONG_DEC + 1];
     TCHAR szName[MAX_PATH];
 
@@ -165,11 +164,17 @@
         RegCloseKey(hKey);
     }
 
-    LoadString(hInst, IDS_EXIT, szExit, MAX_PATH);
-    AppendMenu(hMenu, MF_SEPARATOR, 0, NULL);
-    AppendMenu(hMenu, MF_STRING, MENU_ID_EXIT, szExit);
-
     return hMenu;
+}
+
+static VOID
+ShowRightPopupMenu(HWND hwnd, POINT pt)
+{
+    HMENU hMenu;
+
+    hMenu = GetSubMenu(LoadMenu(hInst, MAKEINTRESOURCE(IDR_POPUP)), 0);
+    TrackPopupMenu(hMenu, 0, pt.x, pt.y, 0, hwnd, NULL);
+    DestroyMenu(hMenu);
 }
 
 LRESULT CALLBACK
@@ -189,7 +194,6 @@
             {
                 case WM_LBUTTONDBLCLK:
                 case WM_LBUTTONDOWN:
-                case WM_RBUTTONDOWN:
                 {
                     POINT pt;
 
@@ -197,15 +201,45 @@
                     TrackPopupMenu(hPopupMenu, 0, pt.x, pt.y, 0, hwnd, NULL);
                 }
                 break;
+				case WM_RBUTTONDOWN:
+				{
+					POINT pt;
+
+					GetCursorPos(&pt);
+					ShowRightPopupMenu(hwnd, pt);
+				}
+				break;
             }
             break;
 
         case WM_COMMAND:
-            if (LOWORD(wParam) == MENU_ID_EXIT)
-                SendMessage(hwnd, WM_CLOSE, 0, 0);
-            else
-                ActivateLayout(LOWORD(wParam));
-
+			switch (LOWORD(wParam))
+			{
+				case ID_EXIT:
+					SendMessage(hwnd, WM_CLOSE, 0, 0);
+				break;
+
+				case ID_PROFERENCES:
+				{
+					SHELLEXECUTEINFO shInputDll;
+
+                    memset(&shInputDll, 0x0, sizeof(SHELLEXECUTEINFO));
+                    shInputDll.cbSize = sizeof(shInputDll);
+                    shInputDll.hwnd = hwnd;
+                    shInputDll.lpVerb = _T("open");
+                    shInputDll.lpFile = _T("RunDll32.exe");
+                    shInputDll.lpParameters = _T("shell32.dll,Control_RunDLL input.dll");
+                    if (ShellExecuteEx(&shInputDll) == 0)
+                    {
+                        MessageBox(hwnd, _T("Can't start input.dll"), NULL, MB_OK | MB_ICONERROR);
+                    }
+				}
+				break;
+
+				default:
+					ActivateLayout(LOWORD(wParam));
+				break;
+			}
             break;
 
         case WM_DESTROY:

Modified: trunk/reactos/base/applications/kbswitch/kbswitch.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/kbswitch/kbswitch.h?rev=33109&r1=33108&r2=33109&view=diff
==============================================================================
--- trunk/reactos/base/applications/kbswitch/kbswitch.h [iso-8859-1] (original)
+++ trunk/reactos/base/applications/kbswitch/kbswitch.h [iso-8859-1] Tue Apr 22 15:01:08 2008
@@ -10,5 +10,3 @@
 
 // Maximum Character Count of a ULONG in decimal
 #define CCH_ULONG_DEC    10
-
-#define MENU_ID_EXIT     65535

Modified: trunk/reactos/base/applications/kbswitch/lang/de-DE.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/kbswitch/lang/de-DE.rc?rev=33109&r1=33108&r2=33109&view=diff
==============================================================================
--- trunk/reactos/base/applications/kbswitch/lang/de-DE.rc [iso-8859-1] (original)
+++ trunk/reactos/base/applications/kbswitch/lang/de-DE.rc [iso-8859-1] Tue Apr 22 15:01:08 2008
@@ -1,6 +1,11 @@
 LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
 
-STRINGTABLE
+IDR_POPUP MENU
 BEGIN
-	IDS_EXIT, "Beenden"
+    POPUP "popup"
+    BEGIN
+        MENUITEM "&Preferences...",  ID_PROFERENCES
+        MENUITEM SEPARATOR
+        MENUITEM "&Beenden",         ID_EXIT
+    END
 END

Modified: trunk/reactos/base/applications/kbswitch/lang/en-US.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/kbswitch/lang/en-US.rc?rev=33109&r1=33108&r2=33109&view=diff
==============================================================================
--- trunk/reactos/base/applications/kbswitch/lang/en-US.rc [iso-8859-1] (original)
+++ trunk/reactos/base/applications/kbswitch/lang/en-US.rc [iso-8859-1] Tue Apr 22 15:01:08 2008
@@ -1,6 +1,11 @@
 LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
 
-STRINGTABLE
+IDR_POPUP MENU
 BEGIN
-	IDS_EXIT, "Exit"
+    POPUP "popup"
+    BEGIN
+        MENUITEM "&Preferences...",  ID_PROFERENCES
+        MENUITEM SEPARATOR
+        MENUITEM "&Exit",            ID_EXIT
+    END
 END

Modified: trunk/reactos/base/applications/kbswitch/lang/ru-RU.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/kbswitch/lang/ru-RU.rc?rev=33109&r1=33108&r2=33109&view=diff
==============================================================================
--- trunk/reactos/base/applications/kbswitch/lang/ru-RU.rc [iso-8859-1] (original)
+++ trunk/reactos/base/applications/kbswitch/lang/ru-RU.rc [iso-8859-1] Tue Apr 22 15:01:08 2008
@@ -1,6 +1,11 @@
 LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
 
-STRINGTABLE
+IDR_POPUP MENU
 BEGIN
-	IDS_EXIT, "Âûõîä"
+    POPUP "popup"
+    BEGIN
+        MENUITEM "&Ïàðàìåòðû...",    ID_PROFERENCES
+        MENUITEM SEPARATOR
+        MENUITEM "&Âûõîä",           ID_EXIT
+    END
 END

Modified: trunk/reactos/base/applications/kbswitch/resource.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/kbswitch/resource.h?rev=33109&r1=33108&r2=33109&view=diff
==============================================================================
--- trunk/reactos/base/applications/kbswitch/resource.h [iso-8859-1] (original)
+++ trunk/reactos/base/applications/kbswitch/resource.h [iso-8859-1] Tue Apr 22 15:01:08 2008
@@ -1,5 +1,9 @@
 /* Icons */
-#define IDI_MAIN    100
+#define IDI_MAIN         100
 
-/* Strings */
-#define IDS_EXIT    1001
+/* Menus */
+#define IDR_POPUP        12000
+
+/* Menu items */
+#define ID_EXIT          10001
+#define ID_PROFERENCES   10002



More information about the Ros-diffs mailing list