Develop and Download Open Source Software

Browse Subversion Repository

Annotation of /branches/ttcomtester/teraterm/teraterm/ftdlg.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 9067 - (hide annotations) (download) (as text)
Sun Dec 20 12:09:26 2020 UTC (3 years, 3 months ago) by zmatsuo
Original Path: trunk/teraterm/teraterm/ftdlg.cpp
File MIME type: text/x-c++src
File size: 9511 byte(s)
filesys.cpp (ファイル送信)を整理

- TFileVar を filesys.cpp ファイルローカルな構造体とした
  - filesys_send.h から filesys.cpp へ移動
  - filesys_send.h 削除
  - 不要、使用されない構造体メンバ削除、整理
- 使用されないコードなど削除
  - 未使用定数 GTF_BP に関するコードを削除
- FileTransEnd() -> FileSendEnd()
1 doda 6806 /*
2     * Copyright (C) 1994-1998 T. Teranishi
3 nmaya 9048 * (C) 2007- TeraTerm Project
4 doda 6806 * All rights reserved.
5     *
6 doda 6841 * Redistribution and use in source and binary forms, with or without
7     * modification, are permitted provided that the following conditions
8     * are met:
9 doda 6806 *
10 doda 6841 * 1. Redistributions of source code must retain the above copyright
11     * notice, this list of conditions and the following disclaimer.
12     * 2. Redistributions in binary form must reproduce the above copyright
13     * notice, this list of conditions and the following disclaimer in the
14     * documentation and/or other materials provided with the distribution.
15     * 3. The name of the author may not be used to endorse or promote products
16     * derived from this software without specific prior written permission.
17 doda 6806 *
18 doda 6841 * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
19     * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
20     * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21     * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT,
22     * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
23     * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24     * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25     * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26     * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27     * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 doda 6806 */
29 maya 3227
30     /* TERATERM.EXE, file transfer dialog box */
31 zmatsuo 7554 #include "teraterm_conf.h"
32    
33 zmatsuo 7526 #include <stdio.h>
34     #include <windows.h>
35     #include <commctrl.h>
36 zmatsuo 7554
37 maya 3227 #include "teraterm.h"
38     #include "tttypes.h"
39     #include "ttftypes.h"
40     #include "ttlib.h"
41 zmatsuo 7526 #include "dlglib.h"
42 maya 3227 #include "tt_res.h"
43     #include "ftdlg.h"
44 zmatsuo 7528 #include "teraterml.h"
45 zmatsuo 8225 #include "helpid.h"
46 zmatsuo 8857 #include "filesys.h"
47 zmatsuo 8899 #include "codeconv.h"
48 maya 3227
49     /////////////////////////////////////////////////////////////////////////////
50     // CFileTransDlg dialog
51    
52 zmatsuo 8895 CFileTransDlg::CFileTransDlg()
53 maya 3227 {
54 zmatsuo 8895 SmallIcon = NULL;
55     BigIcon = NULL;
56     DlgCaption = NULL;
57     FileName = NULL;
58     FullName = NULL;
59     ProgStat = 0;
60     }
61    
62     CFileTransDlg::~CFileTransDlg()
63     {
64     free(DlgCaption);
65     free(FileName);
66     free(FullName);
67     }
68    
69     BOOL CFileTransDlg::Create(HINSTANCE hInstance, CFileTransDlgInfo *info)
70     {
71 maya 3392 BOOL Ok;
72     int fuLoad = LR_DEFAULTCOLOR;
73 maya 4822 HWND hwnd;
74 maya 3227
75 zmatsuo 8895 UILanguageFile = info->UILanguageFile;
76 zmatsuo 9067 OpId = info->OpId; // OpLog or OpSendFile ����
77 zmatsuo 8899 DlgCaption = _wcsdup(info->DlgCaption);
78     FullName = _wcsdup(info->FullName);
79 zmatsuo 8902 if (info->FileName != NULL) {
80     FileName = _wcsdup(info->FileName);
81     }
82     else {
83     const wchar_t *fullname = info->FullName;
84     const wchar_t *p = wcsrchr(fullname, L'\\');
85     if (p == NULL) {
86     p = wcsrchr(fullname, L'/');
87     }
88     if (p == NULL) {
89     FileName = _wcsdup(fullname);
90     }
91     else {
92     FileName = _wcsdup(p + 1);
93     }
94     }
95 zmatsuo 8895 HideDialog = info->HideDialog;
96     HMainWin = info->HMainWin;
97 maya 3227
98 maya 3392 Pause = FALSE;
99 zmatsuo 7526 hwnd = GetForegroundWindow();
100 zmatsuo 8895 if (OpId == OpLog) { // parent window is desktop
101 zmatsuo 8850 Ok = TTCDialog::Create(hInstance, GetDesktopWindow(), IDD_FILETRANSDLG);
102 maya 3392 }
103     else { // parent window is VT window
104 zmatsuo 8850 Ok = TTCDialog::Create(hInstance, NULL, IDD_FILETRANSDLG);
105 maya 3392 }
106 zmatsuo 8895 if (OpId == OpSendFile) {
107     HWND HProg = ::GetDlgItem(m_hWnd, IDC_TRANSPROGRESS);
108    
109     ProgStat = 0;
110    
111     ::SendMessage(HProg, PBM_SETRANGE, (WPARAM)0, MAKELPARAM(0, 100));
112     ::SendMessage(HProg, PBM_SETSTEP, (WPARAM)1, 0);
113     ::SendMessage(HProg, PBM_SETPOS, (WPARAM)0, 0);
114    
115     ::ShowWindow(HProg, SW_SHOW);
116    
117 zmatsuo 8857 ::ShowWindow(GetDlgItem(IDC_TRANS_ELAPSED), SW_SHOW);
118     }
119 maya 3227
120 zmatsuo 8895 if (!HideDialog) {
121 maya 4818 // Visible = False ���_�C�A���O���\������
122 maya 3709 ShowWindow(SW_SHOWNORMAL);
123 zmatsuo 8895 if (OpId == OpLog) {
124 maya 3392 ShowWindow(SW_MINIMIZE);
125     }
126     }
127 maya 3596 else {
128 maya 4822 // ���O���t�H�A�O���E���h�������E�B���h�E���t�H�[�J�X�������B
129     // ���j���[�������O���X�^�[�g�������� VTWin ���t�H�[�J�X���������������K�v�������B
130 maya 3600 ::SetForegroundWindow(hwnd);
131 maya 3596 }
132 maya 3227
133 maya 3392 return Ok;
134 maya 3227 }
135    
136 zmatsuo 9056 #if 0
137 zmatsuo 8895 BOOL CFileTransDlg::Create(HINSTANCE hInstance, HWND hParent, PFileVar fv, PComVar pcv, PTTSet pts)
138     {
139     CFileTransDlgInfo info;
140    
141     info.UILanguageFile = pts->UILanguageFile;
142     info.OpId = fv->OpId;
143 zmatsuo 8899 info.DlgCaption = ToWcharA(fv->DlgCaption);
144     info.FileName = ToWcharA(&fv->FullName[fv->DirLen]);
145     info.FullName = ToWcharA(fv->FullName);
146 zmatsuo 8895 info.HideDialog = fv->HideDialog;
147     info.HMainWin = fv->HMainWin;
148     BOOL r = Create(hInstance, &info);
149     fv->HWin = m_hWnd;
150     fv->ProgStat = ProgStat;
151 zmatsuo 8899 free(info.DlgCaption);
152     free(info.FileName);
153     free(info.FullName);
154 zmatsuo 8895 return r;
155     }
156 zmatsuo 9056 #endif
157 zmatsuo 8895
158 zmatsuo 8857 /**
159     * �e�L�X�g�����X����
160     */
161 maya 3227 void CFileTransDlg::ChangeButton(BOOL PauseFlag)
162     {
163 maya 3392 Pause = PauseFlag;
164     if (Pause) {
165 zmatsuo 8857 static const DlgTextInfo TextInfos[] = {
166     { IDC_TRANSPAUSESTART, "DLG_FILETRANS_START" },
167     };
168     SetDlgTexts(m_hWnd, TextInfos, _countof(TextInfos), UILanguageFile);
169 maya 3392 }
170     else {
171 zmatsuo 8857 static const DlgTextInfo TextInfos[] = {
172     { IDC_TRANSPAUSESTART, "DLG_FILETRANS_PAUSE" },
173     };
174     SetDlgTexts(m_hWnd, TextInfos, _countof(TextInfos), UILanguageFile);
175 maya 3392 }
176 maya 3227 }
177    
178 zmatsuo 8895 void CFileTransDlg::RefreshNum(DWORD StartTime, LONG FileSize, LONG ByteCount)
179 maya 3227 {
180 maya 3392 char NumStr[24];
181     double rate;
182 doda 4454 int rate2;
183     static DWORD prev_elapsed;
184     DWORD elapsed;
185 maya 3227
186 zmatsuo 8895 if (OpId == OpSendFile) {
187     if (StartTime == 0) {
188 doda 4461 SetDlgItemText(IDC_TRANS_ETIME, "0:00");
189 doda 4454 prev_elapsed = 0;
190     }
191     else {
192 zmatsuo 8895 elapsed = (GetTickCount() - StartTime) / 1000;
193 doda 4454 if (elapsed != prev_elapsed && elapsed != 0) {
194 zmatsuo 8895 rate2 = ByteCount / elapsed;
195 doda 4454 if (rate2 < 1200) {
196     _snprintf_s(NumStr, sizeof(NumStr), _TRUNCATE, "%d:%02d (%dBytes/s)", elapsed / 60, elapsed % 60, rate2);
197     }
198     else if (rate2 < 1200000) {
199     _snprintf_s(NumStr, sizeof(NumStr), _TRUNCATE, "%d:%02d (%d.%02dKB/s)", elapsed / 60, elapsed % 60, rate2 / 1000, rate2 / 10 % 100);
200     }
201     else {
202     _snprintf_s(NumStr, sizeof(NumStr), _TRUNCATE, "%d:%02d (%d.%02dMB/s)", elapsed / 60, elapsed % 60, rate2 / (1000*1000), rate2 / 10000 % 100);
203     }
204 doda 4461 SetDlgItemText(IDC_TRANS_ETIME, NumStr);
205 doda 4454 prev_elapsed = elapsed;
206     }
207     }
208    
209 zmatsuo 8895 if (FileSize > 0) {
210     rate = 100.0 * (double)ByteCount / (double)FileSize;
211     if (ProgStat < (int)rate) {
212     ProgStat = (int)rate;
213     SendDlgItemMessage(IDC_TRANSPROGRESS, PBM_SETPOS, (WPARAM)ProgStat, 0);
214     }
215     _snprintf_s(NumStr,sizeof(NumStr),_TRUNCATE,"%u (%3.1f%%)",ByteCount, rate);
216 maya 3392 }
217 zmatsuo 8895 SetDlgItemText(IDC_TRANSBYTES, NumStr);
218 maya 3392 }
219     else {
220 zmatsuo 8895 _snprintf_s(NumStr,sizeof(NumStr),_TRUNCATE,"%u",ByteCount);
221     SetDlgItemText(IDC_TRANSBYTES, NumStr);
222 maya 3392 }
223 maya 3227 }
224    
225 zmatsuo 9056 #if 0
226 zmatsuo 8895 void CFileTransDlg::RefreshNum(TFileVar *fv)
227     {
228     ProgStat = fv->ProgStat;
229     RefreshNum(fv->StartTime, fv->FileSize, fv->ByteCount);
230     fv->ProgStat = ProgStat;
231     }
232 zmatsuo 9056 #endif
233 zmatsuo 8895
234 maya 3227 /////////////////////////////////////////////////////////////////////////////
235     // CFileTransDlg message handler
236    
237     BOOL CFileTransDlg::OnInitDialog()
238     {
239 zmatsuo 7526 static const DlgTextInfo TextInfos[] = {
240     { IDC_TRANS_FILENAME, "DLG_FILETRANS_FILENAME" },
241     { IDC_FULLPATH_LABEL, "DLG_FILETRANS_FULLPATH" },
242     { IDC_TRANS_TRANS, "DLG_FILETRANS_TRNAS" },
243     { IDC_TRANS_ELAPSED, "DLG_FILETRANS_ELAPSED" },
244     { IDCANCEL, "DLG_FILETRANS_CLOSE" },
245     { IDC_TRANSPAUSESTART, "DLG_FILETRANS_PAUSE" },
246     { IDC_TRANSHELP, "BTN_HELP" },
247     };
248    
249 maya 3392 int fuLoad = LR_DEFAULTCOLOR;
250 maya 3227
251 zmatsuo 8895 if (HideDialog) {
252 maya 4822 // Visible = False �����t�H�A�O���E���h�����������������A������������
253     // �������g���X�^�C�� WS_EX_NOACTIVATE ���w�������B
254     // (Windows 2000 �������L��)
255     // WS_EX_NOACTIVATE ���w���������\�����������������^�X�N�o�[����������
256     // ���� WS_EX_APPWINDOW ���w�������B
257     ModifyStyleEx(0, WS_EX_NOACTIVATE | WS_EX_APPWINDOW);
258     }
259    
260 zmatsuo 8899 SetWindowTextW(DlgCaption);
261     SetDlgItemTextW(IDC_TRANSFNAME, FileName);
262     SetDlgItemTextW(IDC_EDIT_FULLPATH, FullName);
263 maya 3227
264 zmatsuo 8857 SetDlgTexts(m_hWnd, TextInfos, _countof(TextInfos), UILanguageFile);
265 zmatsuo 7526
266 yutakapon 6286 if (IsWindowsNT4()) {
267 maya 3392 fuLoad = LR_VGACOLOR;
268     }
269 zmatsuo 7526 SmallIcon = LoadImage(m_hInst,
270     MAKEINTRESOURCE(IDI_TTERM),
271     IMAGE_ICON, 16, 16, fuLoad);
272 yutakapon 6504 ::PostMessage(GetSafeHwnd(), WM_SETICON, ICON_SMALL,
273 zmatsuo 7526 (LPARAM)SmallIcon);
274 maya 3227
275 zmatsuo 7526 BigIcon = LoadImage(m_hInst,
276     MAKEINTRESOURCE(IDI_TTERM),
277     IMAGE_ICON, 0, 0, fuLoad);
278 yutakapon 6504 ::PostMessage(GetSafeHwnd(), WM_SETICON, ICON_BIG,
279 zmatsuo 7526 (LPARAM)BigIcon);
280 yutakapon 6504
281 zmatsuo 7915 AddModelessHandle(m_hWnd);
282 zmatsuo 7526
283     return TRUE;
284 maya 3227 }
285    
286 zmatsuo 7526 BOOL CFileTransDlg::OnCancel( )
287 maya 3227 {
288 zmatsuo 8900 if (OpId == OpLog) {
289     FLogClose();
290     }
291     else {
292 zmatsuo 9067 FileSendEnd();
293 zmatsuo 8900 }
294 zmatsuo 7526 return TRUE;
295 maya 3227 }
296    
297 doda 6435 BOOL CFileTransDlg::OnCommand(WPARAM wParam, LPARAM lParam)
298 maya 3227 {
299 maya 3392 switch (LOWORD(wParam)) {
300     case IDC_TRANSPAUSESTART:
301     ChangeButton(! Pause);
302 zmatsuo 8900 if (OpId == OpLog) {
303     FLogPause(Pause);
304     }
305     else {
306     FileTransPause(OpId, Pause);
307     }
308 maya 3392 return TRUE;
309     case IDC_TRANSHELP:
310 zmatsuo 8895 if (OpId == OpLog) {
311     ::PostMessage(HMainWin, WM_USER_DLGHELP2, HlpFileLog, 0);
312 zmatsuo 8851 }
313     else {
314 zmatsuo 8895 ::PostMessage(HMainWin, WM_USER_DLGHELP2, HlpFileSend, 0);
315 zmatsuo 8851 }
316 maya 3392 return TRUE;
317     default:
318 zmatsuo 7526 return (TTCDialog::OnCommand(wParam,lParam));
319 maya 3392 }
320 maya 3227 }
321    
322 zmatsuo 7526 BOOL CFileTransDlg::PostNcDestroy()
323 maya 3227 {
324 yutakapon 6504 // logopen��logclose���J���������AGDI���\�[�X���[�N�������������C�������B
325     // - LoadImage()�������A�C�R�����\�[�X�����������B
326     // (2016.10.5 yutaka)
327     if (SmallIcon) {
328     DestroyIcon((HICON)SmallIcon);
329     SmallIcon = NULL;
330     }
331    
332     if (BigIcon) {
333     DestroyIcon((HICON)BigIcon);
334     BigIcon = NULL;
335     }
336    
337 zmatsuo 7915 RemoveModelessHandle(m_hWnd);
338 zmatsuo 7526
339 maya 3392 delete this;
340 zmatsuo 7526 return TRUE;
341 maya 3227 }

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26