GFrame.cs
上传用户:szltgg
上传日期:2019-05-16
资源大小:604k
文件大小:63k
源码类别:

Telnet服务器

开发平台:

C#

  1. /*
  2. * Copyright (c) 2005 Poderosa Project, All Rights Reserved.
  3. * $Id: GFrame.cs,v 1.2 2005/04/20 08:45:45 okajima Exp $
  4. */
  5. using System;
  6. using System.IO;
  7. using System.Drawing;
  8. using System.Diagnostics;
  9. using System.ComponentModel;
  10. using System.Windows.Forms;
  11. using System.Threading;
  12. using System.Text.RegularExpressions;
  13. using System.Net.Sockets;
  14. using System.Text;
  15. using System.Collections;
  16. using System.Xml;
  17. using Poderosa.UI;
  18. using Poderosa.Terminal;
  19. using Poderosa.Communication;
  20. using Poderosa.Connection;
  21. using Poderosa.ConnectionParam;
  22. using Poderosa.Config;
  23. using Poderosa.Text;
  24. using Poderosa.MacroEnv;
  25. using Poderosa.Toolkit;
  26. namespace Poderosa.Forms
  27. {
  28. internal class GFrame : Form
  29.     {
  30.         #region Poderosa Fields
  31.         private Hashtable _windowMenuItemMap;
  32. private Hashtable _MRUMenuToParameter;
  33. private InitialAction _initialAction;
  34. internal bool _firstflag;
  35. public MultiPaneControl _multiPaneControl;
  36. private GStatusBar _gStatusBar;
  37. private XModemDialog _xmodemDialog;
  38. private TerminalConnection _commandTargetConnection;
  39. private ContextMenu _contextMenu;
  40. private System.Windows.Forms.MainMenu _menu;
  41. private GDialogBar _toolBar;
  42. private Poderosa.Forms.TabBar _tabBar;
  43. private System.Windows.Forms.StatusBar _statusBar;
  44. private System.Windows.Forms.StatusBarPanel _textStatusBarPanel;
  45. private System.Windows.Forms.StatusBarPanel _bellIndicateStatusBarPanel;
  46. private System.Windows.Forms.StatusBarPanel _caretPosStatusBarPanel;
  47. //!!側傜傃偐偊
  48. private GMenuItem _menuBarFile1;
  49. private GMenuItem _menuBarFile2;
  50. private GMenuItem _menuReceiveFile;
  51. private GMenuItem _menuSendFile;
  52. private GMenuItem _menuBarBeforeMRU;
  53. private GMenuItem _menuBarAfterMRU;
  54. private GMenuItem _menuQuit;
  55. private GMenuItem _menuBarConsole2;
  56. private GMainMenuItem _menuFile;
  57. private GMenuItem _menuOpenShortcut;
  58. private GMenuItem _menuNewConnection;
  59. private GMenuItem _menuCygwinNewConnection;
  60. private GMenuItem _menuSFUNewConnection;
  61. private GMainMenuItem _menuTool;
  62. private GMenuItem _menuSaveShortcut;
  63. private GMenuItem _menuKeyGen;
  64. private GMenuItem _menuChangePassphrase;
  65. private GMenuItem _menuBarTool1;
  66. private GMenuItem _menuMacro;
  67. private GMenuItem _menuBarTool2;
  68. private GMenuItem _menuOption;
  69. private GMenuItem _menuMacroConfig;
  70. private GMenuItem _menuStopMacro;
  71. private GMenuItem _menuBarMacro;
  72. private GMainMenuItem _menuConsole;
  73. private GMenuItem _menuNewLine;
  74. private GMenuItem _menuNewLine_CR;
  75. private GMenuItem _menuNewLine_LF;
  76. private GMenuItem _menuNewLine_CRLF;
  77. private GMenuItem _menuLineFeedRule;
  78. private GMenuItem _menuLocalEcho;
  79. private GMenuItem _menuSendSpecial;
  80. private GMenuItem _menuSendBreak;
  81. private GMenuItem _menuAreYouThere;
  82. private GMenuItem _menuSerialConfig;
  83. private GMenuItem _menuResetTerminal;
  84. private GMenuItem _menuEncoding;
  85. private GMenuItem _menuSuspendLog;
  86. private GMenuItem _menuCommentLog;
  87. private GMenuItem _menuServerInfo;
  88. private GMainMenuItem _menuWindow;
  89. private GMainMenuItem _menuHelp;
  90. private GMenuItem _menuAboutBox;
  91. private GMenuItem _menuProductWeb;
  92. private GMenuItem _menuChangeLog;
  93. private GMenuItem _menuBarConsole3;
  94. private GMenuItem _menuConsoleClose;
  95. private GMenuItem _menuConsoleReproduce;
  96. private GMenuItem _menuRenameTab;
  97. private GMenuItem _menuBarConsole1;
  98. private GMenuItem _menuPane;
  99. private GMenuItem _menuTab;
  100. private GMenuItem _menuMovePane;
  101. private GMenuItem _menuBarWindow3;
  102. private GMenuItem _menuMovePaneUp;
  103. private GMenuItem _menuMovePaneDown;
  104. private GMenuItem _menuMovePaneLeft;
  105. private GMenuItem _menuMovePaneRight;
  106. private GMenuItem _menuCloseAll;
  107. private GMenuItem _menuCloseAllDisconnected;
  108. private GMenuItem _menuBarWindow1;
  109. private GMenuItem _menuPrevTab;
  110. private GMenuItem _menuNextTab;
  111. private GMenuItem _menuMoveTabToPrev;
  112. private GMenuItem _menuMoveTabToNext;
  113. private GMenuItem _menuExpandPane;
  114. private GMenuItem _menuShrinkPane;
  115. private GMenuItem _menuSerialNewConnection;
  116. private GMainMenuItem _menuEdit;
  117. private GMenuItem _menuCopy;
  118. private GMenuItem _menuPaste;
  119. private GMenuItem _menuCopyToFile;
  120. private GMenuItem _menuPasteFromFile;
  121. private GMenuItem _menuSelectAll;
  122. private GMenuItem _menuBarEdit1;
  123. private GMenuItem _menuBarEdit2;
  124. private GMenuItem _menuBarEdit3;
  125. private GMenuItem _menuClearScreen;
  126. private GMenuItem _menuClearBuffer;
  127. private GMenuItem _menuFreeSelectionMode;
  128. private GMenuItem _menuAutoSelectionMode;
  129. private GMenuItem _menuBarWindow2;
  130. private GMenuItem _menuFrameStyle;
  131. private GMenuItem _menuFrameStyleSingle;
  132. private GMenuItem _menuFrameStyleDivHorizontal;
  133. private GMenuItem _menuFrameStyleDivVertical;
  134. private GMenuItem _menuFrameStyleDivHorizontal3;
  135. private GMenuItem _menuFrameStyleDivVertical3;
  136. private GMenuItem _menuEditRenderProfile;
  137. private GMenuItem _menuCopyAsLook;
  138. private GMenuItem _menuLaunchPortforwarding;
  139.         #endregion
  140. public GFrame(InitialAction act)
  141.         {
  142.             #region Poderosa Constructors
  143.             _initialAction = act;
  144. _windowMenuItemMap = new Hashtable();
  145. _MRUMenuToParameter = new Hashtable();
  146. _firstflag=true;
  147. //
  148. // Windows 僼僅乕儉 僨僓僀僫 僒億乕僩偵昁梫偱偡丅
  149. //
  150. SetStyle(ControlStyles.AllPaintingInWmPaint|ControlStyles.UserPaint|ControlStyles.DoubleBuffer, true);
  151. InitializeComponent();
  152. this.Icon = GApp.Options.GuevaraMode? GIcons.GetOldGuevaraIcon() : GIcons.GetAppIcon();
  153. InitMenuText();
  154. //僔僗僥儉偐傜僄儞僐乕僨傿儞僌傪楍嫇偟偰儊僯儏乕傪僙僢僩
  155. foreach(string e in EnumDescAttribute.For(typeof(EncodingType)).DescriptionCollection()) {
  156. GMenuItem m = new GMenuItem();
  157. m.Text = e;
  158. m.Click += new EventHandler(this.OnChangeEncoding);
  159. _menuEncoding.MenuItems.Add(m);
  160. }
  161. this._tabBar = new TabBar();
  162. _tabBar.Dock = DockStyle.Top;
  163. _tabBar.Height = 25;
  164. ApplyOptions(null, GApp.Options);
  165. ApplyHotKeys();
  166. _gStatusBar = new GStatusBar(_statusBar);
  167. AdjustTitle(null);
  168. #endregion
  169.         }
  170.         #region
  171.         public void ReloadIcon() {
  172. this.Icon = GApp.Options.GuevaraMode? GIcons.GetOldGuevaraIcon() : GIcons.GetAppIcon();
  173. }
  174. protected override void Dispose( bool disposing ) {
  175. base.Dispose( disposing );
  176.         }
  177.         #endregion
  178.         #region Windows Form Designer generated code
  179.         /// <summary>
  180. /// 僨僓僀僫 僒億乕僩偵昁梫側儊僜僢僪偱偡丅偙偺儊僜僢僪偺撪梕傪
  181. /// 僐乕僪 僄僨傿僞偱曄峏偟側偄偱偔偩偝偄丅
  182. /// </summary>
  183. private void InitializeComponent() {
  184. System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(GFrame));
  185. this._menu = new System.Windows.Forms.MainMenu();
  186. this._menuFile = new GMainMenuItem();
  187. this._menuNewConnection = new GMenuItem();
  188. this._menuSerialNewConnection = new GMenuItem();
  189. this._menuCygwinNewConnection = new GMenuItem();
  190. this._menuSFUNewConnection = new GMenuItem();
  191. this._menuBarFile1 = new GMenuItem();
  192. this._menuOpenShortcut = new GMenuItem();
  193. this._menuSaveShortcut = new GMenuItem();
  194. this._menuBarFile2 = new GMenuItem();
  195. this._menuReceiveFile = new GMenuItem();
  196. this._menuSendFile = new GMenuItem();
  197. this._menuBarBeforeMRU = new GMenuItem();
  198. this._menuBarAfterMRU = new GMenuItem();
  199. this._menuQuit = new GMenuItem();
  200. this._menuEdit = new GMainMenuItem();
  201. this._menuCopy = new GMenuItem();
  202. this._menuPaste = new GMenuItem();
  203. this._menuBarEdit1 = new GMenuItem();
  204. this._menuCopyAsLook = new GMenuItem();
  205. this._menuCopyToFile = new GMenuItem();
  206. this._menuPasteFromFile = new GMenuItem();
  207. this._menuBarEdit2 = new GMenuItem();
  208. this._menuClearScreen = new GMenuItem();
  209. this._menuClearBuffer = new GMenuItem();
  210. this._menuBarEdit3 = new GMenuItem();
  211. this._menuSelectAll = new GMenuItem();
  212. this._menuFreeSelectionMode = new GMenuItem();
  213. this._menuAutoSelectionMode = new GMenuItem();
  214. this._menuConsole = new GMainMenuItem();
  215. this._menuConsoleClose = new GMenuItem();
  216. this._menuRenameTab = new GMenuItem();
  217. this._menuConsoleReproduce = new GMenuItem();
  218. this._menuBarConsole1 = new GMenuItem();
  219. this._menuNewLine = new GMenuItem();
  220. this._menuNewLine_CR = new GMenuItem();
  221. this._menuNewLine_LF = new GMenuItem();
  222. this._menuNewLine_CRLF = new GMenuItem();
  223. this._menuLocalEcho = new GMenuItem();
  224. this._menuLineFeedRule = new GMenuItem();
  225. this._menuSendSpecial = new GMenuItem();
  226. this._menuSendBreak = new GMenuItem();
  227. this._menuAreYouThere = new GMenuItem();
  228. this._menuSerialConfig = new GMenuItem();
  229. this._menuResetTerminal = new GMenuItem();
  230. this._menuBarConsole2 = new GMenuItem();
  231. this._menuSuspendLog = new GMenuItem();
  232. this._menuCommentLog = new GMenuItem();
  233. this._menuChangeLog = new GMenuItem();
  234. this._menuBarConsole3 = new GMenuItem();
  235. this._menuServerInfo = new GMenuItem();
  236. this._menuTool = new GMainMenuItem();
  237. this._menuKeyGen = new GMenuItem();
  238. this._menuChangePassphrase = new GMenuItem();
  239. this._menuBarTool1 = new GMenuItem();
  240. this._menuMacro = new GMenuItem();
  241. this._menuBarTool2 = new GMenuItem();
  242. this._menuOption = new GMenuItem();
  243. this._menuMacroConfig = new GMenuItem();
  244. this._menuStopMacro = new GMenuItem();
  245. this._menuBarMacro = new GMenuItem();
  246. this._menuWindow = new GMainMenuItem();
  247. this._menuFrameStyle = new GMenuItem();
  248. this._menuFrameStyleSingle = new GMenuItem();
  249. this._menuFrameStyleDivHorizontal = new GMenuItem();
  250. this._menuFrameStyleDivVertical = new GMenuItem();
  251. this._menuFrameStyleDivHorizontal3 = new GMenuItem();
  252. this._menuFrameStyleDivVertical3 = new GMenuItem();
  253. this._menuPane = new GMenuItem();
  254. this._menuMovePane = new GMenuItem();
  255. this._menuMovePaneUp = new GMenuItem();
  256. this._menuMovePaneDown = new GMenuItem();
  257. this._menuMovePaneLeft = new GMenuItem();
  258. this._menuMovePaneRight = new GMenuItem();
  259. this._menuExpandPane = new GMenuItem();
  260. this._menuShrinkPane = new GMenuItem();
  261. this._menuBarWindow1 = new GMenuItem();
  262. this._menuTab = new GMenuItem();
  263. this._menuPrevTab = new GMenuItem();
  264. this._menuNextTab = new GMenuItem();
  265. this._menuMoveTabToPrev = new GMenuItem();
  266. this._menuMoveTabToNext = new GMenuItem();
  267. this._menuBarWindow2 = new GMenuItem();
  268. this._menuCloseAll = new GMenuItem();
  269. this._menuCloseAllDisconnected = new GMenuItem();
  270. this._menuBarWindow3 = new GMenuItem();
  271. this._menuHelp = new GMainMenuItem();
  272. this._menuAboutBox = new GMenuItem();
  273. this._menuProductWeb = new GMenuItem();
  274. this._statusBar = new System.Windows.Forms.StatusBar();
  275. this._textStatusBarPanel = new System.Windows.Forms.StatusBarPanel();
  276. this._bellIndicateStatusBarPanel = new System.Windows.Forms.StatusBarPanel();
  277. this._caretPosStatusBarPanel = new System.Windows.Forms.StatusBarPanel();
  278. this._menuEncoding = new GMenuItem();
  279. this._menuEditRenderProfile = new GMenuItem();
  280. this._menuLaunchPortforwarding = new GMenuItem();
  281. ((System.ComponentModel.ISupportInitialize)(this._textStatusBarPanel)).BeginInit();
  282. ((System.ComponentModel.ISupportInitialize)(this._bellIndicateStatusBarPanel)).BeginInit();
  283. ((System.ComponentModel.ISupportInitialize)(this._caretPosStatusBarPanel)).BeginInit();
  284. this.SuspendLayout();
  285. // 
  286. // _menu
  287. // 
  288. this._menu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
  289.   this._menuFile,
  290.   this._menuEdit,
  291.   this._menuConsole,
  292.   this._menuTool,
  293.   this._menuWindow,
  294.   this._menuHelp});
  295. // 
  296. // _menuFile
  297. // 
  298. this._menuFile.Index = 0;
  299. this._menuFile.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
  300.   this._menuNewConnection,
  301.   this._menuSerialNewConnection,
  302.   this._menuCygwinNewConnection,
  303.   this._menuSFUNewConnection,
  304.   this._menuBarFile1,
  305.   this._menuOpenShortcut,
  306.   this._menuSaveShortcut,
  307.   this._menuBarFile2,
  308.   this._menuReceiveFile,
  309.   this._menuSendFile,
  310.   this._menuBarBeforeMRU,
  311.   this._menuBarAfterMRU,
  312.   this._menuQuit});
  313. // 
  314. // _menuNewConnection
  315. // 
  316. this._menuNewConnection.Index = 0;
  317. this._menuNewConnection.Click += new System.EventHandler(this.OnMenu);
  318. this._menuNewConnection.CID = (int)CID.NewConnection;
  319. // 
  320. // _menuSerialNewConnection
  321. // 
  322. this._menuSerialNewConnection.Index = 1;
  323. this._menuSerialNewConnection.Click += new System.EventHandler(this.OnMenu);
  324. this._menuSerialNewConnection.CID = (int)CID.NewSerialConnection;
  325. // 
  326. // _menuCygwinNewConnection
  327. // 
  328. this._menuCygwinNewConnection.Index = 2;
  329. this._menuCygwinNewConnection.Click += new System.EventHandler(this.OnMenu);
  330. this._menuCygwinNewConnection.CID = (int)CID.NewCygwinConnection;
  331. // 
  332. // _menuSFUNewConnection
  333. // 
  334. this._menuSFUNewConnection.Index = 3;
  335. this._menuSFUNewConnection.Click += new System.EventHandler(this.OnMenu);
  336. this._menuSFUNewConnection.CID = (int)CID.NewSFUConnection;
  337. // 
  338. // _menuBarFile1
  339. // 
  340. this._menuBarFile1.Index = 4;
  341. this._menuBarFile1.Text = "-";
  342. // 
  343. // _menuOpenShortcut
  344. // 
  345. this._menuOpenShortcut.Index = 5;
  346. this._menuOpenShortcut.Click += new System.EventHandler(this.OnMenu);
  347. this._menuOpenShortcut.CID = (int)CID.OpenShortcut;
  348. // 
  349. // _menuSaveShortcut
  350. // 
  351. this._menuSaveShortcut.Enabled = false;
  352. this._menuSaveShortcut.Index = 6;
  353. this._menuSaveShortcut.Click += new System.EventHandler(this.OnMenu);
  354. this._menuSaveShortcut.CID = (int)CID.SaveShortcut;
  355. // 
  356. // _menuBarFile2
  357. // 
  358. this._menuBarFile2.Index = 7;
  359. this._menuBarFile2.Text = "-";
  360. // 
  361. // _menuReceiveFile
  362. // 
  363. this._menuReceiveFile.Enabled = false;
  364. this._menuReceiveFile.Index = 8;
  365. this._menuReceiveFile.Click += new System.EventHandler(this.OnMenu);
  366. this._menuReceiveFile.CID = (int)CID.ReceiveFile;
  367. // 
  368. // _menuSendFile
  369. // 
  370. this._menuSendFile.Enabled = false;
  371. this._menuSendFile.Index = 9;
  372. this._menuSendFile.Click += new System.EventHandler(this.OnMenu);
  373. this._menuSendFile.CID = (int)CID.SendFile;
  374. // 
  375. // _menuBarBeforeMRU
  376. // 
  377. this._menuBarBeforeMRU.Index = 10;
  378. this._menuBarBeforeMRU.Text = "-";
  379. // 
  380. // _menuBarAfterMRU
  381. // 
  382. this._menuBarAfterMRU.Index = 11;
  383. this._menuBarAfterMRU.Text = "-";
  384. // 
  385. // _menuQuit
  386. // 
  387. this._menuQuit.Index = 12;
  388. this._menuQuit.Click += new System.EventHandler(this.OnMenu);
  389. this._menuQuit.CID = (int)CID.Quit;
  390. // 
  391. // _menuEdit
  392. // 
  393. this._menuEdit.Index = 1;
  394. this._menuEdit.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
  395.   this._menuCopy,
  396.   this._menuPaste,
  397.   this._menuBarEdit1,
  398.   this._menuCopyAsLook,
  399.   this._menuCopyToFile,
  400.   this._menuPasteFromFile,
  401.   this._menuBarEdit2,
  402.   this._menuClearScreen,
  403.   this._menuClearBuffer,
  404.   this._menuBarEdit3,
  405.   this._menuSelectAll,
  406.   this._menuFreeSelectionMode,
  407.   this._menuAutoSelectionMode});
  408. this._menuEdit.Popup += new System.EventHandler(this.AdjustEditMenu);
  409. // 
  410. // _menuCopy
  411. // 
  412. this._menuCopy.Enabled = false;
  413. this._menuCopy.Index = 0;
  414. this._menuCopy.Click += new System.EventHandler(this.OnMenu);
  415. this._menuCopy.CID = (int)CID.Copy;
  416. // 
  417. // _menuPaste
  418. // 
  419. this._menuPaste.Enabled = false;
  420. this._menuPaste.Index = 1;
  421. this._menuPaste.Click += new System.EventHandler(this.OnMenu);
  422. this._menuPaste.CID = (int)CID.Paste;
  423. // 
  424. // _menuBarEdit1
  425. // 
  426. this._menuBarEdit1.Index = 2;
  427. this._menuBarEdit1.Text = "-";
  428. // 
  429. // _menuCopyAsLook
  430. // 
  431. this._menuCopyAsLook.Enabled = false;
  432. this._menuCopyAsLook.Index = 3;
  433. this._menuCopyAsLook.Click += new System.EventHandler(this.OnMenu);
  434. this._menuCopyAsLook.CID = (int)CID.CopyAsLook;
  435. // 
  436. // _menuCopyToFile
  437. // 
  438. this._menuCopyToFile.Enabled = false;
  439. this._menuCopyToFile.Index = 4;
  440. this._menuCopyToFile.Click += new System.EventHandler(this.OnMenu);
  441. this._menuCopyToFile.CID = (int)CID.CopyToFile;
  442. // 
  443. // _menuPasteFromFile
  444. // 
  445. this._menuPasteFromFile.Enabled = false;
  446. this._menuPasteFromFile.Index = 5;
  447. this._menuPasteFromFile.Click += new System.EventHandler(this.OnMenu);
  448. this._menuPasteFromFile.CID = (int)CID.PasteFromFile;
  449. // 
  450. // _menuBarEdit2
  451. // 
  452. this._menuBarEdit2.Index = 6;
  453. this._menuBarEdit2.Text = "-";
  454. // 
  455. // _menuClearScreen
  456. // 
  457. this._menuClearScreen.Index = 7;
  458. this._menuClearScreen.Click += new System.EventHandler(this.OnMenu);
  459. this._menuClearScreen.CID = (int)CID.ClearScreen;
  460. // 
  461. // _menuClearBuffer
  462. // 
  463. this._menuClearBuffer.Index = 8;
  464. this._menuClearBuffer.Click += new System.EventHandler(this.OnMenu);
  465. this._menuClearBuffer.CID = (int)CID.ClearBuffer;
  466. // 
  467. // _menuBarEdit3
  468. // 
  469. this._menuBarEdit3.Index = 9;
  470. this._menuBarEdit3.Text = "-";
  471. // 
  472. // _menuSelectAll
  473. // 
  474. this._menuSelectAll.Index = 10;
  475. this._menuSelectAll.Click += new System.EventHandler(this.OnMenu);
  476. this._menuSelectAll.CID = (int)CID.SelectAll;
  477. // 
  478. // _menuFreeSelectionMode
  479. // 
  480. this._menuFreeSelectionMode.Index = 11;
  481. this._menuFreeSelectionMode.Click += new System.EventHandler(this.OnMenu);
  482. this._menuFreeSelectionMode.CID = (int)CID.ToggleFreeSelectionMode;
  483. // 
  484. // _menuAutoSelectionMode
  485. // 
  486. this._menuAutoSelectionMode.Index = 12;
  487. this._menuAutoSelectionMode.Click += new System.EventHandler(this.OnMenu);
  488. this._menuAutoSelectionMode.CID = (int)CID.ToggleAutoSelectionMode;
  489. // 
  490. // _menuConsole
  491. // 
  492. this._menuConsole.Index = 2;
  493. this._menuConsole.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
  494.  this._menuConsoleClose,
  495.  this._menuConsoleReproduce,
  496.  this._menuBarConsole1,
  497.  this._menuNewLine,
  498.  this._menuLineFeedRule,
  499.  this._menuEncoding,
  500.  this._menuLocalEcho,
  501.  this._menuSendSpecial,
  502.  this._menuBarConsole2,
  503.  this._menuSuspendLog,
  504.  this._menuCommentLog,
  505.  this._menuChangeLog,
  506.  this._menuBarConsole3,
  507.  this._menuEditRenderProfile,
  508.  this._menuServerInfo,
  509.  this._menuRenameTab});
  510. this._menuConsole.Popup += new EventHandler(AdjustConsoleMenu);
  511. // 
  512. // _menuConsoleClose
  513. // 
  514. this._menuConsoleClose.Enabled = false;
  515. this._menuConsoleClose.Index = 0;
  516. this._menuConsoleClose.Click += new System.EventHandler(this.OnMenu);
  517. this._menuConsoleClose.CID = (int)CID.Close;
  518. // 
  519. // _menuConsoleReproduce
  520. // 
  521. this._menuConsoleReproduce.Enabled = false;
  522. this._menuConsoleReproduce.Index = 1;
  523. this._menuConsoleReproduce.Click += new System.EventHandler(this.OnMenu);
  524. this._menuConsoleReproduce.CID = (int)CID.Reproduce;
  525. // 
  526. // _menuBarConsole1
  527. // 
  528. this._menuBarConsole1.Index = 2;
  529. this._menuBarConsole1.Text = "-";
  530. // 
  531. // _menuNewLine
  532. // 
  533. this._menuNewLine.Enabled = false;
  534. this._menuNewLine.Index = 3;
  535. this._menuNewLine.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
  536.  this._menuNewLine_CR,
  537.  this._menuNewLine_LF,
  538.  this._menuNewLine_CRLF});
  539. // 
  540. // _menuNewLine_CR
  541. // 
  542. this._menuNewLine_CR.Index = 0;
  543. this._menuNewLine_CR.Text = "CR";
  544. this._menuNewLine_CR.Click += new System.EventHandler(this.OnChangeNewLine);
  545. // 
  546. // _menuNewLine_LF
  547. // 
  548. this._menuNewLine_LF.Index = 1;
  549. this._menuNewLine_LF.Text = "LF";
  550. this._menuNewLine_LF.Click += new System.EventHandler(this.OnChangeNewLine);
  551. // 
  552. // _menuNewLine_CRLF
  553. // 
  554. this._menuNewLine_CRLF.Index = 2;
  555. this._menuNewLine_CRLF.Text = "CR+LF";
  556. this._menuNewLine_CRLF.Click += new System.EventHandler(this.OnChangeNewLine);
  557. // 
  558. // _menuEncoding
  559. // 
  560. this._menuEncoding.Enabled = false;
  561. this._menuEncoding.Index = 4;
  562. // 
  563. // _menuLineFeedRule
  564. // 
  565. this._menuLineFeedRule.Enabled = false;
  566. this._menuLineFeedRule.Index = 5;
  567. this._menuLineFeedRule.Click += new System.EventHandler(this.OnMenu);
  568. this._menuLineFeedRule.CID = (int)CID.LineFeedRule;
  569. // 
  570. // _menuLocalEcho
  571. // 
  572. this._menuLocalEcho.Enabled = false;
  573. this._menuLocalEcho.Index = 6;
  574. this._menuLocalEcho.Click += new System.EventHandler(this.OnMenu);
  575. this._menuLocalEcho.CID = (int)CID.ToggleLocalEcho;
  576. // 
  577. // _menuSendSpecial
  578. // 
  579. this._menuSendSpecial.Enabled = false;
  580. this._menuSendSpecial.Index = 7;
  581. this._menuSendSpecial.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
  582.  this._menuSendBreak,
  583.  this._menuAreYouThere,
  584.  this._menuSerialConfig,
  585.  this._menuResetTerminal
  586. });
  587. // 
  588. // _menuSendBreak
  589. // 
  590. this._menuSendBreak.Index = 0;
  591. this._menuSendBreak.Click += new System.EventHandler(this.OnMenu);
  592. this._menuSendBreak.CID = (int)CID.SendBreak;
  593. // 
  594. // _menuAreYouThere
  595. // 
  596. this._menuAreYouThere.Index = 1;
  597. this._menuAreYouThere.Click += new System.EventHandler(this.OnMenu);
  598. this._menuAreYouThere.CID = (int)CID.AreYouThere;
  599. // 
  600. // _menuSerialConfig
  601. // 
  602. this._menuSerialConfig.Index = 2;
  603. this._menuSerialConfig.Click += new System.EventHandler(this.OnMenu);
  604. this._menuSerialConfig.CID = (int)CID.SerialConfig;
  605. // 
  606. // _menuResetTerminal
  607. // 
  608. this._menuResetTerminal.Index = 3;
  609. this._menuResetTerminal.Click += new System.EventHandler(this.OnMenu);
  610. this._menuResetTerminal.CID = (int)CID.ResetTerminal;
  611. // 
  612. // _menuBarConsole2
  613. // 
  614. this._menuBarConsole2.Index = 8;
  615. this._menuBarConsole2.Text = "-";
  616. // 
  617. // _menuSuspendLog
  618. // 
  619. this._menuSuspendLog.Enabled = false;
  620. this._menuSuspendLog.Index = 9;
  621. this._menuSuspendLog.Click += new System.EventHandler(this.OnMenu);
  622. this._menuSuspendLog.CID = (int)CID.ToggleLogSuspension;
  623. // 
  624. // _menuCommentLog
  625. // 
  626. this._menuCommentLog.Enabled = false;
  627. this._menuCommentLog.Index = 10;
  628. this._menuCommentLog.Click += new System.EventHandler(this.OnMenu);
  629. this._menuCommentLog.CID = (int)CID.CommentLog;
  630. // 
  631. // _menuChangeLog
  632. // 
  633. this._menuChangeLog.Enabled = false;
  634. this._menuChangeLog.Index = 11;
  635. this._menuChangeLog.Click += new System.EventHandler(this.OnMenu);
  636. this._menuChangeLog.CID = (int)CID.ChangeLogFile;
  637. // 
  638. // _menuBarConsole3
  639. // 
  640. this._menuBarConsole3.Index = 12;
  641. this._menuBarConsole3.Text = "-";
  642. // 
  643. // _menuEditRenderProfile
  644. // 
  645. this._menuEditRenderProfile.Enabled = false;
  646. this._menuEditRenderProfile.Index = 13;
  647. this._menuEditRenderProfile.Click += new System.EventHandler(this.OnMenu);
  648. this._menuEditRenderProfile.CID = (int)CID.EditRenderProfile;
  649. // 
  650. // _menuServerInfo
  651. // 
  652. this._menuServerInfo.Enabled = false;
  653. this._menuServerInfo.Index = 14;
  654. this._menuServerInfo.Click += new System.EventHandler(this.OnMenu);
  655. this._menuServerInfo.CID = (int)CID.ShowServerInfo;
  656. // 
  657. // _menuRenameTab
  658. // 
  659. this._menuRenameTab.Enabled = false;
  660. this._menuRenameTab.Index = 15;
  661. this._menuRenameTab.Click += new System.EventHandler(this.OnMenu);
  662. this._menuRenameTab.CID = (int)CID.RenameTab;
  663. // 
  664. // _menuTool
  665. // 
  666. this._menuTool.Index = 3;
  667. this._menuTool.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
  668.   this._menuKeyGen,
  669.   this._menuChangePassphrase,
  670.   this._menuLaunchPortforwarding,
  671.   this._menuBarTool1,
  672.   this._menuMacro,
  673.   this._menuBarTool2,
  674.   this._menuOption});
  675. // 
  676. // _menuKeyGen
  677. // 
  678. this._menuKeyGen.Index = 0;
  679. this._menuKeyGen.Click += new System.EventHandler(this.OnMenu);
  680. this._menuKeyGen.CID = (int)CID.KeyGen;
  681. // 
  682. // _menuChangePassphrase
  683. // 
  684. this._menuChangePassphrase.Index = 1;
  685. this._menuChangePassphrase.Click += new System.EventHandler(this.OnMenu);
  686. this._menuChangePassphrase.CID = (int)CID.ChangePassphrase;
  687. // 
  688. // _menuLaunchPortforwarding
  689. // 
  690. this._menuLaunchPortforwarding.Index = 2;
  691. this._menuLaunchPortforwarding.Click += new System.EventHandler(this.OnMenu);
  692. this._menuLaunchPortforwarding.CID = (int)CID.Portforwarding;
  693. // 
  694. // _menuBarTool1
  695. // 
  696. this._menuBarTool1.Index = 3;
  697. this._menuBarTool1.Text = "-";
  698. // 
  699. // _menuMacro
  700. // 
  701. this._menuMacro.Index = 4;
  702. this._menuMacro.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
  703. this._menuMacroConfig,
  704. this._menuStopMacro,
  705. this._menuBarMacro});
  706. // 
  707. // _menuBarTool2
  708. // 
  709. this._menuBarTool2.Index = 5;
  710. this._menuBarTool2.Text = "-";
  711. // 
  712. // _menuOption
  713. // 
  714. this._menuOption.Index = 6;
  715. this._menuOption.Click += new System.EventHandler(this.OnMenu);
  716. this._menuOption.CID = (int)CID.OptionDialog;
  717. // 
  718. // _menuMacroConfig
  719. // 
  720. this._menuMacroConfig.Index = 0;
  721. this._menuMacroConfig.Click += new System.EventHandler(this.OnMenu);
  722. this._menuMacroConfig.CID = (int)CID.MacroConfig;
  723. // 
  724. // _menuStopMacro
  725. // 
  726. this._menuStopMacro.Index = 1;
  727. this._menuStopMacro.Enabled = false;
  728. this._menuStopMacro.Click += new System.EventHandler(this.OnMenu);
  729. this._menuStopMacro.CID = (int)CID.StopMacro;
  730. // 
  731. // _menuBarMacro
  732. // 
  733. this._menuBarMacro.Index = 2;
  734. this._menuBarMacro.Text = "-";
  735. // 
  736. // _menuWindow
  737. // 
  738. this._menuWindow.Popup += new EventHandler(OnWindowMenuClicked);
  739. this._menuWindow.Index = 4;
  740. this._menuWindow.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
  741. this._menuFrameStyle,
  742. this._menuBarWindow1,
  743. this._menuPane,
  744. this._menuTab,
  745. this._menuBarWindow2,
  746. this._menuCloseAll,
  747. this._menuCloseAllDisconnected,
  748. this._menuBarWindow3});
  749. // 
  750. // _menuFrameStyle
  751. // 
  752. this._menuFrameStyle.Index = 0;
  753. this._menuFrameStyle.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
  754. this._menuFrameStyleSingle,
  755. this._menuFrameStyleDivHorizontal,
  756. this._menuFrameStyleDivVertical,
  757. this._menuFrameStyleDivHorizontal3,
  758. this._menuFrameStyleDivVertical3});
  759. // 
  760. // _menuFrameStyleSingle
  761. // 
  762. this._menuFrameStyleSingle.Index = 0;
  763. this._menuFrameStyleSingle.Click += new System.EventHandler(this.OnMenu);
  764. this._menuFrameStyleSingle.CID = (int)CID.FrameStyleSingle;
  765. // 
  766. // _menuFrameStyleDivHorizontal
  767. // 
  768. this._menuFrameStyleDivHorizontal.Index = 1;
  769. this._menuFrameStyleDivHorizontal.Click += new System.EventHandler(this.OnMenu);
  770. this._menuFrameStyleDivHorizontal.CID = (int)CID.FrameStyleDivHorizontal;
  771. // 
  772. // _menuFrameStyleDivVertical
  773. // 
  774. this._menuFrameStyleDivVertical.Index = 2;
  775. this._menuFrameStyleDivVertical.Click += new System.EventHandler(this.OnMenu);
  776. this._menuFrameStyleDivVertical.CID = (int)CID.FrameStyleDivVertical;
  777. // 
  778. // _menuFrameStyleDivHorizontal3
  779. // 
  780. this._menuFrameStyleDivHorizontal3.Index = 3;
  781. this._menuFrameStyleDivHorizontal3.Click += new System.EventHandler(this.OnMenu);
  782. this._menuFrameStyleDivHorizontal3.CID = (int)CID.FrameStyleDivHorizontal3;
  783. // 
  784. // _menuFrameStyleDivVertical3
  785. // 
  786. this._menuFrameStyleDivVertical3.Index = 4;
  787. this._menuFrameStyleDivVertical3.Click += new System.EventHandler(this.OnMenu);
  788. this._menuFrameStyleDivVertical3.CID = (int)CID.FrameStyleDivVertical3;
  789. // 
  790. // _menuBarWindow1
  791. // 
  792. this._menuBarWindow1.Index = 1;
  793. this._menuBarWindow1.Text = "-";
  794. // 
  795. // _menuPane
  796. // 
  797. this._menuPane.Index = 2;
  798. this._menuPane.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
  799. this._menuMovePane,
  800. this._menuExpandPane,
  801. this._menuShrinkPane});
  802. // 
  803. // _menuMovePane
  804. // 
  805. this._menuMovePane.Index = 0;
  806. this._menuMovePane.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
  807.   this._menuMovePaneUp,
  808.   this._menuMovePaneDown,
  809.   this._menuMovePaneLeft,
  810.   this._menuMovePaneRight});
  811. // 
  812. // _menuMovePaneUp
  813. // 
  814. this._menuMovePaneUp.Index = 0;
  815. this._menuMovePaneUp.Click += new System.EventHandler(this.OnMenu);
  816. this._menuMovePaneUp.CID = (int)CID.MovePaneUp;
  817. // 
  818. // _menuMovePaneDown
  819. // 
  820. this._menuMovePaneDown.Index = 1;
  821. this._menuMovePaneDown.Click += new System.EventHandler(this.OnMenu);
  822. this._menuMovePaneDown.CID = (int)CID.MovePaneDown;
  823. // 
  824. // _menuMovePaneLeft
  825. // 
  826. this._menuMovePaneLeft.Index = 2;
  827. this._menuMovePaneLeft.Click += new System.EventHandler(this.OnMenu);
  828. this._menuMovePaneLeft.CID = (int)CID.MovePaneLeft;
  829. // 
  830. // _menuMovePaneRight
  831. // 
  832. this._menuMovePaneRight.Index = 3;
  833. this._menuMovePaneRight.Click += new System.EventHandler(this.OnMenu);
  834. this._menuMovePaneRight.CID = (int)CID.MovePaneRight;
  835. // 
  836. // _menuExpandPane
  837. // 
  838. this._menuExpandPane.Index = 1;
  839. this._menuExpandPane.Click += new EventHandler(this.OnMenu);
  840. this._menuExpandPane.CID = (int)CID.ExpandPane;
  841. // 
  842. // _menuShrinkPane
  843. // 
  844. this._menuShrinkPane.Index = 2;
  845. this._menuShrinkPane.Click += new EventHandler(this.OnMenu);
  846. this._menuShrinkPane.CID = (int)CID.ShrinkPane;
  847. // 
  848. // _menuTab
  849. // 
  850. this._menuTab.Index = 3;
  851. this._menuTab.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
  852.   this._menuPrevTab,
  853.   this._menuNextTab,
  854.   this._menuMoveTabToPrev,
  855.   this._menuMoveTabToNext});
  856. // 
  857. // _menuPrevTab
  858. // 
  859. this._menuPrevTab.Index = 0;
  860. this._menuPrevTab.Click += new EventHandler(this.OnMenu);
  861. this._menuPrevTab.CID = (int)CID.PrevPane;
  862. // 
  863. // _menuNextTab
  864. // 
  865. this._menuNextTab.Index = 1;
  866. this._menuNextTab.Click += new EventHandler(this.OnMenu);
  867. this._menuNextTab.CID = (int)CID.NextPane;
  868. // 
  869. // _menuMoveTabToPrev
  870. // 
  871. this._menuMoveTabToPrev.Index = 2;
  872. this._menuMoveTabToPrev.Click += new EventHandler(this.OnMenu);
  873. this._menuMoveTabToPrev.CID = (int)CID.MoveTabToPrev;
  874. // 
  875. // _menuMoveTabToNext
  876. // 
  877. this._menuMoveTabToNext.Index = 3;
  878. this._menuMoveTabToNext.Click += new EventHandler(this.OnMenu);
  879. this._menuMoveTabToNext.CID = (int)CID.MoveTabToNext;
  880. // 
  881. // _menuBarWindow2
  882. // 
  883. this._menuBarWindow2.Index = 4;
  884. this._menuBarWindow2.Text = "-";
  885. // 
  886. // _menuCloseAll
  887. // 
  888. this._menuCloseAll.Index = 5;
  889. this._menuCloseAll.Click += new System.EventHandler(this.OnMenu);
  890. this._menuCloseAll.CID = (int)CID.CloseAll;
  891. // 
  892. // _menuCloseAllDisconnected
  893. // 
  894. this._menuCloseAllDisconnected.Index = 6;
  895. this._menuCloseAllDisconnected.Click += new System.EventHandler(this.OnMenu);
  896. this._menuCloseAllDisconnected.CID = (int)CID.CloseAllDisconnected;
  897. // 
  898. // _menuBarWindow3
  899. // 
  900. this._menuBarWindow3.Index = 7;
  901. this._menuBarWindow3.Text = "-";
  902. // 
  903. // _menuHelp
  904. // 
  905. this._menuHelp.Index = 5;
  906. this._menuHelp.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
  907.   this._menuAboutBox,this._menuProductWeb});
  908. // 
  909. // _menuAboutBox
  910. // 
  911. this._menuAboutBox.Index = 0;
  912. this._menuAboutBox.Click += new System.EventHandler(this.OnMenu);
  913. this._menuAboutBox.CID = (int)CID.AboutBox;
  914. // 
  915. // _menuProductWeb
  916. // 
  917. this._menuProductWeb.Index = 1;
  918. this._menuProductWeb.Click += new System.EventHandler(this.OnMenu);
  919. this._menuProductWeb.CID = (int)CID.ProductWeb;
  920. // 
  921. // _statusBar
  922. // 
  923. this._statusBar.Location = new System.Drawing.Point(0, 689);
  924. this._statusBar.Dock = DockStyle.Bottom;
  925. this._statusBar.Name = "_statusBar";
  926. this._statusBar.Panels.AddRange(new System.Windows.Forms.StatusBarPanel[] {
  927.   this._textStatusBarPanel,
  928.   this._bellIndicateStatusBarPanel,
  929.   this._caretPosStatusBarPanel});
  930. this._statusBar.ShowPanels = true;
  931. this._statusBar.Size = new System.Drawing.Size(600, 24);
  932. this._statusBar.TabIndex = 5;
  933. // 
  934. // _textStatusBarPanel
  935. // 
  936. this._textStatusBarPanel.BorderStyle = StatusBarPanelBorderStyle.None;
  937. this._textStatusBarPanel.Width = 443;
  938. // 
  939. // _bellIndicateStatusBarPanel
  940. // 
  941. this._bellIndicateStatusBarPanel.Alignment = System.Windows.Forms.HorizontalAlignment.Right;
  942. this._bellIndicateStatusBarPanel.Width = 31;
  943. // 
  944. // _caretPosStatusBarPanel
  945. // 
  946. this._caretPosStatusBarPanel.Alignment = System.Windows.Forms.HorizontalAlignment.Center;
  947. this._caretPosStatusBarPanel.Width = 120;
  948. this._statusBar.SuspendLayout(); //偙偺AutoSize僙僢僩偑嬌傔偰廳偄偙偲偑敾柧丅偙傟偱寉偔側傞偐丠
  949. this._textStatusBarPanel.AutoSize = System.Windows.Forms.StatusBarPanelAutoSize.Spring;
  950. this._bellIndicateStatusBarPanel.AutoSize = System.Windows.Forms.StatusBarPanelAutoSize.None;
  951. this._caretPosStatusBarPanel.AutoSize = System.Windows.Forms.StatusBarPanelAutoSize.None;
  952. this._statusBar.ResumeLayout(false);
  953. // 
  954. // _multiPaneControl
  955. // 
  956. _multiPaneControl = new MultiPaneControl();
  957. _multiPaneControl.Dock = DockStyle.Fill;
  958. // 
  959. // GFrame
  960. // 
  961. this.AllowDrop = true;
  962. this.FormBorderStyle = FormBorderStyle.Sizable;
  963. this.AutoScaleBaseSize = new System.Drawing.Size(5, 12);
  964. this.Controls.AddRange(new System.Windows.Forms.Control[] {
  965.   this._multiPaneControl,
  966.   });
  967. this.Name = "GFrame";
  968. this.Text = "Poderosa";
  969. this.Menu = this._menu;
  970. this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
  971. ((System.ComponentModel.ISupportInitialize)(this._textStatusBarPanel)).EndInit();
  972. ((System.ComponentModel.ISupportInitialize)(this._bellIndicateStatusBarPanel)).EndInit();
  973. ((System.ComponentModel.ISupportInitialize)(this._caretPosStatusBarPanel)).EndInit();
  974. this.ResumeLayout(false);
  975. }
  976. #endregion
  977.         #region 
  978.         private void InitMenuText()
  979.         {
  980.             #region Poderosa string bullshit
  981.             StringResources sr = GApp.Strings;
  982. this._menuFile.Text = sr.GetString("Menu._menuFile");
  983. this._menuNewConnection.Text = sr.GetString("Menu._menuNewConnection");
  984. this._menuSerialNewConnection.Text = sr.GetString("Menu._menuSerialNewConnection");
  985. this._menuCygwinNewConnection.Text = sr.GetString("Menu._menuCygwinNewConnection");
  986. this._menuSFUNewConnection.Text = sr.GetString("Menu._menuSFUNewConnection");
  987. this._menuOpenShortcut.Text = sr.GetString("Menu._menuOpenShortcut");
  988. this._menuSaveShortcut.Text = sr.GetString("Menu._menuSaveShortcut");
  989. this._menuReceiveFile.Text = sr.GetString("Menu._menuReceiveFile");
  990. this._menuSendFile.Text = sr.GetString("Menu._menuSendFile");
  991. this._menuQuit.Text = sr.GetString("Menu._menuQuit");
  992. this._menuEdit.Text = sr.GetString("Menu._menuEdit");
  993. this._menuCopy.Text = sr.GetString("Menu._menuCopy");
  994. this._menuPaste.Text = sr.GetString("Menu._menuPaste");
  995. this._menuCopyAsLook.Text = sr.GetString("Menu._menuCopyAsLook");
  996. this._menuCopyToFile.Text = sr.GetString("Menu._menuCopyToFile");
  997. this._menuPasteFromFile.Text = sr.GetString("Menu._menuPasteFromFile");
  998. this._menuClearScreen.Text = sr.GetString("Menu._menuClearScreen");
  999. this._menuClearBuffer.Text = sr.GetString("Menu._menuClearBuffer");
  1000. this._menuSelectAll.Text = sr.GetString("Menu._menuSelectAll");
  1001. this._menuFreeSelectionMode.Text = sr.GetString("Menu._menuFreeSelectionMode");
  1002. this._menuAutoSelectionMode.Text = sr.GetString("Menu._menuAutoSelectionMode");
  1003. this._menuConsole.Text = sr.GetString("Menu._menuConsole");
  1004. this._menuConsoleClose.Text = sr.GetString("Menu._menuConsoleClose");
  1005. this._menuConsoleReproduce.Text = sr.GetString("Menu._menuConsoleReproduce");
  1006. this._menuNewLine.Text = sr.GetString("Menu._menuNewLine");
  1007. this._menuEncoding.Text = sr.GetString("Menu._menuEncoding");
  1008. this._menuLineFeedRule.Text = sr.GetString("Menu._menuLineFeedRule");
  1009. this._menuLocalEcho.Text = sr.GetString("Menu._menuLocalEcho");
  1010. this._menuSendSpecial.Text = sr.GetString("Menu._menuSendSpecial");
  1011. this._menuSendBreak.Text = sr.GetString("Menu._menuSendBreak");
  1012. this._menuAreYouThere.Text = sr.GetString("Menu._menuAreYouThere");
  1013. this._menuSerialConfig.Text = sr.GetString("Menu._menuSerialConfig");
  1014. this._menuResetTerminal.Text = sr.GetString("Menu._menuResetTerminal");
  1015. this._menuSuspendLog.Text = sr.GetString("Menu._menuSuspendLog");
  1016. this._menuCommentLog.Text = sr.GetString("Menu._menuCommentLog");
  1017. this._menuChangeLog.Text = sr.GetString("Menu._menuChangeLog");
  1018. this._menuEditRenderProfile.Text = sr.GetString("Menu._menuEditRenderProfile");
  1019. this._menuServerInfo.Text = sr.GetString("Menu._menuServerInfo");
  1020. this._menuRenameTab.Text = sr.GetString("Menu._menuRenameTab");
  1021. this._menuTool.Text = sr.GetString("Menu._menuTool");
  1022. this._menuKeyGen.Text = sr.GetString("Menu._menuKeyGen");
  1023. this._menuChangePassphrase.Text = sr.GetString("Menu._menuChangePassphrase");
  1024. this._menuLaunchPortforwarding.Text = sr.GetString("Menu._menuLaunchPortforwarding");
  1025. this._menuMacro.Text = sr.GetString("Menu._menuMacro");
  1026. this._menuOption.Text = sr.GetString("Menu._menuOption");
  1027. this._menuMacroConfig.Text = sr.GetString("Menu._menuMacroConfig");
  1028. this._menuStopMacro.Text = sr.GetString("Menu._menuStopMacro");
  1029. this._menuWindow.Text = sr.GetString("Menu._menuWindow");
  1030. this._menuFrameStyle.Text = sr.GetString("Menu._menuFrameStyle");
  1031. this._menuFrameStyleSingle.Text = sr.GetString("Menu._menuFrameStyleSingle");
  1032. this._menuFrameStyleDivHorizontal.Text = sr.GetString("Menu._menuFrameStyleDivHorizontal");
  1033. this._menuFrameStyleDivVertical.Text = sr.GetString("Menu._menuFrameStyleDivVertical");
  1034. this._menuFrameStyleDivHorizontal3.Text = sr.GetString("Menu._menuFrameStyleDivHorizontal3");
  1035. this._menuFrameStyleDivVertical3.Text = sr.GetString("Menu._menuFrameStyleDivVertical3");
  1036. this._menuPane.Text = sr.GetString("Menu._menuPane");
  1037. this._menuMovePane.Text = sr.GetString("Menu._menuMovePane");
  1038. this._menuMovePaneUp.Text = sr.GetString("Menu._menuMovePaneUp");
  1039. this._menuMovePaneDown.Text = sr.GetString("Menu._menuMovePaneDown");
  1040. this._menuMovePaneLeft.Text = sr.GetString("Menu._menuMovePaneLeft");
  1041. this._menuMovePaneRight.Text = sr.GetString("Menu._menuMovePaneRight");
  1042. this._menuExpandPane.Text = sr.GetString("Menu._menuExpandPane");
  1043. this._menuShrinkPane.Text = sr.GetString("Menu._menuShrinkPane");
  1044. this._menuTab.Text = sr.GetString("Menu._menuTab");
  1045. this._menuPrevTab.Text = sr.GetString("Menu._menuPrevTab");
  1046. this._menuNextTab.Text = sr.GetString("Menu._menuNextTab");
  1047. this._menuMoveTabToPrev.Text = sr.GetString("Menu._menuMoveTabToPrev");
  1048. this._menuMoveTabToNext.Text = sr.GetString("Menu._menuMoveTabToNext");
  1049. this._menuCloseAll.Text = sr.GetString("Menu._menuCloseAll");
  1050. this._menuCloseAllDisconnected.Text = sr.GetString("Menu._menuCloseAllDisconnected");
  1051. this._menuHelp.Text = sr.GetString("Menu._menuHelp");
  1052. this._menuAboutBox.Text = sr.GetString("Menu._menuAboutBox");
  1053. this._menuProductWeb.Text = sr.GetString("Menu._menuProductWeb");
  1054.             #endregion
  1055.         }
  1056. public void ReloadLanguage(Language l) {
  1057. InitMenuText();
  1058. MainMenu mm = new MainMenu();
  1059. while(_menu.MenuItems.Count>0) {
  1060. mm.MenuItems.Add(_menu.MenuItems[0]);
  1061. }
  1062. _menu = mm;
  1063. this.Menu = mm;
  1064. InitContextMenu();
  1065. AdjustMRUMenu();
  1066. if(_toolBar!=null) _toolBar.ReloadLanguage(l);
  1067. AdjustTitle(GEnv.Connections.ActiveTag);
  1068. AdjustMacroMenu();
  1069. if(_xmodemDialog!=null) _xmodemDialog.ReloadLanguage();
  1070. }
  1071. private void CreateToolBar() {
  1072. _toolBar = new GDialogBar();
  1073. _toolBar.Dock = DockStyle.Top;
  1074. _toolBar.Height = 27;
  1075. }
  1076. private void InitContextMenu() {
  1077. _contextMenu = new ContextMenu();
  1078. GMenuItem copy = new GMenuItem();
  1079. copy.Text = GApp.Strings.GetString("Menu._menuCopy");
  1080. copy.Click += new EventHandler(OnMenu);
  1081. copy.ShortcutKey = GApp.Options.Commands.FindKey(CID.Copy);
  1082. copy.CID = (int)CID.Copy;
  1083. GMenuItem paste = new GMenuItem();
  1084. paste.Text = GApp.Strings.GetString("Menu._menuPaste");
  1085. paste.Click += new EventHandler(OnMenu);
  1086. paste.ShortcutKey = GApp.Options.Commands.FindKey(CID.Paste);
  1087. paste.CID = (int)CID.Paste;
  1088. GMenuItem bar = new GMenuItem();
  1089. bar.Text = "-";
  1090. _contextMenu.MenuItems.Add(copy);
  1091. _contextMenu.MenuItems.Add(paste);
  1092. _contextMenu.MenuItems.Add(bar);
  1093. foreach(MenuItem child in _menuConsole.MenuItems) {
  1094. MenuItem mi = child.CloneMenu();
  1095. _contextMenu.MenuItems.Add(mi);
  1096. CloneMenuCommand(child, mi);
  1097. }
  1098. }
  1099. private void CloneMenuCommand(MenuItem src, MenuItem dest) {
  1100. //CloneMenu偝傟偨巕儊僯儏乕傕娷傫偱偄傞偐傕偟傟側偄
  1101. int index = 0;
  1102. foreach(MenuItem child in src.MenuItems)
  1103. CloneMenuCommand(child, dest.MenuItems[index++]);
  1104. }
  1105. public GDialogBar ToolBar {
  1106. get {
  1107. return _toolBar;
  1108. }
  1109. }
  1110. public MultiPaneControl PaneContainer {
  1111. get {
  1112. return _multiPaneControl;
  1113. }
  1114. }
  1115. public XModemDialog XModemDialog {
  1116. get {
  1117. return _xmodemDialog;
  1118. }
  1119. set {
  1120. _xmodemDialog = value;
  1121. }
  1122.         }
  1123.         #endregion
  1124.         #region properties
  1125.         public override ContextMenu ContextMenu {
  1126. get {
  1127. if(_contextMenu==null) InitContextMenu();
  1128. return _contextMenu;
  1129. }
  1130. }
  1131. public GStatusBar StatusBar {
  1132. get {
  1133. return _gStatusBar;
  1134. }
  1135. }
  1136. public TabBar TabBar {
  1137. get {
  1138. return _tabBar;
  1139. }
  1140. }
  1141. public MenuItem MenuNewLineCR {
  1142. get {
  1143. return _menuNewLine_CR;
  1144. }
  1145. }
  1146. public MenuItem MenuNewLineLF {
  1147. get {
  1148. return _menuNewLine_LF;
  1149. }
  1150. }
  1151. public MenuItem MenuNewLineCRLF {
  1152. get {
  1153. return _menuNewLine_CRLF;
  1154. }
  1155. }
  1156. public MenuItem MenuLocalEcho {
  1157. get {
  1158. return _menuLocalEcho;
  1159. }
  1160. }
  1161. public MenuItem MenuSuspendLog {
  1162. get {
  1163. return _menuSuspendLog;
  1164. }
  1165. }
  1166. public MenuItem MenuMacroStop {
  1167. get {
  1168. return this._menuStopMacro;
  1169. }
  1170. }
  1171.         #endregion
  1172.         #region
  1173.         public void AdjustTitle(ConnectionTag tag) {
  1174. string title = "";
  1175. if(tag!=null) {
  1176. title = tag.FormatFrameText() + " - ";
  1177. }
  1178. if(GApp.MacroManager.MacroIsRunning) {
  1179. title += String.Format(GApp.Strings.GetString("Caption.GFrame.MacroIsRunning"), GApp.MacroManager.CurrentMacro.Title);
  1180. }
  1181. title += "Poderosa";
  1182. this.Text = title;
  1183. }
  1184. public void AddConnection(ConnectionTag ct) {
  1185. //偙偺弴彉偵偼梫拲堄
  1186. _tabBar.AddTab(ct);
  1187. AddWindowMenu(ct);
  1188. }
  1189. internal void ActivateConnection(ConnectionTag ct) {
  1190. if(ct!=null) {
  1191. if(_tabBar!=null) _tabBar.SetActiveTab(ct);
  1192. AdjustTerminalUI(true, ct);
  1193. _multiPaneControl.ActivateConnection(ct);
  1194. AdjustTitle(ct);
  1195. if(_xmodemDialog!=null && !_xmodemDialog.Executing) _xmodemDialog.ConnectionTag = ct;
  1196. }
  1197. else {
  1198. AdjustTerminalUI(false, null);
  1199. AdjustTitle(null);
  1200. if(_xmodemDialog!=null) _xmodemDialog.Close();
  1201. }
  1202. IDictionaryEnumerator e = _windowMenuItemMap.GetEnumerator();
  1203. while(e.MoveNext()) {
  1204. ((MenuItem)e.Key).Checked = (ct==e.Value);
  1205. }
  1206. }
  1207. public void RefreshConnection(ConnectionTag ct) {
  1208. if(ct!=null) {
  1209. _tabBar.RefreshConnection(ct);
  1210. _tabBar.ArrangeButtons();
  1211. }
  1212. if(GEnv.Connections.Count==0) {
  1213. AdjustTerminalUI(false, null);
  1214. AdjustTitle(null);
  1215. }
  1216. else if(ct==GEnv.Connections.ActiveTag) {
  1217. _tabBar.SetActiveTab(ct);
  1218. AdjustTitle(ct);
  1219. }
  1220. //Window儊僯儏乕偺挷惍
  1221. IDictionaryEnumerator e = _windowMenuItemMap.GetEnumerator();
  1222. while(e.MoveNext()) {
  1223. if(ct==e.Value) {
  1224. ((GMenuItem)e.Key).Text = ct.FormatTabText();
  1225. break;
  1226. }
  1227. }
  1228. }
  1229. public void RemoveConnection(ConnectionTag ct) {
  1230. _tabBar.RemoveTab(ct);
  1231. RemoveWindowMenu(ct);
  1232. }
  1233. public void ReplaceConnection(ConnectionTag prev, ConnectionTag next) {
  1234. IDictionaryEnumerator e = _windowMenuItemMap.GetEnumerator();
  1235. while(e.MoveNext()) {
  1236. if(prev==e.Value) {
  1237. object k = e.Key;
  1238. _windowMenuItemMap.Remove(k);
  1239. _windowMenuItemMap.Add(k, next);
  1240. break;
  1241. }
  1242. }
  1243. }
  1244. public void RemoveAllConnections() {
  1245. _tabBar.Clear();
  1246. ClearWindowMenu();
  1247. AdjustTitle(null);
  1248. _multiPaneControl.RemoveAllConnections();
  1249. }
  1250. public void AdjustTerminalUI(bool enabled, ConnectionTag ct) {
  1251. TerminalConnection con = ct==null? null : ct.Connection;
  1252. if(_toolBar!=null) _toolBar.EnableTerminalUI(enabled, con);
  1253. bool e = GEnv.Connections.Count>0;
  1254. _menuCloseAll.Enabled = e;
  1255. _menuMovePane.Enabled = e;
  1256. _menuNextTab.Enabled = e;
  1257. _menuPrevTab.Enabled = e;
  1258. _menuSaveShortcut.Enabled = (ct!=null);
  1259. _menuSendFile.Enabled = (ct!=null);
  1260. _menuReceiveFile.Enabled = (ct!=null);
  1261. AdjustConsoleMenu(_menuConsole.MenuItems, enabled, con, 0);
  1262. }
  1263. internal void AdjustContextMenu(bool enabled, TerminalConnection con) {
  1264. Menu.MenuItemCollection col = this.ContextMenu.MenuItems;
  1265. col[0].Enabled = !GEnv.TextSelection.IsEmpty && GEnv.TextSelection.Owner.Connection==con;
  1266. col[1].Enabled = !con.IsClosed && CanPaste();
  1267. AdjustConsoleMenu(col, enabled, con, 3); //僐僺乕丄儁乕僗僩丄嬫愗傝慄偺愭偑僐儞僜乕儖儊僯儏乕
  1268. }
  1269. internal TerminalConnection CommandTargetConnection {
  1270. get {
  1271. return _commandTargetConnection;
  1272. }
  1273. set {
  1274. _commandTargetConnection = value;
  1275. }
  1276. }
  1277. private void AdjustConsoleMenu(object sender, EventArgs args) {
  1278. AdjustConsoleMenu(_menuConsole.MenuItems, GEnv.Connections.ActiveTag!=null, GEnv.Connections.ActiveConnection, 0);
  1279. }
  1280. private void AdjustConsoleMenu(Menu.MenuItemCollection target, bool enabled, TerminalConnection con, int baseIndex) {
  1281. target[baseIndex + _menuServerInfo.Index].Enabled = enabled;
  1282. target[baseIndex + _menuLocalEcho.Index].Enabled = enabled && !con.IsClosed;
  1283. target[baseIndex + _menuLineFeedRule.Index].Enabled = enabled && !con.IsClosed;
  1284. target[baseIndex + _menuEncoding.Index].Enabled = enabled && !con.IsClosed;
  1285. target[baseIndex + _menuConsoleClose.Index].Enabled = enabled;
  1286. //暋惢偲嵞愙懕偼摦嶌偼傎偲傫偳堦弿
  1287. target[baseIndex + _menuConsoleReproduce.Index].Enabled = enabled;
  1288. target[baseIndex + _menuConsoleReproduce.Index].Text = GApp.Strings.GetString((con!=null && con.IsClosed)? "Menu._menuConsoleRevive" : "Menu._menuConsoleReproduce");
  1289. target[baseIndex + _menuSendSpecial.Index].Enabled = enabled && !con.IsClosed;
  1290. target[baseIndex + _menuNewLine.Index].Enabled = enabled && !con.IsClosed;
  1291. target[baseIndex + _menuCommentLog.Index].Enabled = enabled && !con.IsClosed && con.TextLogger.IsActive;
  1292. target[baseIndex + _menuSuspendLog.Index].Enabled = enabled && !con.IsClosed && con.TextLogger.IsActive;
  1293. target[baseIndex + _menuChangeLog.Index].Enabled = enabled && !con.IsClosed;
  1294. target[baseIndex + _menuEditRenderProfile.Index].Enabled = enabled;
  1295. target[baseIndex + _menuRenameTab.Index].Enabled = enabled && !con.IsClosed;
  1296. Menu.MenuItemCollection nls = target[baseIndex + _menuSendSpecial.Index].MenuItems;
  1297. nls[_menuSerialConfig.Index].Enabled = enabled && (con is SerialTerminalConnection);
  1298. nls[_menuResetTerminal.Index].Enabled = enabled && !con.IsClosed;
  1299. if(enabled) {
  1300. target[baseIndex + _menuLocalEcho.Index].Checked = con.Param.LocalEcho;
  1301. target[baseIndex + _menuSuspendLog.Index].Checked = con.LogSuspended;
  1302. nls = target[baseIndex + _menuNewLine.Index].MenuItems;
  1303. nls[_menuNewLine_CR.Index].Checked = (con.Param.TransmitNL==NewLine.CR);
  1304. nls[_menuNewLine_LF.Index].Checked = (con.Param.TransmitNL==NewLine.LF);
  1305. nls[_menuNewLine_CRLF.Index].Checked = (con.Param.TransmitNL==NewLine.CRLF);
  1306. nls = target[baseIndex + _menuEncoding.Index].MenuItems;
  1307. for(int i=0; i<nls.Count; i++) {
  1308. nls[i].Checked = (i==(int)con.Param.EncodingProfile.Type);
  1309. }
  1310. }
  1311. }
  1312. public void AdjustMacroMenu() {
  1313. int n = _menuBarMacro.Index+1;
  1314. while(n < _menuMacro.MenuItems.Count)
  1315. _menuMacro.MenuItems.RemoveAt(n); //僶乕埲崀傪慡徚嫀
  1316. foreach(MacroModule mod in GApp.MacroManager.Modules) {
  1317. GMenuItem mi = new GMenuItem();
  1318. mi.Text = mod.Title;
  1319. mi.ShortcutKey = mod.ShortCut;
  1320. mi.Click += new EventHandler(OnExecMacro);
  1321. _menuMacro.MenuItems.Add(mi);
  1322. }
  1323. }
  1324. private void OnExecMacro(object sender, EventArgs args) {
  1325. GMenuItem mi = (GMenuItem)sender;
  1326. int i = mi.Index - (_menuBarMacro.Index+1);
  1327. GApp.MacroManager.Execute(this, GApp.MacroManager.GetModule(i));
  1328. }
  1329. private void AddWindowMenu(ConnectionTag ct) {
  1330. GMenuItem mi = new GMenuItem();
  1331. mi.Text = ct.FormatTabText();
  1332. mi.Checked = true;
  1333. //偙偺僔儑乕僩僇僢僩偼屌掕偱丄僇僗僞儅僀僘晄壜
  1334. if(_windowMenuItemMap.Count<=8)
  1335. mi.ShortcutKey = Keys.Alt | (Keys)((int)Keys.D1 + _windowMenuItemMap.Count);
  1336. else if(_windowMenuItemMap.Count==9)
  1337. mi.ShortcutKey = Keys.Alt | Keys.D0;
  1338. foreach(MenuItem m in _windowMenuItemMap.Keys) {
  1339. m.Checked = false;
  1340. }
  1341. _windowMenuItemMap.Add(mi, ct);
  1342. mi.Click += new EventHandler(OnWindowItemMenuClicked);
  1343. _menuWindow.MenuItems.Add(mi);
  1344. }
  1345. private void RemoveWindowMenu(ConnectionTag ct) {
  1346. IDictionaryEnumerator e = _windowMenuItemMap.GetEnumerator();
  1347. while(e.MoveNext()) {
  1348. if(ct==e.Value) {
  1349. _menuWindow.MenuItems.Remove((MenuItem)e.Key);
  1350. _windowMenuItemMap.Remove(e.Key);
  1351. break;
  1352. }
  1353. }
  1354. for(int i=_menuBarWindow3.Index+1; i<_menuWindow.MenuItems.Count; i++) {
  1355. GMenuItem mi = (GMenuItem)_menuWindow.MenuItems[i];
  1356. int n = i - (_menuBarWindow3.Index+1);
  1357. if(n<=8)
  1358. mi.ShortcutKey = Keys.Alt | (Keys)((int)Keys.D1 + n);
  1359. else if(n==9)
  1360. mi.ShortcutKey = Keys.Alt | Keys.D0;
  1361. else
  1362. mi.ShortcutKey = Keys.None;
  1363. }
  1364. }
  1365. public void ReorderWindowMenu(int index, int newindex, ConnectionTag active_tag) {
  1366. GMenuItem mi1 = (GMenuItem)_menuWindow.MenuItems[TagIndexToWindowMenuItemIndex(index)];
  1367. Keys mi1_key = mi1.ShortcutKey;
  1368. GMenuItem mi2 = (GMenuItem)_menuWindow.MenuItems[TagIndexToWindowMenuItemIndex(newindex)];
  1369. mi1.ShortcutKey = mi2.ShortcutKey;
  1370. mi2.ShortcutKey = mi1_key;
  1371. _menuWindow.MenuItems.Remove(mi1);
  1372. _menuWindow.MenuItems.Add(TagIndexToWindowMenuItemIndex(newindex), mi1);
  1373. if(_tabBar!=null) _tabBar.ReorderButton(index, newindex, active_tag);
  1374. }
  1375. private int TagIndexToWindowMenuItemIndex(int index) {
  1376. return _menuBarWindow3.Index+1+index;
  1377. }
  1378. private void ClearWindowMenu() {
  1379. int i = _menuBarWindow3.Index+1;
  1380. while(_menuWindow.MenuItems.Count > i) {
  1381. _menuWindow.MenuItems.RemoveAt(i);
  1382. }
  1383. _windowMenuItemMap.Clear();
  1384. }
  1385. public void AdjustMRUMenu() {
  1386. //傑偢婛懚MRU儊僯儏乕偺僋儕傾
  1387. _MRUMenuToParameter.Clear();
  1388. int i = _menuBarBeforeMRU.Index + 1;
  1389. Menu.MenuItemCollection mi = _menuFile.MenuItems;
  1390. while(_menuBarAfterMRU.Index > i)
  1391. mi.RemoveAt(i);
  1392. //儕僗僩偐傜僙僢僩
  1393. int count = GApp.Options.MRUSize;
  1394. i = 0;
  1395. foreach(TerminalParam p in GApp.ConnectionHistory) {
  1396. GMenuItem mru = new GMenuItem();
  1397. _MRUMenuToParameter[mru] = p;
  1398. string text = p.Caption;
  1399. if(text==null || text.Length==0) text = p.ShortDescription;
  1400. mru.Text = i<=8?
  1401. String.Format("&{0} {1} - {2}", i+1, text, p.MethodName) :
  1402. String.Format("{0} {1} - {2}",  i+1, text, p.MethodName);
  1403. mru.Click += new EventHandler(OnMRUMenuClicked);
  1404. mi.Add(_menuBarBeforeMRU.Index+i+1, mru);
  1405. if(++i == count) break;
  1406. }
  1407. _menuBarAfterMRU.Visible = (i>0); //侾偮傕側偄偲偒偼僶乕偑楢懕偟偰偟傑偄尒嬯偟偄
  1408. }
  1409. public void ApplyOptions(ContainerOptions prev, ContainerOptions opt) {
  1410. _contextMenu = null;
  1411. _menuMovePaneUp.Enabled = _menuMovePaneDown.Enabled = (opt.FrameStyle==GFrameStyle.DivHorizontal || opt.FrameStyle==GFrameStyle.DivHorizontal3);
  1412. _menuMovePaneLeft.Enabled = _menuMovePaneRight.Enabled = (opt.FrameStyle==GFrameStyle.DivVertical || opt.FrameStyle==GFrameStyle.DivVertical3);
  1413. _menuFrameStyleSingle.Checked = opt.FrameStyle==GFrameStyle.Single;
  1414. _menuFrameStyleDivHorizontal.Checked = opt.FrameStyle==GFrameStyle.DivHorizontal;
  1415. _menuFrameStyleDivVertical.Checked = opt.FrameStyle==GFrameStyle.DivVertical;
  1416. _menuFrameStyleDivHorizontal3.Checked = opt.FrameStyle==GFrameStyle.DivHorizontal3;
  1417. _menuFrameStyleDivVertical3.Checked = opt.FrameStyle==GFrameStyle.DivVertical3;
  1418. _menuExpandPane.Enabled = opt.FrameStyle!=GFrameStyle.Single;
  1419. _menuShrinkPane.Enabled = opt.FrameStyle!=GFrameStyle.Single;
  1420. if(prev!=null && prev.FrameStyle!=opt.FrameStyle) //婲摦捈屻(prev==null)偩偲傑偩儗僀傾僂僩偑偝傟偰偄側偄偺偱InitUI偼幚峴偱偒側偄
  1421. _multiPaneControl.InitUI(prev, opt);
  1422. bool toolbar = prev!=null && prev.ShowToolBar;
  1423. bool tabbar = prev!=null && prev.ShowTabBar;
  1424. bool statusbar = prev!=null && prev.ShowStatusBar;
  1425. this.SuspendLayout();
  1426. _multiPaneControl.ApplyOptions(opt);
  1427. _tabBar.ApplyOptions(opt);
  1428. if(!tabbar && opt.ShowTabBar) {
  1429. this.Controls.Add(_tabBar);
  1430. this.Controls.SetChildIndex(_tabBar, 1); //index 0偼_multiPaneControl屌掕
  1431. }
  1432. else if(tabbar && !opt.ShowTabBar) {
  1433. this.Controls.Remove(_tabBar);
  1434. }
  1435. if(!toolbar && opt.ShowToolBar) {
  1436. if(_toolBar==null) CreateToolBar();
  1437. this.Controls.Add(_toolBar);
  1438. this.Controls.SetChildIndex(_toolBar, opt.ShowTabBar? 2 : 1); 
  1439. }
  1440. else if(toolbar && !opt.ShowToolBar) {
  1441. if(_toolBar!=null) this.Controls.Remove(_toolBar);
  1442. }
  1443. if(opt.ShowToolBar)
  1444. _toolBar.ApplyOptions(opt);
  1445. if(!statusbar && opt.ShowStatusBar) {
  1446. this.Controls.Add(_statusBar);
  1447. this.Controls.SetChildIndex(_statusBar, this.Controls.Count-1);
  1448. }
  1449. else if(statusbar && !opt.ShowStatusBar) {
  1450. this.Controls.Remove(_statusBar);
  1451. }
  1452. this.ResumeLayout(true);
  1453. }
  1454. public void ApplyHotKeys() {
  1455. ApplyHotKeys(GApp.Options.Commands);
  1456. }
  1457. public void ApplyHotKeys(Commands cmds) {
  1458. ApplyHotKeys(cmds, _menu.MenuItems);
  1459. AdjustMacroMenu();
  1460. }
  1461. private void ApplyHotKeys(Commands km, Menu.MenuItemCollection items) {
  1462. foreach(GMenuItemBase mib in items) {
  1463. GMenuItem mi = mib as GMenuItem;
  1464. if(mi!=null) {
  1465. CID cid = (CID)mi.CID;
  1466. mi.ShortcutKey = km.FindKey(cid);
  1467. }
  1468. if(mib.MenuItems.Count>0) ApplyHotKeys(km, mib.MenuItems);
  1469. }
  1470.         }
  1471.         #endregion
  1472.         #region overrides
  1473.         protected override void OnActivated(EventArgs a) {
  1474. base.OnActivated(a);
  1475. if(_firstflag) {
  1476. _firstflag = false; //埲崀偼弶夞偺傒幚峴
  1477. _multiPaneControl.InitUI(null, GApp.Options); //僒僀僘偑僼傿僢僋僗偟側偄偲偙傟偼幚峴偱偒側偄
  1478. //婲摦帪偵僔儑乕僩僇僢僩傪奐偔偵偼_multiPaneControl.InitUI偑愭偱側偗傟偽側傜偢丄
  1479. //偙傟偼帺恎偺僂傿儞僪僂僒僀僘偑昁梫側偺偱OnLoad偱偼憗偡偓傞
  1480. if(_initialAction.ShortcutFile!=null) {
  1481. if(File.Exists(_initialAction.ShortcutFile))
  1482. GApp.GlobalCommandTarget.OpenShortCut(_initialAction.ShortcutFile);
  1483. else
  1484. GUtil.Warning(this, String.Format(GApp.Strings.GetString("Message.GFrame.FailedToOpen"), _initialAction.ShortcutFile));
  1485. }
  1486. }
  1487. else {
  1488. //GApp.GlobalCommandTarget.SetFocusToActiveConnection();
  1489. }
  1490. }
  1491. protected override void OnLoad(EventArgs e) {
  1492. base.OnLoad (e);
  1493. GEnv.InterThreadUIService.MainFrameHandle = this.Handle; //偙偙偱僴儞僪儖傪僙僢僩偟丄IWin32Window傪懠偺僗儗僢僪偑偄偠傜側偄傛偆偵偡傞
  1494. foreach(string m in _initialAction.Messages)
  1495. GUtil.Warning(this, m);
  1496. CID cid = GApp.Options.ShowWelcomeDialog? CID.ShowWelcomeDialog : GApp.Options.ActionOnLaunch;
  1497. if(cid!=CID.NOP)
  1498. GApp.GlobalCommandTarget.DelayedExec(cid);
  1499. }
  1500. protected override void OnSizeChanged(EventArgs args) {
  1501. base.OnSizeChanged(args);
  1502. _tabBar.ArrangeButtons();
  1503. }
  1504. protected override void OnClosing(CancelEventArgs args) {
  1505. if(GApp.GlobalCommandTarget.CloseAll()==CommandResult.Cancelled)
  1506. args.Cancel = true;
  1507. else {
  1508. GApp.Options.FramePosition = this.DesktopBounds;
  1509. GApp.Options.FrameState = this.WindowState;
  1510. base.OnClosing(args);
  1511. }
  1512. }
  1513. internal void OnDragEnterInternal(DragEventArgs a) {
  1514. OnDragEnterBody(a);
  1515. }
  1516. internal void OnDragDropInternal(DragEventArgs a) {
  1517. OnDragDropBody(a);
  1518. }
  1519. protected override void OnDragEnter(DragEventArgs a) {
  1520. base.OnDragEnter(a);
  1521. OnDragEnterBody(a);
  1522. }
  1523. protected override void OnDragDrop(DragEventArgs a) {
  1524. base.OnDragDrop(a);
  1525. OnDragDropBody(a);
  1526. }
  1527. private void OnDragEnterBody(DragEventArgs a) {
  1528. if(a.Data.GetDataPresent("FileContents") || a.Data.GetDataPresent("FileDrop"))
  1529. a.Effect = DragDropEffects.Link;
  1530. else
  1531. a.Effect = DragDropEffects.None;
  1532. }
  1533. private void OnDragDropBody(DragEventArgs a) {
  1534. string[] fmts = a.Data.GetFormats();
  1535. if(a.Data.GetDataPresent("FileDrop")) {
  1536. string[] files = (string[])a.Data.GetData("FileDrop", true);
  1537. //Debug.WriteLine("files="+files.Length);
  1538. GApp.GlobalCommandTarget.DelayedOpenShortcut(files[0]);
  1539. }
  1540. }
  1541. protected override bool IsInputKey(Keys key) {
  1542. //Debug.WriteLine("Frame IsInputKey "+key);
  1543. return false;
  1544. }
  1545. protected override bool ProcessDialogKey(Keys keyData) {
  1546. //Debug.WriteLine("Frame ProcessDialogKey " + keyData);
  1547. CommandResult r = GApp.Options.Commands.ProcessKey(keyData, GApp.MacroManager.MacroIsRunning);
  1548. return r!=CommandResult.NOP;
  1549.         }
  1550.         #endregion
  1551.         #region menu event handlers
  1552.         private void AdjustEditMenu(object sender, System.EventArgs e) {
  1553. _menuCopy.Enabled = _menuCopyAsLook.Enabled = _menuCopyToFile.Enabled = !GEnv.TextSelection.IsEmpty;
  1554. ConnectionTag tag = GEnv.Connections.ActiveTag;
  1555. bool enable = tag!=null;
  1556. IPoderosaTerminalPane p = tag==null? null : tag.AttachedPane;
  1557. _menuPaste.Enabled = CanPaste() && enable && tag.ModalTerminalTask==null;
  1558. _menuPasteFromFile.Enabled = enable;
  1559. _menuClearBuffer.Enabled = enable;
  1560. _menuClearScreen.Enabled = enable;
  1561. _menuSelectAll.Enabled = enable;
  1562. _menuFreeSelectionMode.Enabled = enable;
  1563. _menuFreeSelectionMode.Checked = enable && (p!=null && p.InFreeSelectionMode);
  1564. _menuAutoSelectionMode.Enabled = enable;
  1565. _menuAutoSelectionMode.Checked = enable && (p!=null && p.InAutoSelectionMode);
  1566. }
  1567. private void OnMenu(object sender, EventArgs args) {
  1568. CID cmd = (CID)(((GMenuItem)sender).CID);
  1569. Commands.Entry e = GApp.Options.Commands.FindEntry(cmd);
  1570. if(e==null)
  1571. Debug.WriteLine("Command Entry Not Found: "+cmd);
  1572. else {
  1573. if(GApp.MacroManager.MacroIsRunning && e.CID!=CID.StopMacro) return;
  1574. if(e.Target==Commands.Target.Global)
  1575. GApp.GlobalCommandTarget.Exec(cmd);
  1576. else {
  1577. bool context_menu = ((MenuItem)sender).Parent is ContextMenu;
  1578. ContainerConnectionCommandTarget t = GApp.GetConnectionCommandTarget(context_menu? _commandTargetConnection : GEnv.Connections.ActiveConnection);
  1579. if(t==null) return; //傾僋僥傿僽側僐僱僋僔儑儞偑側偗傟偽柍帇
  1580. t.Exec(cmd);
  1581. }
  1582. }
  1583. }
  1584. private void OnChangeEncoding(object sender, EventArgs args) {
  1585. ContainerConnectionCommandTarget t = GApp.GetConnectionCommandTarget(_commandTargetConnection==null? GEnv.Connections.ActiveConnection : _commandTargetConnection);
  1586. t.SetEncoding(EncodingProfile.Get((EncodingType)((GMenuItem)sender).Index));
  1587. }
  1588. private void OnChangeNewLine(object sender, EventArgs args) {
  1589. ContainerConnectionCommandTarget t = GApp.GetConnectionCommandTarget(_commandTargetConnection==null? GEnv.Connections.ActiveConnection : _commandTargetConnection);
  1590. int i = ((MenuItem)sender).Index;
  1591. Debug.Assert(0<=i && i<=2);
  1592. t.SetTransmitNewLine((NewLine)i);
  1593. }
  1594. private void OnMovePane(object sender, EventArgs args) {
  1595. Keys key;
  1596. if(sender==_menuMovePaneUp)
  1597. key = Keys.Up;
  1598. else if(sender==_menuMovePaneDown)
  1599. key = Keys.Down;
  1600. else if(sender==_menuMovePaneLeft)
  1601. key = Keys.Left;
  1602. else /*if(sender==_menuMovePaneRight)*/
  1603. key = Keys.Right;
  1604. GApp.GlobalCommandTarget.MoveActivePane(key);
  1605. }
  1606. private void OnMRUMenuClicked(object sender, EventArgs args) {
  1607. TerminalParam p = (TerminalParam)_MRUMenuToParameter[sender];
  1608. p = (TerminalParam)p.Clone();
  1609. p.FeedLogOption();
  1610. GApp.GlobalCommandTarget.NewConnection(p);
  1611. }
  1612. private void OnWindowMenuClicked(object sender, EventArgs args) {
  1613. bool e = GEnv.Connections.Count>0;
  1614. _menuCloseAll.Enabled = e;
  1615. _menuCloseAllDisconnected.Enabled = e;
  1616. _menuMovePane.Enabled = e;
  1617. _menuTab.Enabled = e;
  1618. _menuNextTab.Enabled = e;
  1619. _menuPrevTab.Enabled = e;
  1620. _menuMoveTabToPrev.Enabled = e;
  1621. _menuMoveTabToNext.Enabled = e;
  1622. }
  1623. private void OnWindowItemMenuClicked(object sender, EventArgs args) {
  1624. ConnectionTag ct = (ConnectionTag)_windowMenuItemMap[sender];
  1625. GApp.GlobalCommandTarget.ActivateConnection(ct.Connection);
  1626. }
  1627. protected override void WndProc(ref Message msg) {
  1628. base.WndProc(ref msg);
  1629. //僔儑乕僩僇僢僩傪奐偄偨偲偒偺張棟
  1630. if(msg.Msg==Win32.WM_COPYDATA) {
  1631. unsafe {
  1632. Win32.COPYDATASTRUCT* p = (Win32.COPYDATASTRUCT*)msg.LParam.ToPointer();
  1633. if(p!=null && p->dwData==InterProcessService.OPEN_SHORTCUT) {
  1634. string fn = new String((char*)p->lpData);
  1635. msg.Result = new IntPtr(InterProcessService.OPEN_SHORTCUT_OK);
  1636. GApp.GlobalCommandTarget.OpenShortCut(fn);
  1637. }
  1638. }
  1639. }
  1640. else if(msg.Msg==GConst.WMG_UIMESSAGE) {
  1641. //庴怣僗儗僢僪偐傜偺UI張棟梫媮
  1642. GApp.InterThreadUIService.ProcessMessage(msg.WParam, msg.LParam);
  1643. }
  1644. else if(msg.Msg==GConst.WMG_DELAYED_COMMAND) {
  1645. GApp.GlobalCommandTarget.DoDelayedExec();
  1646. }
  1647. }
  1648. internal void CenteringDialog(Form frm) {
  1649. frm.Left = this.Left + (this.Width - frm.Width) / 2;
  1650. frm.Top  = this.Top  + (this.Height- frm.Height)/ 2;
  1651. }
  1652. private static bool CanPaste() {
  1653. try {
  1654. IDataObject data = Clipboard.GetDataObject();
  1655. return data!=null && data.GetDataPresent("Text");
  1656. }
  1657. catch(Exception) { //僋儕僢僾儃乕僪傪儘僢僋偟偰偄傞傾僾儕働乕僔儑儞偑偁傞側偳偺偲偒偼椺奜偵側偭偰偟傑偆
  1658. return false;
  1659. }
  1660.         }
  1661.         #endregion
  1662.     }
  1663. }