• R/O
  • SSH
  • HTTPS

ttssh2: Commit


Commit MetaInfo

Revisão7145 (tree)
Hora2018-07-13 00:26:23
Autorzmatsuo

Mensagem de Log

drag and dropダイアログファイル分離
- サイズ調整
- far,pascalキーワード削除(一部)
- プロジェクトの依存関係がおかしかったので修正(VS2017)

Mudança Sumário

Diff

--- branches/drag_and_drop/teraterm/common/i18n.c (revision 7144)
+++ branches/drag_and_drop/teraterm/common/i18n.c (revision 7145)
@@ -1,5 +1,5 @@
11 /*
2- * Copyright (C) 2006-2017 TeraTerm Project
2+ * Copyright (C) 2006-2018 TeraTerm Project
33 * All rights reserved.
44 *
55 * Redistribution and use in source and binary forms, with or without
@@ -28,13 +28,13 @@
2828
2929 #include "i18n.h"
3030
31-void PASCAL GetI18nStr(PCHAR section, PCHAR key, PCHAR buf, int buf_len, PCHAR def, PCHAR iniFile)
31+void GetI18nStr(PCHAR section, PCHAR key, PCHAR buf, int buf_len, PCHAR def, const char *iniFile)
3232 {
3333 GetPrivateProfileString(section, key, def, buf, buf_len, iniFile);
3434 RestoreNewLine(buf);
3535 }
3636
37-int PASCAL GetI18nLogfont(PCHAR section, PCHAR key, PLOGFONT logfont, int ppi, PCHAR iniFile)
37+int GetI18nLogfont(PCHAR section, PCHAR key, PLOGFONT logfont, int ppi, const char *iniFile)
3838 {
3939 static char tmp[MAX_UIMSG];
4040 static char font[LF_FACESIZE];
--- branches/drag_and_drop/teraterm/common/i18n.h (revision 7144)
+++ branches/drag_and_drop/teraterm/common/i18n.h (revision 7145)
@@ -1,5 +1,5 @@
11 /*
2- * Copyright (C) 2006-2017 TeraTerm Project
2+ * Copyright (C) 2006-2018 TeraTerm Project
33 * All rights reserved.
44 *
55 * Redistribution and use in source and binary forms, with or without
@@ -38,8 +38,8 @@
3838 extern "C" {
3939 #endif
4040
41-void PASCAL GetI18nStr(PCHAR section, PCHAR key, PCHAR buf, int buf_len, PCHAR def, PCHAR iniFile);
42-int PASCAL GetI18nLogfont(PCHAR section, PCHAR key, PLOGFONT logfont, int ppi, PCHAR iniFile);
41+void GetI18nStr(PCHAR section, PCHAR key, PCHAR buf, int buf_len, PCHAR def, const char *iniFile);
42+int GetI18nLogfont(PCHAR section, PCHAR key, PLOGFONT logfont, int ppi, const char *iniFile);
4343
4444 #ifdef __cplusplus
4545 }
--- branches/drag_and_drop/teraterm/common/ttlib.c (revision 7144)
+++ branches/drag_and_drop/teraterm/common/ttlib.c (revision 7145)
@@ -970,12 +970,12 @@
970970 strncpy_s(buf, buflen, Temp, _TRUNCATE);
971971 }
972972
973-void get_lang_msg(PCHAR key, PCHAR buf, int buf_len, PCHAR def, PCHAR iniFile)
973+void get_lang_msg(PCHAR key, PCHAR buf, int buf_len, PCHAR def, const char *iniFile)
974974 {
975975 GetI18nStr("Tera Term", key, buf, buf_len, def, iniFile);
976976 }
977977
978-int get_lang_font(PCHAR key, HWND dlg, PLOGFONT logfont, HFONT *font, PCHAR iniFile)
978+int get_lang_font(PCHAR key, HWND dlg, PLOGFONT logfont, HFONT *font, const char *iniFile)
979979 {
980980 if (GetI18nLogfont("Tera Term", key, logfont,
981981 GetDeviceCaps(GetDC(dlg),LOGPIXELSY),
--- branches/drag_and_drop/teraterm/common/ttlib.h (revision 7144)
+++ branches/drag_and_drop/teraterm/common/ttlib.h (revision 7145)
@@ -67,8 +67,8 @@
6767 void GetDefaultSetupFName(char *home, char *dest, int destlen);
6868 void GetUILanguageFile(char *buf, int buflen);
6969 void GetOnOffEntryInifile(char *entry, char *buf, int buflen);
70-void get_lang_msg(PCHAR key, PCHAR buf, int buf_len, PCHAR def, PCHAR iniFile);
71-int get_lang_font(PCHAR key, HWND dlg, PLOGFONT logfont, HFONT *font, PCHAR iniFile);
70+void get_lang_msg(PCHAR key, PCHAR buf, int buf_len, PCHAR def, const char *iniFile);
71+int get_lang_font(PCHAR key, HWND dlg, PLOGFONT logfont, HFONT *font, const char *iniFile);
7272 BOOL doSelectFolder(HWND hWnd, char *path, int pathlen, char *def, char *msg);
7373 void OutputDebugPrintf(char *fmt, ...);
7474 BOOL is_NT4();
--- branches/drag_and_drop/teraterm/common/tttypes.h (revision 7144)
+++ branches/drag_and_drop/teraterm/common/tttypes.h (revision 7145)
@@ -684,7 +684,6 @@
684684 };
685685
686686 typedef struct tttset TTTSet, *PTTSet;
687-//typedef TTTSet far *PTTSet;
688687
689688 /* New Line modes */
690689 #define IdCR 1
@@ -782,11 +781,6 @@
782781 /* Baud rate ID */
783782 #define BaudNone 0
784783
785-static PCHAR far BaudList[] =
786- {"110","300","600","1200","2400","4800","9600",
787- "14400","19200","38400","57600","115200",
788- "230400", "460800", "921600", NULL};
789-
790784 /* Parity ID */
791785 #define IdParityNone 1
792786 #define IdParityOdd 2
@@ -817,7 +811,7 @@
817811 WORD ComPort; // serial port #
818812 WORD MaxComPort; // max serial port #
819813 } TGetHNRec;
820-typedef TGetHNRec far *PGetHNRec;
814+typedef TGetHNRec *PGetHNRec;
821815
822816 /* Tera Term internal key codes */
823817 #define IdUp 1
@@ -935,7 +929,7 @@
935929 /* user key type */
936930 BYTE UserKeyType[NumOfUserKey];
937931 } TKeyMap;
938-typedef TKeyMap far *PKeyMap;
932+typedef TKeyMap *PKeyMap;
939933
940934 /* Control Characters */
941935
@@ -1093,7 +1087,7 @@
10931087
10941088 DWORD ConnectedTime;
10951089 } TComVar;
1096-typedef TComVar far *PComVar;
1090+typedef TComVar *PComVar;
10971091
10981092 #define ID_FILE 0
10991093 #define ID_EDIT 1
@@ -1138,7 +1132,7 @@
11381132 BOOL WinUndoFlag;
11391133 int WinUndoStyle;
11401134 } TMap;
1141-typedef TMap far *PMap;
1135+typedef TMap *PMap;
11421136
11431137 // TMap を格納するファイルマッピングオブジェクト(共有メモリ)の名前
11441138 // TMap(とそのメンバ)の更新時は旧バージョンとの同時起動の為に変える必要があるが
--- branches/drag_and_drop/teraterm/svnrev/svnrev.cpp (revision 7144)
+++ branches/drag_and_drop/teraterm/svnrev/svnrev.cpp (revision 7145)
@@ -1,5 +1,5 @@
11 /*
2- * Copyright (C) 2009-2017 TeraTerm Project
2+ * Copyright (C) 2009-2018 TeraTerm Project
33 * All rights reserved.
44 *
55 * Redistribution and use in source and binary forms, with or without
@@ -43,7 +43,10 @@
4343
4444 // _popen はスペースが含まれる場合にダブルクォートで囲んでも
4545 // うまく動かないため 8.3 形式に変換
46- GetShortPathName(svnversion, arg1, sizeof(arg1));
46+ DWORD r = GetShortPathName(svnversion, arg1, sizeof(arg1));
47+ if (r == 0) {
48+ return -1; // svn did not exist
49+ }
4750 GetShortPathName(path, arg2, sizeof(arg2));
4851
4952 _snprintf_s(command, sizeof(command), _TRUNCATE, "%s -n %s", arg1, arg2);
--- branches/drag_and_drop/teraterm/teraterm/dnddlg.cpp (nonexistent)
+++ branches/drag_and_drop/teraterm/teraterm/dnddlg.cpp (revision 7145)
@@ -0,0 +1,329 @@
1+/*
2+ * (C) 2005-2018 TeraTerm Project
3+ * All rights reserved.
4+ *
5+ * Redistribution and use in source and binary forms, with or without
6+ * modification, are permitted provided that the following conditions
7+ * are met:
8+ *
9+ * 1. Redistributions of source code must retain the above copyright
10+ * notice, this list of conditions and the following disclaimer.
11+ * 2. Redistributions in binary form must reproduce the above copyright
12+ * notice, this list of conditions and the following disclaimer in the
13+ * documentation and/or other materials provided with the distribution.
14+ * 3. The name of the author may not be used to endorse or promote products
15+ * derived from this software without specific prior written permission.
16+ *
17+ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
18+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20+ * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT,
21+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27+ */
28+
29+#include "dnddlg.h"
30+
31+#include <windowsx.h>
32+#include <stdio.h> // for _snprintf_s
33+
34+#include "tt_res.h"
35+
36+#include "i18n.h"
37+#include "ttlib.h"
38+#include "dlglib.h"
39+#include "tttypes.h" // for ttwinman.h
40+#include "ttwinman.h" // for ts
41+
42+struct DlgTextInfo {
43+ int nIDDlgItem;
44+ char *key;
45+};
46+
47+struct DrapDropDlgParam {
48+ const char *TargetFilename;
49+ enum drop_type DropType;
50+ unsigned char DropTypePaste;
51+ bool ScpEnable;
52+ char *ScpSendDirPtr;
53+ int ScpSendDirSize;
54+ bool SendfileEnable;
55+ bool PasteNewlineEnable;
56+ int RemaingFileCount;
57+ bool DoSameProcess;
58+ bool DoSameProcessNextDrop;
59+ bool DoNotShowDialogEnable;
60+ bool DoNotShowDialog;
61+ const char *UILanguageFile;
62+};
63+
64+struct DrapDropDlgData {
65+ HFONT hPrevFont;
66+ DrapDropDlgParam *Param;
67+};
68+
69+static HFONT SetDlgFonts(HWND hDlg, const int nIDDlgItems[], int nIDDlgItemCount, const char *UILanguageFile, PCHAR key)
70+{
71+ if (key == NULL) key = "DLG_TAHOMA_FONT";
72+ HFONT hPrevFont = (HFONT)SendMessage(hDlg, WM_GETFONT, 0, 0);
73+ LOGFONT logfont;
74+ GetObject(hPrevFont, sizeof(LOGFONT), &logfont);
75+ HFONT hNewFont;
76+ if (get_lang_font("DLG_TAHOMA_FONT", hDlg, &logfont, &hNewFont, UILanguageFile)) {
77+ for (int i = 0 ; i < nIDDlgItemCount ; i++) {
78+ const int nIDDlgItem = nIDDlgItems[i];
79+ SendDlgItemMessage(hDlg, nIDDlgItem, WM_SETFONT, (WPARAM)hNewFont, MAKELPARAM(TRUE,0));
80+ }
81+ }
82+ return hNewFont;
83+}
84+
85+static void SetDlgTexts(HWND hDlgWnd, const DlgTextInfo *infos, int infoCount, const char *UILanguageFile)
86+{
87+ for (int i = 0 ; i < infoCount; i++) {
88+ char *key = infos[i].key;
89+ char uimsg[MAX_UIMSG];
90+ get_lang_msg(key, uimsg, sizeof(uimsg), "", UILanguageFile);
91+ if (uimsg[0] != '\0') {
92+ const int nIDDlgItem = infos[i].nIDDlgItem;
93+ if (nIDDlgItem == 0) {
94+ SetWindowText(hDlgWnd, uimsg);
95+ } else {
96+ SetDlgItemText(hDlgWnd, nIDDlgItem, uimsg);
97+ }
98+ }
99+ }
100+}
101+
102+static LRESULT CALLBACK OnDragDropDlgProc(HWND hDlgWnd, UINT msg, WPARAM wp, LPARAM lp)
103+{
104+ static const int FontIDs[] = {
105+ IDC_FILENAME_EDIT,
106+ IDC_DAD_STATIC,
107+ IDC_SCP_RADIO, IDC_SENDFILE_RADIO, IDC_PASTE_RADIO,
108+ IDC_SCP_PATH_LABEL, IDC_SCP_PATH, IDC_SCP_PATH_NOTE,
109+ IDC_BINARY_CHECK,
110+ IDC_ESCAPE_CHECK, IDC_NEWLINE_RADIO, IDC_SPACE_RADIO,
111+ IDC_SAME_PROCESS_CHECK, IDC_SAME_PROCESS_NEXTDROP_CHECK, IDC_DONTSHOW_CHECK,
112+ IDC_DAD_NOTE,
113+ IDOK, IDCANCEL,
114+ };
115+ static const DlgTextInfo TextInfos[] = {
116+ { 0, "DLG_DANDD_TITLE" },
117+ { IDC_DAD_STATIC, "DLG_DANDD_TEXT" },
118+ { IDC_SCP_PATH_NOTE, "DLG_DADDD_DEST_NOTE" },
119+ { IDC_SAME_PROCESS_CHECK, "DLG_DANDD_CONFLICTS" },
120+ { IDC_SAME_PROCESS_NEXTDROP_CHECK, "DLG_DANDD_SAME_NEEXTDROP" },
121+ { IDC_DONTSHOW_CHECK, "DLG_DANDD_DONTSHOW_NEEXTDROP" },
122+ { IDC_DAD_NOTE, "DLG_DANDD_NOTE" },
123+ { IDOK, "BTN_OK" },
124+ { IDCANCEL, "BTN_CANCEL" },
125+ };
126+ DrapDropDlgData *DlgData = (DrapDropDlgData *)GetWindowLongPtr(hDlgWnd, GWLP_USERDATA);
127+
128+ switch (msg) {
129+ case WM_INITDIALOG:
130+ {
131+ DlgData = (DrapDropDlgData *)malloc(sizeof(DrapDropDlgData));
132+ SetWindowLongPtr(hDlgWnd, GWLP_USERDATA, (LONG_PTR)DlgData);
133+ DrapDropDlgParam *Param = (DrapDropDlgParam *)lp;
134+ DlgData->Param = Param;
135+ DlgData->hPrevFont = SetDlgFonts(hDlgWnd, FontIDs, _countof(FontIDs), Param->UILanguageFile, NULL);
136+ SetDlgTexts(hDlgWnd, TextInfos, _countof(TextInfos), Param->UILanguageFile);
137+
138+ // target file
139+ SetDlgItemText(hDlgWnd, IDC_FILENAME_EDIT, Param->TargetFilename);
140+
141+ // checkbox
142+ CheckRadioButton(hDlgWnd, IDC_SCP_RADIO, IDC_PASTE_RADIO,
143+ (Param->DropType == DROP_TYPE_SEND_FILE ||
144+ Param->DropType == DROP_TYPE_SEND_FILE_BINARY) ? IDC_SENDFILE_RADIO :
145+ Param->DropType == DROP_TYPE_PASTE_FILENAME ? IDC_PASTE_RADIO :
146+ IDC_SCP_RADIO);
147+
148+ // SCP
149+ SendMessage(GetDlgItem(hDlgWnd, IDC_SCP_PATH), WM_SETTEXT, 0, (LPARAM)Param->ScpSendDirPtr);
150+ if (!Param->ScpEnable) {
151+ // 無効化
152+ EnableWindow(GetDlgItem(hDlgWnd, IDC_SCP_RADIO), FALSE);
153+ EnableWindow(GetDlgItem(hDlgWnd, IDC_SCP_PATH_LABEL), FALSE);
154+ EnableWindow(GetDlgItem(hDlgWnd, IDC_SCP_PATH), FALSE);
155+ EnableWindow(GetDlgItem(hDlgWnd, IDC_SCP_PATH_NOTE), FALSE);
156+ }
157+
158+ // Send File
159+ if (Param->DropType == DROP_TYPE_SEND_FILE_BINARY) {
160+ SendMessage(GetDlgItem(hDlgWnd, IDC_BINARY_CHECK), BM_SETCHECK, BST_CHECKED, 0);
161+ }
162+ if (!Param->SendfileEnable) {
163+ // 無効化
164+ EnableWindow(GetDlgItem(hDlgWnd, IDC_SENDFILE_RADIO), FALSE);
165+ EnableWindow(GetDlgItem(hDlgWnd, IDC_BINARY_CHECK), FALSE);
166+ }
167+
168+ // Paste Filename
169+ if (Param->DropTypePaste & DROP_TYPE_PASTE_ESCAPE) {
170+ SendMessage(GetDlgItem(hDlgWnd, IDC_ESCAPE_CHECK), BM_SETCHECK, BST_CHECKED, 0);
171+ }
172+ CheckRadioButton(hDlgWnd, IDC_SPACE_RADIO, IDC_NEWLINE_RADIO,
173+ Param->DropTypePaste & DROP_TYPE_PASTE_NEWLINE?
174+ IDC_NEWLINE_RADIO : IDC_SPACE_RADIO);
175+ if (Param->RemaingFileCount < 2) {
176+ EnableWindow(GetDlgItem(hDlgWnd, IDC_SPACE_RADIO), FALSE);
177+ EnableWindow(GetDlgItem(hDlgWnd, IDC_NEWLINE_RADIO), FALSE);
178+ }
179+
180+ // Do this for the next %d conflicts
181+ char orgmsg[MAX_UIMSG];
182+ GetDlgItemText(hDlgWnd, IDC_SAME_PROCESS_CHECK, orgmsg, sizeof(orgmsg));
183+ char uimsg[MAX_UIMSG];
184+ _snprintf_s(uimsg, sizeof(uimsg), _TRUNCATE, orgmsg, Param->RemaingFileCount - 1);
185+ SetDlgItemText(hDlgWnd, IDC_SAME_PROCESS_CHECK, uimsg);
186+ if (Param->RemaingFileCount < 2) {
187+ EnableWindow(GetDlgItem(hDlgWnd, IDC_SAME_PROCESS_CHECK), FALSE);
188+ }
189+
190+ // Dont Show Dialog
191+ if (Param->DoNotShowDialog) {
192+ SendMessage(GetDlgItem(hDlgWnd, IDC_DONTSHOW_CHECK), BM_SETCHECK, BST_CHECKED, 0);
193+ }
194+ if (!Param->DoNotShowDialogEnable) {
195+ EnableWindow(GetDlgItem(hDlgWnd, IDC_DONTSHOW_CHECK), FALSE);
196+ EnableWindow(GetDlgItem(hDlgWnd, IDC_DAD_NOTE), FALSE);
197+ }
198+
199+ // focus to "SCP dest textbox" or "Cancel"
200+ if (Param->ScpEnable) {
201+ // "SCP" 有効時は Cancel にフォーカスを当て、最終的に SCP PATH にフォーカスが
202+ // 当たるようにする。
203+ SetFocus(GetDlgItem(hDlgWnd, IDC_SCP_RADIO));
204+ } else {
205+ // フォーカスの初期状態を Cancel にする為、この時点では IDOK に
206+ // フォーカスを当てる。後で WM_NEXTDLGCTL でフォーカスが次のボタンになる。
207+ SetFocus(GetDlgItem(hDlgWnd, IDOK));
208+ }
209+ // フォーカスを次のボタンに移す
210+ // SetFocus() で直接フォーカスを当てるとタブキーの動作等に問題が出るため、
211+ // このメッセージを併用する
212+ PostMessage(hDlgWnd, WM_NEXTDLGCTL, 0, 0L);
213+
214+ // TRUEにするとボタンにフォーカスが当たらない。
215+ return FALSE;
216+ }
217+
218+ case WM_COMMAND:
219+ {
220+ WORD wID = GET_WM_COMMAND_ID(wp, lp);
221+ const WORD wCMD = GET_WM_COMMAND_CMD(wp, lp);
222+ if (wCMD == BN_DBLCLK &&
223+ (wID == IDC_SCP_RADIO || wID == IDC_SENDFILE_RADIO || wID == IDC_PASTE_RADIO))
224+ { // radio buttons double click
225+ wID = IDOK;
226+ }
227+ if (wCMD == EN_SETFOCUS && wID == IDC_SCP_PATH) {
228+ CheckRadioButton(hDlgWnd, IDC_SCP_RADIO, IDC_PASTE_RADIO, IDC_SCP_RADIO);
229+ }
230+ if (wID == IDC_BINARY_CHECK) {
231+ CheckRadioButton(hDlgWnd, IDC_SCP_RADIO, IDC_PASTE_RADIO, IDC_SENDFILE_RADIO);
232+ }
233+ if (wID == IDC_ESCAPE_CHECK ||
234+ wID == IDC_SPACE_RADIO || wID == IDC_NEWLINE_RADIO)
235+ {
236+ CheckRadioButton(hDlgWnd, IDC_SCP_RADIO, IDC_PASTE_RADIO, IDC_PASTE_RADIO);
237+ }
238+ if (wID == IDOK) {
239+ if (IsDlgButtonChecked(hDlgWnd, IDC_SCP_RADIO) == BST_CHECKED) {
240+ // SCP
241+ DlgData->Param->DropType = DROP_TYPE_SCP;
242+ SendMessage(GetDlgItem(hDlgWnd, IDC_SCP_PATH), WM_GETTEXT,
243+ (WPARAM)DlgData->Param->ScpSendDirSize,
244+ (LPARAM)DlgData->Param->ScpSendDirPtr);
245+ } else if (IsDlgButtonChecked(hDlgWnd, IDC_SENDFILE_RADIO) == BST_CHECKED) {
246+ // Send File
247+ DlgData->Param->DropType =
248+ (IsDlgButtonChecked(hDlgWnd, IDC_BINARY_CHECK) == BST_CHECKED) ?
249+ DROP_TYPE_SEND_FILE_BINARY : DROP_TYPE_SEND_FILE;
250+ } else /* if (IsDlgButtonChecked(hDlgWnd, IDC_PASTE_RADIO) == BST_CHECKED) */ {
251+ // Paste Filename
252+ DlgData->Param->DropType = DROP_TYPE_PASTE_FILENAME;
253+ DlgData->Param->DropTypePaste = 0;
254+ DlgData->Param->DropTypePaste |=
255+ (IsDlgButtonChecked(hDlgWnd, IDC_ESCAPE_CHECK) == BST_CHECKED) ?
256+ DROP_TYPE_PASTE_ESCAPE : 0;
257+ DlgData->Param->DropTypePaste |=
258+ (IsDlgButtonChecked(hDlgWnd, IDC_NEWLINE_RADIO) == BST_CHECKED) ?
259+ DROP_TYPE_PASTE_NEWLINE : 0;
260+ }
261+ DlgData->Param->DoSameProcess =
262+ (IsDlgButtonChecked(hDlgWnd, IDC_SAME_PROCESS_CHECK) == BST_CHECKED) ?
263+ true : false;
264+ DlgData->Param->DoSameProcessNextDrop =
265+ (IsDlgButtonChecked(hDlgWnd, IDC_SAME_PROCESS_NEXTDROP_CHECK) == BST_CHECKED) ?
266+ true : false;
267+ DlgData->Param->DoNotShowDialog =
268+ (IsDlgButtonChecked(hDlgWnd, IDC_DONTSHOW_CHECK) == BST_CHECKED) ?
269+ true : false;
270+ }
271+ if (wID == IDCANCEL) {
272+ DlgData->Param->DropType = DROP_TYPE_CANCEL;
273+ }
274+ if (wID == IDOK || wID == IDCANCEL) {
275+ if (DlgData->hPrevFont != NULL) {
276+ DeleteObject(DlgData->hPrevFont);
277+ }
278+ EndDialog(hDlgWnd, wID);
279+ free(DlgData);
280+ break;
281+ }
282+ return FALSE;
283+ }
284+
285+ default:
286+ return FALSE;
287+ }
288+ return TRUE;
289+}
290+
291+enum drop_type ShowDropDialogBox(
292+ HINSTANCE hInstance, HWND hWndParent,
293+ const char *TargetFilename,
294+ enum drop_type DefaultDropType,
295+ int RemaingFileCount,
296+ bool EnableSCP,
297+ bool EnableSendFile,
298+ bool EnableDoNotShowDialog,
299+ unsigned char *DropTypePaste,
300+ bool *DoSameProcess,
301+ bool *DoSameProcessNextDrop,
302+ bool *DoNotShowDialog)
303+{
304+ DrapDropDlgParam Param;
305+ Param.TargetFilename = TargetFilename;
306+ Param.DropType = DefaultDropType;
307+ Param.DropTypePaste = *DropTypePaste;
308+ Param.ScpEnable = EnableSCP;
309+ Param.ScpSendDirPtr = ts.ScpSendDir;
310+ Param.ScpSendDirSize = sizeof(ts.ScpSendDir);
311+ Param.SendfileEnable = EnableSendFile;
312+ Param.PasteNewlineEnable = true;
313+ Param.RemaingFileCount = RemaingFileCount;
314+ Param.DoNotShowDialog = *DoNotShowDialog;
315+ Param.DoNotShowDialogEnable = EnableDoNotShowDialog;
316+ Param.UILanguageFile = ts.UILanguageFile;
317+ int ret = DialogBoxParam(
318+ hInstance, MAKEINTRESOURCE(IDD_DAD_DIALOG),
319+ hWndParent, (DLGPROC)OnDragDropDlgProc,
320+ (LPARAM)&Param);
321+ if (ret != IDOK) {
322+ return DROP_TYPE_CANCEL;
323+ }
324+ *DropTypePaste = Param.DropTypePaste;
325+ *DoSameProcess = Param.DoSameProcess;
326+ *DoSameProcessNextDrop = Param.DoSameProcessNextDrop;
327+ *DoNotShowDialog = Param.DoNotShowDialog;
328+ return Param.DropType;
329+}
--- branches/drag_and_drop/teraterm/teraterm/dnddlg.h (nonexistent)
+++ branches/drag_and_drop/teraterm/teraterm/dnddlg.h (revision 7145)
@@ -0,0 +1,53 @@
1+/*
2+ * (C) 2005-2018 TeraTerm Project
3+ * All rights reserved.
4+ *
5+ * Redistribution and use in source and binary forms, with or without
6+ * modification, are permitted provided that the following conditions
7+ * are met:
8+ *
9+ * 1. Redistributions of source code must retain the above copyright
10+ * notice, this list of conditions and the following disclaimer.
11+ * 2. Redistributions in binary form must reproduce the above copyright
12+ * notice, this list of conditions and the following disclaimer in the
13+ * documentation and/or other materials provided with the distribution.
14+ * 3. The name of the author may not be used to endorse or promote products
15+ * derived from this software without specific prior written permission.
16+ *
17+ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
18+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20+ * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT,
21+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27+ */
28+
29+#include <windows.h>
30+
31+enum drop_type {
32+ DROP_TYPE_CANCEL,
33+ DROP_TYPE_SCP,
34+ DROP_TYPE_SEND_FILE, // past contents of file
35+ DROP_TYPE_SEND_FILE_BINARY,
36+ DROP_TYPE_PASTE_FILENAME,
37+};
38+
39+#define DROP_TYPE_PASTE_ESCAPE 0x01
40+#define DROP_TYPE_PASTE_NEWLINE 0x02
41+
42+enum drop_type ShowDropDialogBox(
43+ HINSTANCE hInstance, HWND hWndParent,
44+ const char *TargetFilename,
45+ enum drop_type DefaultDropType,
46+ int RemaingFileCount,
47+ bool EnableSCP,
48+ bool EnableSendFile,
49+ bool EnableDoNotShowDialog,
50+ unsigned char *DropTypePaste,
51+ bool *DoSameProcess,
52+ bool *DoSameProcessNextDrop,
53+ bool *DoNotShowDialog);
--- branches/drag_and_drop/teraterm/teraterm/vtdisp.c (revision 7144)
+++ branches/drag_and_drop/teraterm/teraterm/vtdisp.c (revision 7145)
@@ -1,6 +1,6 @@
11 /*
22 * Copyright (C) 1994-1998 T. Teranishi
3- * (C) 2005-2017 TeraTerm Project
3+ * (C) 2005-2018 TeraTerm Project
44 * All rights reserved.
55 *
66 * Redistribution and use in source and binary forms, with or without
@@ -44,7 +44,7 @@
4444
4545 #define CurWidth 2
4646
47-int DefaultColorTable[256][3] = {
47+static const BYTE DefaultColorTable[256][3] = {
4848 { 0, 0, 0}, {255, 0, 0}, { 0,255, 0}, {255,255, 0}, { 0, 0,255}, {255, 0,255}, { 0,255,255}, {255,255,255}, // 0 - 7
4949 {128,128,128}, {128, 0, 0}, { 0,128, 0}, {128,128, 0}, { 0, 0,128}, {128, 0,128}, { 0,128,128}, {192,192,192}, // 8 - 15
5050 { 0, 0, 0}, { 0, 0, 95}, { 0, 0,135}, { 0, 0,175}, { 0, 0,215}, { 0, 0,255}, { 0, 95, 0}, { 0, 95, 95}, // 16 - 23
--- branches/drag_and_drop/teraterm/teraterm/vtwin.cpp (revision 7144)
+++ branches/drag_and_drop/teraterm/teraterm/vtwin.cpp (revision 7145)
@@ -77,6 +77,7 @@
7777 #include "addsetting.h"
7878 #include "winjump.h"
7979 #include "sizetip.h"
80+#include "dnddlg.h"
8081
8182 #include "initguid.h"
8283 //#include "Usbiodef.h"
@@ -2024,301 +2025,6 @@
20242025 DeleteNotifyIcon(&cv);
20252026 }
20262027
2027-static void SetDlgFonts(HWND hDlg, const int nIDDlgItems[], int nIDDlgItemCount, HFONT hFont)
2028-{
2029- for (int i = 0 ; i < nIDDlgItemCount ; i++) {
2030- const int nIDDlgItem = nIDDlgItems[i];
2031- SendDlgItemMessage(hDlg, nIDDlgItem, WM_SETFONT, (WPARAM)hFont, MAKELPARAM(TRUE,0));
2032- }
2033-}
2034-
2035-typedef struct {
2036- int nIDDlgItem;
2037- char *key;
2038-} DlgTextInfo;
2039-
2040-static void SetDlgTexts(HWND hDlgWnd, const DlgTextInfo *infos, int infoCount, char *UILanguageFile)
2041-{
2042- for (int i = 0 ; i < infoCount; i++) {
2043- char *key = infos[i].key;
2044- char uimsg[MAX_UIMSG];
2045- get_lang_msg(key, uimsg, sizeof(uimsg), "", UILanguageFile);
2046- if (uimsg[0] != '\0') {
2047- const int nIDDlgItem = infos[i].nIDDlgItem;
2048- if (nIDDlgItem == 0) {
2049- SetWindowText(hDlgWnd, uimsg);
2050- } else {
2051- SetDlgItemText(hDlgWnd, nIDDlgItem, uimsg);
2052- }
2053- }
2054- }
2055-}
2056-
2057-enum drop_type {
2058- DROP_TYPE_CANCEL,
2059- DROP_TYPE_SCP,
2060- DROP_TYPE_SEND_FILE, // past contents of file
2061- DROP_TYPE_SEND_FILE_BINARY,
2062- DROP_TYPE_PASTE_FILENAME,
2063-};
2064-
2065-#define DROP_TYPE_PASTE_ESCAPE 0x01
2066-#define DROP_TYPE_PASTE_NEWLINE 0x02
2067-
2068-struct DrapDropDlgParam {
2069- const char *TargetFilename;
2070- enum drop_type DropType;
2071- unsigned char DropTypePaste;
2072- bool ScpEnable;
2073- char *ScpSendDirPtr;
2074- int ScpSendDirSize;
2075- bool SendfileEnable;
2076- bool PasteNewlineEnable;
2077- int RemaingFileCount;
2078- bool DoSameProcess;
2079- bool DoSameProcessNextDrop;
2080- bool DoNotShowDialogEnable;
2081- bool DoNotShowDialog;
2082-};
2083-
2084-struct DrapDropDlgData {
2085- HFONT DlgDragDropFont;
2086- struct DrapDropDlgParam *Param;
2087-};
2088-
2089-static LRESULT CALLBACK OnDragDropDlgProc(HWND hDlgWnd, UINT msg, WPARAM wp, LPARAM lp)
2090-{
2091- struct DrapDropDlgData *DlgData = (struct DrapDropDlgData *)GetWindowLongPtr(hDlgWnd, GWLP_USERDATA);
2092-
2093- switch (msg) {
2094- case WM_INITDIALOG:
2095- {
2096- LOGFONT logfont;
2097- HFONT font;
2098- HFONT DlgDragDropFont = NULL;
2099- DlgData = (struct DrapDropDlgData *)malloc(sizeof(struct DrapDropDlgData));
2100- SetWindowLongPtr(hDlgWnd, GWLP_USERDATA, (LONG_PTR)DlgData);
2101- struct DrapDropDlgParam *Param = (struct DrapDropDlgParam *)lp;
2102- DlgData->Param = Param;
2103- font = (HFONT)SendMessage(hDlgWnd, WM_GETFONT, 0, 0);
2104- GetObject(font, sizeof(LOGFONT), &logfont);
2105- if (get_lang_font("DLG_TAHOMA_FONT", hDlgWnd, &logfont, &DlgDragDropFont, ts.UILanguageFile)) {
2106- static const int IDs[] = {
2107- IDC_FILENAME_EDIT,
2108- IDC_DAD_STATIC,
2109- IDC_SCP_RADIO, IDC_SENDFILE_RADIO, IDC_PASTE_RADIO,
2110- IDC_SCP_PATH_LABEL, IDC_SCP_PATH, IDC_SCP_PATH_NOTE,
2111- IDC_BINARY_CHECK,
2112- IDC_ESCAPE_CHECK, IDC_NEWLINE_RADIO, IDC_SPACE_RADIO,
2113- IDC_SAME_PROCESS_CHECK, IDC_SAME_PROCESS_NEXTDROP_CHECK, IDC_DONTSHOW_CHECK,
2114- IDC_DAD_NOTE,
2115- IDOK, IDCANCEL,
2116- };
2117- SetDlgFonts(hDlgWnd, IDs, _countof(IDs), DlgDragDropFont);
2118- } else {
2119- DlgDragDropFont = NULL;
2120- }
2121- DlgData->DlgDragDropFont = DlgDragDropFont;
2122-
2123- static const DlgTextInfo textInfos[] = {
2124- { 0, "MSG_DANDD_CONF_TITLE" },
2125- { IDC_DAD_STATIC, "MSG_DANDD_CONF" },
2126- { IDC_SAME_PROCESS_CHECK, "MSG_DANDD_CONF_CONFLICTS" },
2127- };
2128- SetDlgTexts(hDlgWnd, textInfos, _countof(textInfos), ts.UILanguageFile);
2129-
2130- // target file
2131- SetDlgItemText(hDlgWnd, IDC_FILENAME_EDIT, Param->TargetFilename);
2132-
2133- // checkbox
2134- CheckRadioButton(hDlgWnd, IDC_SCP_RADIO, IDC_PASTE_RADIO,
2135- (Param->DropType == DROP_TYPE_SEND_FILE ||
2136- Param->DropType == DROP_TYPE_SEND_FILE_BINARY) ? IDC_SENDFILE_RADIO :
2137- Param->DropType == DROP_TYPE_PASTE_FILENAME ? IDC_PASTE_RADIO :
2138- IDC_SCP_RADIO);
2139-
2140- // SCP
2141- SendMessage(GetDlgItem(hDlgWnd, IDC_SCP_PATH), WM_SETTEXT, 0, (LPARAM)Param->ScpSendDirPtr);
2142- if (!Param->ScpEnable) {
2143- // 無効化
2144- EnableWindow(GetDlgItem(hDlgWnd, IDC_SCP_RADIO), FALSE);
2145- EnableWindow(GetDlgItem(hDlgWnd, IDC_SCP_PATH_LABEL), FALSE);
2146- EnableWindow(GetDlgItem(hDlgWnd, IDC_SCP_PATH), FALSE);
2147- EnableWindow(GetDlgItem(hDlgWnd, IDC_SCP_PATH_NOTE), FALSE);
2148- }
2149-
2150- // Send File
2151- if (Param->DropType == DROP_TYPE_SEND_FILE_BINARY) {
2152- SendMessage(GetDlgItem(hDlgWnd, IDC_BINARY_CHECK), BM_SETCHECK, BST_CHECKED, 0);
2153- }
2154- if (!Param->SendfileEnable) {
2155- // 無効化
2156- EnableWindow(GetDlgItem(hDlgWnd, IDC_SENDFILE_RADIO), FALSE);
2157- EnableWindow(GetDlgItem(hDlgWnd, IDC_BINARY_CHECK), FALSE);
2158- }
2159-
2160- // Paste Filename
2161- if (Param->DropTypePaste & DROP_TYPE_PASTE_ESCAPE) {
2162- SendMessage(GetDlgItem(hDlgWnd, IDC_ESCAPE_CHECK), BM_SETCHECK, BST_CHECKED, 0);
2163- }
2164- CheckRadioButton(hDlgWnd, IDC_SPACE_RADIO, IDC_NEWLINE_RADIO,
2165- Param->DropTypePaste & DROP_TYPE_PASTE_NEWLINE?
2166- IDC_NEWLINE_RADIO : IDC_SPACE_RADIO);
2167- if (Param->RemaingFileCount < 2) {
2168- EnableWindow(GetDlgItem(hDlgWnd, IDC_SPACE_RADIO), FALSE);
2169- EnableWindow(GetDlgItem(hDlgWnd, IDC_NEWLINE_RADIO), FALSE);
2170- }
2171-
2172- // Do this for the next %d conflicts
2173- char orgmsg[MAX_UIMSG];
2174- GetDlgItemText(hDlgWnd, IDC_SAME_PROCESS_CHECK, orgmsg, sizeof(orgmsg));
2175- char uimsg[MAX_UIMSG];
2176- _snprintf_s(uimsg, sizeof(uimsg), _TRUNCATE, orgmsg, Param->RemaingFileCount - 1);
2177- SetDlgItemText(hDlgWnd, IDC_SAME_PROCESS_CHECK, uimsg);
2178- if (Param->RemaingFileCount < 2) {
2179- EnableWindow(GetDlgItem(hDlgWnd, IDC_SAME_PROCESS_CHECK), FALSE);
2180- }
2181-
2182- // Dont Show Dialog
2183- if (Param->DoNotShowDialog) {
2184- SendMessage(GetDlgItem(hDlgWnd, IDC_DONTSHOW_CHECK), BM_SETCHECK, BST_CHECKED, 0);
2185- }
2186- if (!Param->DoNotShowDialogEnable) {
2187- EnableWindow(GetDlgItem(hDlgWnd, IDC_DONTSHOW_CHECK), FALSE);
2188- EnableWindow(GetDlgItem(hDlgWnd, IDC_DAD_NOTE), FALSE);
2189- }
2190-
2191- // focus to "SCP dest textbox" or "Cancel"
2192- if (Param->ScpEnable) {
2193- // "SCP" 有効時は Cancel にフォーカスを当て、最終的に SCP PATH にフォーカスが
2194- // 当たるようにする。
2195- SetFocus(GetDlgItem(hDlgWnd, IDC_SCP_RADIO));
2196- } else {
2197- // フォーカスの初期状態を Cancel にする為、この時点では IDOK に
2198- // フォーカスを当てる。後で WM_NEXTDLGCTL でフォーカスが次のボタンになる。
2199- SetFocus(GetDlgItem(hDlgWnd, IDOK));
2200- }
2201- // フォーカスを次のボタンに移す
2202- // SetFocus() で直接フォーカスを当てるとタブキーの動作等に問題が出るため、
2203- // このメッセージを併用する
2204- PostMessage(hDlgWnd, WM_NEXTDLGCTL, 0, 0L);
2205-
2206- // TRUEにするとボタンにフォーカスが当たらない。
2207- return FALSE;
2208- }
2209-
2210- case WM_COMMAND:
2211- {
2212- WORD wID = GET_WM_COMMAND_ID(wp, lp);
2213- const WORD wCMD = GET_WM_COMMAND_CMD(wp, lp);
2214- if (wCMD == BN_DBLCLK &&
2215- (wID == IDC_SCP_RADIO || wID == IDC_SENDFILE_RADIO || wID == IDC_PASTE_RADIO))
2216- { // radio buttons double click
2217- wID = IDOK;
2218- }
2219- if (wCMD == EN_SETFOCUS && wID == IDC_SCP_PATH) {
2220- CheckRadioButton(hDlgWnd, IDC_SCP_RADIO, IDC_PASTE_RADIO, IDC_SCP_RADIO);
2221- }
2222- if (wID == IDC_BINARY_CHECK) {
2223- CheckRadioButton(hDlgWnd, IDC_SCP_RADIO, IDC_PASTE_RADIO, IDC_SENDFILE_RADIO);
2224- }
2225- if (wID == IDC_ESCAPE_CHECK ||
2226- wID == IDC_SPACE_RADIO || wID == IDC_NEWLINE_RADIO)
2227- {
2228- CheckRadioButton(hDlgWnd, IDC_SCP_RADIO, IDC_PASTE_RADIO, IDC_PASTE_RADIO);
2229- }
2230- if (wID == IDOK) {
2231- if (IsDlgButtonChecked(hDlgWnd, IDC_SCP_RADIO) == BST_CHECKED) {
2232- // SCP
2233- DlgData->Param->DropType = DROP_TYPE_SCP;
2234- SendMessage(GetDlgItem(hDlgWnd, IDC_SCP_PATH), WM_GETTEXT,
2235- (WPARAM)DlgData->Param->ScpSendDirSize,
2236- (LPARAM)DlgData->Param->ScpSendDirPtr);
2237- } else if (IsDlgButtonChecked(hDlgWnd, IDC_SENDFILE_RADIO) == BST_CHECKED) {
2238- // Send File
2239- DlgData->Param->DropType =
2240- (IsDlgButtonChecked(hDlgWnd, IDC_BINARY_CHECK) == BST_CHECKED) ?
2241- DROP_TYPE_SEND_FILE_BINARY : DROP_TYPE_SEND_FILE;
2242- } else /* if (IsDlgButtonChecked(hDlgWnd, IDC_PASTE_RADIO) == BST_CHECKED) */ {
2243- // Paste Filename
2244- DlgData->Param->DropType = DROP_TYPE_PASTE_FILENAME;
2245- DlgData->Param->DropTypePaste = 0;
2246- DlgData->Param->DropTypePaste |=
2247- (IsDlgButtonChecked(hDlgWnd, IDC_ESCAPE_CHECK) == BST_CHECKED) ?
2248- DROP_TYPE_PASTE_ESCAPE : 0;
2249- DlgData->Param->DropTypePaste |=
2250- (IsDlgButtonChecked(hDlgWnd, IDC_NEWLINE_RADIO) == BST_CHECKED) ?
2251- DROP_TYPE_PASTE_NEWLINE : 0;
2252- }
2253- DlgData->Param->DoSameProcess =
2254- (IsDlgButtonChecked(hDlgWnd, IDC_SAME_PROCESS_CHECK) == BST_CHECKED) ?
2255- true : false;
2256- DlgData->Param->DoSameProcessNextDrop =
2257- (IsDlgButtonChecked(hDlgWnd, IDC_SAME_PROCESS_NEXTDROP_CHECK) == BST_CHECKED) ?
2258- true : false;
2259- DlgData->Param->DoNotShowDialog =
2260- (IsDlgButtonChecked(hDlgWnd, IDC_DONTSHOW_CHECK) == BST_CHECKED) ?
2261- true : false;
2262- }
2263- if (wID == IDCANCEL) {
2264- DlgData->Param->DropType = DROP_TYPE_CANCEL;
2265- }
2266- if (wID == IDOK || wID == IDCANCEL) {
2267- if (DlgData->DlgDragDropFont != NULL) {
2268- DeleteObject(DlgData->DlgDragDropFont);
2269- }
2270- EndDialog(hDlgWnd, wID);
2271- free(DlgData);
2272- break;
2273- }
2274- return FALSE;
2275- }
2276-
2277- default:
2278- return FALSE;
2279- }
2280- return TRUE;
2281-}
2282-
2283-static enum drop_type ShowDropDialogBox(
2284- HINSTANCE hInstance, HWND hWndParent,
2285- const char *TargetFilename,
2286- enum drop_type DefaultDropType,
2287- int RemaingFileCount,
2288- bool EnableSCP,
2289- bool EnableSendFile,
2290- bool EnableDoNotShowDialog,
2291- unsigned char *DropTypePaste,
2292- bool *DoSameProcess,
2293- bool *DoSameProcessNextDrop,
2294- bool *DoNotShowDialog)
2295-{
2296- struct DrapDropDlgParam Param;
2297- Param.TargetFilename = TargetFilename;
2298- Param.DropType = DefaultDropType;
2299- Param.DropTypePaste = *DropTypePaste;
2300- Param.ScpEnable = EnableSCP;
2301- Param.ScpSendDirPtr = ts.ScpSendDir;
2302- Param.ScpSendDirSize = sizeof(ts.ScpSendDir);
2303- Param.SendfileEnable = EnableSendFile;
2304- Param.PasteNewlineEnable = true;
2305- Param.RemaingFileCount = RemaingFileCount;
2306- Param.DoNotShowDialog = *DoNotShowDialog;
2307- Param.DoNotShowDialogEnable = EnableDoNotShowDialog;
2308- int ret = DialogBoxParam(
2309- hInstance, MAKEINTRESOURCE(IDD_DAD_DIALOG),
2310- hWndParent, (DLGPROC)OnDragDropDlgProc,
2311- (LPARAM)&Param);
2312- if (ret != IDOK) {
2313- return DROP_TYPE_CANCEL;
2314- }
2315- *DropTypePaste = Param.DropTypePaste;
2316- *DoSameProcess = Param.DoSameProcess;
2317- *DoSameProcessNextDrop = Param.DoSameProcessNextDrop;
2318- *DoNotShowDialog = Param.DoNotShowDialog;
2319- return Param.DropType;
2320-}
2321-
23222028 static void EscapeFilename(const char *src, char *dest)
23232029 {
23242030 #define ESCAPE_CHARS " ;&()$!`'[]{}#^~"
--- branches/drag_and_drop/teraterm/ttpdlg/ttdlg.c (revision 7144)
+++ branches/drag_and_drop/teraterm/ttpdlg/ttdlg.c (revision 7145)
@@ -1,6 +1,6 @@
11 /*
22 * Copyright (C) 1994-1998 T. Teranishi
3- * (C) 2004-2017 TeraTerm Project
3+ * (C) 2004-2018 TeraTerm Project
44 * All rights reserved.
55 *
66 * Redistribution and use in source and binary forms, with or without
@@ -72,9 +72,9 @@
7272
7373 char UILanguageFile[MAX_PATH];
7474
75-static PCHAR far NLListRcv[] = {"CR","CR+LF", "LF", "AUTO", NULL};
76-static PCHAR far NLList[] = {"CR","CR+LF", "LF", NULL};
77-static PCHAR far TermList[] =
75+static PCHAR NLListRcv[] = {"CR","CR+LF", "LF", "AUTO", NULL};
76+static PCHAR NLList[] = {"CR","CR+LF", "LF", NULL};
77+static PCHAR TermList[] =
7878 {"VT100", "VT101", "VT102", "VT282", "VT320", "VT382",
7979 "VT420", "VT520", "VT525", NULL};
8080 static WORD Term_TermJ[] =
@@ -81,29 +81,34 @@
8181 {IdVT100, IdVT101, IdVT102, IdVT282, IdVT320, IdVT382,
8282 IdVT420, IdVT520, IdVT525};
8383 static WORD TermJ_Term[] = {1, 1, 2, 3, 3, 4, 4, 5, 6, 7, 8, 9};
84-static PCHAR far TermListJ[] =
84+static PCHAR TermListJ[] =
8585 {"VT100", "VT100J", "VT101", "VT102", "VT102J", "VT220J", "VT282",
8686 "VT320", "VT382", "VT420", "VT520", "VT525", NULL};
87-static PCHAR far KanjiList[] = {"SJIS","EUC","JIS", "UTF-8", "UTF-8m", NULL};
88-static PCHAR far KanjiListSend[] = {"SJIS","EUC","JIS", "UTF-8", NULL};
89-static PCHAR far KanjiInList[] = {"^[$@","^[$B",NULL};
90-static PCHAR far KanjiOutList[] = {"^[(B","^[(J",NULL};
91-static PCHAR far KanjiOutList2[] = {"^[(B","^[(J","^[(H",NULL};
92-static PCHAR far RussList[] = {"Windows","KOI8-R","CP 866","ISO 8859-5",NULL};
93-static PCHAR far RussList2[] = {"Windows","KOI8-R",NULL};
94-static PCHAR far LocaleList[] = {"japanese","chinese", "chinese-simplified", "chinese-traditional", NULL};
95-static PCHAR far MetaList[] = {"off", "on", "left", "right", NULL};
96-static PCHAR far MetaList2[] = {"off", "on", NULL};
87+static PCHAR KanjiList[] = {"SJIS","EUC","JIS", "UTF-8", "UTF-8m", NULL};
88+static PCHAR KanjiListSend[] = {"SJIS","EUC","JIS", "UTF-8", NULL};
89+static PCHAR KanjiInList[] = {"^[$@","^[$B",NULL};
90+static PCHAR KanjiOutList[] = {"^[(B","^[(J",NULL};
91+static PCHAR KanjiOutList2[] = {"^[(B","^[(J","^[(H",NULL};
92+static PCHAR RussList[] = {"Windows","KOI8-R","CP 866","ISO 8859-5",NULL};
93+static PCHAR RussList2[] = {"Windows","KOI8-R",NULL};
94+static PCHAR LocaleList[] = {"japanese","chinese", "chinese-simplified", "chinese-traditional", NULL};
95+static PCHAR MetaList[] = {"off", "on", "left", "right", NULL};
96+static PCHAR MetaList2[] = {"off", "on", NULL};
9797
9898 // HKS
99-static PCHAR far KoreanList[] = {"KS5601", "UTF-8", "UTF-8m", NULL};
100-static PCHAR far KoreanListSend[] = {"KS5601", "UTF-8", NULL};
99+static PCHAR KoreanList[] = {"KS5601", "UTF-8", "UTF-8m", NULL};
100+static PCHAR KoreanListSend[] = {"KS5601", "UTF-8", NULL};
101101
102102 // UTF-8
103-static PCHAR far Utf8List[] = {"UTF-8", "UTF-8m", NULL};
104-static PCHAR far Utf8ListSend[] = {"UTF-8", NULL};
103+static PCHAR Utf8List[] = {"UTF-8", "UTF-8m", NULL};
104+static PCHAR Utf8ListSend[] = {"UTF-8", NULL};
105105
106+static PCHAR BaudList[] =
107+ {"110","300","600","1200","2400","4800","9600",
108+ "14400","19200","38400","57600","115200",
109+ "230400", "460800", "921600", NULL};
106110
111+
107112 BOOL CALLBACK TermDlg(HWND Dialog, UINT Message, WPARAM wParam, LPARAM lParam)
108113 {
109114 PTTSet ts;
@@ -1359,10 +1364,10 @@
13591364 return FALSE;
13601365 }
13611366
1362-static PCHAR far DataList[] = {"7 bit","8 bit",NULL};
1363-static PCHAR far ParityList[] = {"none", "odd", "even", "mark", "space", NULL};
1364-static PCHAR far StopList[] = {"1 bit", "1.5 bit", "2 bit", NULL};
1365-static PCHAR far FlowList[] = {"Xon/Xoff","hardware","none",NULL};
1367+static PCHAR DataList[] = {"7 bit","8 bit",NULL};
1368+static PCHAR ParityList[] = {"none", "odd", "even", "mark", "space", NULL};
1369+static PCHAR StopList[] = {"1 bit", "1.5 bit", "2 bit", NULL};
1370+static PCHAR FlowList[] = {"Xon/Xoff","hardware","none",NULL};
13661371
13671372 BOOL CALLBACK SerialDlg(HWND Dialog, UINT Message, WPARAM wParam, LPARAM lParam)
13681373 {
@@ -3036,7 +3041,7 @@
30363041 return FALSE;
30373042 }
30383043
3039-static PCHAR far LangList[] = {"English","Japanese","Russian","Korean","UTF-8",NULL};
3044+static PCHAR LangList[] = {"English","Japanese","Russian","Korean","UTF-8",NULL};
30403045 static char **LangUIList = NULL;
30413046 #define LANG_PATH "lang"
30423047 #define LANG_EXT ".lng"
@@ -3573,7 +3578,7 @@
35733578 switch (ul_reason_for_call) {
35743579 case DLL_THREAD_ATTACH:
35753580 /* do thread initialization */
3576- break;
3581+ break;
35773582 case DLL_THREAD_DETACH:
35783583 /* do thread cleanup */
35793584 break;
Show on old repository browser