Files
mRemoteNG/mRemoteV1/UI/Window/HelpWindow.cs
2017-02-03 11:07:40 -07:00

288 lines
9.5 KiB
C#

using System;
using System.Windows.Forms;
using mRemoteNG.App.Info;
using WeifenLuo.WinFormsUI.Docking;
namespace mRemoteNG.UI.Window
{
public class HelpWindow : BaseWindow
{
#region Form Init
internal TreeView tvIndex;
internal ImageList imgListHelp;
private System.ComponentModel.Container components;
internal SplitContainer pnlSplitter;
internal Label lblDocName;
internal WebBrowser wbHelp;
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
Load += new EventHandler(Help_Load);
Shown += new EventHandler(Help_Shown);
TreeNode TreeNode1 = new TreeNode("Introduction");
TreeNode TreeNode2 = new TreeNode("Prerequisites");
TreeNode TreeNode3 = new TreeNode("Installation");
TreeNode TreeNode4 = new TreeNode("Configuration");
TreeNode TreeNode5 = new TreeNode("SQL Configuration");
TreeNode TreeNode6 = new TreeNode("Command-Line Switches");
TreeNode TreeNode7 = new TreeNode("Getting Started", new[] {TreeNode2, TreeNode3, TreeNode4, TreeNode5, TreeNode6});
TreeNode TreeNode8 = new TreeNode("Main Menu");
TreeNode TreeNode9 = new TreeNode("Connections");
TreeNode TreeNode10 = new TreeNode("Config");
TreeNode TreeNode11 = new TreeNode("Errors and Infos");
TreeNode TreeNode12 = new TreeNode("Save As / Export");
TreeNode TreeNode14 = new TreeNode("Screenshot Manager");
TreeNode TreeNode15 = new TreeNode("Connection");
TreeNode TreeNode16 = new TreeNode("Options");
TreeNode TreeNode17 = new TreeNode("Update");
TreeNode TreeNode18 = new TreeNode("SSH File Transfer");
TreeNode TreeNode19 = new TreeNode("Quick Connect");
TreeNode TreeNode20 = new TreeNode("Import From Active Directory");
TreeNode TreeNode21 = new TreeNode("External Applications");
TreeNode TreeNode22 = new TreeNode("Port Scan");
TreeNode TreeNode23 = new TreeNode("User Interface", new[] {TreeNode8, TreeNode9, TreeNode10, TreeNode11, TreeNode12, TreeNode14, TreeNode15, TreeNode16, TreeNode17, TreeNode18, TreeNode19, TreeNode20, TreeNode21, TreeNode22});
TreeNode TreeNode24 = new TreeNode("Quick Reference");
TreeNode TreeNode25 = new TreeNode("Help", new[] {TreeNode1, TreeNode7, TreeNode23, TreeNode24});
wbHelp = new WebBrowser();
wbHelp.DocumentTitleChanged += new EventHandler(wbHelp_DocumentTitleChanged);
tvIndex = new TreeView();
tvIndex.NodeMouseClick += new TreeNodeMouseClickEventHandler(tvIndex_NodeMouseClick);
tvIndex.AfterSelect += new TreeViewEventHandler(tvIndex_AfterSelect);
imgListHelp = new ImageList(components);
pnlSplitter = new SplitContainer();
lblDocName = new Label();
pnlSplitter.Panel1.SuspendLayout();
pnlSplitter.Panel2.SuspendLayout();
pnlSplitter.SuspendLayout();
SuspendLayout();
//
//wbHelp
//
wbHelp.Anchor = AnchorStyles.Top | AnchorStyles.Bottom
| AnchorStyles.Left
| AnchorStyles.Right;
wbHelp.Location = new System.Drawing.Point(1, 36);
wbHelp.MinimumSize = new System.Drawing.Size(20, 20);
wbHelp.Name = "wbHelp";
wbHelp.ScriptErrorsSuppressed = true;
wbHelp.Size = new System.Drawing.Size(327, 286);
wbHelp.TabIndex = 1;
//
//tvIndex
//
tvIndex.Anchor = AnchorStyles.Top | AnchorStyles.Bottom
| AnchorStyles.Left
| AnchorStyles.Right;
tvIndex.BorderStyle = BorderStyle.None;
tvIndex.HideSelection = false;
tvIndex.Location = new System.Drawing.Point(1, 1);
tvIndex.Name = "tvIndex";
TreeNode1.Name = "Node0";
TreeNode1.Tag = "Introduction";
TreeNode1.Text = "Introduction";
TreeNode2.Name = "Node0";
TreeNode2.Tag = "Prerequisites";
TreeNode2.Text = "Prerequisites";
TreeNode3.Name = "Node3";
TreeNode3.Tag = "Installation";
TreeNode3.Text = "Installation";
TreeNode4.Name = "Node4";
TreeNode4.Tag = "Configuration";
TreeNode4.Text = "Configuration";
TreeNode5.Name = "Node0";
TreeNode5.Tag = "ConfigurationSQL";
TreeNode5.Text = "SQL Configuration";
TreeNode6.Name = "Node5";
TreeNode6.Tag = "CMDSwitches";
TreeNode6.Text = "Command-Line Switches";
TreeNode7.Name = "Node1";
TreeNode7.Text = "Getting Started";
TreeNode8.Name = "Node7";
TreeNode8.Tag = "MainMenu";
TreeNode8.Text = "Main Menu";
TreeNode9.Name = "Node8";
TreeNode9.Tag = "Connections";
TreeNode9.Text = "Connections";
TreeNode10.Name = "Node9";
TreeNode10.Tag = "Config";
TreeNode10.Text = "Config";
TreeNode11.Name = "Node10";
TreeNode11.Tag = "ErrorsAndInfos";
TreeNode11.Text = "Errors and Infos";
TreeNode12.Name = "Node11";
TreeNode12.Tag = "SaveAsExport";
TreeNode12.Text = "Save As / Export";
TreeNode14.Name = "Node13";
TreeNode14.Tag = "ScreenshotManager";
TreeNode14.Text = "Screenshot Manager";
TreeNode15.Name = "Node14";
TreeNode15.Tag = "Connection";
TreeNode15.Text = "Connection";
TreeNode16.Name = "Node15";
TreeNode16.Tag = "Options";
TreeNode16.Text = "Options";
TreeNode17.Name = "Node16";
TreeNode17.Tag = "Update";
TreeNode17.Text = "Update";
TreeNode18.Name = "Node17";
TreeNode18.Tag = "SSHFileTransfer";
TreeNode18.Text = "SSH File Transfer";
TreeNode19.Name = "Node18";
TreeNode19.Tag = "QuickConnect";
TreeNode19.Text = "Quick Connect";
TreeNode20.Name = "Node19";
TreeNode20.Tag = "ImportFromAD";
TreeNode20.Text = "Import From Active Directory";
TreeNode21.Name = "Node1";
TreeNode21.Tag = "ExternalTools";
TreeNode21.Text = "External Tools";
TreeNode22.Name = "Node0";
TreeNode22.Tag = "PortScan";
TreeNode22.Text = "Port Scan";
TreeNode23.Name = "Node6";
TreeNode23.Text = "User Interface";
TreeNode24.Name = "Node20";
TreeNode24.Tag = "QuickReference";
TreeNode24.Text = "Quick Reference";
TreeNode25.Name = "Node0";
TreeNode25.Text = "Help";
TreeNode25.Tag = "Index";
tvIndex.Nodes.AddRange(new[] {TreeNode25});
tvIndex.ShowRootLines = false;
tvIndex.Size = new System.Drawing.Size(207, 321);
tvIndex.TabIndex = 0;
//
//imgListHelp
//
imgListHelp.ColorDepth = ColorDepth.Depth32Bit;
imgListHelp.ImageSize = new System.Drawing.Size(16, 16);
imgListHelp.TransparentColor = System.Drawing.Color.Transparent;
//
//pnlSplitter
//
pnlSplitter.Anchor = AnchorStyles.Top | AnchorStyles.Bottom
| AnchorStyles.Left
| AnchorStyles.Right;
pnlSplitter.FixedPanel = FixedPanel.Panel1;
pnlSplitter.Location = new System.Drawing.Point(0, 0);
pnlSplitter.Name = "pnlSplitter";
//
//pnlSplitter.Panel1
//
pnlSplitter.Panel1.Controls.Add(tvIndex);
//
//pnlSplitter.Panel2
//
pnlSplitter.Panel2.Controls.Add(lblDocName);
pnlSplitter.Panel2.Controls.Add(wbHelp);
pnlSplitter.Size = new System.Drawing.Size(542, 323);
pnlSplitter.SplitterDistance = 209;
pnlSplitter.TabIndex = 2;
//
//lblDocName
//
lblDocName.Anchor = AnchorStyles.Top | AnchorStyles.Left
| AnchorStyles.Right;
lblDocName.BackColor = System.Drawing.Color.DimGray;
lblDocName.Font = new System.Drawing.Font("Segoe UI", 12.0F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, Convert.ToByte(0));
lblDocName.ForeColor = System.Drawing.Color.White;
lblDocName.Location = new System.Drawing.Point(1, 1);
lblDocName.Name = "lblDocName";
lblDocName.Size = new System.Drawing.Size(327, 35);
lblDocName.TabIndex = 2;
lblDocName.Text = "Introduction";
lblDocName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
//Help
//
ClientSize = new System.Drawing.Size(542, 323);
Controls.Add(pnlSplitter);
Icon = Resources.Help_Icon;
Name = "Help";
TabText = "Help";
Text = "Help";
pnlSplitter.Panel1.ResumeLayout(false);
pnlSplitter.Panel2.ResumeLayout(false);
pnlSplitter.ResumeLayout(false);
ResumeLayout(false);
}
#endregion
#region Public Methods
public HelpWindow()
{
WindowType = WindowType.Help;
DockPnl = new DockContent();
InitializeComponent();
FillImageList();
tvIndex.ImageList = imgListHelp;
SetImages(tvIndex.Nodes[0]);
}
#endregion
#region Private Methods
private void Help_Load(object sender, EventArgs e)
{
tvIndex.Nodes[0].ExpandAll();
tvIndex.SelectedNode = tvIndex.Nodes[0].Nodes[0];
}
private void Help_Shown(object sender, EventArgs e)
{
// This can only be set once the WebBrowser control is shown, it will throw a COM exception otherwise.
wbHelp.AllowWebBrowserDrop = false;
}
private void tvIndex_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
tvIndex.SelectedNode = e.Node;
}
private void tvIndex_AfterSelect(object sender, TreeViewEventArgs e)
{
if ((string)e.Node.Tag != "" && e.Node.Tag != null)
{
wbHelp.Navigate(GeneralAppInfo.HomePath + "\\Help\\" + Convert.ToString(e.Node.Tag) +".htm");
}
}
private void wbHelp_DocumentTitleChanged(object sender, EventArgs e)
{
lblDocName.Text = wbHelp.DocumentTitle;
}
private void FillImageList()
{
imgListHelp.Images.Add("File", Resources.Page);
imgListHelp.Images.Add("Folder", Resources.Folder);
imgListHelp.Images.Add("Help", Resources.Help);
}
private void SetImages(TreeNode node)
{
node.ImageIndex = 2;
node.SelectedImageIndex = 2;
foreach (TreeNode n in node.Nodes)
{
if (n.Nodes.Count > 0)
{
n.ImageIndex = 1;
n.SelectedImageIndex = 1;
}
else
{
n.ImageIndex = 0;
n.SelectedImageIndex = 0;
}
}
}
#endregion
}
}