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 8857 - (hide annotations) (download) (as text)
Sat Jul 25 15:59:47 2020 UTC (3 years, 8 months ago) by zmatsuo
Original Path: trunk/teraterm/teraterm/ftdlg.cpp
File MIME type: text/x-c++src
File size: 7809 byte(s)
ログ関連API追加,ftdlg修正

- FLogWindow() 追加
  - グローバル変数 HWND HWndLog 削除
- FLogPause() 追加
  - FLogChangeButton() を static関数に変更
- FLogShowDlg() 追加
  - ShowFTDlg() を static関数に変更
- FLogIsPause()追加
- ftdlg
  - cv->FilePauseを操作しないようにした
    - FileTransPause()#filesys を追加
  - WM_USER_FTCANCEL メッセージを削除
    - FileTransEnd() を直接コール
1 doda 6806 /*
2     * Copyright (C) 1994-1998 T. Teranishi
3 zmatsuo 8857 * (C) 2007-2020 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 maya 3227
48     /////////////////////////////////////////////////////////////////////////////
49     // CFileTransDlg dialog
50    
51 zmatsuo 7526 BOOL CFileTransDlg::Create(HINSTANCE hInstance, HWND hParent, PFileVar pfv, PComVar pcv, PTTSet pts)
52 maya 3227 {
53 maya 3392 BOOL Ok;
54     int fuLoad = LR_DEFAULTCOLOR;
55 maya 4822 HWND hwnd;
56 maya 3227
57 maya 3392 fv = pfv;
58 zmatsuo 8857 UILanguageFile = pts->UILanguageFile;
59 maya 3227
60 maya 3392 Pause = FALSE;
61 zmatsuo 7526 hwnd = GetForegroundWindow();
62 maya 3392 if (fv->OpId == OpLog) { // parent window is desktop
63 zmatsuo 8850 Ok = TTCDialog::Create(hInstance, GetDesktopWindow(), IDD_FILETRANSDLG);
64 maya 3392 }
65     else { // parent window is VT window
66 zmatsuo 8850 Ok = TTCDialog::Create(hInstance, NULL, IDD_FILETRANSDLG);
67 maya 3392 }
68 zmatsuo 8857 if (fv->OpId == OpSendFile) {
69     InitDlgProgress(m_hWnd, IDC_TRANSPROGRESS, &fv->ProgStat);
70     ::ShowWindow(GetDlgItem(IDC_TRANS_ELAPSED), SW_SHOW);
71     }
72 maya 3227
73 maya 3392 if (!fv->HideDialog) {
74 maya 4818 // Visible = False ���_�C�A���O���\������
75 maya 3709 ShowWindow(SW_SHOWNORMAL);
76 maya 3392 if (fv->OpId == OpLog) {
77     ShowWindow(SW_MINIMIZE);
78     }
79     }
80 maya 3596 else {
81 maya 4822 // ���O���t�H�A�O���E���h�������E�B���h�E���t�H�[�J�X�������B
82     // ���j���[�������O���X�^�[�g�������� VTWin ���t�H�[�J�X���������������K�v�������B
83 maya 3600 ::SetForegroundWindow(hwnd);
84 maya 3596 }
85 maya 3227
86 maya 3392 fv->HWin = GetSafeHwnd();
87 maya 3227
88 maya 3392 return Ok;
89 maya 3227 }
90    
91 zmatsuo 8857 /**
92     * �e�L�X�g�����X����
93     */
94 maya 3227 void CFileTransDlg::ChangeButton(BOOL PauseFlag)
95     {
96 maya 3392 Pause = PauseFlag;
97     if (Pause) {
98 zmatsuo 8857 static const DlgTextInfo TextInfos[] = {
99     { IDC_TRANSPAUSESTART, "DLG_FILETRANS_START" },
100     };
101     SetDlgTexts(m_hWnd, TextInfos, _countof(TextInfos), UILanguageFile);
102 maya 3392 }
103     else {
104 zmatsuo 8857 static const DlgTextInfo TextInfos[] = {
105     { IDC_TRANSPAUSESTART, "DLG_FILETRANS_PAUSE" },
106     };
107     SetDlgTexts(m_hWnd, TextInfos, _countof(TextInfos), UILanguageFile);
108 maya 3392 }
109 maya 3227 }
110    
111     void CFileTransDlg::RefreshNum()
112     {
113 maya 3392 char NumStr[24];
114     double rate;
115 doda 4454 int rate2;
116     static DWORD prev_elapsed;
117     DWORD elapsed;
118 maya 3227
119 doda 4454 if (fv->OpId == OpSendFile) {
120     if (fv->StartTime == 0) {
121 doda 4461 SetDlgItemText(IDC_TRANS_ETIME, "0:00");
122 doda 4454 prev_elapsed = 0;
123     }
124     else {
125     elapsed = (GetTickCount() - fv->StartTime) / 1000;
126     if (elapsed != prev_elapsed && elapsed != 0) {
127     rate2 = fv->ByteCount / elapsed;
128     if (rate2 < 1200) {
129     _snprintf_s(NumStr, sizeof(NumStr), _TRUNCATE, "%d:%02d (%dBytes/s)", elapsed / 60, elapsed % 60, rate2);
130     }
131     else if (rate2 < 1200000) {
132     _snprintf_s(NumStr, sizeof(NumStr), _TRUNCATE, "%d:%02d (%d.%02dKB/s)", elapsed / 60, elapsed % 60, rate2 / 1000, rate2 / 10 % 100);
133     }
134     else {
135     _snprintf_s(NumStr, sizeof(NumStr), _TRUNCATE, "%d:%02d (%d.%02dMB/s)", elapsed / 60, elapsed % 60, rate2 / (1000*1000), rate2 / 10000 % 100);
136     }
137 doda 4461 SetDlgItemText(IDC_TRANS_ETIME, NumStr);
138 doda 4454 prev_elapsed = elapsed;
139     }
140     }
141     }
142    
143 maya 3392 if (fv->OpId == OpSendFile && fv->FileSize > 0) {
144     rate = 100.0 * (double)fv->ByteCount / (double)fv->FileSize;
145     if (fv->ProgStat < (int)rate) {
146     fv->ProgStat = (int)rate;
147     SendDlgItemMessage(IDC_TRANSPROGRESS, PBM_SETPOS, (WPARAM)fv->ProgStat, 0);
148     }
149     _snprintf_s(NumStr,sizeof(NumStr),_TRUNCATE,"%u (%3.1f%%)",fv->ByteCount, rate);
150     }
151     else {
152     _snprintf_s(NumStr,sizeof(NumStr),_TRUNCATE,"%u",fv->ByteCount);
153     }
154     SetDlgItemText(IDC_TRANSBYTES, NumStr);
155 maya 3227 }
156    
157     /////////////////////////////////////////////////////////////////////////////
158     // CFileTransDlg message handler
159    
160     BOOL CFileTransDlg::OnInitDialog()
161     {
162 zmatsuo 7526 static const DlgTextInfo TextInfos[] = {
163     { IDC_TRANS_FILENAME, "DLG_FILETRANS_FILENAME" },
164     { IDC_FULLPATH_LABEL, "DLG_FILETRANS_FULLPATH" },
165     { IDC_TRANS_TRANS, "DLG_FILETRANS_TRNAS" },
166     { IDC_TRANS_ELAPSED, "DLG_FILETRANS_ELAPSED" },
167     { IDCANCEL, "DLG_FILETRANS_CLOSE" },
168     { IDC_TRANSPAUSESTART, "DLG_FILETRANS_PAUSE" },
169     { IDC_TRANSHELP, "BTN_HELP" },
170     };
171    
172 maya 3392 int fuLoad = LR_DEFAULTCOLOR;
173 maya 3227
174 maya 4822 if (fv->HideDialog) {
175     // Visible = False �����t�H�A�O���E���h�����������������A������������
176     // �������g���X�^�C�� WS_EX_NOACTIVATE ���w�������B
177     // (Windows 2000 �������L��)
178     // WS_EX_NOACTIVATE ���w���������\�����������������^�X�N�o�[����������
179     // ���� WS_EX_APPWINDOW ���w�������B
180     ModifyStyleEx(0, WS_EX_NOACTIVATE | WS_EX_APPWINDOW);
181     }
182    
183 maya 3392 SetWindowText(fv->DlgCaption);
184     SetDlgItemText(IDC_TRANSFNAME, &(fv->FullName[fv->DirLen]));
185 maya 3227
186 maya 3392 // ���O�t�@�C�����t���p�X�\��������(2004.8.6 yutaka)
187     SetDlgItemText(IDC_EDIT_FULLPATH, &(fv->FullName[0]));
188 maya 3227
189 zmatsuo 8857 SetDlgTexts(m_hWnd, TextInfos, _countof(TextInfos), UILanguageFile);
190 zmatsuo 7526
191 yutakapon 6286 if (IsWindowsNT4()) {
192 maya 3392 fuLoad = LR_VGACOLOR;
193     }
194 zmatsuo 7526 SmallIcon = LoadImage(m_hInst,
195     MAKEINTRESOURCE(IDI_TTERM),
196     IMAGE_ICON, 16, 16, fuLoad);
197 yutakapon 6504 ::PostMessage(GetSafeHwnd(), WM_SETICON, ICON_SMALL,
198 zmatsuo 7526 (LPARAM)SmallIcon);
199 maya 3227
200 zmatsuo 7526 BigIcon = LoadImage(m_hInst,
201     MAKEINTRESOURCE(IDI_TTERM),
202     IMAGE_ICON, 0, 0, fuLoad);
203 yutakapon 6504 ::PostMessage(GetSafeHwnd(), WM_SETICON, ICON_BIG,
204 zmatsuo 7526 (LPARAM)BigIcon);
205 yutakapon 6504
206 zmatsuo 7915 AddModelessHandle(m_hWnd);
207 zmatsuo 7526
208     return TRUE;
209 maya 3227 }
210    
211 zmatsuo 7526 BOOL CFileTransDlg::OnCancel( )
212 maya 3227 {
213 zmatsuo 8857 //::PostMessage(fv->HMainWin,WM_USER_FTCANCEL,fv->OpId,0);
214     FileTransEnd(fv->OpId);
215 zmatsuo 7526 return TRUE;
216 maya 3227 }
217    
218 doda 6435 BOOL CFileTransDlg::OnCommand(WPARAM wParam, LPARAM lParam)
219 maya 3227 {
220 maya 3392 switch (LOWORD(wParam)) {
221     case IDC_TRANSPAUSESTART:
222     ChangeButton(! Pause);
223 zmatsuo 8857 FileTransPause(fv->OpId, Pause);
224 maya 3392 return TRUE;
225     case IDC_TRANSHELP:
226 zmatsuo 8851 if (fv->OpId == OpLog) {
227     ::PostMessage(fv->HMainWin, WM_USER_DLGHELP2, HlpFileLog, 0);
228     }
229     else {
230     ::PostMessage(fv->HMainWin, WM_USER_DLGHELP2, HlpFileSend, 0);
231     }
232 maya 3392 return TRUE;
233     default:
234 zmatsuo 7526 return (TTCDialog::OnCommand(wParam,lParam));
235 maya 3392 }
236 maya 3227 }
237    
238 zmatsuo 7526 BOOL CFileTransDlg::PostNcDestroy()
239 maya 3227 {
240 yutakapon 6504 // logopen��logclose���J���������AGDI���\�[�X���[�N�������������C�������B
241     // - LoadImage()�������A�C�R�����\�[�X�����������B
242     // (2016.10.5 yutaka)
243     if (SmallIcon) {
244     DestroyIcon((HICON)SmallIcon);
245     SmallIcon = NULL;
246     }
247    
248     if (BigIcon) {
249     DestroyIcon((HICON)BigIcon);
250     BigIcon = NULL;
251     }
252    
253 zmatsuo 7915 RemoveModelessHandle(m_hWnd);
254 zmatsuo 7526
255 maya 3392 delete this;
256 zmatsuo 7526 return TRUE;
257 maya 3227 }

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