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

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