Added FileTransfer::createFileTransfer.
Code improvements.


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@383 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/vncviewer/FTDialog.cxx b/vncviewer/FTDialog.cxx
index f4f8220..e4d1830 100644
--- a/vncviewer/FTDialog.cxx
+++ b/vncviewer/FTDialog.cxx
@@ -39,6 +39,8 @@
   m_pLocalLV = NULL;
   m_pRemoteLV = NULL;
   m_pProgress = NULL;
+
+  m_hwndFTDialog = false;
 }
 
 FTDialog::~FTDialog()
@@ -49,6 +51,8 @@
 bool
 FTDialog::createFTDialog()
 {
+  if (m_hwndFTDialog != NULL) return true;
+
   m_hwndFTDialog = CreateDialogParam(m_hInstance, 
                                      MAKEINTRESOURCE(IDD_FILETRANSFER_DLG),
                                      NULL, 
@@ -66,21 +70,29 @@
     destroyFTDialog();
     return false;
   }
+
+  initFTDialog();
   
-  m_pLocalLV->initialize(m_hInstance);
-  m_pRemoteLV->initialize(m_hInstance);
-  
-  ShowWindow(m_hwndFTDialog, SW_SHOW);
-  UpdateWindow(m_hwndFTDialog);
-  m_bDlgShown = true;
-  
-  return true;
+  if (ShowWindow(m_hwndFTDialog, SW_SHOW) == 0) {
+    UpdateWindow(m_hwndFTDialog);
+    m_bDlgShown = true;
+    return true;
+  } else {
+    destroyFTDialog();
+    m_bDlgShown = false;
+    return false;
+  } 
 }
 
 bool
 FTDialog::initFTDialog()
 {
-  return false;
+  m_pLocalLV->initialize(m_hInstance);
+  m_pRemoteLV->initialize(m_hInstance);
+
+  m_pProgress->initialize(0,0);
+
+  return true;
 }
 
 bool