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
diff --git a/vncviewer/FTDialog.cxx b/vncviewer/FTDialog.cxx
index dacce7b..b27270d 100644
--- a/vncviewer/FTDialog.cxx
+++ b/vncviewer/FTDialog.cxx
@@ -222,6 +222,7 @@
         _this->onLocalItemActivate((LPNMITEMACTIVATE) lParam);
         return FALSE;
       case NM_RCLICK:
+        _this->onLocalRButton();
         return FALSE;
       }
       break;
@@ -239,6 +240,7 @@
         _this->onRemoteItemActivate((LPNMITEMACTIVATE) lParam);
         return FALSE;
       case NM_RCLICK:
+        _this->onRemoteRButton();
         return FALSE;
       }
       break;
@@ -367,6 +369,33 @@
 
 }
 
+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 88ff9e9..f9e5ba3 100644
--- a/vncviewer/FTDialog.h
+++ b/vncviewer/FTDialog.h
@@ -69,6 +69,11 @@
       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 722b6dd..3f3f365 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 64a4d90..9836c3e 100644
--- a/vncviewer/vncviewer.rc
+++ b/vncviewer/vncviewer.rc
@@ -627,6 +627,19 @@
     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
+
 
 /////////////////////////////////////////////////////////////////////////////
 //