Added FTBrowseDlg::addItems methods.
Added some code to the FTDialog class for control browsing folders
in the "Browse Folders" dialog.


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@456 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/vncviewer/FTBrowseDlg.cxx b/vncviewer/FTBrowseDlg.cxx
index 9c93032..81cd882 100644
--- a/vncviewer/FTBrowseDlg.cxx
+++ b/vncviewer/FTBrowseDlg.cxx
@@ -58,6 +58,23 @@
   EndDialog(m_hwndDlg, 0);
 }
 
+void
+FTBrowseDlg::addItems(FileInfo *pFI)
+{
+  TVITEM tvi;
+  TVINSERTSTRUCT tvins;
+
+  for (unsigned int i = 0; i < pFI->getNumEntries(); i++)
+  {
+    tvi.mask = TVIF_TEXT;
+    tvi.pszText = pFI->getNameAt(i);;
+    tvins.hParent = NULL;
+    tvins.item = tvi;
+    tvins.hParent = TreeView_InsertItem(GetDlgItem(m_hwndDlg, IDC_FTBROWSETREE), &tvins);
+    TreeView_InsertItem(GetDlgItem(m_hwndDlg, IDC_FTBROWSETREE), &tvins);
+  }
+}
+
 BOOL CALLBACK 
 FTBrowseDlg::FTBrowseDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 {
diff --git a/vncviewer/FTBrowseDlg.h b/vncviewer/FTBrowseDlg.h
index 716efcb..0ebf569 100644
--- a/vncviewer/FTBrowseDlg.h
+++ b/vncviewer/FTBrowseDlg.h
@@ -33,6 +33,8 @@
 
 namespace rfb {
   namespace win32 {
+    class FTDialog;
+
     class FTBrowseDlg
     {
     public:
@@ -44,6 +46,8 @@
       bool create();
       void destroy();
 
+      void addItems(FileInfo *pFI);
+
     private:
       HWND m_hwndDlg;
       FTDialog *m_pFTDlg;
diff --git a/vncviewer/FTDialog.cxx b/vncviewer/FTDialog.cxx
index b5782d6..b7ec9ba 100644
--- a/vncviewer/FTDialog.cxx
+++ b/vncviewer/FTDialog.cxx
@@ -44,6 +44,7 @@
   m_pCancelingDlg = NULL;
   m_pCreateFolderDlg = NULL;
   m_pRenameDlg = NULL;
+  m_pBrowseDlg = NULL;
 
   m_hwndFTDialog = NULL;
   m_hwndLocalPath = NULL;
@@ -369,7 +370,12 @@
 void 
 FTDialog::onRemoteBrowse()
 {
- 
+  if (m_pBrowseDlg != NULL) return;
+  
+  m_pBrowseDlg = new FTBrowseDlg(this);
+  m_pBrowseDlg->create();
+
+  m_pFileTransfer->requestFileList("", FT_FLR_DEST_BROWSE, true);
 }
 
 void 
@@ -877,6 +883,9 @@
 void 
 FTDialog::addBrowseItems(FileInfo *pFI)
 {
+  if (m_pBrowseDlg == NULL) return;
+
+  m_pBrowseDlg->addItems(pFI);
 }
 
 void 
diff --git a/vncviewer/FTDialog.h b/vncviewer/FTDialog.h
index 6cb9d6e..d505e5f 100644
--- a/vncviewer/FTDialog.h
+++ b/vncviewer/FTDialog.h
@@ -32,11 +32,13 @@
 #include <vncviewer/FileTransfer.h>
 #include <vncviewer/FTListView.h>
 #include <vncviewer/FTProgress.h>
+#include <vncviewer/FTBrowseDlg.h>
 #include <vncviewer/resource.h>
 
 namespace rfb {
   namespace win32 {
     class FileTransfer;
+    class FTBrowseDlg;
 
     class FTDialog
     {
@@ -142,6 +144,8 @@
       FTListView *m_pLocalLV;
       FTListView *m_pRemoteLV;
 
+      FTBrowseDlg *m_pBrowseDlg;
+
       int m_FTMenuSource;
 
       char m_szLocalPath[FT_FILENAME_SIZE];