From 3f079e7eff79181a17ace419ebd405a76b3f005c Mon Sep 17 00:00:00 2001 From: Dennis Syrovatsky Date: Wed, 23 Nov 2005 05:23:50 +0000 Subject: [PATCH] Added RBUTTON menu to the file transfer dialog. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@414 3789f03b-4d11-0410-bbf8-ca57d06f2519 --- vncviewer/FTDialog.cxx | 29 +++++++++++++++++++++++++++++ vncviewer/FTDialog.h | 5 +++++ vncviewer/resource.h | 9 +++++++-- vncviewer/vncviewer.rc | 13 +++++++++++++ 4 files changed, 54 insertions(+), 2 deletions(-) diff --git a/vncviewer/FTDialog.cxx b/vncviewer/FTDialog.cxx index dacce7bf..b27270da 100644 --- a/vncviewer/FTDialog.cxx +++ b/vncviewer/FTDialog.cxx @@ -222,6 +222,7 @@ FTDialog::FTDialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) _this->onLocalItemActivate((LPNMITEMACTIVATE) lParam); return FALSE; case NM_RCLICK: + _this->onLocalRButton(); return FALSE; } break; @@ -239,6 +240,7 @@ FTDialog::FTDialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) _this->onRemoteItemActivate((LPNMITEMACTIVATE) lParam); return FALSE; case NM_RCLICK: + _this->onRemoteRButton(); return FALSE; } break; @@ -367,6 +369,33 @@ FTDialog::onDownload() } +void +FTDialog::onLocalRButton() +{ + showFTMenu(1, 1, 1, 1); +} + +void +FTDialog::onRemoteRButton() +{ + showFTMenu(1, 1, 1, 1); +} + +void +FTDialog::showFTMenu(int copyBtnState, int renameBtnState, int deleteBtnState, int cancelBtnState) +{ + HMENU hMenu = LoadMenu(m_hInstance, MAKEINTRESOURCE(IDR_FTMENU)); + HMENU hFTMenu = GetSubMenu(hMenu, 0); + + SetMenuDefaultItem(hFTMenu, IDM_FTCOPY, FALSE); + + SetForegroundWindow(m_hwndFTDialog); + + POINT cursorPosition; + GetCursorPos(&cursorPosition); + TrackPopupMenu(hFTMenu, 0, cursorPosition.x, cursorPosition.y, 0, m_hwndFTDialog, 0); +} + void FTDialog::setIcon(int dest, int idIcon) { diff --git a/vncviewer/FTDialog.h b/vncviewer/FTDialog.h index 88ff9e93..f9e5ba38 100644 --- a/vncviewer/FTDialog.h +++ b/vncviewer/FTDialog.h @@ -69,6 +69,11 @@ namespace rfb { void onLocalReload(); void onRemoteReload(); + void onLocalRButton(); + void onRemoteRButton(); + void showFTMenu(int copyBtnState, int renameBtnState, + int deleteBtnState, int cancelBtnState); + void onUpload(); void onDownload(); diff --git a/vncviewer/resource.h b/vncviewer/resource.h index 722b6ddf..3f3f3653 100644 --- a/vncviewer/resource.h +++ b/vncviewer/resource.h @@ -24,6 +24,7 @@ #define IDI_FTDIR 126 #define IDI_FTFILE 127 #define IDI_FTRELOAD 128 +#define IDR_FTMENU 130 #define IDC_PASSWORD 1000 #define IDC_CONNECTING_TEXT 1001 #define IDC_SERVER_EDIT 1002 @@ -121,13 +122,17 @@ #define ID_SEND_CTLESC 40014 #define ID_CONN_SAVE_AS 40015 #define ID_FILE_TRANSFER 40016 +#define IDM_FTCOPY 40022 +#define IDM_FTRENAME 40023 +#define IDM_FTDELETE 40024 +#define IDM_FTCANCEL 40025 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 129 -#define _APS_NEXT_COMMAND_VALUE 40017 +#define _APS_NEXT_RESOURCE_VALUE 131 +#define _APS_NEXT_COMMAND_VALUE 40026 #define _APS_NEXT_CONTROL_VALUE 1083 #define _APS_NEXT_SYMED_VALUE 101 #endif diff --git a/vncviewer/vncviewer.rc b/vncviewer/vncviewer.rc index 64a4d900..9836c3e2 100644 --- a/vncviewer/vncviewer.rc +++ b/vncviewer/vncviewer.rc @@ -627,6 +627,19 @@ BEGIN END END +IDR_FTMENU MENU DISCARDABLE +BEGIN + POPUP "File Transfer" + BEGIN + MENUITEM "Copy Files and Folders", IDM_FTCOPY + MENUITEM SEPARATOR + MENUITEM "Rename File or Folder", IDM_FTRENAME + MENUITEM "Delete Files and Folders", IDM_FTDELETE + MENUITEM SEPARATOR + MENUITEM "Cancel File Transfer", IDM_FTCANCEL + END +END + ///////////////////////////////////////////////////////////////////////////// // -- 2.39.5