]> source.dussan.org Git - tigervnc.git/commitdiff
Created code for FTDialog::createFTDialog, FTDialog::destroyFTDialog methods.
authorDennis Syrovatsky <dennis@tightvnc.com>
Mon, 7 Nov 2005 09:17:38 +0000 (09:17 +0000)
committerDennis Syrovatsky <dennis@tightvnc.com>
Mon, 7 Nov 2005 09:17:38 +0000 (09:17 +0000)
Deleted Dialog class as a base class for FTDialog.
Code improvements.

git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@382 3789f03b-4d11-0410-bbf8-ca57d06f2519

vncviewer/FTDialog.cxx
vncviewer/FTDialog.h
vncviewer/FTListView.cxx

index 08bb7717b0a7f5ce690ec91f068b9421e12b4e3f..f4f822066cca3c1ee169e3242c25d95737062b1e 100644 (file)
@@ -26,7 +26,7 @@
 using namespace rfb;
 using namespace rfb::win32;
 
-FTDialog::FTDialog(HINSTANCE hInst, FileTransfer *pFT) : Dialog(hInst)
+FTDialog::FTDialog(HINSTANCE hInst, FileTransfer *pFT)
 {
   m_pFileTransfer = pFT;
   m_hInstance = hInst;
@@ -35,17 +35,46 @@ FTDialog::FTDialog(HINSTANCE hInst, FileTransfer *pFT) : Dialog(hInst)
   m_szRemotePath[0] = '\0';
   m_szLocalPathTmp[0] = '\0';
   m_szRemotePathTmp[0] = '\0';
+
+  m_pLocalLV = NULL;
+  m_pRemoteLV = NULL;
+  m_pProgress = NULL;
 }
 
 FTDialog::~FTDialog()
 {
-  closeFTDialog();
+  destroyFTDialog();
 }
 
 bool
 FTDialog::createFTDialog()
 {
-       return false;
+  m_hwndFTDialog = CreateDialogParam(m_hInstance, 
+                                     MAKEINTRESOURCE(IDD_FILETRANSFER_DLG),
+                                     NULL, 
+                                     (DLGPROC) FTDialogProc,
+                                     (LONG) this);
+  
+  if (m_hwndFTDialog == NULL) return false;
+  
+  m_pLocalLV = new FTListView(GetDlgItem(m_hwndFTDialog, IDC_FTLOCALLIST));
+  m_pRemoteLV = new FTListView(GetDlgItem(m_hwndFTDialog, IDC_FTREMOTELIST));
+  
+  m_pProgress = new FTProgress(m_hwndFTDialog);
+  
+  if ((m_pLocalLV == NULL) || (m_pRemoteLV == NULL) || (m_pProgress == NULL)) {
+    destroyFTDialog();
+    return false;
+  }
+  
+  m_pLocalLV->initialize(m_hInstance);
+  m_pRemoteLV->initialize(m_hInstance);
+  
+  ShowWindow(m_hwndFTDialog, SW_SHOW);
+  UpdateWindow(m_hwndFTDialog);
+  m_bDlgShown = true;
+  
+  return true;
 }
 
 bool
@@ -54,9 +83,29 @@ FTDialog::initFTDialog()
   return false;
 }
 
-void
+bool
 FTDialog::closeFTDialog()
 {
+  return false;
+}
+
+void
+FTDialog::destroyFTDialog()
+{
+  if (m_pLocalLV != NULL) {
+    delete m_pLocalLV;
+    m_pLocalLV = NULL;
+  }
+
+  if (m_pRemoteLV != NULL) {
+    delete m_pRemoteLV;
+    m_pRemoteLV = NULL;
+  }
+
+  if (m_pProgress != NULL) {
+    delete m_pProgress;
+    m_pProgress = NULL;
+  }
 }
 
 BOOL CALLBACK 
index 2748d9c0cd5f0b549c1654738c5f29797a42190c..5bd165c9d2e498b3844de0c2e00d14e41707a2b6 100644 (file)
 #include <commctrl.h>
 
 #include <rfb/FileInfo.h>
-#include <rfb_win32/Dialog.h>
+#include <vncviewer/FTListView.h>
+#include <vncviewer/FTProgress.h>
 #include <vncviewer/FileTransfer.h>
 #include <vncviewer/resource.h>
 
 namespace rfb {
   namespace win32 {
-    class FTDialog : public Dialog
+    class FTDialog
     {
     public:
       FTDialog(HINSTANCE hInst, FileTransfer *pFT);
       ~FTDialog();
       
       bool createFTDialog();
-      void closeFTDialog();
+      bool closeFTDialog();
+      void destroyFTDialog();
       
       static BOOL CALLBACK FTDialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
       
@@ -74,6 +76,11 @@ namespace rfb {
       char m_szRemotePathTmp[MAX_PATH];
       
       bool m_bDlgShown;
+
+      FTListView *m_pLocalLV;
+      FTListView *m_pRemoteLV;
+
+      FTProgress *m_pProgress;
     };
   }
 }
index 8b43ba5a5273521feb564573517d213e0e4af129..ab43cbd56a184d760631b91bffc76a79cca3385a 100644 (file)
@@ -56,7 +56,9 @@ FTListView::initialize(HINSTANCE hInst)
   addColumn("Name", 0, xwidth0, LVCFMT_LEFT);
   addColumn("Size", 1, xwidth1, LVCFMT_RIGHT);
   addColumn("Data", 2, xwidth2, LVCFMT_LEFT);
-  
+
+  ListView_SetExtendedListViewStyleEx(m_hListView, LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT);
   return true;
 }