diff options
Diffstat (limited to 'win/vncviewer')
-rw-r--r-- | win/vncviewer/OptionsDialog.cxx | 27 | ||||
-rw-r--r-- | win/vncviewer/resource.h | 4 | ||||
-rw-r--r-- | win/vncviewer/vncviewer.rc | 33 |
3 files changed, 50 insertions, 14 deletions
diff --git a/win/vncviewer/OptionsDialog.cxx b/win/vncviewer/OptionsDialog.cxx index 08990f74..c326645e 100644 --- a/win/vncviewer/OptionsDialog.cxx +++ b/win/vncviewer/OptionsDialog.cxx @@ -176,6 +176,14 @@ public: } else { SetDlgItemInt(handle, IDC_COMBO_SCALE, dlg->options.scale, FALSE); } + HWND hScaleFilterCombo = GetDlgItem(handle, IDC_COMBO_SCALE_FILTER); + SendMessage(hScaleFilterCombo, CB_RESETCONTENT, 0, 0); + ScaleFilters scaleFilters; + for (i = 0; i <= rfb::scaleFilterMaxNumber; i++) { + SendMessage(hScaleFilterCombo, CB_ADDSTRING, (WPARAM)0, (LPARAM)(int FAR*)scaleFilters[i].name); + } + SendMessage(hScaleFilterCombo, CB_SETCURSEL, (WPARAM)dlg->options.scaleFilter, (LPARAM)0); + if (dlg->options.scale == 100 && !dlg->options.autoScaling) enableItem(IDC_COMBO_SCALE_FILTER, 0); } virtual bool onOk() { dlg->options.shared = isItemChecked(IDC_CONN_SHARED); @@ -197,9 +205,28 @@ public: dlg->options.autoScaling = true; } } + dlg->options.scaleFilter = SendMessage(GetDlgItem(handle, IDC_COMBO_SCALE_FILTER), CB_GETCURSEL, 0, 0); ((ViewerOptions*)propSheet)->setChanged(); return true; } + virtual bool onCommand(int id, int cmd) { + if (id == IDC_COMBO_SCALE) { + if (cmd == CBN_SELENDOK || cmd == CBN_EDITCHANGE) { + char scaleStr[20]; + if (cmd == CBN_SELENDOK) { + HWND handleComboScale = GetDlgItem(handle, IDC_COMBO_SCALE); + int index = SendMessage(handleComboScale, CB_GETCURSEL, 0, 0); + SendMessage(handleComboScale, CB_GETLBTEXT, (WPARAM)index, (LPARAM)scaleStr); + } else { + GetDlgItemText(handle, IDC_COMBO_SCALE, scaleStr, 20); + } + if (strcmp(scaleStr, "100") == 0) enableItem(IDC_COMBO_SCALE_FILTER, 0); + else enableItem(IDC_COMBO_SCALE_FILTER, 1); + return true; + } + } + return false; + } protected: OptionsInfo* dlg; }; diff --git a/win/vncviewer/resource.h b/win/vncviewer/resource.h index 0016b74d..362d56ec 100644 --- a/win/vncviewer/resource.h +++ b/win/vncviewer/resource.h @@ -123,6 +123,8 @@ #define IDC_STATIC_SCALE 1097 #define IDC_COMBO_SCALE 1098 #define IDC_STATIC_PERCENT 1099 +#define IDC_COMBO_SCALE_FILTER 1100 +#define IDC_SCALE_FILTER 1101 #define ID_TOOLBAR 40002 #define ID_CLOSE 40003 #define ID_OPTIONS 40004 @@ -155,7 +157,7 @@ #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 134 #define _APS_NEXT_COMMAND_VALUE 40028 -#define _APS_NEXT_CONTROL_VALUE 1100 +#define _APS_NEXT_CONTROL_VALUE 1102 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif diff --git a/win/vncviewer/vncviewer.rc b/win/vncviewer/vncviewer.rc index bf8a8252..ae479c1d 100644 --- a/win/vncviewer/vncviewer.rc +++ b/win/vncviewer/vncviewer.rc @@ -210,32 +210,36 @@ BEGIN LTEXT "quality (1=poor, 9=best)",IDC_STATIC,44,140,81,9 END -IDD_MISC DIALOG DISCARDABLE 0, 0, 213, 137 +IDD_MISC DIALOG DISCARDABLE 0, 0, 216, 138 STYLE DS_MODALFRAME | DS_CONTROL | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Misc" FONT 8, "MS Sans Serif" BEGIN CONTROL "Shared connection (do not disconnect other viewers)", IDC_CONN_SHARED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7, - 10,199,15 + 10,202,15 CONTROL "Full-screen mode",IDC_FULL_SCREEN,"Button", BS_AUTOCHECKBOX | WS_TABSTOP,7,25,99,15 - CONTROL "Show toolbar",IDC_SHOW_TOOLBAR,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,106,25,100,15 CONTROL "Render cursor locally",IDC_LOCAL_CURSOR,"Button", BS_AUTOCHECKBOX | WS_TABSTOP,7,40,99,15 CONTROL "Allow dynamic desktop resizing",IDC_DESKTOP_RESIZE, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,55,199,15 + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,55,112,15 CONTROL "Only use protocol version 3.3",IDC_PROTOCOL_3_3,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,70,199,15 + BS_AUTOCHECKBOX | WS_TABSTOP,7,70,111,15 CONTROL "Beep when requested to by the server",IDC_ACCEPT_BELL, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,85,199,15 + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,85,202,15 CONTROL "Offer to automatically reconnect",IDC_AUTO_RECONNECT, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,100,199,15 - LTEXT "Scale by:",IDC_STATIC_SCALE,106,40,34,15,SS_CENTERIMAGE - COMBOBOX IDC_COMBO_SCALE,140,40,40,134,CBS_DROPDOWN | CBS_SORT | + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,100,202,15 + CONTROL "Show toolbar",IDC_SHOW_TOOLBAR,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,106,25,103,15 + COMBOBOX IDC_COMBO_SCALE,138,40,42,134,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP - LTEXT "%",IDC_STATIC_PERCENT,185,40,21,15,SS_CENTERIMAGE + COMBOBOX IDC_COMBO_SCALE_FILTER,138,70,71,113,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + LTEXT "Scale by:",IDC_STATIC_SCALE,106,40,32,15,SS_CENTERIMAGE + LTEXT "%",IDC_STATIC_PERCENT,185,40,24,15,SS_CENTERIMAGE + LTEXT "With filter:",IDC_SCALE_FILTER,138,55,71,15, + SS_CENTERIMAGE END IDD_INPUTS DIALOG DISCARDABLE 0, 0, 186, 162 @@ -502,10 +506,13 @@ BEGIN IDD_MISC, DIALOG BEGIN LEFTMARGIN, 7 - RIGHTMARGIN, 206 + RIGHTMARGIN, 209 VERTGUIDE, 106 + VERTGUIDE, 138 + VERTGUIDE, 180 + VERTGUIDE, 185 TOPMARGIN, 7 - BOTTOMMARGIN, 130 + BOTTOMMARGIN, 131 HORZGUIDE, 10 HORZGUIDE, 25 HORZGUIDE, 40 |