Develop and Download Open Source Software

Browse Subversion Repository

Diff of /trunk/teraterm/ttpcmn/ttcmn.c

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

revision 8445 by doda, Tue Dec 17 12:15:31 2019 UTC revision 8496 by zmatsuo, Wed Jan 22 13:53:43 2020 UTC
# Line 1  Line 1 
1  /*  /*
2   * Copyright (C) 1994-1998 T. Teranishi   * Copyright (C) 1994-1998 T. Teranishi
3   * (C) 2004-2019 TeraTerm Project   * (C) 2004-2020 TeraTerm Project
4   * All rights reserved.   * All rights reserved.
5   *   *
6   * Redistribution and use in source and binary forms, with or without   * Redistribution and use in source and binary forms, with or without
# Line 58  Line 58 
58    
59  #define DllExport __declspec(dllexport)  #define DllExport __declspec(dllexport)
60  #include "ttcommon.h"  #include "ttcommon.h"
61    #include "layer_for_unicode.h"
62    
63    
64  // TMap を格納するファイルマッピングオブジェクト(共有メモリ)の名前  // TMap を格納するファイルマッピングオブジェクト(共有メモリ)の名前
# Line 76  static HANDLE HMap = NULL; Line 77  static HANDLE HMap = NULL;
77  #define VTCLASSNAME _T("VTWin32")  #define VTCLASSNAME _T("VTWin32")
78  #define TEKCLASSNAME _T("TEKWin32")  #define TEKCLASSNAME _T("TEKWin32")
79    
 #ifdef UNICODE  
 static HWND(WINAPI *pHtmlHelp)(HWND hwndCaller, LPCWSTR pszFile, UINT uCommand, DWORD_PTR dwData);  
 #define HTMLHELP_API_NAME       "HtmlHelpW"  
 #else  
 static HWND(WINAPI *pHtmlHelp)(HWND hwndCaller, LPCSTR pszFile, UINT uCommand, DWORD_PTR dwData);  
 #define HTMLHELP_API_NAME       "HtmlHelpA"  
 #endif  
   
80  enum window_style {  enum window_style {
81          WIN_CASCADE,          WIN_CASCADE,
82          WIN_STACKED,          WIN_STACKED,
# Line 950  void WINAPI SetWinMenu(HMENU menu, PCHAR Line 943  void WINAPI SetWinMenu(HMENU menu, PCHAR
943          int i;          int i;
944          char Temp[MAXPATHLEN];          char Temp[MAXPATHLEN];
945          HWND Hw;          HWND Hw;
946            wchar_t uimsg[MAX_UIMSG];
947    
948          // delete all items in Window menu          // delete all items in Window menu
949          i = GetMenuItemCount(menu);          i = GetMenuItemCount(menu);
# Line 981  void WINAPI SetWinMenu(HMENU menu, PCHAR Line 975  void WINAPI SetWinMenu(HMENU menu, PCHAR
975                          UnregWin(Hw);                          UnregWin(Hw);
976                  }                  }
977          }          }
         get_lang_msg("MENU_WINDOW_WINDOW", buf, buflen, "&Window", langFile);  
978          if (VTFlag == 1) {          if (VTFlag == 1) {
979                  AppendMenu(menu, MF_SEPARATOR, 0, NULL);                  static const DlgTextInfo MenuTextInfo[] = {
980                  AppendMenu(menu,MF_ENABLED | MF_STRING,ID_WINDOW_WINDOW, buf);                          { ID_WINDOW_WINDOW, "MENU_WINDOW_WINDOW" },
981                            { ID_WINDOW_MINIMIZEALL, "MENU_WINDOW_MINIMIZEALL" },
982                  get_lang_msg("MENU_WINDOW_MINIMIZEALL", buf, buflen, "&Minimize All", langFile);                          { ID_WINDOW_RESTOREALL, "MENU_WINDOW_RESTOREALL" },
983                  AppendMenu(menu, MF_ENABLED | MF_STRING, ID_WINDOW_MINIMIZEALL, buf);                          { ID_WINDOW_CASCADEALL, "MENU_WINDOW_CASCADE" },
984                            { ID_WINDOW_STACKED, "MENU_WINDOW_STACKED" },
985                  get_lang_msg("MENU_WINDOW_RESTOREALL", buf, buflen, "&Restore All", langFile);                          { ID_WINDOW_SIDEBYSIDE, "MENU_WINDOW_SIDEBYSIDE" },
986                  AppendMenu(menu, MF_ENABLED | MF_STRING, ID_WINDOW_RESTOREALL, buf);                  };
987    
988                  get_lang_msg("MENU_WINDOW_CASCADE", buf, buflen, "&Cascade", langFile);                  AppendMenu(menu, MF_SEPARATOR, 0, NULL);
989                  AppendMenu(menu, MF_ENABLED | MF_STRING, ID_WINDOW_CASCADEALL, buf);                  AppendMenu(menu, MF_ENABLED | MF_STRING, ID_WINDOW_WINDOW, "&Window");
990                    AppendMenu(menu, MF_ENABLED | MF_STRING, ID_WINDOW_MINIMIZEALL, "&Minimize All");
991                  get_lang_msg("MENU_WINDOW_STACKED", buf, buflen, "&Stacked", langFile);                  AppendMenu(menu, MF_ENABLED | MF_STRING, ID_WINDOW_RESTOREALL, "&Restore All");
992                  AppendMenu(menu, MF_ENABLED | MF_STRING, ID_WINDOW_STACKED, buf);                  AppendMenu(menu, MF_ENABLED | MF_STRING, ID_WINDOW_CASCADEALL, "&Cascade");
993                    AppendMenu(menu, MF_ENABLED | MF_STRING, ID_WINDOW_STACKED, "&Stacked");
994                    AppendMenu(menu, MF_ENABLED | MF_STRING, ID_WINDOW_SIDEBYSIDE, "Side &by Side");
995    
996                  get_lang_msg("MENU_WINDOW_SIDEBYSIDE", buf, buflen, "Side &by Side", langFile);                  SetI18nMenuStrs("Tera Term", menu, MenuTextInfo, _countof(MenuTextInfo), langFile);
                 AppendMenu(menu, MF_ENABLED | MF_STRING, ID_WINDOW_SIDEBYSIDE, buf);  
997    
998                  if (pm->WinUndoFlag) {                  if (pm->WinUndoFlag) {
999                          if (pm->WinUndoStyle == WIN_CASCADE)                          if (pm->WinUndoStyle == WIN_CASCADE)
1000                                  get_lang_msg("MENU_WINDOW_CASCADE_UNDO", buf, buflen, "&Undo - Cascade", langFile);                                  get_lang_msgW("MENU_WINDOW_CASCADE_UNDO", uimsg, _countof(uimsg), L"&Undo - Cascade", langFile);
1001                          else if (pm->WinUndoStyle == WIN_STACKED)                          else if (pm->WinUndoStyle == WIN_STACKED)
1002                                  get_lang_msg("MENU_WINDOW_STACKED_UNDO", buf, buflen, "&Undo - Stacked", langFile);                                  get_lang_msgW("MENU_WINDOW_STACKED_UNDO", uimsg, _countof(uimsg), L"&Undo - Stacked", langFile);
1003                          else                          else
1004                                  get_lang_msg("MENU_WINDOW_SIDEBYSIDE_UNDO", buf, buflen, "&Undo - Side by Side", langFile);                                  get_lang_msgW("MENU_WINDOW_SIDEBYSIDE_UNDO", uimsg, _countof(uimsg), L"&Undo - Side by Side", langFile);
1005                          AppendMenu(menu, MF_ENABLED | MF_STRING, ID_WINDOW_UNDO, buf);                          _AppendMenuW(menu, MF_ENABLED | MF_STRING, ID_WINDOW_UNDO, uimsg);              // TODO UNICODE
1006                  }                  }
1007    
1008          }          }
1009          else {          else {
1010                  AppendMenu(menu,MF_ENABLED | MF_STRING,ID_TEKWINDOW_WINDOW, buf);                  get_lang_msgW("MENU_WINDOW_WINDOW", uimsg, _countof(uimsg), L"&Window", langFile);
1011                    _AppendMenuW(menu,MF_ENABLED | MF_STRING,ID_TEKWINDOW_WINDOW, uimsg);
1012          }          }
1013  }  }
1014    
# Line 1171  void WINAPI OpenHelp(UINT Command, DWORD Line 1166  void WINAPI OpenHelp(UINT Command, DWORD
1166          char HomeDir[MAX_PATH];          char HomeDir[MAX_PATH];
1167          char Temp[MAX_PATH];          char Temp[MAX_PATH];
1168          HWND HWin;          HWND HWin;
1169          TCHAR HelpFN[MAX_PATH];          wchar_t HelpFN[MAX_PATH];
1170          TCHAR uimsg[MAX_UIMSG];          wchar_t uimsg[MAX_UIMSG];
1171          TCHAR dllName[MAX_PATH];          wchar_t *HomeDirT;
         const TCHAR *HomeDirT;  
         const TCHAR *errorFile;  
         TCHAR buf[MAX_PATH];  
1172    
1173          /* Get home directory */          /* Get home directory */
1174          if (GetModuleFileNameA(NULL,Temp,_countof(Temp)) == 0) {          if (GetModuleFileNameA(NULL,Temp,_countof(Temp)) == 0) {
1175                  return;                  return;
1176          }          }
1177          ExtractDirName(Temp, HomeDir);          ExtractDirName(Temp, HomeDir);
1178          HomeDirT = ToTcharA(HomeDir);          HomeDirT = ToWcharA(HomeDir);
1179    
1180          get_lang_msgT("HELPFILE", uimsg, _countof(uimsg),          get_lang_msgW("HELPFILE", uimsg, _countof(uimsg), L"teraterm.chm", UILanguageFile);
                                   _T("teraterm.chm"), UILanguageFile);  
1181    
         if (pHtmlHelp == NULL) {  
                 HINSTANCE hDll;  
                 GetSystemDirectory(dllName, _countof(dllName));  
                 _tcscat_s(dllName, _countof(dllName), _T("\\hhctrl.ocx"));  
                 hDll = LoadLibrary(dllName);  
                 if (hDll == NULL) {  
                         errorFile = dllName;  
                         goto error;  
                 }  
                 pHtmlHelp = (void *)GetProcAddress(hDll, HTMLHELP_API_NAME);  
                 if (pHtmlHelp == NULL) {  
                         errorFile = dllName;  
                         goto error;  
                 }  
         }  
1182          // ヘルプのオーナーは常にデスクトップになる (2007.5.12 maya)          // ヘルプのオーナーは常にデスクトップになる (2007.5.12 maya)
1183          HWin = GetDesktopWindow();          HWin = GetDesktopWindow();
1184          _sntprintf_s(HelpFN, _countof(HelpFN), _TRUNCATE, _T("%s\\%s"), (TCHAR *)HomeDirT, uimsg);          _snwprintf_s(HelpFN, _countof(HelpFN), _TRUNCATE, L"%s\\%s", HomeDirT, uimsg);
1185          if (pHtmlHelp != NULL && pHtmlHelp(HWin, HelpFN, Command, Data) == NULL && Command != HH_CLOSE_ALL) {          if (_HtmlHelpW(HWin, HelpFN, Command, Data) == NULL && Command != HH_CLOSE_ALL) {
                 errorFile = HelpFN;  
1186                  goto error;                  goto error;
1187          }          }
1188          goto finish;          goto finish;
1189    
1190  error:  error:
1191          get_lang_msgT("MSG_OPENHELP_ERROR", uimsg, _countof(uimsg),          {
1192                                    _T("Can't open HTML help file(%s)."), UILanguageFile);                  wchar_t buf[MAX_PATH];
1193          _sntprintf_s(buf, _countof(buf), _TRUNCATE, uimsg, HelpFN);                  get_lang_msgW("MSG_OPENHELP_ERROR", uimsg, _countof(uimsg),
1194          MessageBox(HWin, buf, _T("Tera Term: HTML help"), MB_OK | MB_ICONERROR);                                            L"Can't open HTML help file(%s).", UILanguageFile);
1195                    _snwprintf_s(buf, _countof(buf), _TRUNCATE, uimsg, HelpFN);
1196                    _MessageBoxW(HWin, buf, L"Tera Term: HTML help", MB_OK | MB_ICONERROR);
1197            }
1198    
1199  finish:  finish:
1200          free((void *)HomeDirT);          free(HomeDirT);
1201  }  }
1202    
1203  HWND WINAPI GetNthWin(int n)  HWND WINAPI GetNthWin(int n)

Legend:
Removed from v.8445  
changed lines
  Added in v.8496

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