Commit 9d6d3b3b authored by Rein Klazes's avatar Rein Klazes Committed by Alexandre Julliard

winecfg: Let the user specify the drive letter of a to be added drive.

parent 12d1ff8e
......@@ -124,6 +124,16 @@ BEGIN
PUSHBUTTON "Cancel",IDCANCEL,57,74,45,14,WS_GROUP
END
IDD_DRIVECHOOSE DIALOG DISCARDABLE 60, 70, 170, 60
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Select Drive Letter"
FONT 8, "MS Shell Dlg"
BEGIN
COMBOBOX IDC_DRIVESA2Z,15,10,75,230,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
DEFPUSHBUTTON "OK",IDOK,105,10,45,14,WS_GROUP
PUSHBUTTON "Cancel",IDCANCEL,105,30,45,14,WS_GROUP
END
IDD_DRIVECFG DIALOG DISCARDABLE 0, 0, 260, 250
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
......
......@@ -125,6 +125,16 @@ BEGIN
PUSHBUTTON "Annuleren",IDCANCEL,57,74,45,14,WS_GROUP
END
IDD_DRIVECHOOSE DIALOG DISCARDABLE 60, 70, 170, 60
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Selecteer Stationsletter"
FONT 8, "MS Shell Dlg"
BEGIN
COMBOBOX IDC_DRIVESA2Z,15,10,75,230,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
DEFPUSHBUTTON "OK",IDOK,105,10,45,14,WS_GROUP
PUSHBUTTON "Annuleren",IDCANCEL,105,30,45,14,WS_GROUP
END
IDD_DRIVECFG DIALOG DISCARDABLE 0, 0, 260, 250
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
......
......@@ -291,6 +291,47 @@ static void on_options_click(HWND dialog)
SendMessage(GetParent(dialog), PSM_CHANGED, 0, 0);
}
static INT_PTR CALLBACK drivechoose_dlgproc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
static int i, sel;
char c;
char drive[] = "X:";
switch(uMsg)
{
case WM_INITDIALOG:
{
ULONG mask = ~drive_available_mask(0); /* the mask is now which drives aren't available */
for( c = 'A'; c<= 'Z'; c++){
drive[0] = c;
if(!( mask & (1 << (c - 'A'))))
SendDlgItemMessageA( hwndDlg, IDC_DRIVESA2Z, CB_ADDSTRING, 0, (LPARAM) drive);
}
drive[0] = lParam;
SendDlgItemMessageA( hwndDlg, IDC_DRIVESA2Z, CB_SELECTSTRING, 0, (LPARAM) drive);
return TRUE;
}
case WM_COMMAND:
if(HIWORD(wParam) != BN_CLICKED) break;
switch (LOWORD(wParam))
{
case IDOK:
i = SendDlgItemMessageA( hwndDlg, IDC_DRIVESA2Z, CB_GETCURSEL, 0, 0);
if( i != CB_ERR){
SendDlgItemMessageA( hwndDlg, IDC_DRIVESA2Z, CB_GETLBTEXT, i, (LPARAM) drive);
sel = drive[0];
} else
sel = -1;
EndDialog(hwndDlg, sel);
return TRUE;
case IDCANCEL:
EndDialog(hwndDlg, -1);
return TRUE;
}
}
return FALSE;
}
static void on_add_click(HWND dialog)
{
/* we should allocate a drive letter automatically. We also need
......@@ -313,7 +354,12 @@ static void on_add_click(HWND dialog)
}
}
WINE_TRACE("allocating drive letter %c\n", new);
new = DialogBoxParam(0, MAKEINTRESOURCE(IDD_DRIVECHOOSE), dialog, drivechoose_dlgproc, new);
if( new == -1) return;
WINE_TRACE("selected drive letter %c\n", new);
if (new == 'C')
{
......
......@@ -146,6 +146,8 @@
#define IDS_COL_DRIVELETTER 8208
#define IDS_COL_DRIVEMAPPING 8209
#define IDS_NO_DRIVE_C 8210
#define IDD_DRIVECHOOSE 8211
#define IDC_DRIVESA2Z 8212
/* graphics */
#define IDC_ENABLE_MANAGED 1100
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment