[PATCH 0/1] MR4576: wineps.drv: Add paper source selection support in printer properties.
From: Piotr Caban <piotr(a)codeweavers.com> --- dlls/wineps.drv/driver.c | 34 ++++++++++++++++++++++++++++++++++ dlls/wineps.drv/psdlg.h | 2 ++ dlls/wineps.drv/wineps.rc | 5 ++++- 3 files changed, 40 insertions(+), 1 deletion(-) diff --git a/dlls/wineps.drv/driver.c b/dlls/wineps.drv/driver.c index 67209fbec2b..7b5d2abb32d 100644 --- a/dlls/wineps.drv/driver.c +++ b/dlls/wineps.drv/driver.c @@ -247,6 +247,7 @@ static INT_PTR CALLBACK PSDRV_PaperDlgProc(HWND hwnd, UINT msg, PAGESIZE *ps; DUPLEX *duplex; RESOLUTION *res; + INPUTSLOT *source; switch(msg) { case WM_INITDIALOG: @@ -336,6 +337,24 @@ static INT_PTR CALLBACK PSDRV_PaperDlgProc(HWND hwnd, UINT msg, } SendDlgItemMessageW(hwnd, IDD_QUALITY, CB_SETCURSEL, Cursel, 0); + i = Cursel = 0; + LIST_FOR_EACH_ENTRY( source, &di->pi->ppd->InputSlots, INPUTSLOT, entry ) + { + if (!source->InvocationString) continue; + SendDlgItemMessageA(hwnd, IDD_TRAY, CB_INSERTSTRING, i, (LPARAM)source->FullName); + if (di->pi->Devmode->dmPublic.dmDefaultSource == source->WinBin) + Cursel = i; + i++; + } + if (!i) + { + ShowWindow(GetDlgItem(hwnd, IDD_TRAY), SW_HIDE); + ShowWindow(GetDlgItem(hwnd, IDD_TRAY_NAME), SW_HIDE); + } + else + { + SendDlgItemMessageA(hwnd, IDD_TRAY, CB_SETCURSEL, Cursel, 0); + } break; case WM_COMMAND: @@ -419,6 +438,21 @@ static INT_PTR CALLBACK PSDRV_PaperDlgProc(HWND hwnd, UINT msg, SendMessageW(GetParent(hwnd), PSM_CHANGED, 0, 0); } break; + + case IDD_TRAY: + Cursel = SendDlgItemMessageA(hwnd, LOWORD(wParam), CB_GETCURSEL, 0, 0); + i = 0; + LIST_FOR_EACH_ENTRY( source, &di->pi->ppd->InputSlots, INPUTSLOT, entry ) + { + if (!source->InvocationString) continue; + if (i >= Cursel) break; + i++; + } + TRACE("Setting paper source to item %d WinBin = %d\n", Cursel, source->WinBin); + di->dlgdm->dmPublic.dmDefaultSource = source->WinBin; + di->dlgdm->dmPublic.dmFields |= DM_DEFAULTSOURCE; + SendMessageW(GetParent(hwnd), PSM_CHANGED, 0, 0); + break; } break; diff --git a/dlls/wineps.drv/psdlg.h b/dlls/wineps.drv/psdlg.h index 09ce9012d50..c16f1f34270 100644 --- a/dlls/wineps.drv/psdlg.h +++ b/dlls/wineps.drv/psdlg.h @@ -30,6 +30,8 @@ #define IDD_DUPLEX 110 #define IDD_DUPLEX_NAME 111 #define IDD_QUALITY 112 +#define IDD_TRAY_NAME 113 +#define IDD_TRAY 114 #define IDS_DPI 1000 diff --git a/dlls/wineps.drv/wineps.rc b/dlls/wineps.drv/wineps.rc index 35b3e5eb167..83a2e602ae1 100644 --- a/dlls/wineps.drv/wineps.rc +++ b/dlls/wineps.drv/wineps.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT -PAPER DIALOG 5, 43, 227, 215 +PAPER DIALOG 5, 43, 227, 230 STYLE WS_POPUP | WS_CAPTION | WS_CLIPSIBLINGS | WS_VISIBLE CAPTION "Paper" FONT 8, "MS Shell Dlg" @@ -41,6 +41,9 @@ FONT 8, "MS Shell Dlg" LTEXT "Print &Quality:", -1, 10, 170, 200, 8 COMBOBOX IDD_QUALITY, 10, 181, 200, 60, CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_TABSTOP + LTEXT "Paper &Tray:", IDD_TRAY_NAME, 10, 200, 200, 8 + COMBOBOX IDD_TRAY, 10, 211, 200, 60, CBS_DROPDOWNLIST | CBS_HASSTRINGS | + WS_TABSTOP } STRINGTABLE -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/4576
This merge request was approved by Huw Davies. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/4576
participants (3)
-
Huw Davies (@huw) -
Piotr Caban -
Piotr Caban (@piotr)