📄 view.cs
字号:
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 + -