Open-Source-Software-Entwicklung und Downloads

Browse Subversion Repository

Diff of /trunk/teraterm/common/dlglib.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3226 by maya, Tue Mar 24 09:37:20 2009 UTC revision 3227 by maya, Tue Mar 24 15:10:33 2009 UTC
# Line 1  Line 1 
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  }  }

Legend:
Removed from v.3226  
changed lines
  Added in v.3227

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