[PATCH] winecfg: Add trackbar to set screen resolution in graphics tab (try 2)

Nigel Liang ncliang at gmail.com
Fri Jul 27 14:03:41 CDT 2007


Hi,

Updated resource files for languages other than English as Dmitry suggested.

-Nigel
---
 programs/winecfg/Bg.rc       |   32 ++++++++++++++----------
 programs/winecfg/Cs.rc       |    4 +++
 programs/winecfg/De.rc       |    4 +++
 programs/winecfg/En.rc       |   12 ++++++---
 programs/winecfg/Es.rc       |    4 +++
 programs/winecfg/Fi.rc       |   32 ++++++++++++++----------
 programs/winecfg/Fr.rc       |    4 +++
 programs/winecfg/Hu.rc       |   32 ++++++++++++++----------
 programs/winecfg/It.rc       |    4 +++
 programs/winecfg/Ja.rc       |    6 ++++-
 programs/winecfg/Ko.rc       |    4 +++
 programs/winecfg/Nl.rc       |    4 +++
 programs/winecfg/No.rc       |   32 ++++++++++++++----------
 programs/winecfg/Pl.rc       |    4 +++
 programs/winecfg/Pt.rc       |    4 +++
 programs/winecfg/Ro.rc       |    4 +++
 programs/winecfg/Ru.rc       |    6 ++++-
 programs/winecfg/Si.rc       |    4 +++
 programs/winecfg/Tr.rc       |   32 ++++++++++++++----------
 programs/winecfg/resource.h  |    3 ++
 programs/winecfg/winecfg.c   |   24 ++++++++++++++++++
 programs/winecfg/winecfg.h   |    4 +++
 programs/winecfg/x11drvdlg.c |   55 ++++++++++++++++++++++++++++++++++++++++++
 23 files changed, 238 insertions(+), 76 deletions(-)

diff --git a/programs/winecfg/Bg.rc b/programs/winecfg/Bg.rc
index 302bec5..d77e3ad 100644
--- a/programs/winecfg/Bg.rc
+++ b/programs/winecfg/Bg.rc
@@ -65,31 +65,35 @@ IDD_GRAPHCFG DIALOG DISCARDABLE  0, 0, 2
 STYLE WS_CHILD | WS_DISABLED
 FONT 8, "MS Shell Dlg"
 BEGIN
-    GROUPBOX        " Íàñòðîéêà íà ïðîçîðöèòå ",IDC_STATIC,8,10,244,195
+    GROUPBOX        " Íàñòðîéêà íà ïðîçîðöèòå ",IDC_STATIC,8,0,244,195
 
-    CONTROL	    "Ðàçðåøè íà DirectX ïðèëîæåíèÿòà äà çàêëþ÷âàò ìèøêàòà",IDC_DX_MOUSE_GRAB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,20,230,8
+    CONTROL	    "Ðàçðåøè íà DirectX ïðèëîæåíèÿòà äà çàêëþ÷âàò ìèøêàòà",IDC_DX_MOUSE_GRAB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,10,230,8
     /* FIXME: the wording is terrible */
     LTEXT           "Àêî ïðîçîðöèòå íà Wine ñå óïðÿâëÿâàò îò âàøèÿ ìåíèäæúð íà ïðîçîðöè, òå ùå èçãëåæäàò è ùå ñå äúðæàò êàòî îñòàíàëèòå íà ðàáîòíèÿ âè ïëîò, è ùå ñå ïîêàçâàò â ñïèñúêà ñ ïðîçîðöè. \n\nÀêî èçáåðåòå äà íå ñå óïðàâëÿâàò îò íåãî, òå íÿìà äà áúäàò èíòåãðèðàíè ñ ðàáîòíèÿ âè ïëîò, íî åìóëàöèÿòà ùå å ïî-òî÷íà è å âúçìîæíî íÿêîè ïðîãðàìè äà ðàáîòÿò ïî-äîáðå.",
-                    IDC_STATIC,15,43,228,80
-    CONTROL         "Óïðàâëåíèåòî íà ïðîçîðöèòå îò ìåíèäæúðà íà ïðîçîðöè",IDC_ENABLE_MANAGED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,117,230,8
+                    IDC_STATIC,15,33,228,80
+    CONTROL         "Óïðàâëåíèåòî íà ïðîçîðöèòå îò ìåíèäæúðà íà ïðîçîðöè",IDC_ENABLE_MANAGED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,107,230,8
     
     /* FIXME: the wording of this explanation could be a lot better */
     LTEXT           "Ìîæåòå äà èçïîëçâàòå åìóëàöèÿ íà âèðòóàëåí ðàáîòåí ïëîò, â êîéòî äà ñe ðàçïîëàãàò ïðîçîðöèòå, èëè ìîæå äà ãè îñòàâèòå äà èçëèçàò íà âàøèÿ ñòàíäàðòåí ðàáîòåí ïëîò.",
-                    IDC_STATIC,15,146,228,28
-    LTEXT           "Ðàçìåð íà ðàáîòíèÿ ïëîò:",IDC_DESKTOP_SIZE,15,188,44,8,WS_DISABLED
-    LTEXT           "X",IDC_DESKTOP_BY,108,188,8,8,WS_DISABLED
+                    IDC_STATIC,15,136,228,28
+    LTEXT           "Ðàçìåð íà ðàáîòíèÿ ïëîò:",IDC_DESKTOP_SIZE,15,178,44,8,WS_DISABLED
+    LTEXT           "X",IDC_DESKTOP_BY,108,178,8,8,WS_DISABLED
     CONTROL         "Åìóëèðàé âèðòóàëåí ðàáîòåí ïëîò",IDC_ENABLE_DESKTOP,"Button",
-                    BS_AUTOCHECKBOX | WS_TABSTOP,15,173,230,10
+                    BS_AUTOCHECKBOX | WS_TABSTOP,15,163,230,10
 		    
-    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
+    EDITTEXT        IDC_DESKTOP_WIDTH,64,178,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
+    EDITTEXT        IDC_DESKTOP_HEIGHT,117,178,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
 
-    GROUPBOX        " Direct3D ",IDC_STATIC,8,210,244,50
+    GROUPBOX        " Direct3D ",IDC_STATIC,8,195,244,45
 
-    LTEXT	    "Ïîääðúæêà íà Vertex Shader: ",IDC_STATIC,15,220,105,30
-    COMBOBOX	    IDC_D3D_VSHADER_MODE,115,218,125,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT	    "Ïîääðúæêà íà Vertex Shader: ",IDC_STATIC,15,205,105,30
+    COMBOBOX	    IDC_D3D_VSHADER_MODE,115,203,125,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
 
-    CONTROL         "Ðàçðåøè Pixel Shader (àêî ñå ïîääúðæà îò õàðäóåðà)",IDC_D3D_PSHADER_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,237,230,10
+    CONTROL         "Ðàçðåøè Pixel Shader (àêî ñå ïîääúðæà îò õàðäóåðà)",IDC_D3D_PSHADER_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,222,230,10
+    GROUPBOX        " Screen Resolution ",IDC_STATIC,8,242,244,25
+    CONTROL         "", IDC_RES_TRACKBAR, "msctls_trackbar32",WS_TABSTOP,12,250,187,15
+    EDITTEXT        IDC_RES_DPIEDIT,204,250,23,13,ES_NUMBER|WS_TABSTOP
+    LTEXT           "dpi",IDC_STATIC,235,252,10,8
 END
 
 IDD_DLLCFG DIALOG DISCARDABLE  0, 0, 260, 250
diff --git a/programs/winecfg/Cs.rc b/programs/winecfg/Cs.rc
index 5bba698..7dbf274 100644
--- a/programs/winecfg/Cs.rc
+++ b/programs/winecfg/Cs.rc
@@ -88,6 +88,10 @@ BEGIN
     COMBOBOX	    IDC_D3D_VSHADER_MODE,105,197,140,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
 
     CONTROL         "Povolit stínování pixelù (spoléhá se na hardware podporu)",IDC_D3D_PSHADER_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,216,230,10
+    GROUPBOX        " Screen Resolution ",IDC_STATIC,8,252,244,25
+    CONTROL         "", IDC_RES_TRACKBAR, "msctls_trackbar32",WS_TABSTOP,12,260,187,15
+    EDITTEXT        IDC_RES_DPIEDIT,204,260,23,13,ES_NUMBER|WS_TABSTOP
+    LTEXT           "dpi",IDC_STATIC,235,262,10,8
 END
 
 IDD_DLLCFG DIALOG DISCARDABLE  0, 0, 260, 250
diff --git a/programs/winecfg/De.rc b/programs/winecfg/De.rc
index 8c77b2b..0ec296e 100644
--- a/programs/winecfg/De.rc
+++ b/programs/winecfg/De.rc
@@ -84,6 +84,10 @@ BEGIN
     COMBOBOX        IDC_D3D_VSHADER_MODE,140,197,105,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     
     CONTROL         "Pixel Shader aktivieren (wenn von Hardware unterstützt)", IDC_D3D_PSHADER_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,212,230,10
+    GROUPBOX        " Screen Resolution ",IDC_STATIC,8,242,244,25
+    CONTROL         "", IDC_RES_TRACKBAR, "msctls_trackbar32",WS_TABSTOP,12,250,187,15
+    EDITTEXT        IDC_RES_DPIEDIT,204,250,23,13,ES_NUMBER|WS_TABSTOP
+    LTEXT           "dpi",IDC_STATIC,235,252,10,8
 END
 
 IDD_DLLCFG DIALOG DISCARDABLE  0, 0, 260, 250
diff --git a/programs/winecfg/En.rc b/programs/winecfg/En.rc
index 5972c3b..9243e3c 100644
--- a/programs/winecfg/En.rc
+++ b/programs/winecfg/En.rc
@@ -79,12 +79,16 @@ BEGIN
     EDITTEXT        IDC_DESKTOP_WIDTH,64,166,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
     EDITTEXT        IDC_DESKTOP_HEIGHT,117,166,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
 
-    GROUPBOX        " Direct3D ",IDC_STATIC,8,195,244,48
+    GROUPBOX        " Direct3D ",IDC_STATIC,8,190,244,48
 
-    LTEXT           "Vertex Shader Support: ",IDC_STATIC,15,208,80,32
-    COMBOBOX        IDC_D3D_VSHADER_MODE,100,206,145,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Vertex Shader Support: ",IDC_STATIC,15,203,80,32
+    COMBOBOX        IDC_D3D_VSHADER_MODE,100,201,145,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,224,230,10
+    CONTROL         "Allow Pixel Shader (if supported by hardware)",IDC_D3D_PSHADER_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,219,230,10
+    GROUPBOX        " Screen Resolution ",IDC_STATIC,8,242,244,25
+    CONTROL         "", IDC_RES_TRACKBAR, "msctls_trackbar32",WS_TABSTOP,12,250,187,15
+    EDITTEXT        IDC_RES_DPIEDIT,204,250,23,13,ES_NUMBER|WS_TABSTOP
+    LTEXT           "dpi",IDC_STATIC,235,252,10,8
 END
 
 IDD_DLLCFG DIALOG DISCARDABLE  0, 0, 260, 250
diff --git a/programs/winecfg/Es.rc b/programs/winecfg/Es.rc
index 2430b02..3e79eed 100644
--- a/programs/winecfg/Es.rc
+++ b/programs/winecfg/Es.rc
@@ -83,6 +83,10 @@ BEGIN
     COMBOBOX        IDC_D3D_VSHADER_MODE,100,197,145,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
 
     CONTROL         "Permitir Pixel Shader (si hay soporte por hardware)",IDC_D3D_PSHADER_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,216,230,10
+    GROUPBOX        " Screen Resolution ",IDC_STATIC,8,242,244,25
+    CONTROL         "", IDC_RES_TRACKBAR, "msctls_trackbar32",WS_TABSTOP,12,250,187,15
+    EDITTEXT        IDC_RES_DPIEDIT,204,250,23,13,ES_NUMBER|WS_TABSTOP
+    LTEXT           "dpi",IDC_STATIC,235,252,10,8
 END
 
 IDD_DLLCFG DIALOG DISCARDABLE  0, 0, 260, 250
diff --git a/programs/winecfg/Fi.rc b/programs/winecfg/Fi.rc
index 16da0ca..3357635 100644
--- a/programs/winecfg/Fi.rc
+++ b/programs/winecfg/Fi.rc
@@ -61,29 +61,33 @@ IDD_GRAPHCFG DIALOG DISCARDABLE  0, 0, 2
 STYLE WS_CHILD | WS_DISABLED
 FONT 8, "MS Shell Dlg"
 BEGIN
-    GROUPBOX        " Ikkuna-asetukset ",IDC_STATIC,8,25,244,180
+    GROUPBOX        " Ikkuna-asetukset ",IDC_STATIC,8,5,244,180
 
-    CONTROL	    "&Salli DirectX -sovellusten estää kursorin poistuminen ikkunasta",IDC_DX_MOUSE_GRAB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,35,230,8
+    CONTROL	    "&Salli DirectX -sovellusten estää kursorin poistuminen ikkunasta",IDC_DX_MOUSE_GRAB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,15,230,8
     LTEXT 	    "Kun ikkunaohjelma hallitsee ikkunoita, niillä on normaalit reunat, ne noudattavat näennäistyöpöytiä ja näkyvät ikkunalistassa.\n\nMikäli ikkunaohjelma ei hallitse ikkunoita, ikkunat eivät integroidu yhtä hyvin työpöytääsi, mutta emulaatio on tarkempaa ja se voi auttaa joitain sovelluksia toimimaan paremmin.",
-    IDC_STATIC,15,58,228,80
-    CONTROL	    "Salli ikkunaohjelman hallita ikkunoita",IDC_ENABLE_MANAGED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,132,230,8
+    IDC_STATIC,15,38,228,80
+    CONTROL	    "Salli ikkunaohjelman hallita ikkunoita",IDC_ENABLE_MANAGED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,112,230,8
 
     LTEXT           "Wine voi emuloida Windowsin työpöytää, jossa kaikki ikkunat ovat yhdessä virtuaalisessa näytössä, tai jossa kaikki ikkunat ovat työpöydälläsi erillisinä.",
-                    IDC_STATIC,15,146,228,28
-    LTEXT           "Työpöydän koko:",IDC_DESKTOP_SIZE,15,188,44,8,WS_DISABLED
-    LTEXT           "X",IDC_DESKTOP_BY,108,188,8,8,WS_DISABLED
+                    IDC_STATIC,15,126,228,28
+    LTEXT           "Työpöydän koko:",IDC_DESKTOP_SIZE,15,168,44,8,WS_DISABLED
+    LTEXT           "X",IDC_DESKTOP_BY,108,168,8,8,WS_DISABLED
     CONTROL         "&Emuloi virtuaalista töypöytää",IDC_ENABLE_DESKTOP,"Button",
-                    BS_AUTOCHECKBOX | WS_TABSTOP,15,173,230,10
+                    BS_AUTOCHECKBOX | WS_TABSTOP,15,153,230,10
 		    
-    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
+    EDITTEXT        IDC_DESKTOP_WIDTH,64,168,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
+    EDITTEXT        IDC_DESKTOP_HEIGHT,117,168,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
 
-    GROUPBOX        " Direct3D ",IDC_STATIC,8,210,244,50
+    GROUPBOX        " Direct3D ",IDC_STATIC,8,190,244,50
 
-    LTEXT	    "Vertex Shader -tuki: ",IDC_STATIC,15,220,80,30
-    COMBOBOX	    IDC_D3D_VSHADER_MODE,100,218,150,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT	    "Vertex Shader -tuki: ",IDC_STATIC,15,200,80,30
+    COMBOBOX	    IDC_D3D_VSHADER_MODE,100,198,150,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
 
-    CONTROL         "Salli &Pixel Shader:n käyttö laitteiston tukiessa",IDC_D3D_PSHADER_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,237,230,10
+    CONTROL         "Salli &Pixel Shader:n käyttö laitteiston tukiessa",IDC_D3D_PSHADER_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,217,230,10
+    GROUPBOX        " Screen Resolution ",IDC_STATIC,8,242,244,25
+    CONTROL         "", IDC_RES_TRACKBAR, "msctls_trackbar32",WS_TABSTOP,12,250,187,15
+    EDITTEXT        IDC_RES_DPIEDIT,204,250,23,13,ES_NUMBER|WS_TABSTOP
+    LTEXT           "dpi",IDC_STATIC,235,252,10,8
 END
 
 IDD_DLLCFG DIALOG DISCARDABLE  0, 0, 260, 250
diff --git a/programs/winecfg/Fr.rc b/programs/winecfg/Fr.rc
index 007ca53..148b35b 100644
--- a/programs/winecfg/Fr.rc
+++ b/programs/winecfg/Fr.rc
@@ -84,6 +84,10 @@ BEGIN
     COMBOBOX	    IDC_D3D_VSHADER_MODE,110,198,100,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
 
     CONTROL         "Permettre le Pixel Shader (si supporté par le matériel)",IDC_D3D_PSHADER_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,215,230,10
+    GROUPBOX        " Screen Resolution ",IDC_STATIC,8,242,244,25
+    CONTROL         "", IDC_RES_TRACKBAR, "msctls_trackbar32",WS_TABSTOP,12,250,187,15
+    EDITTEXT        IDC_RES_DPIEDIT,204,250,23,13,ES_NUMBER|WS_TABSTOP
+    LTEXT           "dpi",IDC_STATIC,235,252,10,8
 END
 
 IDD_DLLCFG DIALOG DISCARDABLE  0, 0, 260, 250
diff --git a/programs/winecfg/Hu.rc b/programs/winecfg/Hu.rc
index 20e5286..1067ae3 100644
--- a/programs/winecfg/Hu.rc
+++ b/programs/winecfg/Hu.rc
@@ -60,30 +60,34 @@ IDD_GRAPHCFG DIALOG DISCARDABLE  0, 0, 2
 STYLE WS_CHILD | WS_DISABLED
 FONT 8, "MS Shell Dlg"
 BEGIN
-    GROUPBOX        " Ablakbeállítások ",IDC_STATIC,8,25,244,180
+    GROUPBOX        " Ablakbeállítások ",IDC_STATIC,8,5,244,180
 
-    CONTROL	    "A DirectX-es alkalmazások ablakábol nem léphet ki az egérmutató",IDC_DX_MOUSE_GRAB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,35,230,8
+    CONTROL	    "A DirectX-es alkalmazások ablakábol nem léphet ki az egérmutató",IDC_DX_MOUSE_GRAB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,15,230,8
     LTEXT 	    "Ha az ablakokat egy másik ablakkezelõ kezeli, akkor lesz standard keretjük, tisztelni fogják a virtuális asztalokat, és megjelennek az ablaklistában. \n\nHa az ablakok kezeletlenek, el fognak vállni az Ön ablakkezelõjétõl. Ez azt jelenti, hogy az ablakok nem fognak szorosan egybeépülni az Ön asztalával, de az emuláció hatásosabb, jobban együtt tud mûködni néhány programmal.",
-    		    IDC_STATIC,15,58,228,80
-    CONTROL	    "Az ablakkezelõ kezelheti az ablakokat",IDC_ENABLE_MANAGED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,132,230,8
+    		    IDC_STATIC,15,38,228,80
+    CONTROL	    "Az ablakkezelõ kezelheti az ablakokat",IDC_ENABLE_MANAGED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,112,230,8
     
     /* FIXME: the wording of this explanation could be a lot better */
     LTEXT           "Ön választhatja a windows asztal emulálást, ahol az összes ablak egy 'virtuális képernyõn' fog megjelnni, vagy az ablakok megjelníthetõk az Ön standard asztalán.",
-                    IDC_STATIC,15,146,228,28
-    LTEXT           "Ablakméret:",IDC_DESKTOP_SIZE,15,188,44,8,WS_DISABLED
-    LTEXT           "X",IDC_DESKTOP_BY,108,188,8,8,WS_DISABLED
+                    IDC_STATIC,15,126,228,28
+    LTEXT           "Ablakméret:",IDC_DESKTOP_SIZE,15,168,44,8,WS_DISABLED
+    LTEXT           "X",IDC_DESKTOP_BY,108,168,8,8,WS_DISABLED
     CONTROL         "Virtuális asztal emulálása",IDC_ENABLE_DESKTOP,"Button",
-                    BS_AUTOCHECKBOX | WS_TABSTOP,15,173,230,10
+                    BS_AUTOCHECKBOX | WS_TABSTOP,15,153,230,10
 		    
-    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
+    EDITTEXT        IDC_DESKTOP_WIDTH,64,168,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
+    EDITTEXT        IDC_DESKTOP_HEIGHT,117,168,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
 
-    GROUPBOX        " Direct3D ",IDC_STATIC,8,210,244,50
+    GROUPBOX        " Direct3D ",IDC_STATIC,8,190,244,50
 
-    LTEXT	    "Vertex Shader támogatás: ",IDC_STATIC,15,220,80,30
-    COMBOBOX	    IDC_D3D_VSHADER_MODE,100,218,150,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT	    "Vertex Shader támogatás: ",IDC_STATIC,15,200,80,30
+    COMBOBOX	    IDC_D3D_VSHADER_MODE,100,198,150,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
 
-    CONTROL         "Pixel Shader engedélyezése (ha támogatja a hardver)",IDC_D3D_PSHADER_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,237,230,10
+    CONTROL         "Pixel Shader engedélyezése (ha támogatja a hardver)",IDC_D3D_PSHADER_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,217,230,10
+    GROUPBOX        " Screen Resolution ",IDC_STATIC,8,242,244,25
+    CONTROL         "", IDC_RES_TRACKBAR, "msctls_trackbar32",WS_TABSTOP,12,250,187,15
+    EDITTEXT        IDC_RES_DPIEDIT,204,250,23,13,ES_NUMBER|WS_TABSTOP
+    LTEXT           "dpi",IDC_STATIC,235,252,10,8
 END
 
 IDD_DLLCFG DIALOG DISCARDABLE  0, 0, 260, 250
diff --git a/programs/winecfg/It.rc b/programs/winecfg/It.rc
index db0f86f..1334c05 100644
--- a/programs/winecfg/It.rc
+++ b/programs/winecfg/It.rc
@@ -70,6 +70,10 @@ BEGIN
 		    
     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
+    GROUPBOX        " Screen Resolution ",IDC_STATIC,8,242,244,25
+    CONTROL         "", IDC_RES_TRACKBAR, "msctls_trackbar32",WS_TABSTOP,12,250,187,15
+    EDITTEXT        IDC_RES_DPIEDIT,204,250,23,13,ES_NUMBER|WS_TABSTOP
+    LTEXT           "dpi",IDC_STATIC,235,252,10,8
 END
 
 IDD_DLLCFG DIALOG DISCARDABLE  0, 0, 260, 250
diff --git a/programs/winecfg/Ja.rc b/programs/winecfg/Ja.rc
index 4b0285f..deec4e2 100644
--- a/programs/winecfg/Ja.rc
+++ b/programs/winecfg/Ja.rc
@@ -77,12 +77,16 @@ BEGIN
     EDITTEXT        IDC_DESKTOP_WIDTH,74,115,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
     EDITTEXT        IDC_DESKTOP_HEIGHT,127,115,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
 
-    GROUPBOX        " Direct3D ",IDC_STATIC,8,140,244,120
+    GROUPBOX        " Direct3D ",IDC_STATIC,8,140,244,60
 
     LTEXT	    "Vertex Shader ƒTƒ|[ƒg: ",IDC_STATIC,15,150,80,30
     COMBOBOX	    IDC_D3D_VSHADER_MODE,100,148,150,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
 
     CONTROL         "Pixel Shader ‚ð—LŒø‚É‚·‚é(ƒn[ƒhƒEƒFƒA‚ŃTƒ|[ƒg‚³‚ê‚Ä‚¢‚éê‡‚Ì‚Ý)",IDC_D3D_PSHADER_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,165,230,10
+    GROUPBOX        " Screen Resolution ",IDC_STATIC,8,242,244,25
+    CONTROL         "", IDC_RES_TRACKBAR, "msctls_trackbar32",WS_TABSTOP,12,250,187,15
+    EDITTEXT        IDC_RES_DPIEDIT,204,250,23,13,ES_NUMBER|WS_TABSTOP
+    LTEXT           "dpi",IDC_STATIC,235,252,10,8
 END
 
 IDD_DLLCFG DIALOG DISCARDABLE  0, 0, 260, 250
diff --git a/programs/winecfg/Ko.rc b/programs/winecfg/Ko.rc
index fe20fc4..8909743 100644
--- a/programs/winecfg/Ko.rc
+++ b/programs/winecfg/Ko.rc
@@ -86,6 +86,10 @@ BEGIN
     COMBOBOX	    IDC_D3D_VSHADER_MODE,100,197,146,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
 
     CONTROL         "Çȼ¿ ½¦ÀÌ´õ Çã¿ë (Çϵå¿þ¾î¿¡¼­ Áö¿øÇÑ´Ù¸é)",IDC_D3D_PSHADER_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,216,230,10
+    GROUPBOX        " Screen Resolution ",IDC_STATIC,8,242,244,25
+    CONTROL         "", IDC_RES_TRACKBAR, "msctls_trackbar32",WS_TABSTOP,12,250,187,15
+    EDITTEXT        IDC_RES_DPIEDIT,204,250,23,13,ES_NUMBER|WS_TABSTOP
+    LTEXT           "dpi",IDC_STATIC,235,252,10,8
 END
 
 IDD_DLLCFG DIALOG DISCARDABLE  0, 0, 260, 250
diff --git a/programs/winecfg/Nl.rc b/programs/winecfg/Nl.rc
index 5f25052..fc497a0 100644
--- a/programs/winecfg/Nl.rc
+++ b/programs/winecfg/Nl.rc
@@ -86,6 +86,10 @@ BEGIN
     COMBOBOX	    IDC_D3D_VSHADER_MODE,120,197,130,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
 
     CONTROL         "Pixel Shader toestaan (indien ondersteund door de hardware)",IDC_D3D_PSHADER_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,216,230,10
+    GROUPBOX        " Screen Resolution ",IDC_STATIC,8,242,244,25
+    CONTROL         "", IDC_RES_TRACKBAR, "msctls_trackbar32",WS_TABSTOP,12,250,187,15
+    EDITTEXT        IDC_RES_DPIEDIT,204,250,23,13,ES_NUMBER|WS_TABSTOP
+    LTEXT           "dpi",IDC_STATIC,235,252,10,8
 END
 
 IDD_DLLCFG DIALOG DISCARDABLE  0, 0, 260, 250
diff --git a/programs/winecfg/No.rc b/programs/winecfg/No.rc
index f76a47c..0d3f9d7 100644
--- a/programs/winecfg/No.rc
+++ b/programs/winecfg/No.rc
@@ -60,29 +60,33 @@ IDD_GRAPHCFG DIALOG DISCARDABLE  0, 0, 2
 STYLE WS_CHILD | WS_DISABLED
 FONT 8, "MS Shell Dlg"
 BEGIN
-    GROUPBOX        " Vinduinnstillinger ",IDC_STATIC,8,25,244,180
+    GROUPBOX        " Vinduinnstillinger ",IDC_STATIC,8,5,244,180
 
-    CONTROL	    "Tillat DirectX-programmer å hindre musen fra å forlate vinduet",IDC_DX_MOUSE_GRAB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,35,230,8
+    CONTROL	    "Tillat DirectX-programmer å hindre musen fra å forlate vinduet",IDC_DX_MOUSE_GRAB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,15,230,8
     LTEXT 	    "Hvis vinduer kontrolleres av din standardvindusbehandler, får de vanlige rammer, og respekterer det virtuelle skrivebordet ditt og vises i vinduslisten.\n\nHvis de er ukontrollerte er de koblet fra vindusbehandleren. Dette betyr at de ikke integreres like godt med skrivebordet ditt, men emuleringen blir mer presis sånn at noen programmer virker bedre.",
-    		    IDC_STATIC,15,58,228,80
-    CONTROL	    "Tillat vindusbehandleren å kontrollere vinduene",IDC_ENABLE_MANAGED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,132,230,8
+    		    IDC_STATIC,15,38,228,80
+    CONTROL	    "Tillat vindusbehandleren å kontrollere vinduene",IDC_ENABLE_MANAGED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,112,230,8
     
     LTEXT           "Du kan velge å emulere et Windows-skrivebord, der alle vinduene er bundet i en virtuell skjerm, eller du kan få vinduene til å oppføre seg som andre programmer på skrivebordet.",
-                    IDC_STATIC,15,146,228,28
-    LTEXT           "Skrivebordsstrrelse:",IDC_DESKTOP_SIZE,15,188,44,8,WS_DISABLED
-    LTEXT           "X",IDC_DESKTOP_BY,108,188,8,8,WS_DISABLED
+                    IDC_STATIC,15,126,228,28
+    LTEXT           "Skrivebordsstrrelse:",IDC_DESKTOP_SIZE,15,168,44,8,WS_DISABLED
+    LTEXT           "X",IDC_DESKTOP_BY,108,168,8,8,WS_DISABLED
     CONTROL         "Emuler et virtuelt skrivebord",IDC_ENABLE_DESKTOP,"Button",
-                    BS_AUTOCHECKBOX | WS_TABSTOP,15,173,230,10
+                    BS_AUTOCHECKBOX | WS_TABSTOP,15,153,230,10
 		    
-    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
+    EDITTEXT        IDC_DESKTOP_WIDTH,64,168,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
+    EDITTEXT        IDC_DESKTOP_HEIGHT,117,168,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
 
-    GROUPBOX        " Direct3D ",IDC_STATIC,8,210,244,50
+    GROUPBOX        " Direct3D ",IDC_STATIC,8,190,244,50
 
-    LTEXT	    "Verteks-skyggelegging: ",IDC_STATIC,15,220,80,30
-    COMBOBOX	    IDC_D3D_VSHADER_MODE,100,218,150,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT	    "Verteks-skyggelegging: ",IDC_STATIC,15,200,80,30
+    COMBOBOX	    IDC_D3D_VSHADER_MODE,100,198,150,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
 
-    CONTROL         "Tillat piksel-skyggelegger (hvis maskinvaren støtter det)",IDC_D3D_PSHADER_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,237,230,10
+    CONTROL         "Tillat piksel-skyggelegger (hvis maskinvaren støtter det)",IDC_D3D_PSHADER_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,217,230,10
+    GROUPBOX        " Screen Resolution ",IDC_STATIC,8,242,244,25
+    CONTROL         "", IDC_RES_TRACKBAR, "msctls_trackbar32",WS_TABSTOP,12,250,187,15
+    EDITTEXT        IDC_RES_DPIEDIT,204,250,23,13,ES_NUMBER|WS_TABSTOP
+    LTEXT           "dpi",IDC_STATIC,235,252,10,8
 END
 
 IDD_DLLCFG DIALOG DISCARDABLE  0, 0, 260, 250
diff --git a/programs/winecfg/Pl.rc b/programs/winecfg/Pl.rc
index fa7bc62..4134a04 100644
--- a/programs/winecfg/Pl.rc
+++ b/programs/winecfg/Pl.rc
@@ -88,6 +88,10 @@ Niektórym aplikacjom mo¿e to pomóc w lep
     COMBOBOX	    IDC_D3D_VSHADER_MODE,100,197,145,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
 
     CONTROL         "Obs³uguj Pixel Shader (je¿eli s¹ obs³ugiwane przez kartê graficzn¹)",IDC_D3D_PSHADER_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,216,230,10
+    GROUPBOX        " Screen Resolution ",IDC_STATIC,8,242,244,25
+    CONTROL         "", IDC_RES_TRACKBAR, "msctls_trackbar32",WS_TABSTOP,12,250,187,15
+    EDITTEXT        IDC_RES_DPIEDIT,204,250,23,13,ES_NUMBER|WS_TABSTOP
+    LTEXT           "dpi",IDC_STATIC,235,252,10,8
 END
 
 IDD_DLLCFG DIALOG DISCARDABLE  0, 0, 260, 250
diff --git a/programs/winecfg/Pt.rc b/programs/winecfg/Pt.rc
index 13d9f56..6c91ba8 100644
--- a/programs/winecfg/Pt.rc
+++ b/programs/winecfg/Pt.rc
@@ -111,6 +111,10 @@ BEGIN
 		    
     EDITTEXT        IDC_DESKTOP_WIDTH,120,115,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
     EDITTEXT        IDC_DESKTOP_HEIGHT,173,115,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
+    GROUPBOX        " Screen Resolution ",IDC_STATIC,8,242,244,25
+    CONTROL         "", IDC_RES_TRACKBAR, "msctls_trackbar32",WS_TABSTOP,12,250,187,15
+    EDITTEXT        IDC_RES_DPIEDIT,204,250,23,13,ES_NUMBER|WS_TABSTOP
+    LTEXT           "dpi",IDC_STATIC,235,252,10,8
 		    
 END
 
diff --git a/programs/winecfg/Ro.rc b/programs/winecfg/Ro.rc
index 3b62984..eb22685 100644
--- a/programs/winecfg/Ro.rc
+++ b/programs/winecfg/Ro.rc
@@ -85,6 +85,10 @@ BEGIN
     COMBOBOX        IDC_D3D_VSHADER_MODE,100,197,145,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,216,230,10
+    GROUPBOX        " Screen Resolution ",IDC_STATIC,8,242,244,25
+    CONTROL         "", IDC_RES_TRACKBAR, "msctls_trackbar32",WS_TABSTOP,12,250,187,15
+    EDITTEXT        IDC_RES_DPIEDIT,204,250,23,13,ES_NUMBER|WS_TABSTOP
+    LTEXT           "dpi",IDC_STATIC,235,252,10,8
 END
 
 IDD_DLLCFG DIALOG DISCARDABLE  0, 0, 260, 250
diff --git a/programs/winecfg/Ru.rc b/programs/winecfg/Ru.rc
index 1872a3d..5037338 100644
--- a/programs/winecfg/Ru.rc
+++ b/programs/winecfg/Ru.rc
@@ -79,12 +79,16 @@ BEGIN
     EDITTEXT        IDC_DESKTOP_WIDTH,64,167,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
     EDITTEXT        IDC_DESKTOP_HEIGHT,117,167,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
 
-    GROUPBOX        " Direct3D ",IDC_STATIC,8,189,244,55
+    GROUPBOX        " Direct3D ",IDC_STATIC,8,189,244,45
 
     LTEXT	    "Âåðøèííûå øåéäåðû: ",IDC_STATIC,15,199,120,30
     COMBOBOX	    IDC_D3D_VSHADER_MODE,120,197,125,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
 
     CONTROL         "Âêëþ÷èòü Pixel Shader (åñëè ïîääåðæèâàåòñÿ îáîðóäîâàíèåì)",IDC_D3D_PSHADER_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,216,230,10
+    GROUPBOX        " Screen Resolution ",IDC_STATIC,8,242,244,25
+    CONTROL         "", IDC_RES_TRACKBAR, "msctls_trackbar32",WS_TABSTOP,12,250,187,15
+    EDITTEXT        IDC_RES_DPIEDIT,204,250,23,13,ES_NUMBER|WS_TABSTOP
+    LTEXT           "dpi",IDC_STATIC,235,252,10,8
 END
 
 IDD_DLLCFG DIALOG DISCARDABLE  0, 0, 260, 250
diff --git a/programs/winecfg/Si.rc b/programs/winecfg/Si.rc
index bdbeff2..d3c4f29 100644
--- a/programs/winecfg/Si.rc
+++ b/programs/winecfg/Si.rc
@@ -75,6 +75,10 @@ BEGIN
                     IDC_STATIC,15,112,228,28
     LTEXT           "Desktop size:",IDC_DESKTOP_SIZE,17,161,44,8,WS_DISABLED
     LTEXT           "X",IDC_DESKTOP_BY,108,161,8,8,WS_DISABLED
+    GROUPBOX        " Screen Resolution ",IDC_STATIC,8,242,244,25
+    CONTROL         "", IDC_RES_TRACKBAR, "msctls_trackbar32",WS_TABSTOP,12,250,187,15
+    EDITTEXT        IDC_RES_DPIEDIT,204,250,23,13,ES_NUMBER|WS_TABSTOP
+    LTEXT           "dpi",IDC_STATIC,235,252,10,8
 END
 
 IDD_DLLCFG DIALOG DISCARDABLE  0, 0, 260, 250
diff --git a/programs/winecfg/Tr.rc b/programs/winecfg/Tr.rc
index 13404c7..bc114ec 100644
--- a/programs/winecfg/Tr.rc
+++ b/programs/winecfg/Tr.rc
@@ -60,29 +60,33 @@ IDD_GRAPHCFG DIALOG DISCARDABLE  0, 0, 2
 STYLE WS_CHILD | WS_DISABLED
 FONT 8, "MS Shell Dlg"
 BEGIN
-    GROUPBOX        " Pencere ayarlarý ",IDC_STATIC,8,25,244,180
+    GROUPBOX        " Pencere ayarlarý ",IDC_STATIC,8,5,244,180
 
-    CONTROL         "DirectX uygulamalarýnýn fareyi pencere içine kilitlemelerine izin ver",IDC_DX_MOUSE_GRAB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,35,230,8
+    CONTROL         "DirectX uygulamalarýnýn fareyi pencere içine kilitlemelerine izin ver",IDC_DX_MOUSE_GRAB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,15,230,8
     LTEXT           "Pencereler pencere yöneticiniz tarafýndan yönetildiðinde, standart kenarlara sahip olacak, sanal masaüstünüze uygun davranacak ve pencere listenizde görünecektir. \n\nEðer pencereler yönetilmezse, pencere yöneticinizden baðýmsýz olacaklardýr. Bu, pencerelerin masaüstünüzle tam olarak bütünleþemeyeceði anlamýna gelir; ama taklit daha düzgün yapýlabiliceðinden bazý programlar daha iyi çalýþabilir.",
-    		    IDC_STATIC,15,58,228,80
-    CONTROL         "Pencere yöneticisinin pencereleri yönetmesine izin ver",IDC_ENABLE_MANAGED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,132,230,8
+    		    IDC_STATIC,15,38,228,80
+    CONTROL         "Pencere yöneticisinin pencereleri yönetmesine izin ver",IDC_ENABLE_MANAGED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,112,230,8
     
     LTEXT           "Tüm pencerelerin sanal bir ekrana hapsedildiði bir windows masaüstü emüle edebilirsiniz veya pencerelerin standart masaüstünüze yerleþmesini saðlayabilirsiniz.",
-                    IDC_STATIC,15,146,228,28
-    LTEXT           "Masaüstü büyüklüðü:",IDC_DESKTOP_SIZE,15,188,44,8,WS_DISABLED
-    LTEXT           "X",IDC_DESKTOP_BY,108,188,8,8,WS_DISABLED
+                    IDC_STATIC,15,126,228,28
+    LTEXT           "Masaüstü büyüklüðü:",IDC_DESKTOP_SIZE,15,168,44,8,WS_DISABLED
+    LTEXT           "X",IDC_DESKTOP_BY,108,168,8,8,WS_DISABLED
     CONTROL         "Sanal masaüstü kullan",IDC_ENABLE_DESKTOP,"Button",
-                    BS_AUTOCHECKBOX | WS_TABSTOP,15,173,230,10
+                    BS_AUTOCHECKBOX | WS_TABSTOP,15,153,230,10
 		    
-    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
+    EDITTEXT        IDC_DESKTOP_WIDTH,64,168,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
+    EDITTEXT        IDC_DESKTOP_HEIGHT,117,168,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
 
-    GROUPBOX        " Direct3D ",IDC_STATIC,8,210,244,50
+    GROUPBOX        " Direct3D ",IDC_STATIC,8,190,244,50
 
-    LTEXT           "Vertex Shader Desteði: ",IDC_STATIC,15,220,80,30
-    COMBOBOX	    IDC_D3D_VSHADER_MODE,100,218,150,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Vertex Shader Desteði: ",IDC_STATIC,15,200,80,30
+    COMBOBOX	    IDC_D3D_VSHADER_MODE,100,198,150,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
 
-    CONTROL         "Pixel Shader'a izin ver (donaným destekliyorsa)",IDC_D3D_PSHADER_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,237,230,10
+    CONTROL         "Pixel Shader'a izin ver (donaným destekliyorsa)",IDC_D3D_PSHADER_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,217,230,10
+    GROUPBOX        " Screen Resolution ",IDC_STATIC,8,242,244,25
+    CONTROL         "", IDC_RES_TRACKBAR, "msctls_trackbar32",WS_TABSTOP,12,250,187,15
+    EDITTEXT        IDC_RES_DPIEDIT,204,250,23,13,ES_NUMBER|WS_TABSTOP
+    LTEXT           "dpi",IDC_STATIC,235,252,10,8
 END
 
 IDD_DLLCFG DIALOG DISCARDABLE  0, 0, 260, 250
diff --git a/programs/winecfg/resource.h b/programs/winecfg/resource.h
index 811a115..c484cee 100644
--- a/programs/winecfg/resource.h
+++ b/programs/winecfg/resource.h
@@ -152,6 +152,9 @@ #define IDC_D3D_PSHADER_MODE            
 #define IDS_SHADER_MODE_HARDWARE        8100
 #define IDS_SHADER_MODE_NONE            8101
 
+#define IDC_RES_TRACKBAR                1107
+#define IDC_RES_DPIEDIT                 1108
+
 /* applications tab */
 #define IDC_APP_LISTVIEW                1200
 #define IDC_APP_ADDAPP                  1201
diff --git a/programs/winecfg/winecfg.c b/programs/winecfg/winecfg.c
index 42f03fb..89b15e1 100644
--- a/programs/winecfg/winecfg.c
+++ b/programs/winecfg/winecfg.c
@@ -45,6 +45,30 @@ #include "resource.h"
 HKEY config_key = NULL;
 HMENU hPopupMenus = 0;
 
+/* Utility functions to convert between WCHAR and long */
+long wcstolong(WCHAR * wcs)
+{
+    int i;
+    long lRet = 0;
+    BOOL bNeg = FALSE;
+
+    for (i = 0; wcs[i] != '\0'; i++) {
+        if (i == 0 && wcs[i] == '-') {
+            bNeg = TRUE;
+            continue;
+        }
+
+        lRet = lRet * 10 + (wcs[i] - '0');
+    }
+    return (bNeg ? -lRet : lRet);
+}
+
+WCHAR *longtow(long num, WCHAR *wcs)
+{
+    static const WCHAR str[] = { '%', 'l', 'd', 0 };
+    wsprintfW(wcs, str, num);
+    return wcs;
+}
 
 /* this is called from the WM_SHOWWINDOW handlers of each tab page.
  *
diff --git a/programs/winecfg/winecfg.h b/programs/winecfg/winecfg.h
index e23c7bb..c17d8b0 100644
--- a/programs/winecfg/winecfg.h
+++ b/programs/winecfg/winecfg.h
@@ -40,6 +40,9 @@ #define IS_OPTION_FALSE(ch) \
 
 extern WCHAR* current_app; /* NULL means editing global settings  */
 
+long wcstolong(WCHAR * wcs);
+WCHAR *longtow(long num, WCHAR *wcs);
+
 /* Use get_reg_key and set_reg_key to alter registry settings. The changes made through
    set_reg_key won't be committed to the registry until process_all_settings is called,
    however get_reg_key will still return accurate information.
@@ -142,6 +145,7 @@ static inline void set_text(HWND dialog,
 }
 
 #define WINE_KEY_ROOT "Software\\Wine"
+#define MAXBUFLEN 256
 
 extern HMENU     hPopupMenus;
 
diff --git a/programs/winecfg/x11drvdlg.c b/programs/winecfg/x11drvdlg.c
index 8fa183e..9b2e6ca 100644
--- a/programs/winecfg/x11drvdlg.c
+++ b/programs/winecfg/x11drvdlg.c
@@ -36,7 +36,11 @@ #include "winecfg.h"
 WINE_DEFAULT_DEBUG_CHANNEL(winecfg);
 
 #define RES_MAXLEN 5 /* the maximum number of characters in a screen dimension. 5 digits should be plenty, what kind of crazy person runs their screen >10,000 pixels across? */
+#define MINDPI 96
+#define MAXDPI 120
+#define DEFDPI 96
 
+static const char logpixels_reg[] = "System\\CurrentControlSet\\Hardware Profiles\\Current\\Software\\Fonts";
 
 static struct SHADERMODE
 {
@@ -237,12 +241,48 @@ static void on_d3d_pshader_mode_clicked(
     else
         set_reg_key(config_key, keypath("Direct3D"), "PixelShaderMode", "disabled");
 }
+static INT read_logpixels_reg(void)
+{
+    DWORD dwLogPixels;
+    char *buf  = get_reg_key(HKEY_LOCAL_MACHINE, logpixels_reg,
+                             "LogPixels", (const char *)MAXDPI);
+    dwLogPixels = *buf;
+    HeapFree(GetProcessHeap(), 0, buf);
+    return dwLogPixels;
+}
+
+static void init_dpi_editbox(HWND hDlg)
+{
+    HWND hDpiEditBox = GetDlgItem(hDlg, IDC_RES_DPIEDIT);
+    DWORD dwLogpixels;
+    WCHAR szLogpixels[MAXBUFLEN];
+
+    dwLogpixels = read_logpixels_reg();
+    WINE_TRACE("%d\n", (int) dwLogpixels);
+
+    ZeroMemory(szLogpixels, sizeof(WCHAR) * MAXBUFLEN);
+    longtow(dwLogpixels, szLogpixels);
+    SendMessageW(hDpiEditBox, WM_SETTEXT, 0, (LPARAM) szLogpixels);
+}
+
+static void init_trackbar(HWND hDlg)
+{
+    HWND hTrackBar = GetDlgItem(hDlg, IDC_RES_TRACKBAR);
+    DWORD dwLogpixels;
+
+    dwLogpixels = read_logpixels_reg();
+
+    SendMessageW(hTrackBar, TBM_SETRANGE, TRUE, MAKELONG(MINDPI, MAXDPI));
+    SendMessageW(hTrackBar, TBM_SETPOS, TRUE, dwLogpixels);
+}
 
 INT_PTR CALLBACK
 GraphDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
 {
     switch (uMsg) {
 	case WM_INITDIALOG:
+	    init_dpi_editbox(hDlg);
+	    init_trackbar(hDlg);
 	    break;
 
         case WM_SHOWWINDOW:
@@ -290,6 +330,8 @@ GraphDlgProc(HWND hDlg, UINT uMsg, WPARA
 		    break;
 		}
 		case PSN_APPLY: {
+		    int i = SendMessageW(GetDlgItem(hDlg, IDC_RES_TRACKBAR), TBM_GETPOS, 0, 0);
+		    set_reg_key_dword(HKEY_LOCAL_MACHINE, logpixels_reg, "LogPixels", i);
                     apply();
 		    SetWindowLongPtr(hDlg, DWLP_MSGRESULT, PSNRET_NOERROR);
 		    break;
@@ -301,6 +343,19 @@ GraphDlgProc(HWND hDlg, UINT uMsg, WPARA
 	    }
 	    break;
 
+	case WM_HSCROLL:
+	    switch (wParam) {
+		default: {
+		    WCHAR buf[MAXBUFLEN];
+		    int i = SendMessageW(GetDlgItem(hDlg, IDC_RES_TRACKBAR), TBM_GETPOS, 0, 0);
+		    ZeroMemory(buf, sizeof(WCHAR) * MAXBUFLEN);
+		    longtow(i, buf);
+		    SendMessageW(GetDlgItem(hDlg, IDC_RES_DPIEDIT), WM_SETTEXT, 0, (LPARAM) buf);
+		    break;
+		}
+	    }
+	    break;
+
 	default:
 	    break;
     }
-- 
1.4.1




More information about the wine-patches mailing list