Move Applications tab before Libraries tab.

Improve return_if_fail.
Partly implement appdefaults UI.
Replace usage of EnableWindow with clearer enable/disable macros.
This commit is contained in:
Mike Hearn 2003-09-30 00:27:55 +00:00 committed by Alexandre Julliard
parent d9e2db6f1a
commit 498e1ce039
9 changed files with 260 additions and 86 deletions

View File

@ -51,11 +51,23 @@ IDD_APPCFG DIALOG DISCARDABLE 0, 0, 260, 250
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Sans Serif"
BEGIN
CONTROL "List2",IDC_LIST_APPS,"SysListView32",LVS_LIST |
/* CONTROL "List2",IDC_LIST_APPS,"SysListView32",LVS_LIST |
LVS_NOLABELWRAP | WS_BORDER | WS_TABSTOP,16,39,226,108
GROUPBOX "Application Specific Setting",IDC_STATIC,8,4,244,151
LTEXT "These settings allow you to overwrite Wine default settings (as specified in other configuration tabs) on a per-application basis.",
IDC_STATIC,15,17,228,20
*/
CONTROL "Configuring global settings",IDC_EDITING_GLOBAL,
"Button",BS_AUTORADIOBUTTON,8,8,244,10
CONTROL "Configuring application specific setttings",IDC_EDITING_APP,
"Button",BS_AUTORADIOBUTTON,8,18,244,10
LTEXT "Here you can override the default settings on a per-application basis:",
IDC_STATIC,8,35,244,20
LISTBOX IDC_LIST_APPS,8,48,244,108,WS_TABSTOP | WS_VSCROLL
PUSHBUTTON "Add new application...",IDC_ADD_APPDEFAULT,170,155,82,14
PUSHBUTTON "Remove",IDC_REMOVE_APPDEFAULT,130,155,37,14
END
IDD_X11DRVCFG DIALOG DISCARDABLE 0, 0, 260, 250
@ -65,9 +77,9 @@ BEGIN
LTEXT "Screen color depth: ",IDC_STATIC,8,10,60,30
COMBOBOX IDC_SCREEN_DEPTH,70,8,180,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
CONTROL "Can DirectX programs prevent the mouse leaving their window?",IDC_DX_MOUSE_GRAB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,35,242,8
CONTROL "Enable desktop double buffering",IDC_DOUBLE_BUFFER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,45,242,8
CONTROL "UseTakeFocus (FIXME)",IDC_USE_TAKE_FOCUS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,55,242,8
CONTROL "Can DirectX programs prevent 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 "UseTakeFocus (FIXME)",IDC_USE_TAKE_FOCUS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,55,230,8
GROUPBOX " Window settings ",IDC_STATIC,8,25,244,120

View File

@ -7,6 +7,7 @@ APPMODE = gui
IMPORTS = comctl32 user32 advapi32
C_SRCS = \
appdefaults.c \
drive.c \
main.c \
properties.c \

View File

@ -0,0 +1,147 @@
/*
* Application defaults page
*
* Copyright 2003 Mike Hearn
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#include <stdio.h>
#include "winecfg.h"
#include <windef.h>
#include <winbase.h>
#include <winreg.h>
#include <wine/debug.h>
#include "resource.h"
WINE_DEFAULT_DEBUG_CHANNEL(winecfg);
int appSettings = EDITING_GLOBAL; /* start by editing global */
char *currentApp; /* the app we are currently editing, or NULL if editing global */
char *getSectionForApp(char *section) {
static char *lastResult = NULL;
if (lastResult) HeapFree(GetProcessHeap(), 0, lastResult);
lastResult = HeapAlloc(GetProcessHeap(), 0, strlen("AppDefaults\\") + strlen(currentApp) + 2 /* \\ */ + strlen(section) + 1 /* terminator */);
sprintf(lastResult, "AppDefaults\\%s\\%s", currentApp, section);
return lastResult;
}
static void configureFor(HWND dialog, int mode) {
CheckRadioButton(dialog, IDC_EDITING_GLOBAL, IDC_EDITING_APP, mode == EDITING_APP ? IDC_EDITING_APP : IDC_EDITING_GLOBAL);
if (mode == EDITING_GLOBAL) {
disable(IDC_LIST_APPS);
disable(IDC_ADD_APPDEFAULT);
disable(IDC_REMOVE_APPDEFAULT);
if (currentApp) HeapFree(GetProcessHeap(), 0, currentApp);
} else {
enable(IDC_LIST_APPS);
enable(IDC_ADD_APPDEFAULT);
enable(IDC_REMOVE_APPDEFAULT);
}
appSettings = mode;
}
/* fill the dialog with the current appdefault entries */
static void refreshDialog(HWND dialog) {
HKEY key;
char *subKeyName = HeapAlloc(GetProcessHeap(), 0, MAX_NAME_LENGTH);
DWORD sizeOfSubKeyName = MAX_NAME_LENGTH;
int i, itemIndex;
WINE_TRACE("\n");
/* Clear the listbox */
SendMessageA(GetDlgItem(dialog, IDC_LIST_APPS), LB_RESETCONTENT, 0, 0);
return_if_fail(
RegCreateKey(HKEY_LOCAL_MACHINE, WINE_KEY_ROOT "\\AppDefaults", &key) == ERROR_SUCCESS
);
/* Iterate over each subkey in the AppDefaults tree */
for (i = 0;
RegEnumKeyEx(key, i, subKeyName, &sizeOfSubKeyName, NULL, NULL, NULL, NULL ) != ERROR_NO_MORE_ITEMS;
++i, sizeOfSubKeyName = MAX_NAME_LENGTH) {
WINE_TRACE("appdefault entry=%s\n", subKeyName);
itemIndex = SendMessageA(GetDlgItem(dialog, IDC_LIST_APPS), LB_ADDSTRING ,(WPARAM) -1, (LPARAM) subKeyName);
}
configureFor(dialog, appSettings);
WINE_TRACE("done\n");
RegCloseKey(key);
HeapFree(GetProcessHeap(), 0, subKeyName);
}
static void onAppsListSelChange(HWND dialog) {
int newPos = SendDlgItemMessage(dialog, IDC_LIST_APPS, LB_GETCURSEL, 0, 0);
int appLen = SendDlgItemMessage(dialog, IDC_LIST_APPS, LB_GETTEXTLEN, newPos, 0);
if (currentApp) HeapFree(GetProcessHeap(), 0, currentApp);
currentApp = HeapAlloc(GetProcessHeap(), 0, appLen+1);
return_if_fail(
SendDlgItemMessage(dialog, IDC_LIST_APPS, LB_GETTEXT, newPos, (LPARAM) currentApp) != LB_ERR
);
WINE_TRACE("new selection is %s\n", currentApp);
}
INT_PTR CALLBACK
AppDlgProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_COMMAND: switch (LOWORD(wParam)) {
case IDC_EDITING_APP:
configureFor(hDlg, EDITING_APP);
break;
case IDC_EDITING_GLOBAL:
configureFor(hDlg, EDITING_GLOBAL);
break;
case IDC_ADD_APPDEFAULT:
WRITEME(hDlg);
break;
case IDC_REMOVE_APPDEFAULT:
WRITEME(hDlg);
break;
case IDC_LIST_APPS:
if (HIWORD(wParam) == LBN_SELCHANGE) onAppsListSelChange(hDlg);
break;
}
break;
case WM_NOTIFY: switch(((LPNMHDR)lParam)->code) {
case PSN_KILLACTIVE:
SetWindowLong(hDlg, DWL_MSGRESULT, FALSE);
break;
case PSN_APPLY:
SetWindowLong(hDlg, DWL_MSGRESULT, PSNRET_NOERROR);
break;
case PSN_SETACTIVE:
refreshDialog(hDlg);
break;
};
break;
case WM_INITDIALOG:
WINE_TRACE("Init appdefaults\n");
break;
}
return FALSE;
}

View File

@ -285,52 +285,52 @@ void fill_drive_droplist(long mask, char currentLetter, HWND hDlg)
#define BOX_MODE_CD_AUTODETECT 2
#define BOX_MODE_NONE 3
#define BOX_MODE_NORMAL 4
void enable_labelserial_box(HWND hDlg, int mode)
void enable_labelserial_box(HWND dialog, int mode)
{
WINE_TRACE("mode=%d\n", mode);
switch (mode) {
case BOX_MODE_CD_ASSIGN:
EnableWindow( GetDlgItem( hDlg, IDC_RADIO_AUTODETECT ), 1 );
EnableWindow( GetDlgItem( hDlg, IDC_RADIO_ASSIGN ), 1 );
EnableWindow( GetDlgItem( hDlg, IDC_EDIT_DEVICE ), 0 );
EnableWindow( GetDlgItem( hDlg, IDC_BUTTON_BROWSE_DEVICE ), 0 );
EnableWindow( GetDlgItem( hDlg, IDC_EDIT_SERIAL ), 1 );
EnableWindow( GetDlgItem( hDlg, IDC_EDIT_LABEL ), 1 );
EnableWindow( GetDlgItem( hDlg, IDC_STATIC_SERIAL ), 1);
EnableWindow( GetDlgItem( hDlg, IDC_STATIC_LABEL ), 1);
enable(IDC_RADIO_AUTODETECT);
enable(IDC_RADIO_ASSIGN);
disable(IDC_EDIT_DEVICE);
disable(IDC_BUTTON_BROWSE_DEVICE);
enable(IDC_EDIT_SERIAL);
enable(IDC_EDIT_LABEL);
enable(IDC_STATIC_SERIAL);
enable(IDC_STATIC_LABEL);
break;
case BOX_MODE_CD_AUTODETECT:
EnableWindow( GetDlgItem( hDlg, IDC_RADIO_AUTODETECT ), 1 );
EnableWindow( GetDlgItem( hDlg, IDC_RADIO_ASSIGN ), 1 );
EnableWindow( GetDlgItem( hDlg, IDC_EDIT_DEVICE ), 1 );
EnableWindow( GetDlgItem( hDlg, IDC_BUTTON_BROWSE_DEVICE ), 1 );
EnableWindow( GetDlgItem( hDlg, IDC_EDIT_SERIAL ), 0 );
EnableWindow( GetDlgItem( hDlg, IDC_EDIT_LABEL ), 0 );
EnableWindow( GetDlgItem( hDlg, IDC_STATIC_SERIAL ), 0);
EnableWindow( GetDlgItem( hDlg, IDC_STATIC_LABEL ), 0);
enable(IDC_RADIO_AUTODETECT);
enable(IDC_RADIO_ASSIGN);
enable(IDC_EDIT_DEVICE);
enable(IDC_BUTTON_BROWSE_DEVICE);
disable(IDC_EDIT_SERIAL);
disable(IDC_EDIT_LABEL);
disable(IDC_STATIC_SERIAL);
disable(IDC_STATIC_LABEL);
break;
case BOX_MODE_NONE:
EnableWindow( GetDlgItem( hDlg, IDC_RADIO_AUTODETECT ), 0 );
EnableWindow( GetDlgItem( hDlg, IDC_RADIO_ASSIGN ), 0 );
EnableWindow( GetDlgItem( hDlg, IDC_EDIT_DEVICE ), 0 );
EnableWindow( GetDlgItem( hDlg, IDC_BUTTON_BROWSE_DEVICE ), 0 );
EnableWindow( GetDlgItem( hDlg, IDC_EDIT_SERIAL ), 0 );
EnableWindow( GetDlgItem( hDlg, IDC_EDIT_LABEL ), 0 );
EnableWindow( GetDlgItem( hDlg, IDC_STATIC_SERIAL ), 0);
EnableWindow( GetDlgItem( hDlg, IDC_STATIC_LABEL ), 0);
disable(IDC_RADIO_AUTODETECT);
disable(IDC_RADIO_ASSIGN);
disable(IDC_EDIT_DEVICE);
disable(IDC_BUTTON_BROWSE_DEVICE);
disable(IDC_EDIT_SERIAL);
disable(IDC_EDIT_LABEL);
disable(IDC_STATIC_SERIAL);
disable(IDC_STATIC_LABEL);
break;
case BOX_MODE_NORMAL:
EnableWindow( GetDlgItem( hDlg, IDC_RADIO_AUTODETECT ), 0 );
EnableWindow( GetDlgItem( hDlg, IDC_RADIO_ASSIGN ), 1 );
EnableWindow( GetDlgItem( hDlg, IDC_EDIT_DEVICE ), 0 );
EnableWindow( GetDlgItem( hDlg, IDC_BUTTON_BROWSE_DEVICE ), 0 );
EnableWindow( GetDlgItem( hDlg, IDC_EDIT_SERIAL ), 1 );
EnableWindow( GetDlgItem( hDlg, IDC_EDIT_LABEL ), 1 );
EnableWindow( GetDlgItem( hDlg, IDC_STATIC_SERIAL ), 1);
EnableWindow( GetDlgItem( hDlg, IDC_STATIC_LABEL ), 1);
disable(IDC_RADIO_AUTODETECT);
enable(IDC_RADIO_ASSIGN);
disable(IDC_EDIT_DEVICE);
disable(IDC_BUTTON_BROWSE_DEVICE);
enable(IDC_EDIT_SERIAL);
enable(IDC_EDIT_LABEL);
enable(IDC_STATIC_SERIAL);
enable(IDC_STATIC_LABEL);
break;
}
}

View File

@ -162,20 +162,6 @@ DllDlgProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
}
INT_PTR CALLBACK
AppDlgProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_COMMAND:
break;
default:
break;
}
return FALSE;
}
#define NUM_PROPERTY_PAGES 5
INT_PTR
doPropertySheet (HINSTANCE hInstance, HWND hOwner)
@ -197,31 +183,31 @@ doPropertySheet (HINSTANCE hInstance, HWND hOwner)
psp[0].lParam = 0;
/*
* Fill out the (Libraries) PROPSHEETPAGE data structure
* Fill out the (Applications) PROPSHEETPAGE data structure
* for the property sheet
*/
psp[1].dwSize = sizeof (PROPSHEETPAGE);
psp[1].dwFlags = PSP_USETITLE;
psp[1].hInstance = hInstance;
psp[1].u.pszTemplate = MAKEINTRESOURCE (IDD_DLLCFG);
psp[1].u.pszTemplate = MAKEINTRESOURCE (IDD_APPCFG);
psp[1].u2.pszIcon = NULL;
psp[1].pfnDlgProc = DllDlgProc;
psp[1].pszTitle = "Libraries";
psp[1].pfnDlgProc = AppDlgProc;
psp[1].pszTitle = "Applications";
psp[1].lParam = 0;
/*
* Fill out the (Applications) PROPSHEETPAGE data structure
* Fill out the (Libraries) PROPSHEETPAGE data structure
* for the property sheet
*/
psp[2].dwSize = sizeof (PROPSHEETPAGE);
psp[2].dwFlags = PSP_USETITLE;
psp[2].hInstance = hInstance;
psp[2].u.pszTemplate = MAKEINTRESOURCE (IDD_APPCFG);
psp[2].u.pszTemplate = MAKEINTRESOURCE (IDD_DLLCFG);
psp[2].u2.pszIcon = NULL;
psp[2].pfnDlgProc = AppDlgProc;
psp[2].pszTitle = "Applications";
psp[2].pfnDlgProc = DllDlgProc;
psp[2].pszTitle = "Libraries";
psp[2].lParam = 0;
/*
* Fill out the (X11Drv) PROPSHEETPAGE data structure
* for the property sheet
@ -256,6 +242,7 @@ doPropertySheet (HINSTANCE hInstance, HWND hOwner)
psh.nPages = NUM_PROPERTY_PAGES;
psh.u3.ppsp = (LPCPROPSHEETPAGE) & psp;
psh.pfnCallback = (PFNPROPSHEETCALLBACK) PropSheetCallback;
psh.u2.nStartPage = 0;
/*
* Display the modal property sheet
@ -293,8 +280,9 @@ WinMain (HINSTANCE hInstance, HINSTANCE hPrev, LPSTR szCmdLine, int nShow)
InitCommonControls ();
if (doPropertySheet (hInstance, NULL) > 0) {
WINE_TRACE("OK\n");
} else
} else {
WINE_TRACE("Cancel\n");
}
ExitProcess (0);

View File

@ -45,7 +45,6 @@
#define IDC_SYSCOLORS 1017
#define IDC_PRIVATEMAP 1018
#define IDC_PERFECTGRAPH 1019
#define IDC_LIST_APPS 1021
#define IDC_MANAGED 1022
#define IDC_DESKTOP_WIDTH 1023
#define IDC_DESKTOP_HEIGHT 1024
@ -67,6 +66,8 @@
#define IDC_EDIT_REAL 1039
#define IDC_BUTTON_REAL 1040
#define IDC_BUTTON_FOLDERS 1041
/* drive editing */
#define IDC_LIST_DRIVES 1042
#define IDC_BUTTON_ADD 1043
#define IDC_BUTTON_REMOVE 1044
@ -102,8 +103,17 @@
#define IDC_STATIC_LABEL 1073
#define IDC_ENABLE_DESKTOP 1074
#define IDS_DRIVE_NO_C 1075
/* x11drv */
#define IDC_ENABLE_MANAGED 1076
#define IDC_SCREEN_DEPTH 1077
#define IDC_DX_MOUSE_GRAB 1078
#define IDC_USE_TAKE_FOCUS 1079
#define IDC_DOUBLE_BUFFER 1080
/* applications tab */
#define IDC_LIST_APPS 1021
#define IDC_EDITING_GLOBAL 1081
#define IDC_EDITING_APP 1082
#define IDC_ADD_APPDEFAULT 1083
#define IDC_REMOVE_APPDEFAULT 1084

View File

@ -22,7 +22,6 @@
* TODO: (in rough order of priority)
* - A mind bogglingly vast amount of stuff
*
* - Complete X11DRV page, so all controls are hooked up
* - Implement autodetect for drive configuration
* - Figure out whether we need the virtual vs real drive selection stuff at the top of the property page
* - Implement explicit mode vs instant-apply mode
@ -36,6 +35,10 @@
* Minor things that should be done someday:
* - Make the desktop size UI a combo box, with a Custom option, so it's more obvious what you might want to choose here
*
* BUGS:
* - WineLook default fallback doesn't work
* - x11drv page triggers key writes on entry
*
*/
#include <assert.h>
@ -94,7 +97,7 @@ char *getConfigValue (char *subkey, char *valueName, char *defaultResult)
}
goto end;
}
res = RegQueryValueExA( hSubKey, valueName, NULL, NULL, NULL, &dataLength);
if( res == ERROR_FILE_NOT_FOUND ) {
WINE_TRACE("Value not present - using default\n");

View File

@ -37,10 +37,10 @@
#define IS_OPTION_FALSE(ch) \
((ch) == 'n' || (ch) == 'N' || (ch) == 'f' || (ch) == 'F' || (ch) == '0')
#define return_if_fail(try, ret) \
#define return_if_fail(try) \
if (!(try)) { \
WINE_ERR("assertion (##try) failed, returning\n"); \
return ret; \
WINE_ERR("check (" #try ") at %s:%d failed, returning\n", __FILE__, __LINE__ - 1); \
return; \
}
#define WRITEME(owner) MessageBox(owner, "Write me!", "", MB_OK | MB_ICONEXCLAMATION);
@ -63,6 +63,13 @@ extern struct transaction *tqhead, *tqtail;
extern int instantApply; /* non-zero means apply all changes instantly */
#define EDITING_GLOBAL 0
#define EDITING_APP 1
extern int appSettings; /* non-zero means we are editing appdefault settings */
/* returns a string of the form AppDefaults\\appname.exe\\section */
/* no explicit free is needed of the string returned by this function */
char *getSectionForApp(char *section);
/* Commits a transaction to the registry */
void processTransaction(struct transaction *trans);
@ -101,10 +108,14 @@ void saveDriveSettings (HWND hDlg);
INT_PTR CALLBACK DriveDlgProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK DriveEditDlgProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK AppDlgProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
/* some basic utilities to make win32 suck less */
char *getDialogItemText(HWND hDlg, WORD controlID);
#define disable(id) EnableWindow(GetDlgItem(dialog, id), 0);
#define enable(id) EnableWindow(GetDlgItem(dialog, id), 1);
#define WINE_KEY_ROOT "Software\\Wine\\WineCfg\\Config"
#define WINE_KEY_ROOT "Software\\Wine\\Wine\\Config"
#endif

View File

@ -35,35 +35,37 @@
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 section (appSettings == EDITING_GLOBAL ? "x11drv" : (getSectionForApp("x11drv")))
int updatingUI;
void updateGUIForDesktopMode(HWND hDlg) {
void updateGUIForDesktopMode(HWND dialog) {
WINE_TRACE("\n");
updatingUI = TRUE;
/* do we have desktop mode enabled? */
if (doesConfigValueExist("x11drv", "Desktop") == S_OK) {
CheckDlgButton(hDlg, IDC_ENABLE_DESKTOP, BST_CHECKED);
CheckDlgButton(dialog, IDC_ENABLE_DESKTOP, BST_CHECKED);
/* enable the controls */
EnableWindow(GetDlgItem(hDlg, IDC_DESKTOP_WIDTH), 1);
EnableWindow(GetDlgItem(hDlg, IDC_DESKTOP_HEIGHT), 1);
EnableWindow(GetDlgItem(hDlg, IDC_DESKTOP_SIZE), 1);
EnableWindow(GetDlgItem(hDlg, IDC_DESKTOP_BY), 1);
SetWindowText(GetDlgItem(hDlg, IDC_DESKTOP_WIDTH), "640");
SetWindowText(GetDlgItem(hDlg, IDC_DESKTOP_HEIGHT), "480");
enable(IDC_DESKTOP_WIDTH);
enable(IDC_DESKTOP_HEIGHT);
enable(IDC_DESKTOP_SIZE);
enable(IDC_DESKTOP_BY);
SetWindowText(GetDlgItem(dialog, IDC_DESKTOP_WIDTH), "640");
SetWindowText(GetDlgItem(dialog, IDC_DESKTOP_HEIGHT), "480");
}
else {
CheckDlgButton(hDlg, IDC_ENABLE_DESKTOP, BST_UNCHECKED);
CheckDlgButton(dialog, IDC_ENABLE_DESKTOP, BST_UNCHECKED);
/* disable the controls */
EnableWindow(GetDlgItem(hDlg, IDC_DESKTOP_WIDTH), 0);
EnableWindow(GetDlgItem(hDlg, IDC_DESKTOP_HEIGHT), 0);
EnableWindow(GetDlgItem(hDlg, IDC_DESKTOP_SIZE), 0);
EnableWindow(GetDlgItem(hDlg, IDC_DESKTOP_BY), 0);
disable(IDC_DESKTOP_WIDTH);
disable(IDC_DESKTOP_HEIGHT);
disable(IDC_DESKTOP_SIZE);
disable(IDC_DESKTOP_BY);
SetWindowText(GetDlgItem(hDlg, IDC_DESKTOP_WIDTH), "");
SetWindowText(GetDlgItem(hDlg, IDC_DESKTOP_HEIGHT), "");
SetWindowText(GetDlgItem(dialog, IDC_DESKTOP_WIDTH), "");
SetWindowText(GetDlgItem(dialog, IDC_DESKTOP_HEIGHT), "");
}
updatingUI = FALSE;