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

Telnet服务器

开发平台:

C#

  1. /*
  2. * Copyright (c) 2005 Poderosa Project, All Rights Reserved.
  3. * $Id: GStatusBar.cs,v 1.2 2005/04/20 08:45:45 okajima Exp $
  4. */
  5. using System;
  6. using System.Diagnostics;
  7. using System.Windows.Forms;
  8. using System.Drawing;
  9. using System.Resources;
  10. //using System.Timers;
  11. using Poderosa;
  12. using TTimer = System.Timers.Timer;
  13. namespace Poderosa.Forms
  14. {
  15. /// <summary>
  16. /// 僗僥乕僞僗僶乕
  17. /// 僼儗乕儉偺僨僓僀儞儌乕僪昞帵偺偐偹偁偄偱丄StatusBar偐傜偺攈惗偱偼側偔儔僢僷偵側偭偰偄傞丅
  18. /// </summary>
  19. internal class GStatusBar
  20. {
  21. private StatusBar _statusBar;
  22. private Timer _belltimer;
  23. private Timer _statusBarTextTimer;
  24. private Icon _bell;
  25. private Icon _empty;
  26. public GStatusBar(StatusBar sb) {
  27. _statusBar = sb;
  28. _bell         = GIcons.GetBellIcon();
  29. _empty        = null;
  30. BellPanel.Icon = _empty;
  31. //Windows.Forms.Timer偼Start/Stop傪暿偺僗儗僢僪偐傜偄偠傞偲偩傔偵側偭偰偟傑偆傛偆偩
  32. _belltimer = new Timer();
  33. _belltimer.Interval = 500;
  34. //_belltimer.AutoReset = false;
  35. _belltimer.Tick += new EventHandler(CancelBellIcon);
  36. //_belltimer.Elapsed += new ElapsedEventHandler(CancelBellIcon);
  37. }
  38. private StatusBarPanel MessagePanel {
  39. get {
  40. return _statusBar.Panels[0];
  41. }
  42. }
  43. private StatusBarPanel BellPanel {
  44. get {
  45. return _statusBar.Panels[1];
  46. }
  47. }
  48. private StatusBarPanel CaretPanel {
  49. get {
  50. return _statusBar.Panels[2];
  51. }
  52. }
  53. public void SetStatusBarText(string text) {
  54. MessagePanel.Text = text;
  55. }
  56. public void ClearStatusBarText() {
  57. MessagePanel.Text = "";
  58. if(_statusBarTextTimer!=null) _statusBarTextTimer.Stop();
  59. }
  60. private void SetStatusBarTextTimer() {
  61. if(_statusBarTextTimer==null) {
  62. _statusBarTextTimer = new Timer();
  63. _statusBarTextTimer.Interval = 10000;
  64. _statusBarTextTimer.Tick += new EventHandler(ClearStatusBarTextHandler);
  65. }
  66. _statusBarTextTimer.Start();
  67. }
  68. private void ClearStatusBarTextHandler(object sender, EventArgs args) {
  69. ClearStatusBarText();
  70. }
  71. public void IndicateFreeSelectionMode() {
  72. CaretPanel.Text = GApp.Strings.GetString("Caption.GStatusBar.FreeSelection");
  73. }
  74. public void IndicateAutoSelectionMode() {
  75. CaretPanel.Text = GApp.Strings.GetString("Caption.GStatusBar.AutoSelection");
  76. }
  77. public void ClearSelectionMode() {
  78. CaretPanel.Text = "";
  79. }
  80. //儀儖傾僀僐儞傪揰摂偡傞
  81. public void IndicateBell() {
  82. if(_belltimer.Enabled)
  83. _belltimer.Stop();
  84. else
  85. BellPanel.Icon = _bell;
  86. _belltimer.Start();
  87. }
  88. private void CancelBellIcon(object sender, EventArgs args) {
  89. BellPanel.Icon = _empty;
  90. _belltimer.Stop();
  91. }
  92. }
  93. }