]> source.dussan.org Git - tigervnc.git/commitdiff
Code improvements.
authorDennis Syrovatsky <dennis@tightvnc.com>
Wed, 9 Nov 2005 08:21:41 +0000 (08:21 +0000)
committerDennis Syrovatsky <dennis@tightvnc.com>
Wed, 9 Nov 2005 08:21:41 +0000 (08:21 +0000)
Added code for FTDialog::FTDialogProc(...) method.
Now user can see the list of local drives in the File Transfers dialog.

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

vncviewer/FTDialog.cxx
vncviewer/FileTransfer.cxx

index f8054b062735fcea7dd73622e003ecd57b28bd1a..49c948ffbb76e54a14f43d88c434a1716e9e4f77 100644 (file)
@@ -59,8 +59,16 @@ FTDialog::createFTDialog()
   
   if (m_hwndFTDialog == NULL) return false;
   
-  m_pLocalLV = new FTListView(GetDlgItem(m_hwndFTDialog, IDC_FTLOCALLIST));
-  m_pRemoteLV = new FTListView(GetDlgItem(m_hwndFTDialog, IDC_FTREMOTELIST));
+  HWND hwndLocalList = GetDlgItem(m_hwndFTDialog, IDC_FTLOCALLIST);
+  HWND hwndRemoteList = GetDlgItem(m_hwndFTDialog, IDC_FTREMOTELIST);
+
+  if ((hwndLocalList == NULL) || (hwndRemoteList == NULL)) {
+    destroyFTDialog();
+    return false;
+  }
+
+  m_pLocalLV = new FTListView(hwndLocalList);
+  m_pRemoteLV = new FTListView(hwndRemoteList);
   
   m_pProgress = new FTProgress(m_hwndFTDialog);
   
@@ -71,15 +79,10 @@ FTDialog::createFTDialog()
 
   initFTDialog();
   
-  if (ShowWindow(m_hwndFTDialog, SW_SHOW) == 0) {
-    UpdateWindow(m_hwndFTDialog);
-    m_bDlgShown = true;
-    return true;
-  } else {
-    destroyFTDialog();
-    m_bDlgShown = false;
-    return false;
-  } 
+  ShowWindow(m_hwndFTDialog, SW_SHOW);
+  UpdateWindow(m_hwndFTDialog);
+  m_bDlgShown = true;
+  return true;
 }
 
 bool
@@ -99,6 +102,8 @@ FTDialog::initFTDialog()
 bool
 FTDialog::closeFTDialog()
 {
+  ShowWindow(m_hwndFTDialog, SW_HIDE);
+  m_bDlgShown = false;
   return false;
 }
 
@@ -119,13 +124,64 @@ FTDialog::destroyFTDialog()
     delete m_pProgress;
     m_pProgress = NULL;
   }
+
+  if (DestroyWindow(m_hwndFTDialog)) m_hwndFTDialog = NULL;
 }
 
 BOOL CALLBACK 
 FTDialog::FTDialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 {
        FTDialog *_this = (FTDialog *) GetWindowLong(hwnd, GWL_USERDATA);
-       return FALSE;
+       switch (uMsg)
+       {
+       case WM_INITDIALOG:
+               SetWindowLong(hwnd, GWL_USERDATA, (LONG) lParam);
+               SetForegroundWindow(hwnd);
+               return TRUE;
+       case WM_COMMAND:
+               {
+               switch (LOWORD(wParam))
+               {
+                       case IDC_FTCLOSE:
+                               _this->closeFTDialog();
+                               return FALSE;
+                       case IDC_FTLOCALUP:
+                               _this->onLocalOneUpFolder();
+                               return FALSE;
+                       case IDC_FTREMOTEUP:
+                               _this->onRemoteOneUpFolder();
+                               return FALSE;
+               }
+               }
+       break;
+
+       case WM_NOTIFY:
+               switch (LOWORD(wParam))
+               {
+               case IDC_FTLOCALLIST:
+                       switch (((LPNMHDR) lParam)->code)
+                       {
+                               case LVN_GETDISPINFO:
+                                       _this->m_pLocalLV->onGetDispInfo((NMLVDISPINFO *) lParam);
+                                       return FALSE;
+                       }
+               break;
+               case IDC_FTREMOTELIST:
+                       switch (((LPNMHDR) lParam)->code)
+                       {
+                               case LVN_GETDISPINFO:
+                                       _this->m_pRemoteLV->onGetDispInfo((NMLVDISPINFO *) lParam);
+                                       return FALSE;
+                       }
+               break;
+               }
+               break;
+       case WM_CLOSE:
+       case WM_DESTROY:
+               _this->closeFTDialog();
+               return FALSE;
+       }
+    return FALSE;
 }
 
 void 
index 73e77caeef8159cbde6f26e0b3fc69366c837ba6..82888af55a55f5e295dcf132fc55719e6a8159bb 100644 (file)
@@ -67,5 +67,11 @@ FileTransfer::show()
   if (!m_bInitialized) return false;
 
   m_bFTDlgShown = m_pFTDialog->createFTDialog();
+
+  FolderManager fm;
+  FileInfo fileInfo;
+  fm.getDirInfo("",&fileInfo, 0);
+  m_pFTDialog->addLocalLVItems("", &fileInfo);
+
   return m_bFTDlgShown;
 }