blob: f8054b062735fcea7dd73622e003ecd57b28bd1a [file] [log] [blame]
Dennis Syrovatsky139d7832005-11-02 05:36:05 +00001/* Copyright (C) 2005 TightVNC Team. All Rights Reserved.
2 *
3 * This is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation; either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This software is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this software; if not, write to the Free Software
15 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
16 * USA.
17 *
18 * TightVNC distribution homepage on the Web: http://www.tightvnc.com/
19 *
20 */
21
22// -=- FTDialog.cxx
23
24#include <vncviewer/FTDialog.h>
25
26using namespace rfb;
27using namespace rfb::win32;
28
Dennis Syrovatsky6c6786d2005-11-07 09:17:38 +000029FTDialog::FTDialog(HINSTANCE hInst, FileTransfer *pFT)
Dennis Syrovatsky139d7832005-11-02 05:36:05 +000030{
31 m_pFileTransfer = pFT;
32 m_hInstance = hInst;
33 m_bDlgShown = false;
Dennis Syrovatsky6c6786d2005-11-07 09:17:38 +000034
35 m_pLocalLV = NULL;
36 m_pRemoteLV = NULL;
37 m_pProgress = NULL;
Dennis Syrovatsky4ab41852005-11-07 09:52:36 +000038
Dennis Syrovatskyec906992005-11-07 09:56:06 +000039 m_hwndFTDialog = NULL;
Dennis Syrovatskyb595e032005-11-09 06:24:25 +000040 m_hwndLocalPath = NULL;
41 m_hwndRemotePath = NULL;
Dennis Syrovatsky139d7832005-11-02 05:36:05 +000042}
43
44FTDialog::~FTDialog()
45{
Dennis Syrovatsky6c6786d2005-11-07 09:17:38 +000046 destroyFTDialog();
Dennis Syrovatsky139d7832005-11-02 05:36:05 +000047}
48
49bool
50FTDialog::createFTDialog()
51{
Dennis Syrovatsky4ab41852005-11-07 09:52:36 +000052 if (m_hwndFTDialog != NULL) return true;
53
Dennis Syrovatsky6c6786d2005-11-07 09:17:38 +000054 m_hwndFTDialog = CreateDialogParam(m_hInstance,
55 MAKEINTRESOURCE(IDD_FILETRANSFER_DLG),
56 NULL,
57 (DLGPROC) FTDialogProc,
58 (LONG) this);
59
60 if (m_hwndFTDialog == NULL) return false;
61
62 m_pLocalLV = new FTListView(GetDlgItem(m_hwndFTDialog, IDC_FTLOCALLIST));
63 m_pRemoteLV = new FTListView(GetDlgItem(m_hwndFTDialog, IDC_FTREMOTELIST));
64
65 m_pProgress = new FTProgress(m_hwndFTDialog);
66
67 if ((m_pLocalLV == NULL) || (m_pRemoteLV == NULL) || (m_pProgress == NULL)) {
68 destroyFTDialog();
69 return false;
70 }
Dennis Syrovatsky4ab41852005-11-07 09:52:36 +000071
72 initFTDialog();
Dennis Syrovatsky6c6786d2005-11-07 09:17:38 +000073
Dennis Syrovatsky4ab41852005-11-07 09:52:36 +000074 if (ShowWindow(m_hwndFTDialog, SW_SHOW) == 0) {
75 UpdateWindow(m_hwndFTDialog);
76 m_bDlgShown = true;
77 return true;
78 } else {
79 destroyFTDialog();
80 m_bDlgShown = false;
81 return false;
82 }
Dennis Syrovatsky139d7832005-11-02 05:36:05 +000083}
84
85bool
86FTDialog::initFTDialog()
87{
Dennis Syrovatsky4ab41852005-11-07 09:52:36 +000088 m_pLocalLV->initialize(m_hInstance);
89 m_pRemoteLV->initialize(m_hInstance);
90
91 m_pProgress->initialize(0,0);
92
Dennis Syrovatskyb595e032005-11-09 06:24:25 +000093 m_hwndLocalPath = GetDlgItem(m_hwndLocalPath, IDC_FTLOCALPATH);
94 m_hwndRemotePath = GetDlgItem(m_hwndRemotePath, IDC_FTREMOTEPATH);
95
Dennis Syrovatsky4ab41852005-11-07 09:52:36 +000096 return true;
Dennis Syrovatsky139d7832005-11-02 05:36:05 +000097}
98
Dennis Syrovatsky6c6786d2005-11-07 09:17:38 +000099bool
Dennis Syrovatsky139d7832005-11-02 05:36:05 +0000100FTDialog::closeFTDialog()
101{
Dennis Syrovatsky6c6786d2005-11-07 09:17:38 +0000102 return false;
103}
104
105void
106FTDialog::destroyFTDialog()
107{
108 if (m_pLocalLV != NULL) {
109 delete m_pLocalLV;
110 m_pLocalLV = NULL;
111 }
112
113 if (m_pRemoteLV != NULL) {
114 delete m_pRemoteLV;
115 m_pRemoteLV = NULL;
116 }
117
118 if (m_pProgress != NULL) {
119 delete m_pProgress;
120 m_pProgress = NULL;
121 }
Dennis Syrovatsky139d7832005-11-02 05:36:05 +0000122}
123
124BOOL CALLBACK
125FTDialog::FTDialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
126{
127 FTDialog *_this = (FTDialog *) GetWindowLong(hwnd, GWL_USERDATA);
128 return FALSE;
129}
130
Dennis Syrovatsky139d7832005-11-02 05:36:05 +0000131void
132FTDialog::onLocalItemActivate(LPNMITEMACTIVATE lpnmia)
133{
134}
135
136void
137FTDialog::onRemoteItemActivate(LPNMITEMACTIVATE lpnmia)
138{
139}
140
141void
Dennis Syrovatskyb595e032005-11-09 06:24:25 +0000142FTDialog::addLocalLVItems(char *pPath, FileInfo *pFI)
143{
144 pFI->sort();
145 SetWindowText(m_hwndLocalPath, pPath);
146 m_pLocalLV->deleteAllItems();
147 m_pLocalLV->addItems(pFI);
148}
149
150void
151FTDialog::addRemoteLVItems(char *pPath, FileInfo *pFI)
152{
153 pFI->sort();
154 SetWindowText(m_hwndRemotePath, pPath);
155 m_pRemoteLV->deleteAllItems();
156 m_pRemoteLV->addItems(pFI);
157}
158
159void
160FTDialog::onLocalOneUpFolder()
Dennis Syrovatsky139d7832005-11-02 05:36:05 +0000161{
162}
163
164void
Dennis Syrovatskyb595e032005-11-09 06:24:25 +0000165FTDialog::onRemoteOneUpFolder()
Dennis Syrovatsky139d7832005-11-02 05:36:05 +0000166{
167}