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 7926 - (hide annotations) (download) (as text)
Thu Aug 8 15:17:15 2019 UTC (4 years, 8 months ago) by zmatsuo
Original Path: trunk/teraterm/teraterm/ftdlg.cpp
File MIME type: text/x-c++src
File size: 7533 byte(s)
未使用変数、未使用defineを削除
1 doda 6806 /*
2     * Copyright (C) 1994-1998 T. Teranishi
3 zmatsuo 7526 * (C) 2007-2019 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     #include <tchar.h>
37 zmatsuo 7554
38 maya 3227 #include "teraterm.h"
39     #include "tttypes.h"
40     #include "ttftypes.h"
41     #include "ttlib.h"
42 zmatsuo 7526 #include "dlglib.h"
43 maya 3227 #include "tt_res.h"
44     #include "ftdlg.h"
45 zmatsuo 7528 #include "teraterml.h"
46 maya 3227
47     /////////////////////////////////////////////////////////////////////////////
48     // CFileTransDlg dialog
49    
50 zmatsuo 7526 BOOL CFileTransDlg::Create(HINSTANCE hInstance, HWND hParent, PFileVar pfv, PComVar pcv, PTTSet pts)
51 maya 3227 {
52 maya 3392 BOOL Ok;
53     int fuLoad = LR_DEFAULTCOLOR;
54 maya 4822 HWND hwnd;
55 maya 3227
56 maya 3392 fv = pfv;
57     cv = pcv;
58     cv->FilePause &= ~fv->OpId;
59     ts = pts;
60 maya 3227
61 maya 3392 Pause = FALSE;
62 zmatsuo 7526 hwnd = GetForegroundWindow();
63 maya 3392 if (fv->OpId == OpLog) { // parent window is desktop
64 zmatsuo 7526 Ok = TTCDialog::Create(hInstance, GetDesktopWindow(), CFileTransDlg::IDD);
65 maya 3392 }
66     else { // parent window is VT window
67 zmatsuo 7526 Ok = TTCDialog::Create(hInstance, NULL, CFileTransDlg::IDD);
68 maya 3392 }
69 maya 3227
70 maya 3392 if (!fv->HideDialog) {
71 maya 4818 // Visible = False ���_�C�A���O���\������
72 maya 3709 ShowWindow(SW_SHOWNORMAL);
73 maya 3392 if (fv->OpId == OpLog) {
74     ShowWindow(SW_MINIMIZE);
75     }
76     }
77 maya 3596 else {
78 maya 4822 // ���O���t�H�A�O���E���h�������E�B���h�E���t�H�[�J�X�������B
79     // ���j���[�������O���X�^�[�g�������� VTWin ���t�H�[�J�X���������������K�v�������B
80 maya 3600 ::SetForegroundWindow(hwnd);
81 maya 3596 }
82 maya 3227
83 maya 3392 fv->HWin = GetSafeHwnd();
84 maya 3227
85 maya 3392 return Ok;
86 maya 3227 }
87    
88     void CFileTransDlg::ChangeButton(BOOL PauseFlag)
89     {
90 maya 3392 Pause = PauseFlag;
91     if (Pause) {
92     get_lang_msg("DLG_FILETRANS_START", ts->UIMsg, sizeof(ts->UIMsg), "&Start", ts->UILanguageFile);
93     SetDlgItemText(IDC_TRANSPAUSESTART, ts->UIMsg);
94     cv->FilePause |= fv->OpId;
95     }
96     else {
97     get_lang_msg("DLG_FILETRANS_PAUSE", ts->UIMsg, sizeof(ts->UIMsg), "Pau&se", ts->UILanguageFile);
98     SetDlgItemText(IDC_TRANSPAUSESTART, ts->UIMsg);
99     cv->FilePause &= ~fv->OpId;
100     }
101 maya 3227 }
102    
103     void CFileTransDlg::RefreshNum()
104     {
105 maya 3392 char NumStr[24];
106     double rate;
107 doda 4454 int rate2;
108     static DWORD prev_elapsed;
109     DWORD elapsed;
110 maya 3227
111 doda 4454 if (fv->OpId == OpSendFile) {
112     if (fv->StartTime == 0) {
113 doda 4461 SetDlgItemText(IDC_TRANS_ETIME, "0:00");
114 doda 4454 prev_elapsed = 0;
115     }
116     else {
117     elapsed = (GetTickCount() - fv->StartTime) / 1000;
118     if (elapsed != prev_elapsed && elapsed != 0) {
119     rate2 = fv->ByteCount / elapsed;
120     if (rate2 < 1200) {
121     _snprintf_s(NumStr, sizeof(NumStr), _TRUNCATE, "%d:%02d (%dBytes/s)", elapsed / 60, elapsed % 60, rate2);
122     }
123     else if (rate2 < 1200000) {
124     _snprintf_s(NumStr, sizeof(NumStr), _TRUNCATE, "%d:%02d (%d.%02dKB/s)", elapsed / 60, elapsed % 60, rate2 / 1000, rate2 / 10 % 100);
125     }
126     else {
127     _snprintf_s(NumStr, sizeof(NumStr), _TRUNCATE, "%d:%02d (%d.%02dMB/s)", elapsed / 60, elapsed % 60, rate2 / (1000*1000), rate2 / 10000 % 100);
128     }
129 doda 4461 SetDlgItemText(IDC_TRANS_ETIME, NumStr);
130 doda 4454 prev_elapsed = elapsed;
131     }
132     }
133     }
134    
135 maya 3392 if (fv->OpId == OpSendFile && fv->FileSize > 0) {
136     rate = 100.0 * (double)fv->ByteCount / (double)fv->FileSize;
137     if (fv->ProgStat < (int)rate) {
138     fv->ProgStat = (int)rate;
139     SendDlgItemMessage(IDC_TRANSPROGRESS, PBM_SETPOS, (WPARAM)fv->ProgStat, 0);
140     }
141     _snprintf_s(NumStr,sizeof(NumStr),_TRUNCATE,"%u (%3.1f%%)",fv->ByteCount, rate);
142     }
143     else {
144     _snprintf_s(NumStr,sizeof(NumStr),_TRUNCATE,"%u",fv->ByteCount);
145     }
146     SetDlgItemText(IDC_TRANSBYTES, NumStr);
147 maya 3227 }
148    
149     /////////////////////////////////////////////////////////////////////////////
150     // CFileTransDlg message handler
151    
152     BOOL CFileTransDlg::OnInitDialog()
153     {
154 zmatsuo 7526 static const DlgTextInfo TextInfos[] = {
155     { IDC_TRANS_FILENAME, "DLG_FILETRANS_FILENAME" },
156     { IDC_FULLPATH_LABEL, "DLG_FILETRANS_FULLPATH" },
157     { IDC_TRANS_TRANS, "DLG_FILETRANS_TRNAS" },
158     { IDC_TRANS_ELAPSED, "DLG_FILETRANS_ELAPSED" },
159     { IDCANCEL, "DLG_FILETRANS_CLOSE" },
160     { IDC_TRANSPAUSESTART, "DLG_FILETRANS_PAUSE" },
161     { IDC_TRANSHELP, "BTN_HELP" },
162     };
163    
164 maya 3392 int fuLoad = LR_DEFAULTCOLOR;
165 maya 3227
166 maya 4822 if (fv->HideDialog) {
167     // Visible = False �����t�H�A�O���E���h�����������������A������������
168     // �������g���X�^�C�� WS_EX_NOACTIVATE ���w�������B
169     // (Windows 2000 �������L��)
170     // WS_EX_NOACTIVATE ���w���������\�����������������^�X�N�o�[����������
171     // ���� WS_EX_APPWINDOW ���w�������B
172     ModifyStyleEx(0, WS_EX_NOACTIVATE | WS_EX_APPWINDOW);
173     }
174    
175 maya 3392 SetWindowText(fv->DlgCaption);
176     SetDlgItemText(IDC_TRANSFNAME, &(fv->FullName[fv->DirLen]));
177 maya 3227
178 maya 3392 // ���O�t�@�C�����t���p�X�\��������(2004.8.6 yutaka)
179     SetDlgItemText(IDC_EDIT_FULLPATH, &(fv->FullName[0]));
180 maya 3227
181 zmatsuo 7526 SetDlgTexts(m_hWnd, TextInfos, _countof(TextInfos), ts->UILanguageFile);
182    
183 yutakapon 6286 if (IsWindowsNT4()) {
184 maya 3392 fuLoad = LR_VGACOLOR;
185     }
186 zmatsuo 7526 SmallIcon = LoadImage(m_hInst,
187     MAKEINTRESOURCE(IDI_TTERM),
188     IMAGE_ICON, 16, 16, fuLoad);
189 yutakapon 6504 ::PostMessage(GetSafeHwnd(), WM_SETICON, ICON_SMALL,
190 zmatsuo 7526 (LPARAM)SmallIcon);
191 maya 3227
192 zmatsuo 7526 BigIcon = LoadImage(m_hInst,
193     MAKEINTRESOURCE(IDI_TTERM),
194     IMAGE_ICON, 0, 0, fuLoad);
195 yutakapon 6504 ::PostMessage(GetSafeHwnd(), WM_SETICON, ICON_BIG,
196 zmatsuo 7526 (LPARAM)BigIcon);
197 yutakapon 6504
198 zmatsuo 7915 AddModelessHandle(m_hWnd);
199 zmatsuo 7526
200     return TRUE;
201 maya 3227 }
202    
203 zmatsuo 7526 BOOL CFileTransDlg::OnCancel( )
204 maya 3227 {
205 maya 3392 ::PostMessage(fv->HMainWin,WM_USER_FTCANCEL,fv->OpId,0);
206 zmatsuo 7526 return TRUE;
207 maya 3227 }
208    
209 doda 6435 BOOL CFileTransDlg::OnCommand(WPARAM wParam, LPARAM lParam)
210 maya 3227 {
211 maya 3392 switch (LOWORD(wParam)) {
212     case IDCANCEL:
213     ::PostMessage(fv->HMainWin,WM_USER_FTCANCEL,fv->OpId,0);
214     return TRUE;
215     case IDC_TRANSPAUSESTART:
216     ChangeButton(! Pause);
217     return TRUE;
218     case IDC_TRANSHELP:
219     ::PostMessage(fv->HMainWin,WM_USER_DLGHELP2,0,0);
220     return TRUE;
221     default:
222 zmatsuo 7526 return (TTCDialog::OnCommand(wParam,lParam));
223 maya 3392 }
224 maya 3227 }
225    
226 zmatsuo 7526 BOOL CFileTransDlg::PostNcDestroy()
227 maya 3227 {
228 yutakapon 6504 // logopen��logclose���J���������AGDI���\�[�X���[�N�������������C�������B
229     // - LoadImage()�������A�C�R�����\�[�X�����������B
230     // (2016.10.5 yutaka)
231     if (SmallIcon) {
232     DestroyIcon((HICON)SmallIcon);
233     SmallIcon = NULL;
234     }
235    
236     if (BigIcon) {
237     DestroyIcon((HICON)BigIcon);
238     BigIcon = NULL;
239     }
240    
241 zmatsuo 7915 RemoveModelessHandle(m_hWnd);
242 zmatsuo 7526
243 maya 3392 delete this;
244 zmatsuo 7526 return TRUE;
245 maya 3227 }

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