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 6501 - (hide annotations) (download) (as text)
Mon Oct 3 13:54:12 2016 UTC (7 years, 6 months ago) by yutakapon
Original Path: trunk/teraterm/teraterm/ftdlg.cpp
File MIME type: text/x-c++src
File size: 7201 byte(s)
チケット #36655 ログファイルオープンエラー

ログダイアログをクローズする際、論理フォントを削除するようにした。

1 maya 3227 /* Tera Term
2     Copyright(C) 1994-1998 T. Teranishi
3     All rights reserved. */
4    
5     /* TERATERM.EXE, file transfer dialog box */
6     #include "stdafx.h"
7     #include "teraterm.h"
8     #include "tttypes.h"
9     #include "ttftypes.h"
10     #include "ttlib.h"
11     #include "tt_res.h"
12     #include "ftdlg.h"
13    
14     #ifdef _DEBUG
15     #define new DEBUG_NEW
16     #undef THIS_FILE
17     static char THIS_FILE[] = __FILE__;
18     #endif
19    
20     /////////////////////////////////////////////////////////////////////////////
21     // CFileTransDlg dialog
22    
23     BEGIN_MESSAGE_MAP(CFileTransDlg, CDialog)
24     //{{AFX_MSG_MAP(CFileTransDlg)
25     //}}AFX_MSG_MAP
26     END_MESSAGE_MAP()
27    
28     BOOL CFileTransDlg::Create(PFileVar pfv, PComVar pcv, PTTSet pts)
29     {
30 maya 3392 BOOL Ok;
31     WNDCLASS wc;
32     int fuLoad = LR_DEFAULTCOLOR;
33 maya 4822 HWND hwnd;
34 maya 3227
35 maya 3392 fv = pfv;
36     cv = pcv;
37     cv->FilePause &= ~fv->OpId;
38     ts = pts;
39     LOGFONT logfont;
40     HFONT font;
41 maya 3227
42 maya 3392 wc.style = CS_PARENTDC;
43     wc.lpfnWndProc = AfxWndProc;
44     wc.cbClsExtra = 0;
45     wc.cbWndExtra = DLGWINDOWEXTRA;
46     wc.hInstance = AfxGetInstanceHandle();
47     wc.hIcon = NULL;
48     wc.hCursor = LoadCursor(NULL,IDC_ARROW);
49     wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE+1);
50     wc.lpszMenuName = NULL;
51     wc.lpszClassName = "FTDlg32";
52     RegisterClass(&wc);
53 maya 3227
54 maya 3392 Pause = FALSE;
55 maya 4822 hwnd = GetForegroundWindow()->GetSafeHwnd();
56 maya 3392 if (fv->OpId == OpLog) { // parent window is desktop
57     Ok = CDialog::Create(CFileTransDlg::IDD, GetDesktopWindow());
58     }
59     else { // parent window is VT window
60 maya 3596 Ok = CDialog::Create(CFileTransDlg::IDD, NULL);
61 maya 3392 }
62 maya 3227
63 maya 3392 if (!fv->HideDialog) {
64 maya 4818 // Visible = False ���_�C�A���O���\������
65 maya 3709 ShowWindow(SW_SHOWNORMAL);
66 maya 3392 if (fv->OpId == OpLog) {
67     ShowWindow(SW_MINIMIZE);
68     }
69     }
70 maya 3596 else {
71 maya 4822 // ���O���t�H�A�O���E���h�������E�B���h�E���t�H�[�J�X�������B
72     // ���j���[�������O���X�^�[�g�������� VTWin ���t�H�[�J�X���������������K�v�������B
73 maya 3600 ::SetForegroundWindow(hwnd);
74 maya 3596 }
75 maya 3227
76 maya 3392 fv->HWin = GetSafeHwnd();
77 maya 3227
78 maya 3392 font = (HFONT)SendMessage(WM_GETFONT, 0, 0);
79     GetObject(font, sizeof(LOGFONT), &logfont);
80     if (get_lang_font("DLG_SYSTEM_FONT", fv->HWin, &logfont, &DlgFont, ts->UILanguageFile)) {
81     SendDlgItemMessage(IDC_TRANS_FILENAME, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0));
82     SendDlgItemMessage(IDC_TRANSFNAME, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0));
83     SendDlgItemMessage(IDC_FULLPATH_LABEL, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0));
84     SendDlgItemMessage(IDC_EDIT_FULLPATH, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0));
85     SendDlgItemMessage(IDC_TRANS_TRANS, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0));
86     SendDlgItemMessage(IDC_TRANSBYTES, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0));
87 doda 4461 SendDlgItemMessage(IDC_TRANS_ELAPSED, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0));
88     SendDlgItemMessage(IDC_TRANS_ETIME, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0));
89 maya 3392 SendDlgItemMessage(IDC_TRANSPAUSESTART, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0));
90     SendDlgItemMessage(IDCANCEL, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0));
91     SendDlgItemMessage(IDC_TRANSHELP, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE,0));
92     }
93 maya 3227
94 maya 3392 return Ok;
95 maya 3227 }
96    
97     void CFileTransDlg::ChangeButton(BOOL PauseFlag)
98     {
99 maya 3392 Pause = PauseFlag;
100     if (Pause) {
101     get_lang_msg("DLG_FILETRANS_START", ts->UIMsg, sizeof(ts->UIMsg), "&Start", ts->UILanguageFile);
102     SetDlgItemText(IDC_TRANSPAUSESTART, ts->UIMsg);
103     cv->FilePause |= fv->OpId;
104     }
105     else {
106     get_lang_msg("DLG_FILETRANS_PAUSE", ts->UIMsg, sizeof(ts->UIMsg), "Pau&se", ts->UILanguageFile);
107     SetDlgItemText(IDC_TRANSPAUSESTART, ts->UIMsg);
108     cv->FilePause &= ~fv->OpId;
109     }
110 maya 3227 }
111    
112     void CFileTransDlg::RefreshNum()
113     {
114 maya 3392 char NumStr[24];
115     double rate;
116 doda 4454 int rate2;
117     static DWORD prev_elapsed;
118     DWORD elapsed;
119 maya 3227
120 doda 4454 if (fv->OpId == OpSendFile) {
121     if (fv->StartTime == 0) {
122 doda 4461 SetDlgItemText(IDC_TRANS_ETIME, "0:00");
123 doda 4454 prev_elapsed = 0;
124     }
125     else {
126     elapsed = (GetTickCount() - fv->StartTime) / 1000;
127     if (elapsed != prev_elapsed && elapsed != 0) {
128     rate2 = fv->ByteCount / elapsed;
129     if (rate2 < 1200) {
130     _snprintf_s(NumStr, sizeof(NumStr), _TRUNCATE, "%d:%02d (%dBytes/s)", elapsed / 60, elapsed % 60, rate2);
131     }
132     else if (rate2 < 1200000) {
133     _snprintf_s(NumStr, sizeof(NumStr), _TRUNCATE, "%d:%02d (%d.%02dKB/s)", elapsed / 60, elapsed % 60, rate2 / 1000, rate2 / 10 % 100);
134     }
135     else {
136     _snprintf_s(NumStr, sizeof(NumStr), _TRUNCATE, "%d:%02d (%d.%02dMB/s)", elapsed / 60, elapsed % 60, rate2 / (1000*1000), rate2 / 10000 % 100);
137     }
138 doda 4461 SetDlgItemText(IDC_TRANS_ETIME, NumStr);
139 doda 4454 prev_elapsed = elapsed;
140     }
141     }
142     }
143    
144 maya 3392 if (fv->OpId == OpSendFile && fv->FileSize > 0) {
145     rate = 100.0 * (double)fv->ByteCount / (double)fv->FileSize;
146     if (fv->ProgStat < (int)rate) {
147     fv->ProgStat = (int)rate;
148     SendDlgItemMessage(IDC_TRANSPROGRESS, PBM_SETPOS, (WPARAM)fv->ProgStat, 0);
149     }
150     _snprintf_s(NumStr,sizeof(NumStr),_TRUNCATE,"%u (%3.1f%%)",fv->ByteCount, rate);
151     }
152     else {
153     _snprintf_s(NumStr,sizeof(NumStr),_TRUNCATE,"%u",fv->ByteCount);
154     }
155     SetDlgItemText(IDC_TRANSBYTES, NumStr);
156 maya 3227 }
157    
158     /////////////////////////////////////////////////////////////////////////////
159     // CFileTransDlg message handler
160    
161     BOOL CFileTransDlg::OnInitDialog()
162     {
163 maya 3392 int fuLoad = LR_DEFAULTCOLOR;
164 maya 3227
165 maya 4822 if (fv->HideDialog) {
166     // Visible = False �����t�H�A�O���E���h�����������������A������������
167     // �������g���X�^�C�� WS_EX_NOACTIVATE ���w�������B
168     // (Windows 2000 �������L��)
169     // WS_EX_NOACTIVATE ���w���������\�����������������^�X�N�o�[����������
170     // ���� WS_EX_APPWINDOW ���w�������B
171     ModifyStyleEx(0, WS_EX_NOACTIVATE | WS_EX_APPWINDOW);
172     }
173    
174 maya 3392 SetWindowText(fv->DlgCaption);
175     SetDlgItemText(IDC_TRANSFNAME, &(fv->FullName[fv->DirLen]));
176 maya 3227
177 maya 3392 // ���O�t�@�C�����t���p�X�\��������(2004.8.6 yutaka)
178     SetDlgItemText(IDC_EDIT_FULLPATH, &(fv->FullName[0]));
179 maya 3227
180 yutakapon 6286 if (IsWindowsNT4()) {
181 maya 3392 fuLoad = LR_VGACOLOR;
182     }
183     ::PostMessage(GetSafeHwnd(),WM_SETICON,ICON_SMALL,
184     (LPARAM)LoadImage(AfxGetInstanceHandle(),
185     MAKEINTRESOURCE(IDI_TTERM),
186     IMAGE_ICON,16,16,fuLoad));
187     ::PostMessage(GetSafeHwnd(),WM_SETICON,ICON_BIG,
188     (LPARAM)LoadImage(AfxGetInstanceHandle(),
189     MAKEINTRESOURCE(IDI_TTERM),
190     IMAGE_ICON, 0, 0, fuLoad));
191 maya 3227
192 maya 3392 return 1;
193 maya 3227 }
194    
195     void CFileTransDlg::OnCancel( )
196     {
197 maya 3392 ::PostMessage(fv->HMainWin,WM_USER_FTCANCEL,fv->OpId,0);
198 maya 3227 }
199    
200 doda 6435 BOOL CFileTransDlg::OnCommand(WPARAM wParam, LPARAM lParam)
201 maya 3227 {
202 maya 3392 switch (LOWORD(wParam)) {
203     case IDCANCEL:
204     ::PostMessage(fv->HMainWin,WM_USER_FTCANCEL,fv->OpId,0);
205     return TRUE;
206     case IDC_TRANSPAUSESTART:
207     ChangeButton(! Pause);
208     return TRUE;
209     case IDC_TRANSHELP:
210     ::PostMessage(fv->HMainWin,WM_USER_DLGHELP2,0,0);
211     return TRUE;
212     default:
213     return (CDialog::OnCommand(wParam,lParam));
214     }
215 maya 3227 }
216    
217     void CFileTransDlg::PostNcDestroy()
218     {
219 yutakapon 6501 // CreateFontIndirect()�����������_���t�H���g�����������B
220     // (2016.10.13 yutaka)
221     if (DlgFont) {
222     DeleteObject(DlgFont);
223     DlgFont = NULL;
224     }
225    
226 maya 3392 delete this;
227 maya 3227 }
228    
229     LRESULT CFileTransDlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)
230     {
231 maya 3392 return DefDlgProc(GetSafeHwnd(),message,wParam,lParam);
232 maya 3227 }

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