⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 view.cs

📁 一个远程终端软件的源码
💻 CS
📖 第 1 页 / 共 5 页
字号:
          OnKeyEvent(CtrlKey, true);
          OnKeyEvent(EscKey, true);
          OnKeyEvent(EscKey, false);
          OnKeyEvent(CtrlKey, false);
          toKeyUpCtrl = false;
        }
        else if(item.Text == App.GetStr("F1"))
        {
          OnKeyEvent(Keys.F1, true);
          OnKeyEvent(Keys.F1, false);
          SpecKeyUp();
        }
        else if(item.Text == App.GetStr("F2"))
        {
          OnKeyEvent(Keys.F2, true);
          OnKeyEvent(Keys.F2, false);
          SpecKeyUp();
        }
        else if(item.Text == App.GetStr("F3"))
        {
          OnKeyEvent(Keys.F3, true);
          OnKeyEvent(Keys.F3, false);
          SpecKeyUp();
        }
        else if(item.Text == App.GetStr("F4"))
        {
          OnKeyEvent(Keys.F4, true);
          OnKeyEvent(Keys.F4, false);
          SpecKeyUp();
        }
        else if(item.Text == App.GetStr("F5"))
        {
          OnKeyEvent(Keys.F5, true);
          OnKeyEvent(Keys.F5, false);
          SpecKeyUp();
        }
        else if(item.Text == App.GetStr("F6"))
        {
          OnKeyEvent(Keys.F6, true);
          OnKeyEvent(Keys.F6, false);
          SpecKeyUp();
        }
        else if(item.Text == App.GetStr("F7"))
        {
          OnKeyEvent(Keys.F7, true);
          OnKeyEvent(Keys.F7, false);
          SpecKeyUp();
        }
        else if(item.Text == App.GetStr("F8"))
        {
          OnKeyEvent(Keys.F8, true);
          OnKeyEvent(Keys.F8, false);
          SpecKeyUp();
        }
        else if(item.Text == App.GetStr("F9"))
        {
          OnKeyEvent(Keys.F9, true);
          OnKeyEvent(Keys.F9, false);
          SpecKeyUp();
        }
        else if(item.Text == App.GetStr("F10"))
        {
          OnKeyEvent(Keys.F10, true);
          OnKeyEvent(Keys.F10, false);
          SpecKeyUp();
        }
        else if(item.Text == App.GetStr("F11"))
        {
          OnKeyEvent(Keys.F11, true);
          OnKeyEvent(Keys.F11, false);
          SpecKeyUp();
        }
        else if(item.Text == App.GetStr("F12"))
        {
          OnKeyEvent(Keys.F12, true);
          OnKeyEvent(Keys.F12, false);
          SpecKeyUp();
        }
      }
      catch(IOException)
      {
        Close();
      }
    }

    private void ViewWinClicked(object sender, EventArgs e)
    {
      MenuItem item = (MenuItem)sender;
      if(item.Text == App.GetStr("View desktop"))
      {
        try
        {
          byte[] msg = RfbProtoUtil.GetSetSingleWinMsg();
          conn.WriteBytes(msg, RfbCliMsgType.SetSingleWin);
        }
        catch(IOException)
        {
          Close();
        }
      }
      else
        isSetSingleWinPending = true;
    }

    protected void SetSingleWin(int x, int y)
    {
      ScrnToRealXY(ref x, ref y);
      byte[] msg = RfbProtoUtil.GetSetSingleWinMsg((UInt16)x, (UInt16)y);
      try
      {
        conn.WriteBytes(msg, RfbCliMsgType.SetSingleWin);
        isSetSingleWinPending = false;
      }
      catch(IOException)
      {
        Close();
      }
    }

    private void AboutClicked(object sender, EventArgs e)
    {
      App.AboutBox();
    }

    protected override void OnClosed(EventArgs e)
    {
      base.OnClosed(e);
      bgTimer.Enabled = false;
    }

    internal View(Conn conn, ConnOpts connOpts, UInt16 width, UInt16 height) : base()
    {
      this.conn = conn;
      this.connOpts = connOpts;
      switch(connOpts.ViewOpts.Orientation)
      {
        case Orientation.Landscape90:
        case Orientation.Landscape270:
          rawFBWidth = height;
          rawFBHeight = width;
          break;
        default:
          rawFBWidth = width;
          rawFBHeight = height;
          break;
      }
      frameBuf = new Bitmap(rawFBWidth, rawFBHeight);
      frameBufGraphics = Graphics.FromImage(frameBuf);
      SetScaledDims();

      invalidRectLock = invalidRect;  // Box invalidRect as the lock.
      bgTimer.Tick += new EventHandler(BgTicked);
      bgTimer.Interval = BgDelta;
      bgTimer.Enabled = true;

      resizeFrameBufHdr = new EventHandler(ResizeFrameBuf);
      viewWinHdr = new EventHandler(ViewWinClicked);

      timer.Tick += new EventHandler(Ticked);
      timer.Interval = Delta;

      EventHandler scrlHdr = new EventHandler(Scrled);
      hScrlBar.ValueChanged += scrlHdr;
      vScrlBar.ValueChanged += scrlHdr;

      MenuItem item;
      fullScrnHdr = new EventHandler(FullScrnClicked);
      rotateHdr = new EventHandler(RotateClicked);
      cliScalingHdr = new EventHandler(CliScalingClicked);
      servScalingHdr = new EventHandler(ServScalingClicked);
      pixelSizeHdr = new EventHandler(PixelSizeClicked);
      keysHdr = new EventHandler(KeysClicked);

      connMenu.Text = App.GetStr("Connection");
      newConnItem.Text = App.GetStr("New...");
      newConnItem.Click += new EventHandler(NewConnClicked);
      refreshItem.Text = App.GetStr("Refresh whole screen");
      refreshItem.Click += new EventHandler(RefreshClicked);
      closeConnItem.Text = App.GetStr("Close");
      closeConnItem.Click += new EventHandler(CloseClicked);

      viewMenu.Text = App.GetStr("View");
      item = new MenuItem();
      item.Text = App.GetStr("Full screen");
      item.Checked = false; // If we see this we are not using full screen.
      item.Click += fullScrnHdr;
      viewMenu.MenuItems.Add(item);
      rotateMenu.Text = App.GetStr("Rotate");
      viewMenu.MenuItems.Add(rotateMenu);
      item = new MenuItem();
      item.Text = App.GetStr("Portrait");
      item.Click += rotateHdr;
      rotateMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("Screen rotated clockwise");
      item.Click += rotateHdr;
      rotateMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("Screen rotated counter-clockwise");
      item.Click += rotateHdr;
      rotateMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("Upside down");
      item.Click += rotateHdr;
      rotateMenu.MenuItems.Add(item);
      CheckRotate(rotateMenu);
      cliScalingMenu.Text = App.GetStr("Client-side scaling");
      viewMenu.MenuItems.Add(cliScalingMenu);
      item = new MenuItem();
      item.Text = App.GetStr("None");
      item.Click += cliScalingHdr;
      cliScalingMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("Auto");
      item.Click += cliScalingHdr;
      cliScalingMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("1/2 of server");
      item.Click += cliScalingHdr;
      cliScalingMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("1/3 of server");
      item.Click += cliScalingHdr;
      cliScalingMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("1/4 of server");
      item.Click += cliScalingHdr;
      cliScalingMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("1/5 of server");
      item.Click += cliScalingHdr;
      cliScalingMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("2 of server");
      item.Click += cliScalingHdr;
      cliScalingMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("Custom...");
      item.Click += cliScalingHdr;
      cliScalingMenu.MenuItems.Add(item);
      CheckCliScaling(cliScalingMenu);
      servScalingMenu.Text = App.GetStr("Server-side scaling");
      viewMenu.MenuItems.Add(servScalingMenu);
      item = new MenuItem();
      item.Text = App.GetStr("None");
      item.Click += servScalingHdr;
      servScalingMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("1/2");
      item.Click += servScalingHdr;
      servScalingMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("1/3");
      item.Click += servScalingHdr;
      servScalingMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("1/4");
      item.Click += servScalingHdr;
      servScalingMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("1/5");
      item.Click += servScalingHdr;
      servScalingMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("1/6");
      item.Click += servScalingHdr;
      servScalingMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("1/7");
      item.Click += servScalingHdr;
      servScalingMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("1/8");
      item.Click += servScalingHdr;
      servScalingMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("1/9");
      item.Click += servScalingHdr;
      servScalingMenu.MenuItems.Add(item);
      CheckServScaling(servScalingMenu);
      pixelSizeMenu.Text = App.GetStr("Pixel size");
      viewMenu.MenuItems.Add(pixelSizeMenu);
      item = new MenuItem();
      item.Text = App.GetStr("Server decides");
      item.Click += pixelSizeHdr;
      pixelSizeMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("Force 8-bit");
      item.Click += pixelSizeHdr;
      pixelSizeMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("Force 16-bit");
      item.Click += pixelSizeHdr;
      pixelSizeMenu.MenuItems.Add(item);
      CheckPixelSize();
      item = new MenuItem();
      item.Text = "-";
      viewMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("View single window");
      item.Click += viewWinHdr;
      viewMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("View desktop");
      item.Click += viewWinHdr;
      viewMenu.MenuItems.Add(item);

      keysMenu.Text = App.GetStr("Keys");
      item = new MenuItem();
      item.Text = App.GetStr("Shift down");
      item.Click += keysHdr;
      keysMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("Shift up");
      item.Click += keysHdr;
      keysMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("Esc");
      item.Click += keysHdr;
      keysMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("Tab");
      item.Click += keysHdr;
      keysMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("Ctrl-");
      item.Click += keysHdr;
      keysMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("Alt-");
      item.Click += keysHdr;
      keysMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("Ctrl-Alt-");
      item.Click += keysHdr;
      keysMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("Ctrl-Alt-Del");
      item.Click += keysHdr;
      keysMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("Ctrl-Esc (Start Menu)");
      item.Click += keysHdr;
      keysMenu.MenuItems.Add(item);
      fnMenu.Text = App.GetStr("Fn");
      keysMenu.MenuItems.Add(fnMenu);
      item = new MenuItem();
      item.Text = App.GetStr("F1");
      item.Click += keysHdr;
      fnMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("F2");
      item.Click += keysHdr;
      fnMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("F3");
      item.Click += keysHdr;
      fnMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("F4");
      item.Click += keysHdr;
      fnMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("F5");
      item.Click += keysHdr;
      fnMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("F6");
      item.Click += keysHdr;
      fnMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("F7");
      item.Click += keysHdr;
      fnMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("F8");
      item.Click += keysHdr;
      fnMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("F9");
      item.Click += keysHdr;
      fnMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("F10");
      item.Click += keysHdr;
      fnMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("F11");
      item.Click += keysHdr;
      fnMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("F12");
      item.Click += keysHdr;
      fnMenu.MenuItems.Add(item);

      optionsMenu.Text = App.GetStr("Options");
      item = new MenuItem();
      item.Text = App.GetStr("View only");
      item.Checked = connOpts.ViewOpts.ViewOnly;
      item.Click += new EventHandler(ViewOnlyClicked);
      optionsMenu.MenuItems.Add(item);
      item = new MenuItem();
      item.Text = App.GetStr("Update screen ASAP");
      item.Checked = connOpts.ViewOpts.ScrnUpdAlgo == ScrnUpdAlgo.Asap;
      item.Click += new EventHandler(ScrnUpdAlgoClicked);
      optionsMenu.MenuItems.Add(item);

      aboutItem = new MenuItem();
      aboutItem.Text = App.GetStr("About");
      aboutItem.Click += new EventHandler(AboutClicked);
    }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -