1 |
/* Tera Term |
/* Tera Term |
2 |
Copyright(C) 1994-1998 T. Teranishi |
Copyright(C) 1994-1998 T. Teranishi |
3 |
All rights reserved. */ |
All rights reserved. */ |
4 |
|
|
5 |
/* Routines for dialog boxes */ |
/* Routines for dialog boxes */ |
6 |
#include "teraterm.h" |
#include "teraterm.h" |
7 |
#include <stdio.h> |
#include <stdio.h> |
8 |
#include <commctrl.h> |
#include <commctrl.h> |
9 |
|
|
10 |
void EnableDlgItem(HWND HDlg, int FirstId, int LastId) |
void EnableDlgItem(HWND HDlg, int FirstId, int LastId) |
11 |
{ |
{ |
12 |
int i; |
int i; |
13 |
HWND HControl; |
HWND HControl; |
14 |
|
|
15 |
for (i = FirstId ; i <= LastId ; i++) { |
for (i = FirstId ; i <= LastId ; i++) { |
16 |
HControl = GetDlgItem(HDlg, i); |
HControl = GetDlgItem(HDlg, i); |
17 |
EnableWindow(HControl,TRUE); |
EnableWindow(HControl,TRUE); |
18 |
} |
} |
19 |
} |
} |
20 |
|
|
21 |
void DisableDlgItem(HWND HDlg, int FirstId, int LastId) |
void DisableDlgItem(HWND HDlg, int FirstId, int LastId) |
22 |
{ |
{ |
23 |
int i; |
int i; |
24 |
HWND HControl; |
HWND HControl; |
25 |
|
|
26 |
for (i = FirstId ; i <= LastId ; i++) { |
for (i = FirstId ; i <= LastId ; i++) { |
27 |
HControl = GetDlgItem(HDlg, i); |
HControl = GetDlgItem(HDlg, i); |
28 |
EnableWindow(HControl,FALSE); |
EnableWindow(HControl,FALSE); |
29 |
} |
} |
30 |
} |
} |
31 |
|
|
32 |
void ShowDlgItem(HWND HDlg, int FirstId, int LastId) |
void ShowDlgItem(HWND HDlg, int FirstId, int LastId) |
33 |
{ |
{ |
34 |
int i; |
int i; |
35 |
HWND HControl; |
HWND HControl; |
36 |
|
|
37 |
for (i = FirstId ; i <= LastId ; i++) { |
for (i = FirstId ; i <= LastId ; i++) { |
38 |
HControl = GetDlgItem(HDlg, i); |
HControl = GetDlgItem(HDlg, i); |
39 |
ShowWindow(HControl,SW_SHOW); |
ShowWindow(HControl,SW_SHOW); |
40 |
} |
} |
41 |
} |
} |
42 |
|
|
43 |
void SetRB(HWND HDlg, int R, int FirstId, int LastId) |
void SetRB(HWND HDlg, int R, int FirstId, int LastId) |
44 |
{ |
{ |
45 |
HWND HControl; |
HWND HControl; |
46 |
DWORD Style; |
DWORD Style; |
47 |
|
|
48 |
if ( R<1 ) |
if ( R<1 ) |
49 |
return; |
return; |
50 |
if ( FirstId+R-1 > LastId ) |
if ( FirstId+R-1 > LastId ) |
51 |
return; |
return; |
52 |
HControl = GetDlgItem(HDlg, FirstId + R - 1); |
HControl = GetDlgItem(HDlg, FirstId + R - 1); |
53 |
SendMessage(HControl, BM_SETCHECK, 1, 0); |
SendMessage(HControl, BM_SETCHECK, 1, 0); |
54 |
Style = GetClassLong(HControl, GCL_STYLE); |
Style = GetClassLong(HControl, GCL_STYLE); |
55 |
SetClassLong(HControl, GCL_STYLE, Style | WS_TABSTOP); |
SetClassLong(HControl, GCL_STYLE, Style | WS_TABSTOP); |
56 |
} |
} |
57 |
|
|
58 |
void GetRB(HWND HDlg, LPWORD R, int FirstId, int LastId) |
void GetRB(HWND HDlg, LPWORD R, int FirstId, int LastId) |
59 |
{ |
{ |
60 |
int i; |
int i; |
61 |
|
|
62 |
*R = 0; |
*R = 0; |
63 |
for (i = FirstId ; i <= LastId ; i++) |
for (i = FirstId ; i <= LastId ; i++) |
64 |
if (SendDlgItemMessage(HDlg, i, BM_GETCHECK, 0, 0) != 0) |
if (SendDlgItemMessage(HDlg, i, BM_GETCHECK, 0, 0) != 0) |
65 |
{ |
{ |
66 |
*R = i - FirstId + 1; |
*R = i - FirstId + 1; |
67 |
return; |
return; |
68 |
} |
} |
69 |
} |
} |
70 |
|
|
71 |
void SetDlgNum(HWND HDlg, int id_Item, LONG Num) |
void SetDlgNum(HWND HDlg, int id_Item, LONG Num) |
72 |
{ |
{ |
73 |
char Temp[16]; |
char Temp[16]; |
74 |
|
|
75 |
/* In Win16, SetDlgItemInt can not be used to display long integer. */ |
/* In Win16, SetDlgItemInt can not be used to display long integer. */ |
76 |
_snprintf_s(Temp,sizeof(Temp),_TRUNCATE,"%d",Num); |
_snprintf_s(Temp,sizeof(Temp),_TRUNCATE,"%d",Num); |
77 |
SetDlgItemText(HDlg,id_Item,Temp); |
SetDlgItemText(HDlg,id_Item,Temp); |
78 |
} |
} |
79 |
|
|
80 |
void InitDlgProgress(HWND HDlg, int id_Progress, int *CurProgStat) { |
void InitDlgProgress(HWND HDlg, int id_Progress, int *CurProgStat) { |
81 |
HWND HProg; |
HWND HProg; |
82 |
HProg = GetDlgItem(HDlg, id_Progress); |
HProg = GetDlgItem(HDlg, id_Progress); |
83 |
|
|
84 |
*CurProgStat = 0; |
*CurProgStat = 0; |
85 |
|
|
86 |
SendMessage(HProg, PBM_SETRANGE, (WPARAM)0, MAKELPARAM(0, 100)); |
SendMessage(HProg, PBM_SETRANGE, (WPARAM)0, MAKELPARAM(0, 100)); |
87 |
SendMessage(HProg, PBM_SETSTEP, (WPARAM)1, 0); |
SendMessage(HProg, PBM_SETSTEP, (WPARAM)1, 0); |
88 |
SendMessage(HProg, PBM_SETPOS, (WPARAM)0, 0); |
SendMessage(HProg, PBM_SETPOS, (WPARAM)0, 0); |
89 |
|
|
90 |
ShowWindow(HProg, SW_SHOW); |
ShowWindow(HProg, SW_SHOW); |
91 |
return; |
return; |
92 |
} |
} |
93 |
|
|
94 |
void SetDlgPercent(HWND HDlg, int id_Item, int id_Progress, LONG a, LONG b, int *p) |
void SetDlgPercent(HWND HDlg, int id_Item, int id_Progress, LONG a, LONG b, int *p) |
95 |
{ |
{ |
96 |
// 20MB以上のファイルをアップロードしようとすると、buffer overflowで |
// 20MB以上のファイルをアップロードしようとすると、buffer overflowで |
97 |
// 落ちる問題への対処。(2005.3.18 yutaka) |
// 落ちる問題への対処。(2005.3.18 yutaka) |
98 |
// cf. http://sourceforge.jp/tracker/index.php?func=detail&aid=5713&group_id=1412&atid=5333 |
// cf. http://sourceforge.jp/tracker/index.php?func=detail&aid=5713&group_id=1412&atid=5333 |
99 |
double Num; |
double Num; |
100 |
char NumStr[10]; |
char NumStr[10]; |
101 |
|
|
102 |
if (b==0) |
if (b==0) |
103 |
Num = 100.0; |
Num = 100.0; |
104 |
else |
else |
105 |
Num = 100.0 * (double)a / (double)b; |
Num = 100.0 * (double)a / (double)b; |
106 |
_snprintf_s(NumStr,sizeof(NumStr),_TRUNCATE,"%3.1f%%",Num); |
_snprintf_s(NumStr,sizeof(NumStr),_TRUNCATE,"%3.1f%%",Num); |
107 |
SetDlgItemText(HDlg, id_Item, NumStr); |
SetDlgItemText(HDlg, id_Item, NumStr); |
108 |
|
|
109 |
if (id_Progress != 0 && p != NULL && *p >= 0 && *p < (int)Num) { |
if (id_Progress != 0 && p != NULL && *p >= 0 && *p < (int)Num) { |
110 |
*p = (int)Num; |
*p = (int)Num; |
111 |
SendMessage(GetDlgItem(HDlg, id_Progress), PBM_SETPOS, (WPARAM)*p, 0); |
SendMessage(GetDlgItem(HDlg, id_Progress), PBM_SETPOS, (WPARAM)*p, 0); |
112 |
} |
} |
113 |
} |
} |
114 |
|
|
115 |
void SetDropDownList(HWND HDlg, int Id_Item, PCHAR far *List, int nsel) |
void SetDropDownList(HWND HDlg, int Id_Item, PCHAR far *List, int nsel) |
116 |
{ |
{ |
117 |
int i; |
int i; |
118 |
|
|
119 |
i = 0; |
i = 0; |
120 |
while (List[i] != NULL) { |
while (List[i] != NULL) { |
121 |
SendDlgItemMessage(HDlg, Id_Item, CB_ADDSTRING, |
SendDlgItemMessage(HDlg, Id_Item, CB_ADDSTRING, |
122 |
0, (LPARAM)List[i]); |
0, (LPARAM)List[i]); |
123 |
i++; |
i++; |
124 |
} |
} |
125 |
SendDlgItemMessage(HDlg, Id_Item, CB_SETCURSEL,nsel-1,0); |
SendDlgItemMessage(HDlg, Id_Item, CB_SETCURSEL,nsel-1,0); |
126 |
} |
} |
127 |
|
|
128 |
LONG GetCurSel(HWND HDlg, int Id_Item) |
LONG GetCurSel(HWND HDlg, int Id_Item) |
129 |
{ |
{ |
130 |
LONG n; |
LONG n; |
131 |
|
|
132 |
n = SendDlgItemMessage(HDlg, Id_Item, CB_GETCURSEL, 0, 0); |
n = SendDlgItemMessage(HDlg, Id_Item, CB_GETCURSEL, 0, 0); |
133 |
if (n==CB_ERR) |
if (n==CB_ERR) |
134 |
n = 0; |
n = 0; |
135 |
else |
else |
136 |
n++; |
n++; |
137 |
|
|
138 |
return n; |
return n; |
139 |
} |
} |