Robert Reif : winecfg: Add unmanaged windows configuration.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Dec 22 07:07:33 CST 2005


Module: wine
Branch: refs/heads/master
Commit: e998da5e0738266e03fb5e4623611f3cf738665c
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=e998da5e0738266e03fb5e4623611f3cf738665c

Author: Robert Reif <reif at earthlink.net>
Date:   Thu Dec 22 11:15:32 2005 +0100

winecfg: Add unmanaged windows configuration.

---

 programs/winecfg/En.rc       |   26 +++++++++++++++-----------
 programs/winecfg/x11drvdlg.c |   18 ++++++++++++++++++
 2 files changed, 33 insertions(+), 11 deletions(-)

diff --git a/programs/winecfg/En.rc b/programs/winecfg/En.rc
index 3f37bf8..887aa81 100644
--- a/programs/winecfg/En.rc
+++ b/programs/winecfg/En.rc
@@ -65,28 +65,31 @@ BEGIN
     LTEXT	    "Screen color depth: ",IDC_STATIC,8,10,70,30
     COMBOBOX	    IDC_SCREEN_DEPTH,80,8,170,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
 
-    GROUPBOX        " Window settings ",IDC_STATIC,8,25,244,110
+    GROUPBOX        " Window settings ",IDC_STATIC,8,25,244,180
 
     CONTROL	    "Allow DirectX apps to stop the mouse leaving their window",IDC_DX_MOUSE_GRAB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,35,230,8
     CONTROL	    "Enable desktop double buffering",IDC_DOUBLE_BUFFER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,45,230,8
+    LTEXT 	    "If windows are managed by your window manager, then they will have the standard borders, they will respect your virtual desktop and appear in your window list. \n\nIf the windows are unmanaged, they will be disconnected from your window manager. This will mean the windows do not integrate as closely with your desktop, but the emulation will be more accurate so it can help some programs to work better.",
+    		    IDC_STATIC,15,58,228,80
+    CONTROL	    "Allow the window manager to control the windows",IDC_ENABLE_MANAGED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,132,230,8
     
     /* FIXME: the wording of this explanation could be a lot better */
     LTEXT           "You can choose to emulate a windows desktop, where all the windows are confined to one 'virtual screen', or you can have the windows placed on your standard desktop.",
-                    IDC_STATIC,15,73,228,28
-    LTEXT           "Desktop size:",IDC_DESKTOP_SIZE,15,115,44,8,WS_DISABLED
-    LTEXT           "X",IDC_DESKTOP_BY,108,115,8,8,WS_DISABLED
+                    IDC_STATIC,15,146,228,28
+    LTEXT           "Desktop size:",IDC_DESKTOP_SIZE,15,188,44,8,WS_DISABLED
+    LTEXT           "X",IDC_DESKTOP_BY,108,188,8,8,WS_DISABLED
     CONTROL         "Emulate a virtual desktop",IDC_ENABLE_DESKTOP,"Button",
-                    BS_AUTOCHECKBOX | WS_TABSTOP,15,100,230,10
+                    BS_AUTOCHECKBOX | WS_TABSTOP,15,173,230,10
 		    
-    EDITTEXT        IDC_DESKTOP_WIDTH,64,115,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
-    EDITTEXT        IDC_DESKTOP_HEIGHT,117,115,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
+    EDITTEXT        IDC_DESKTOP_WIDTH,64,188,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
+    EDITTEXT        IDC_DESKTOP_HEIGHT,117,188,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
 
-    GROUPBOX        " Direct3D ",IDC_STATIC,8,140,244,120
+    GROUPBOX        " Direct3D ",IDC_STATIC,8,210,244,50
 
-    LTEXT	    "Vertex Shader Support: ",IDC_STATIC,15,150,80,30
-    COMBOBOX	    IDC_D3D_VSHADER_MODE,100,148,150,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT	    "Vertex Shader Support: ",IDC_STATIC,15,220,80,30
+    COMBOBOX	    IDC_D3D_VSHADER_MODE,100,218,150,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
 
-    CONTROL         "Allow Pixel Shader (if supported by hardware)",IDC_D3D_PSHADER_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,165,230,10
+    CONTROL         "Allow Pixel Shader (if supported by hardware)",IDC_D3D_PSHADER_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,237,230,10
 END
 
 IDD_DLLCFG DIALOG DISCARDABLE  0, 0, 260, 250
@@ -219,6 +222,7 @@ BEGIN
 
     CONTROL	    "Allow DirectX apps to stop the mouse leaving their window",IDC_DX_MOUSE_GRAB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,35,230,8
     CONTROL	    "Enable desktop double buffering",IDC_DOUBLE_BUFFER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,45,230,8
+    CONTROL	    "Allow the window manager to manage created windows",IDC_ENABLE_MANAGED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,55,230,8
     
     GROUPBOX        " Window settings ",IDC_STATIC,8,25,244,110
 
diff --git a/programs/winecfg/x11drvdlg.c b/programs/winecfg/x11drvdlg.c
index 4f93241..9348bbd 100644
--- a/programs/winecfg/x11drvdlg.c
+++ b/programs/winecfg/x11drvdlg.c
@@ -154,6 +154,13 @@ static void init_dialog(HWND dialog)
     }
     HeapFree(GetProcessHeap(), 0, buf);
 
+    buf = get_reg_key(config_key, keypath("X11 Driver"), "Managed", "Y");
+    if (IS_OPTION_TRUE(*buf))
+	CheckDlgButton(dialog, IDC_ENABLE_MANAGED, BST_CHECKED);
+    else
+	CheckDlgButton(dialog, IDC_ENABLE_MANAGED, BST_UNCHECKED);
+    HeapFree(GetProcessHeap(), 0, buf);
+
     SendDlgItemMessage(dialog, IDC_D3D_VSHADER_MODE, CB_RESETCONTENT, 0, 0);
     for (it = 0; NULL != D3D_VS_Modes[it]; ++it) {
       SendDlgItemMessage(dialog, IDC_D3D_VSHADER_MODE, CB_ADDSTRING, 0, (LPARAM) D3D_VS_Modes[it]);
@@ -221,6 +228,16 @@ static void on_enable_desktop_clicked(HW
     update_gui_for_desktop_mode(dialog);
 }
 
+static void on_enable_managed_clicked(HWND dialog) {
+    WINE_TRACE("\n");
+    
+    if (IsDlgButtonChecked(dialog, IDC_ENABLE_MANAGED) == BST_CHECKED) {
+        set_reg_key(config_key, keypath("X11 Driver"), "Managed", "Y");
+    } else {
+        set_reg_key(config_key, keypath("X11 Driver"), "Managed", "N");
+    }
+}
+
 static void on_screen_depth_changed(HWND dialog) {
     char *newvalue = get_text(dialog, IDC_SCREEN_DEPTH);
     char *spaceIndex = strchr(newvalue, ' ');
@@ -290,6 +307,7 @@ GraphDlgProc(HWND hDlg, UINT uMsg, WPARA
 		    SendMessage(GetParent(hDlg), PSM_CHANGED, 0, 0);
 		    switch(LOWORD(wParam)) {
 			case IDC_ENABLE_DESKTOP: on_enable_desktop_clicked(hDlg); break;
+                        case IDC_ENABLE_MANAGED: on_enable_managed_clicked(hDlg); break;
 			case IDC_DX_MOUSE_GRAB:  on_dx_mouse_grab_clicked(hDlg); break;
                         case IDC_DOUBLE_BUFFER:  on_double_buffer_clicked(hDlg); break;
 		        case IDC_D3D_PSHADER_MODE: on_d3d_pshader_mode_clicked(hDlg); break;




More information about the wine-cvs mailing list