winecfg: Simplify code a bit.
Vitaliy Margolen
wine-patch at kievinfo.com
Wed Jan 11 13:22:54 CST 2006
ChangeLog:
winecfg: Simplify code a bit.
Enable apply button when needed and don't enable when nothing changed.
programs/winecfg/driveui.c | 38 ++++++++++----------------------------
1 files changed, 10 insertions(+), 28 deletions(-)
-------------- next part --------------
736fc8fb42f7fa8ac6cd75069439cbc2bba2a2e3
diff --git a/programs/winecfg/driveui.c b/programs/winecfg/driveui.c
index 84a9d43..993cec9 100644
--- a/programs/winecfg/driveui.c
+++ b/programs/winecfg/driveui.c
@@ -270,8 +270,7 @@ static int fill_drives_list(HWND dialog)
for(i = 0; i < 26; i++)
{
LVITEM item;
- char *letter = 0;
- int len;
+ char letter[4];
/* skip over any unused drives */
if (!drives[i].in_use)
@@ -280,34 +279,19 @@ static int fill_drives_list(HWND dialog)
if (drives[i].letter == 'C')
drivec_present = TRUE;
- len = snprintf(letter, 0, "%c:", 'A' + i);
- len++; /* add a byte for the trailing null */
-
- letter = HeapAlloc(GetProcessHeap(), 0, len);
- snprintf(letter, len, "%c:", 'A' + i);
+ snprintf(letter, sizeof(letter), "%c:", 'A' + i);
memset(&item, 0, sizeof(item));
- item.mask = LVIF_TEXT;
+ item.mask = LVIF_TEXT | LVIF_PARAM;
item.iItem = count;
item.iSubItem = 0;
item.pszText = letter;
item.cchTextMax = lstrlen(item.pszText);
+ item.lParam = (LPARAM) &drives[i];
lv_insert_item(dialog, &item);
+ lv_set_item_text(dialog, count, 1, drives[i].unixpath);
- item.iSubItem = 1;
- item.pszText = drives[i].unixpath;
- item.cchTextMax = lstrlen(item.pszText);
-
- lv_set_item(dialog, &item);
-
- item.mask = LVIF_PARAM;
- item.iSubItem = 0;
- item.lParam = (LPARAM) &drives[i];
-
- lv_set_item(dialog, &item);
-
- HeapFree(GetProcessHeap(), 0, letter);
count++;
}
@@ -331,6 +315,8 @@ static void on_options_click(HWND dialog
set_reg_key(config_key, "", "ShowDotFiles", "Y");
else
set_reg_key(config_key, "", "ShowDotFiles", "N");
+
+ SendMessage(GetParent(dialog), PSM_CHANGED, 0, 0);
}
static void on_add_click(HWND dialog)
@@ -659,11 +645,8 @@ static void browse_for_folder(HWND dialo
hr = StrRetToStr(&strSelectedPath, pidlSelectedPath, &pszSelectedPath);
SHFree(pidlSelectedPath);
if (!SUCCEEDED(hr)) return;
-
- HeapFree(GetProcessHeap(), 0, current_drive->unixpath);
- current_drive->unixpath = strdupA(pszSelectedPath);
- fill_drives_list(dialog);
- update_controls(dialog);
+
+ set_text(dialog, IDC_EDIT_PATH, pszSelectedPath);
CoTaskMemFree(pszSelectedPath);
}
@@ -736,8 +719,6 @@ DriveDlgProc (HWND dialog, UINT msg, WPA
break;
case BN_CLICKED:
- SendMessage(GetParent(dialog), PSM_CHANGED, 0, 0);
-
switch (LOWORD(wParam))
{
case IDC_SHOW_DOT_FILES:
@@ -773,6 +754,7 @@ DriveDlgProc (HWND dialog, UINT msg, WPA
case IDC_BUTTON_AUTODETECT:
autodetect_drives();
fill_drives_list(dialog);
+ SendMessage(GetParent(dialog), PSM_CHANGED, 0, 0);
break;
case IDC_BUTTON_SHOW_HIDE_ADVANCED:
More information about the wine-patches
mailing list