📄 sessdlgsp.cs
字号:
// Copyright (C) 2005, 2007 Rocky Lo. All Rights Reserved.
//
// This file is part of the VNC system.
//
// The VNC system is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
// USA.
//
// If the source code for the VNC system is not available from the place
// whence you received this file, check http://www.uk.research.att.com/vnc or contact
// the authors on vnc@uk.research.att.com for information on obtaining it.
using System;
using System.Drawing;
using System.Windows.Forms;
namespace Vnc.Viewer
{
internal class SessDlgSp : SessDlg
{
private MenuItem okItem = new MenuItem();
private MenuItem generalItem = new MenuItem();
private MenuItem connModeItem = new MenuItem();
private MenuItem displayItem = new MenuItem();
private MenuItem scalingItem = new MenuItem();
private MenuItem othersItem = new MenuItem();
private MenuItem saveLoadItem = new MenuItem();
private MenuItem dashItem = new MenuItem();
private MenuItem aboutItem = new MenuItem();
private MenuItem cancelItem = new MenuItem();
private MenuItem optionsItem = new MenuItem();
private Panel generalPanel = new Panel();
private ComboBox recentBox = new ComboBox();
private Panel connModePanel = new Panel();
private Panel displayPanel = new Panel();
private Panel scalingPanel = new Panel();
private Panel othersPanel = new Panel();
private CheckBox sendMouseLocWhenIdleBox = new CheckBox();
private ComboBox mouseSpeedBox = new ComboBox();
private MenuItem saveDefsItem = new MenuItem();
private MenuItem restoreDefsItem = new MenuItem();
internal SessDlgSp() : base()
{
SetupMouseSpeedBox();
}
internal SessDlgSp(ViewOpts viewOpts) : base(viewOpts)
{
SetupMouseSpeedBox();
}
private void SetupMouseSpeedBox()
{
mouseSpeedBox.Items.Add(App.GetStr("Mouse acceleration on"));
mouseSpeedBox.Items.Add(App.GetStr("Mouse speed - low"));
mouseSpeedBox.Items.Add(App.GetStr("Mouse speed - normal"));
mouseSpeedBox.Items.Add(App.GetStr("Mouse speed - high"));
}
protected override void GetOptions()
{
base.GetOptions();
viewOpts.SendMouseLocWhenIdle = sendMouseLocWhenIdleBox.Checked;
switch(mouseSpeedBox.SelectedIndex)
{
case 1:
viewOpts.MouseAccelMode = false;
viewOpts.MouseSpeed = MouseSpeed.Low;
break;
case 2:
viewOpts.MouseAccelMode = false;
viewOpts.MouseSpeed = MouseSpeed.Normal;
break;
case 3:
viewOpts.MouseAccelMode = false;
viewOpts.MouseSpeed = MouseSpeed.High;
break;
default:
viewOpts.MouseAccelMode = true;
viewOpts.MouseSpeed = MouseSpeed.Normal;
break;
}
}
protected override void SetOptions(ViewOpts viewOpts)
{
base.SetOptions(viewOpts);
sendMouseLocWhenIdleBox.Checked = viewOpts.SendMouseLocWhenIdle;
if(viewOpts.MouseAccelMode)
mouseSpeedBox.SelectedIndex = 0;
else
{
switch(viewOpts.MouseSpeed)
{
case MouseSpeed.Low:
mouseSpeedBox.SelectedIndex = 1;
break;
case MouseSpeed.High:
mouseSpeedBox.SelectedIndex = 3;
break;
default:
mouseSpeedBox.SelectedIndex = 2;
break;
}
}
}
protected override void AddConnHistEntry(string entry)
{
recentBox.Items.Add(entry);
}
private void RecentBoxChanged(object sender, EventArgs e)
{
if(ConnMode == ConnMode.Active)
remoteEndPt.Text = recentBox.Text;
}
private void SwitchPanel(MenuItem item)
{
generalPanel.Visible = false;
connModePanel.Visible = false;
displayPanel.Visible = false;
scalingPanel.Visible = false;
othersPanel.Visible = false;
if(item == connModeItem)
{
connModePanel.Visible = true;
listenBox.Focus();
}
else if(item == displayItem)
{
displayPanel.Visible = true;
fullScrnBox.Focus();
}
else if(item == scalingItem)
{
scalingPanel.Visible = true;
cliScalingBox.Focus();
}
else if(item == othersItem)
{
othersPanel.Visible = true;
viewOnlyBox.Focus();
}
else // Assume general.
{
generalPanel.Visible = true;
remoteEndPt.Focus();
}
}
private void PanelItemClicked(object sender, EventArgs e)
{
SwitchPanel((MenuItem)sender);
}
protected override void OnResize(EventArgs e)
{
base.OnResize(e);
generalPanel.Size = ClientRectangle.Size;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -