comctl32/propsheet: Add the confirmation message and restart the wineserver (eterbug...
authorIlya Shpigor <shpigor@etersoft.ru>
Fri, 21 Aug 2009 06:34:27 +0000 (10:34 +0400)
committerVitaly Lipatov <lav@etersoft.ru>
Thu, 27 Aug 2009 15:45:42 +0000 (19:45 +0400)
dlls/comctl32/comctl32.h
dlls/comctl32/comctl_En.rc
dlls/comctl32/comctl_Ru.rc
dlls/comctl32/propsheet.c

index 872638dc8732adf1871cf5ecd7b1cacb25dbd4e3..363266af3ba33d0ca49f816987e3c204c605697a 100644 (file)
@@ -54,6 +54,8 @@ extern HBRUSH  COMCTL32_hPattern55AABrush;
 #define IDC_SUNKEN_LINEHEADER 12327
 
 #define IDS_CLOSE        4160
+#define IDS_RESTARTSRV   4161
+#define IDS_CAPTION      4162
 
 /* Toolbar customization dialog */
 #define IDD_TBCUSTOMIZE     200
index 369eecd90ff645484aabea6a2bd882fa96bfa00a..16f100e2a8fee58e83a1d59af6ba09da7edd069c 100644 (file)
@@ -70,6 +70,12 @@ STRINGTABLE DISCARDABLE
     IDS_CLOSE    "Close"
 }
 
+STRINGTABLE DISCARDABLE
+{
+    IDS_RESTARTSRV  "The changes you have made require you to restart all Wine programs.\n\nDo this now?"
+    IDS_CAPTION     "Change the configuration"
+}
+
 STRINGTABLE DISCARDABLE
 {
     IDM_TODAY    "Today:"
index 2bbb513a09cdd010947d2990155c92f6705d58be..48a2921f6362652db031edf43be72916120a60a7 100644 (file)
@@ -72,6 +72,12 @@ STRINGTABLE DISCARDABLE
     IDS_CLOSE    "�������"
 }
 
+STRINGTABLE DISCARDABLE
+{
+    IDS_RESTARTSRV  "��� �������� ��������� ��������� ������������� ��� Wine ���������.\n\n������� ��� ������?"
+    IDS_CAPTION     "��������� ������������"
+}
+
 STRINGTABLE DISCARDABLE
 {
     IDM_TODAY    "�������:"
index 44151e43b1e1daa541f03a04f9b1abb4e78a5bb9..19e7ca14447de2a5834eb2e14591aaaaab395b8b 100644 (file)
@@ -3142,10 +3142,10 @@ static BOOL PROPSHEET_DoCommand(HWND hwnd, WORD wID)
            if (PROPSHEET_Apply(hwnd, wID == IDOK ? 1: 0) == FALSE)
                break;
 
+           PropSheetInfo* psInfo = GetPropW(hwnd, PropSheetInfoStr);
+
            if (wID == IDOK)
                {
-                    PropSheetInfo* psInfo = GetPropW(hwnd, PropSheetInfoStr);
-
                     /* don't overwrite ID_PSRESTARTWINDOWS or ID_PSREBOOTSYSTEM */
                     if (psInfo->result == 0)
                         psInfo->result = IDOK;
@@ -3158,6 +3158,18 @@ static BOOL PROPSHEET_DoCommand(HWND hwnd, WORD wID)
            else
                EnableWindow(hwndApplyBtn, FALSE);
 
+           if (psInfo->result == ID_PSREBOOTSYSTEM)
+           {
+               WCHAR text[512];
+               WCHAR caption[512];
+               int ret;
+
+               ret = LoadStringW(GetModuleHandleA("comctl32.dll"), IDS_RESTARTSRV, text, 512);
+               ret &= LoadStringW(GetModuleHandleA("comctl32.dll"), IDS_CAPTION, caption, 512);
+
+               if (ret && MessageBoxW(hwnd, text, caption, MB_YESNO | MB_ICONQUESTION) == IDYES)
+                   InitiateSystemShutdownExW(NULL, NULL, 0, TRUE, FALSE);
+           }
            break;
        }