Files
mRemoteNG/mRemoteV1/UI/UI.Window.Config.vb
Riley McArdle 5d63ec6d2a Fix issue MR-459 - Maximized -> Minimized -> Restored results in mangled active display
Fix issue MR-463 - Add support for LoadBalanceInfo to RDP
2013-05-08 19:17:51 -05:00

1530 lines
80 KiB
VB.net

Imports mRemoteNG.My
Imports mRemoteNG.Connection.Protocol
Imports WeifenLuo.WinFormsUI.Docking
Imports System.Net.NetworkInformation
Imports mRemoteNG.App.Runtime
Namespace UI
Namespace Window
Public Class Config
Inherits UI.Window.Base
#Region "Form Init"
Friend WithEvents btnShowProperties As System.Windows.Forms.ToolStripButton
Friend WithEvents btnShowDefaultProperties As System.Windows.Forms.ToolStripButton
Friend WithEvents btnShowInheritance As System.Windows.Forms.ToolStripButton
Friend WithEvents btnShowDefaultInheritance As System.Windows.Forms.ToolStripButton
Friend WithEvents btnIcon As System.Windows.Forms.ToolStripButton
Friend WithEvents btnHostStatus As System.Windows.Forms.ToolStripButton
Friend WithEvents cMenIcons As System.Windows.Forms.ContextMenuStrip
Private components As System.ComponentModel.IContainer
Friend WithEvents propertyGridContextMenu As System.Windows.Forms.ContextMenuStrip
Friend WithEvents propertyGridContextMenuShowHelpText As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents pGrid As Azuria.Common.Controls.FilteredPropertyGrid
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Me.pGrid = New Azuria.Common.Controls.FilteredPropertyGrid()
Me.btnShowInheritance = New System.Windows.Forms.ToolStripButton()
Me.btnShowDefaultInheritance = New System.Windows.Forms.ToolStripButton()
Me.btnShowProperties = New System.Windows.Forms.ToolStripButton()
Me.btnShowDefaultProperties = New System.Windows.Forms.ToolStripButton()
Me.btnIcon = New System.Windows.Forms.ToolStripButton()
Me.btnHostStatus = New System.Windows.Forms.ToolStripButton()
Me.cMenIcons = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.propertyGridContextMenu = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.propertyGridContextMenuShowHelpText = New System.Windows.Forms.ToolStripMenuItem()
Me.propertyGridContextMenu.SuspendLayout()
Me.SuspendLayout()
'
'pGrid
'
Me.pGrid.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.pGrid.BrowsableProperties = Nothing
Me.pGrid.ContextMenuStrip = Me.propertyGridContextMenu
Me.pGrid.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.pGrid.HiddenAttributes = Nothing
Me.pGrid.HiddenProperties = Nothing
Me.pGrid.Location = New System.Drawing.Point(0, 0)
Me.pGrid.Name = "pGrid"
Me.pGrid.PropertySort = System.Windows.Forms.PropertySort.Categorized
Me.pGrid.Size = New System.Drawing.Size(226, 530)
Me.pGrid.TabIndex = 0
Me.pGrid.UseCompatibleTextRendering = True
'
'btnShowInheritance
'
Me.btnShowInheritance.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
Me.btnShowInheritance.Image = Global.mRemoteNG.My.Resources.Resources.Inheritance
Me.btnShowInheritance.ImageTransparentColor = System.Drawing.Color.Magenta
Me.btnShowInheritance.Name = "btnShowInheritance"
Me.btnShowInheritance.Size = New System.Drawing.Size(23, 22)
Me.btnShowInheritance.Text = "Inheritance"
'
'btnShowDefaultInheritance
'
Me.btnShowDefaultInheritance.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
Me.btnShowDefaultInheritance.Image = Global.mRemoteNG.My.Resources.Resources.Inheritance_Default
Me.btnShowDefaultInheritance.ImageTransparentColor = System.Drawing.Color.Magenta
Me.btnShowDefaultInheritance.Name = "btnShowDefaultInheritance"
Me.btnShowDefaultInheritance.Size = New System.Drawing.Size(23, 22)
Me.btnShowDefaultInheritance.Text = "Default Inheritance"
'
'btnShowProperties
'
Me.btnShowProperties.Checked = True
Me.btnShowProperties.CheckState = System.Windows.Forms.CheckState.Checked
Me.btnShowProperties.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
Me.btnShowProperties.Image = Global.mRemoteNG.My.Resources.Resources.Properties
Me.btnShowProperties.ImageTransparentColor = System.Drawing.Color.Magenta
Me.btnShowProperties.Name = "btnShowProperties"
Me.btnShowProperties.Size = New System.Drawing.Size(23, 22)
Me.btnShowProperties.Text = "Properties"
'
'btnShowDefaultProperties
'
Me.btnShowDefaultProperties.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
Me.btnShowDefaultProperties.Image = Global.mRemoteNG.My.Resources.Resources.Properties_Default
Me.btnShowDefaultProperties.ImageTransparentColor = System.Drawing.Color.Magenta
Me.btnShowDefaultProperties.Name = "btnShowDefaultProperties"
Me.btnShowDefaultProperties.Size = New System.Drawing.Size(23, 22)
Me.btnShowDefaultProperties.Text = "Default Properties"
'
'btnIcon
'
Me.btnIcon.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right
Me.btnIcon.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
Me.btnIcon.ImageTransparentColor = System.Drawing.Color.Magenta
Me.btnIcon.Name = "btnIcon"
Me.btnIcon.Size = New System.Drawing.Size(23, 22)
Me.btnIcon.Text = "Icon"
'
'btnHostStatus
'
Me.btnHostStatus.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right
Me.btnHostStatus.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
Me.btnHostStatus.Image = Global.mRemoteNG.My.Resources.Resources.HostStatus_Check
Me.btnHostStatus.ImageTransparentColor = System.Drawing.Color.Magenta
Me.btnHostStatus.Name = "btnHostStatus"
Me.btnHostStatus.Size = New System.Drawing.Size(23, 22)
Me.btnHostStatus.Tag = "checking"
Me.btnHostStatus.Text = "Status"
'
'cMenIcons
'
Me.cMenIcons.Name = "cMenIcons"
Me.cMenIcons.Size = New System.Drawing.Size(61, 4)
'
'propertyGridContextMenu
'
Me.propertyGridContextMenu.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.propertyGridContextMenuShowHelpText})
Me.propertyGridContextMenu.Name = "propertyGridContextMenu"
Me.propertyGridContextMenu.Size = New System.Drawing.Size(157, 26)
'
'propertyGridContextMenuShowHelpText
'
Me.propertyGridContextMenuShowHelpText.Name = "ContextMenuShowHelpText"
Me.propertyGridContextMenuShowHelpText.Size = New System.Drawing.Size(156, 22)
Me.propertyGridContextMenuShowHelpText.Text = "&Show Help Text"
'
'Config
'
Me.ClientSize = New System.Drawing.Size(226, 530)
Me.Controls.Add(Me.pGrid)
Me.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.HideOnClose = True
Me.Icon = Global.mRemoteNG.My.Resources.Resources.Config_Icon
Me.Name = "Config"
Me.TabText = "Config"
Me.Text = "Config"
Me.propertyGridContextMenu.ResumeLayout(False)
Me.ResumeLayout(False)
End Sub
#End Region
#Region "Private Properties"
Private ConfigLoading As Boolean = False
#End Region
#Region "Public Properties"
Public Property PropertiesVisible() As Boolean
Get
If Me.btnShowProperties.Checked Then
Return True
Else
Return False
End If
End Get
Set(ByVal value As Boolean)
Me.btnShowProperties.Checked = value
If value = True Then
Me.btnShowInheritance.Checked = False
Me.btnShowDefaultInheritance.Checked = False
Me.btnShowDefaultProperties.Checked = False
End If
End Set
End Property
Public Property InheritanceVisible() As Boolean
Get
If Me.btnShowInheritance.Checked Then
Return True
Else
Return False
End If
End Get
Set(ByVal value As Boolean)
Me.btnShowInheritance.Checked = value
If value = True Then
Me.btnShowProperties.Checked = False
Me.btnShowDefaultInheritance.Checked = False
Me.btnShowDefaultProperties.Checked = False
End If
End Set
End Property
Public Property DefaultPropertiesVisible() As Boolean
Get
If Me.btnShowDefaultProperties.Checked Then
Return True
Else
Return False
End If
End Get
Set(ByVal value As Boolean)
Me.btnShowDefaultProperties.Checked = value
If value = True Then
Me.btnShowProperties.Checked = False
Me.btnShowDefaultInheritance.Checked = False
Me.btnShowInheritance.Checked = False
End If
End Set
End Property
Public Property DefaultInheritanceVisible() As Boolean
Get
If Me.btnShowDefaultInheritance.Checked Then
Return True
Else
Return False
End If
End Get
Set(ByVal value As Boolean)
Me.btnShowDefaultInheritance.Checked = value
If value = True Then
Me.btnShowProperties.Checked = False
Me.btnShowDefaultProperties.Checked = False
Me.btnShowInheritance.Checked = False
End If
End Set
End Property
#End Region
#Region "Public Methods"
Public Sub New(ByVal Panel As DockContent)
Me.WindowType = Type.Config
Me.DockPnl = Panel
Me.InitializeComponent()
End Sub
' Main form handle command key events
' Adapted from http://kiwigis.blogspot.com/2009/05/adding-tab-key-support-to-propertygrid.html
Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean
If (keyData And Keys.KeyCode) = Keys.Tab Then
Dim selectedItem As GridItem = pGrid.SelectedGridItem
Dim gridRoot As GridItem = selectedItem
While gridRoot.GridItemType <> GridItemType.Root
gridRoot = gridRoot.Parent
End While
Dim gridItems As New List(Of GridItem)
FindChildGridItems(gridRoot, gridItems)
If Not ContainsGridItemProperty(gridItems) Then Return True
Dim newItem As GridItem = selectedItem
If keyData = (Keys.Tab Or Keys.Shift) Then
newItem = FindPreviousGridItemProperty(gridItems, selectedItem)
ElseIf keyData = Keys.Tab Then
newItem = FindNextGridItemProperty(gridItems, selectedItem)
End If
pGrid.SelectedGridItem = newItem
Return True ' Handled
Else
Return MyBase.ProcessCmdKey(msg, keyData)
End If
End Function
Private Sub FindChildGridItems(item As GridItem, ByRef gridItems As List(Of GridItem))
gridItems.Add(item)
If Not item.Expandable Or item.Expanded Then
For Each child As GridItem In item.GridItems
FindChildGridItems(child, gridItems)
Next
End If
End Sub
Private Function ContainsGridItemProperty(gridItems As List(Of GridItem)) As Boolean
For Each item As GridItem In gridItems
If item.GridItemType = GridItemType.Property Then Return True
Next
Return False
End Function
Private Function FindPreviousGridItemProperty(gridItems As List(Of GridItem), startItem As GridItem) As GridItem
If gridItems.Count = 0 Then Return Nothing
If startItem Is Nothing Then Return Nothing
Dim startIndex As Integer = gridItems.IndexOf(startItem)
If startItem.GridItemType = GridItemType.Property Then
startIndex = startIndex - 1
If startIndex < 0 Then startIndex = gridItems.Count - 1
End If
Dim previousIndex As Integer = 0
Dim previousIndexValid As Boolean = False
For index As Integer = startIndex To 0 Step -1
If gridItems(index).GridItemType = GridItemType.Property Then
previousIndex = index
previousIndexValid = True
Exit For
End If
Next
If previousIndexValid Then Return gridItems(previousIndex)
For index As Integer = gridItems.Count - 1 To startIndex + 1 Step -1
If gridItems(index).GridItemType = GridItemType.Property Then
previousIndex = index
previousIndexValid = True
Exit For
End If
Next
If Not previousIndexValid Then Return Nothing
Return gridItems(previousIndex)
End Function
Private Function FindNextGridItemProperty(gridItems As List(Of GridItem), startItem As GridItem) As GridItem
If gridItems.Count = 0 Then Return Nothing
If startItem Is Nothing Then Return Nothing
Dim startIndex As Integer = gridItems.IndexOf(startItem)
If startItem.GridItemType = GridItemType.Property Then
startIndex = startIndex + 1
If startIndex >= gridItems.Count Then startIndex = 0
End If
Dim nextIndex As Integer = 0
Dim nextIndexValid As Boolean = False
For index As Integer = startIndex To gridItems.Count - 1
If gridItems(index).GridItemType = GridItemType.Property Then
nextIndex = index
nextIndexValid = True
Exit For
End If
Next
If nextIndexValid Then Return gridItems(nextIndex)
For index As Integer = 0 To startIndex - 1
If gridItems(index).GridItemType = GridItemType.Property Then
nextIndex = index
nextIndexValid = True
Exit For
End If
Next
If Not nextIndexValid Then Return Nothing
Return gridItems(nextIndex)
End Function
Public Sub SetPropertyGridObject(ByVal Obj As Object)
Try
Me.btnShowProperties.Enabled = False
Me.btnShowInheritance.Enabled = False
Me.btnShowDefaultProperties.Enabled = False
Me.btnShowDefaultInheritance.Enabled = False
Me.btnIcon.Enabled = False
Me.btnHostStatus.Enabled = False
Me.btnIcon.Image = Nothing
If TypeOf Obj Is mRemoteNG.Connection.Info Then 'CONNECTION INFO
If TryCast(Obj, mRemoteNG.Connection.Info).IsContainer = False Then 'NO CONTAINER
If Me.PropertiesVisible Then 'Properties selected
Me.pGrid.SelectedObject = Obj
Me.btnShowProperties.Enabled = True
If TryCast(Obj, mRemoteNG.Connection.Info).Parent IsNot Nothing Then
Me.btnShowInheritance.Enabled = True
Else
Me.btnShowInheritance.Enabled = False
End If
Me.btnShowDefaultProperties.Enabled = False
Me.btnShowDefaultInheritance.Enabled = False
btnIcon.Enabled = True
Me.btnHostStatus.Enabled = True
ElseIf Me.DefaultPropertiesVisible Then 'Defaults selected
Me.pGrid.SelectedObject = Obj
If TryCast(Obj, mRemoteNG.Connection.Info).IsDefault Then 'Is the default connection
Me.btnShowProperties.Enabled = True
Me.btnShowInheritance.Enabled = False
Me.btnShowDefaultProperties.Enabled = True
Me.btnShowDefaultInheritance.Enabled = True
Me.btnIcon.Enabled = True
Me.btnHostStatus.Enabled = False
Else 'is not the default connection
Me.btnShowProperties.Enabled = True
Me.btnShowInheritance.Enabled = True
Me.btnShowDefaultProperties.Enabled = False
Me.btnShowDefaultInheritance.Enabled = False
Me.btnIcon.Enabled = True
Me.btnHostStatus.Enabled = True
Me.PropertiesVisible = True
End If
ElseIf Me.InheritanceVisible Then 'Inheritance selected
Me.pGrid.SelectedObject = TryCast(Obj, mRemoteNG.Connection.Info).Inherit
Me.btnShowProperties.Enabled = True
Me.btnShowInheritance.Enabled = True
Me.btnShowDefaultProperties.Enabled = False
Me.btnShowDefaultInheritance.Enabled = False
Me.btnIcon.Enabled = True
Me.btnHostStatus.Enabled = True
ElseIf Me.DefaultInheritanceVisible Then 'Default Inhertiance selected
pGrid.SelectedObject = Obj
Me.btnShowProperties.Enabled = True
Me.btnShowInheritance.Enabled = True
Me.btnShowDefaultProperties.Enabled = False
Me.btnShowDefaultInheritance.Enabled = False
Me.btnIcon.Enabled = True
Me.btnHostStatus.Enabled = True
Me.PropertiesVisible = True
End If
ElseIf TryCast(Obj, mRemoteNG.Connection.Info).IsContainer Then 'CONTAINER
Me.pGrid.SelectedObject = Obj
Me.btnShowProperties.Enabled = True
If TryCast(TryCast(Obj, mRemoteNG.Connection.Info).Parent, mRemoteNG.Container.Info).Parent IsNot Nothing Then
Me.btnShowInheritance.Enabled = True
Else
Me.btnShowInheritance.Enabled = False
End If
Me.btnShowDefaultProperties.Enabled = False
Me.btnShowDefaultInheritance.Enabled = False
Me.btnIcon.Enabled = True
Me.btnHostStatus.Enabled = False
Me.PropertiesVisible = True
End If
Dim conIcon As Icon = mRemoteNG.Connection.Icon.FromString(TryCast(Obj, mRemoteNG.Connection.Info).Icon)
If conIcon IsNot Nothing Then
Me.btnIcon.Image = conIcon.ToBitmap
End If
ElseIf TypeOf Obj Is Root.Info Then 'ROOT
Dim rootInfo As Root.Info = CType(Obj, Root.Info)
Select Case rootInfo.Type
Case Root.Info.RootType.Connection
PropertiesVisible = True
DefaultPropertiesVisible = False
btnShowProperties.Enabled = True
btnShowInheritance.Enabled = False
btnShowDefaultProperties.Enabled = True
btnShowDefaultInheritance.Enabled = True
btnIcon.Enabled = False
btnHostStatus.Enabled = False
Case Root.Info.RootType.Credential
Throw New NotImplementedException
Case Root.Info.RootType.PuttySessions
PropertiesVisible = True
DefaultPropertiesVisible = False
btnShowProperties.Enabled = True
btnShowInheritance.Enabled = False
btnShowDefaultProperties.Enabled = False
btnShowDefaultInheritance.Enabled = False
btnIcon.Enabled = False
btnHostStatus.Enabled = False
End Select
pGrid.SelectedObject = Obj
ElseIf TypeOf Obj Is mRemoteNG.Connection.Info.Inheritance Then 'INHERITANCE
Me.pGrid.SelectedObject = Obj
If Me.InheritanceVisible Then
Me.InheritanceVisible = True
Me.btnShowProperties.Enabled = True
Me.btnShowInheritance.Enabled = True
Me.btnShowDefaultProperties.Enabled = False
Me.btnShowDefaultInheritance.Enabled = False
Me.btnIcon.Enabled = True
Me.btnHostStatus.Enabled = Not TryCast(TryCast(Obj, mRemoteNG.Connection.Info.Inheritance).Parent, mRemoteNG.Connection.Info).IsContainer
Me.InheritanceVisible = True
Dim conIcon As Icon = mRemoteNG.Connection.Icon.FromString(TryCast(TryCast(Obj, mRemoteNG.Connection.Info.Inheritance).Parent, mRemoteNG.Connection.Info).Icon)
If conIcon IsNot Nothing Then
Me.btnIcon.Image = conIcon.ToBitmap
End If
ElseIf Me.DefaultInheritanceVisible Then
Me.btnShowProperties.Enabled = True
Me.btnShowInheritance.Enabled = False
Me.btnShowDefaultProperties.Enabled = True
Me.btnShowDefaultInheritance.Enabled = True
Me.btnIcon.Enabled = False
Me.btnHostStatus.Enabled = False
Me.DefaultInheritanceVisible = True
End If
End If
Me.ShowHideGridItems()
Me.SetHostStatus(Obj)
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strConfigPropertyGridObjectFailed & vbNewLine & ex.Message, True)
End Try
End Sub
Public Sub pGrid_SelectedObjectChanged()
Me.ShowHideGridItems()
End Sub
#End Region
#Region "Private Methods"
Private Sub ApplyLanguage()
btnShowInheritance.Text = My.Language.strButtonInheritance
btnShowDefaultInheritance.Text = My.Language.strButtonDefaultInheritance
btnShowProperties.Text = My.Language.strButtonProperties
btnShowDefaultProperties.Text = My.Language.strButtonDefaultProperties
btnIcon.Text = My.Language.strButtonIcon
btnHostStatus.Text = My.Language.strStatus
Text = My.Language.strMenuConfig
TabText = My.Language.strMenuConfig
propertyGridContextMenuShowHelpText.Text = Language.strMenuShowHelpText
End Sub
Private Sub ApplyTheme()
With Themes.ThemeManager.ActiveTheme
pGrid.BackColor = .ToolbarBackgroundColor
pGrid.ForeColor = .ToolbarTextColor
pGrid.ViewBackColor = .ConfigPanelBackgroundColor
pGrid.ViewForeColor = .ConfigPanelTextColor
pGrid.LineColor = .ConfigPanelGridLineColor
pGrid.HelpBackColor = .ConfigPanelHelpBackgroundColor
pGrid.HelpForeColor = .ConfigPanelHelpTextColor
pGrid.CategoryForeColor = .ConfigPanelCategoryTextColor
End With
End Sub
Private _originalPropertyGridToolStripItemCountValid As Boolean
Private _originalPropertyGridToolStripItemCount As Integer
Private Sub AddToolStripItems()
Try
Dim customToolStrip As ToolStrip = New ToolStrip
customToolStrip.Items.Add(btnShowProperties)
customToolStrip.Items.Add(btnShowInheritance)
customToolStrip.Items.Add(btnShowDefaultProperties)
customToolStrip.Items.Add(btnShowDefaultInheritance)
customToolStrip.Items.Add(btnHostStatus)
customToolStrip.Items.Add(btnIcon)
customToolStrip.Show()
Dim propertyGridToolStrip As New ToolStrip
Dim toolStrip As ToolStrip = Nothing
For Each control As System.Windows.Forms.Control In pGrid.Controls
toolStrip = TryCast(control, ToolStrip)
If toolStrip IsNot Nothing Then
propertyGridToolStrip = toolStrip
Exit For
End If
Next
If toolStrip Is Nothing Then
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, Language.strCouldNotFindToolStripInFilteredPropertyGrid, True)
Return
End If
If Not _originalPropertyGridToolStripItemCountValid Then
_originalPropertyGridToolStripItemCount = propertyGridToolStrip.Items.Count
_originalPropertyGridToolStripItemCountValid = True
End If
Debug.Assert(_originalPropertyGridToolStripItemCount = 5)
' Hide the "Property Pages" button
propertyGridToolStrip.Items(_originalPropertyGridToolStripItemCount - 1).Visible = False
Dim expectedToolStripItemCount As Integer = _originalPropertyGridToolStripItemCount + customToolStrip.Items.Count
If propertyGridToolStrip.Items.Count <> expectedToolStripItemCount Then
propertyGridToolStrip.AllowMerge = True
ToolStripManager.Merge(customToolStrip, propertyGridToolStrip)
End If
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, Language.strConfigUiLoadFailed & vbNewLine & ex.Message, True)
End Try
End Sub
Private Sub Config_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
ApplyLanguage()
AddHandler Themes.ThemeManager.ThemeChanged, AddressOf ApplyTheme
ApplyTheme()
AddToolStripItems()
pGrid.HelpVisible = Settings.ShowConfigHelpText
End Sub
Private Sub Config_SystemColorsChanged(sender As System.Object, e As System.EventArgs) Handles MyBase.SystemColorsChanged
AddToolStripItems()
End Sub
Private Sub pGrid_PropertyValueChanged(ByVal s As Object, ByVal e As System.Windows.Forms.PropertyValueChangedEventArgs) Handles pGrid.PropertyValueChanged
Try
If TypeOf Me.pGrid.SelectedObject Is mRemoteNG.Connection.Info Then
Select Case e.ChangedItem.Label
Case My.Language.strPropertyNameProtocol
TryCast(Me.pGrid.SelectedObject, mRemoteNG.Connection.Info).SetDefaultPort()
Case My.Language.strPropertyNameName
App.Runtime.Windows.treeForm.tvConnections.SelectedNode.Text = Me.pGrid.SelectedObject.Name
If My.Settings.SetHostnameLikeDisplayName And TypeOf Me.pGrid.SelectedObject Is mRemoteNG.Connection.Info Then
Dim connectionInfo As mRemoteNG.Connection.Info = DirectCast(Me.pGrid.SelectedObject, mRemoteNG.Connection.Info)
If Not String.IsNullOrEmpty(connectionInfo.Name) Then
connectionInfo.Hostname = connectionInfo.Name
End If
End If
Case My.Language.strPropertyNameIcon
Dim conIcon As Icon = mRemoteNG.Connection.Icon.FromString(TryCast(Me.pGrid.SelectedObject, mRemoteNG.Connection.Info).Icon)
If conIcon IsNot Nothing Then
Me.btnIcon.Image = conIcon.ToBitmap
End If
Case My.Language.strPropertyNameAddress
Me.SetHostStatus(Me.pGrid.SelectedObject)
End Select
If TryCast(Me.pGrid.SelectedObject, mRemoteNG.Connection.Info).IsDefault Then
App.Runtime.DefaultConnectionToSettings()
End If
End If
If TypeOf pGrid.SelectedObject Is Root.PuttySessions.Info Then
Dim puttyRootInfo As Root.PuttySessions.Info = pGrid.SelectedObject
Select Case e.ChangedItem.PropertyDescriptor.Name
Case "Name"
puttyRootInfo.TreeNode.Text = puttyRootInfo.Name
Settings.PuttySavedSessionsName = puttyRootInfo.Name
Case "Panel"
Settings.PuttySavedSessionsPanel = puttyRootInfo.Panel
End Select
ElseIf TypeOf Me.pGrid.SelectedObject Is mRemoteNG.Root.Info Then
Dim rInfo As mRemoteNG.Root.Info = Me.pGrid.SelectedObject
Select Case e.ChangedItem.Label
Case My.Language.strPasswordProtect
If rInfo.Password = True Then
Dim pw As String = Tools.Misc.PasswordDialog
If pw <> "" Then
rInfo.PasswordString = pw
Else
rInfo.Password = False
End If
End If
Case My.Language.strPropertyNameName
App.Runtime.Windows.treeForm.tvConnections.SelectedNode.Text = Me.pGrid.SelectedObject.Name
End Select
End If
If TypeOf Me.pGrid.SelectedObject Is mRemoteNG.Connection.Info.Inheritance Then
If TryCast(Me.pGrid.SelectedObject, mRemoteNG.Connection.Info.Inheritance).IsDefault Then
App.Runtime.DefaultInheritanceToSettings()
End If
End If
Me.ShowHideGridItems()
App.Runtime.SaveConnectionsBG()
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strConfigPropertyGridValueFailed & vbNewLine & ex.Message, True)
End Try
End Sub
Private Sub pGrid_PropertySortChanged(ByVal sender As Object, ByVal e As EventArgs) Handles pGrid.PropertySortChanged
If pGrid.PropertySort = PropertySort.CategorizedAlphabetical Then
pGrid.PropertySort = PropertySort.Categorized
End If
End Sub
Private Sub ShowHideGridItems()
Try
Dim strHide As New List(Of String)
If TypeOf Me.pGrid.SelectedObject Is mRemoteNG.Connection.Info Then
Dim conI As mRemoteNG.Connection.Info = pGrid.SelectedObject
Select Case conI.Protocol
Case mRemoteNG.Connection.Protocol.Protocols.RDP
strHide.Add("ExtApp")
strHide.Add("ICAEncryption")
strHide.Add("PuttySession")
strHide.Add("RenderingEngine")
strHide.Add("VNCAuthMode")
strHide.Add("VNCColors")
strHide.Add("VNCCompression")
strHide.Add("VNCEncoding")
strHide.Add("VNCProxyIP")
strHide.Add("VNCProxyPassword")
strHide.Add("VNCProxyPort")
strHide.Add("VNCProxyType")
strHide.Add("VNCProxyUsername")
strHide.Add("VNCSmartSizeMode")
strHide.Add("VNCViewOnly")
If conI.RDGatewayUsageMethod = mRemoteNG.Connection.Protocol.RDP.RDGatewayUsageMethod.Never Then
strHide.Add("RDGatewayDomain")
strHide.Add("RDGatewayHostname")
strHide.Add("RDGatewayPassword")
strHide.Add("RDGatewayUseConnectionCredentials")
strHide.Add("RDGatewayUsername")
ElseIf conI.RDGatewayUseConnectionCredentials Then
strHide.Add("RDGatewayDomain")
strHide.Add("RDGatewayPassword")
strHide.Add("RDGatewayUsername")
End If
If Not (conI.Resolution = RDP.RDPResolutions.FitToWindow Or _
conI.Resolution = RDP.RDPResolutions.Fullscreen) Then
strHide.Add("AutomaticResize")
End If
Case mRemoteNG.Connection.Protocol.Protocols.VNC
strHide.Add("CacheBitmaps")
strHide.Add("Colors")
strHide.Add("DisplayThemes")
strHide.Add("DisplayWallpaper")
strHide.Add("EnableFontSmoothing")
strHide.Add("EnableDesktopComposition")
strHide.Add("ExtApp")
strHide.Add("ICAEncryption")
strHide.Add("PuttySession")
strHide.Add("RDGatewayDomain")
strHide.Add("RDGatewayHostname")
strHide.Add("RDGatewayPassword")
strHide.Add("RDGatewayUsageMethod")
strHide.Add("RDGatewayUseConnectionCredentials")
strHide.Add("RDGatewayUsername")
strHide.Add("RDPAuthenticationLevel")
strHide.Add("LoadBalanceInfo")
strHide.Add("RedirectDiskDrives")
strHide.Add("RedirectKeys")
strHide.Add("RedirectPorts")
strHide.Add("RedirectPrinters")
strHide.Add("RedirectSmartCards")
strHide.Add("RedirectSound")
strHide.Add("RenderingEngine")
strHide.Add("Resolution")
strHide.Add("AutomaticResize")
strHide.Add("UseConsoleSession")
strHide.Add("UseCredSsp")
If conI.VNCAuthMode = mRemoteNG.Connection.Protocol.VNC.AuthMode.AuthVNC Then
strHide.Add("Username")
strHide.Add("Domain")
End If
If conI.VNCProxyType = mRemoteNG.Connection.Protocol.VNC.ProxyType.ProxyNone Then
strHide.Add("VNCProxyIP")
strHide.Add("VNCProxyPassword")
strHide.Add("VNCProxyPort")
strHide.Add("VNCProxyUsername")
End If
Case mRemoteNG.Connection.Protocol.Protocols.SSH1
strHide.Add("CacheBitmaps")
strHide.Add("Colors")
strHide.Add("DisplayThemes")
strHide.Add("DisplayWallpaper")
strHide.Add("EnableFontSmoothing")
strHide.Add("EnableDesktopComposition")
strHide.Add("Domain")
strHide.Add("ExtApp")
strHide.Add("ICAEncryption")
strHide.Add("RDGatewayDomain")
strHide.Add("RDGatewayHostname")
strHide.Add("RDGatewayPassword")
strHide.Add("RDGatewayUsageMethod")
strHide.Add("RDGatewayUseConnectionCredentials")
strHide.Add("RDGatewayUsername")
strHide.Add("RDPAuthenticationLevel")
strHide.Add("LoadBalanceInfo")
strHide.Add("RedirectDiskDrives")
strHide.Add("RedirectKeys")
strHide.Add("RedirectPorts")
strHide.Add("RedirectPrinters")
strHide.Add("RedirectSmartCards")
strHide.Add("RedirectSound")
strHide.Add("RenderingEngine")
strHide.Add("Resolution")
strHide.Add("AutomaticResize")
strHide.Add("UseConsoleSession")
strHide.Add("UseCredSsp")
strHide.Add("VNCAuthMode")
strHide.Add("VNCColors")
strHide.Add("VNCCompression")
strHide.Add("VNCEncoding")
strHide.Add("VNCProxyIP")
strHide.Add("VNCProxyPassword")
strHide.Add("VNCProxyPort")
strHide.Add("VNCProxyType")
strHide.Add("VNCProxyUsername")
strHide.Add("VNCSmartSizeMode")
strHide.Add("VNCViewOnly")
Case mRemoteNG.Connection.Protocol.Protocols.SSH2
strHide.Add("CacheBitmaps")
strHide.Add("Colors")
strHide.Add("DisplayThemes")
strHide.Add("DisplayWallpaper")
strHide.Add("EnableFontSmoothing")
strHide.Add("EnableDesktopComposition")
strHide.Add("Domain")
strHide.Add("ExtApp")
strHide.Add("ICAEncryption")
strHide.Add("RDGatewayDomain")
strHide.Add("RDGatewayHostname")
strHide.Add("RDGatewayPassword")
strHide.Add("RDGatewayUsageMethod")
strHide.Add("RDGatewayUseConnectionCredentials")
strHide.Add("RDGatewayUsername")
strHide.Add("RDPAuthenticationLevel")
strHide.Add("LoadBalanceInfo")
strHide.Add("RedirectDiskDrives")
strHide.Add("RedirectKeys")
strHide.Add("RedirectPorts")
strHide.Add("RedirectPrinters")
strHide.Add("RedirectSmartCards")
strHide.Add("RedirectSound")
strHide.Add("RenderingEngine")
strHide.Add("Resolution")
strHide.Add("AutomaticResize")
strHide.Add("UseConsoleSession")
strHide.Add("UseCredSsp")
strHide.Add("VNCAuthMode")
strHide.Add("VNCColors")
strHide.Add("VNCCompression")
strHide.Add("VNCEncoding")
strHide.Add("VNCProxyIP")
strHide.Add("VNCProxyPassword")
strHide.Add("VNCProxyPort")
strHide.Add("VNCProxyType")
strHide.Add("VNCProxyUsername")
strHide.Add("VNCSmartSizeMode")
strHide.Add("VNCViewOnly")
Case mRemoteNG.Connection.Protocol.Protocols.Telnet
strHide.Add("CacheBitmaps")
strHide.Add("Colors")
strHide.Add("DisplayThemes")
strHide.Add("DisplayWallpaper")
strHide.Add("EnableFontSmoothing")
strHide.Add("EnableDesktopComposition")
strHide.Add("Domain")
strHide.Add("ExtApp")
strHide.Add("ICAEncryption")
strHide.Add("Password")
strHide.Add("RDGatewayDomain")
strHide.Add("RDGatewayHostname")
strHide.Add("RDGatewayPassword")
strHide.Add("RDGatewayUsageMethod")
strHide.Add("RDGatewayUseConnectionCredentials")
strHide.Add("RDGatewayUsername")
strHide.Add("RDPAuthenticationLevel")
strHide.Add("LoadBalanceInfo")
strHide.Add("RedirectDiskDrives")
strHide.Add("RedirectKeys")
strHide.Add("RedirectPorts")
strHide.Add("RedirectPrinters")
strHide.Add("RedirectSmartCards")
strHide.Add("RedirectSound")
strHide.Add("RenderingEngine")
strHide.Add("Resolution")
strHide.Add("AutomaticResize")
strHide.Add("UseConsoleSession")
strHide.Add("UseCredSsp")
strHide.Add("Username")
strHide.Add("VNCAuthMode")
strHide.Add("VNCColors")
strHide.Add("VNCCompression")
strHide.Add("VNCEncoding")
strHide.Add("VNCProxyIP")
strHide.Add("VNCProxyPassword")
strHide.Add("VNCProxyPort")
strHide.Add("VNCProxyType")
strHide.Add("VNCProxyUsername")
strHide.Add("VNCSmartSizeMode")
strHide.Add("VNCViewOnly")
Case mRemoteNG.Connection.Protocol.Protocols.Rlogin
strHide.Add("CacheBitmaps")
strHide.Add("Colors")
strHide.Add("DisplayThemes")
strHide.Add("DisplayWallpaper")
strHide.Add("EnableFontSmoothing")
strHide.Add("EnableDesktopComposition")
strHide.Add("Domain")
strHide.Add("ExtApp")
strHide.Add("ICAEncryption")
strHide.Add("Password")
strHide.Add("RDGatewayDomain")
strHide.Add("RDGatewayHostname")
strHide.Add("RDGatewayPassword")
strHide.Add("RDGatewayUsageMethod")
strHide.Add("RDGatewayUseConnectionCredentials")
strHide.Add("RDGatewayUsername")
strHide.Add("RDPAuthenticationLevel")
strHide.Add("LoadBalanceInfo")
strHide.Add("RedirectDiskDrives")
strHide.Add("RedirectKeys")
strHide.Add("RedirectPorts")
strHide.Add("RedirectPrinters")
strHide.Add("RedirectSmartCards")
strHide.Add("RedirectSound")
strHide.Add("RenderingEngine")
strHide.Add("Resolution")
strHide.Add("AutomaticResize")
strHide.Add("UseConsoleSession")
strHide.Add("UseCredSsp")
strHide.Add("Username")
strHide.Add("VNCAuthMode")
strHide.Add("VNCColors")
strHide.Add("VNCCompression")
strHide.Add("VNCEncoding")
strHide.Add("VNCProxyIP")
strHide.Add("VNCProxyPassword")
strHide.Add("VNCProxyPort")
strHide.Add("VNCProxyType")
strHide.Add("VNCProxyUsername")
strHide.Add("VNCSmartSizeMode")
strHide.Add("VNCViewOnly")
Case mRemoteNG.Connection.Protocol.Protocols.RAW
strHide.Add("CacheBitmaps")
strHide.Add("Colors")
strHide.Add("DisplayThemes")
strHide.Add("DisplayWallpaper")
strHide.Add("EnableFontSmoothing")
strHide.Add("EnableDesktopComposition")
strHide.Add("Domain")
strHide.Add("ExtApp")
strHide.Add("ICAEncryption")
strHide.Add("Password")
strHide.Add("RDGatewayDomain")
strHide.Add("RDGatewayHostname")
strHide.Add("RDGatewayPassword")
strHide.Add("RDGatewayUsageMethod")
strHide.Add("RDGatewayUseConnectionCredentials")
strHide.Add("RDGatewayUsername")
strHide.Add("RDPAuthenticationLevel")
strHide.Add("LoadBalanceInfo")
strHide.Add("RedirectDiskDrives")
strHide.Add("RedirectKeys")
strHide.Add("RedirectPorts")
strHide.Add("RedirectPrinters")
strHide.Add("RedirectSmartCards")
strHide.Add("RedirectSound")
strHide.Add("RenderingEngine")
strHide.Add("Resolution")
strHide.Add("AutomaticResize")
strHide.Add("UseConsoleSession")
strHide.Add("UseCredSsp")
strHide.Add("Username")
strHide.Add("VNCAuthMode")
strHide.Add("VNCColors")
strHide.Add("VNCCompression")
strHide.Add("VNCEncoding")
strHide.Add("VNCProxyIP")
strHide.Add("VNCProxyPassword")
strHide.Add("VNCProxyPort")
strHide.Add("VNCProxyType")
strHide.Add("VNCProxyUsername")
strHide.Add("VNCSmartSizeMode")
strHide.Add("VNCViewOnly")
Case mRemoteNG.Connection.Protocol.Protocols.HTTP
strHide.Add("CacheBitmaps")
strHide.Add("Colors")
strHide.Add("DisplayThemes")
strHide.Add("DisplayWallpaper")
strHide.Add("EnableFontSmoothing")
strHide.Add("EnableDesktopComposition")
strHide.Add("Domain")
strHide.Add("ExtApp")
strHide.Add("ICAEncryption")
strHide.Add("PuttySession")
strHide.Add("RDGatewayDomain")
strHide.Add("RDGatewayHostname")
strHide.Add("RDGatewayPassword")
strHide.Add("RDGatewayUsageMethod")
strHide.Add("RDGatewayUseConnectionCredentials")
strHide.Add("RDGatewayUsername")
strHide.Add("RDPAuthenticationLevel")
strHide.Add("LoadBalanceInfo")
strHide.Add("RedirectDiskDrives")
strHide.Add("RedirectKeys")
strHide.Add("RedirectPorts")
strHide.Add("RedirectPrinters")
strHide.Add("RedirectSmartCards")
strHide.Add("RedirectSound")
strHide.Add("Resolution")
strHide.Add("AutomaticResize")
strHide.Add("UseConsoleSession")
strHide.Add("UseCredSsp")
strHide.Add("VNCAuthMode")
strHide.Add("VNCColors")
strHide.Add("VNCCompression")
strHide.Add("VNCEncoding")
strHide.Add("VNCProxyIP")
strHide.Add("VNCProxyPassword")
strHide.Add("VNCProxyPort")
strHide.Add("VNCProxyType")
strHide.Add("VNCProxyUsername")
strHide.Add("VNCSmartSizeMode")
strHide.Add("VNCViewOnly")
Case mRemoteNG.Connection.Protocol.Protocols.HTTPS
strHide.Add("CacheBitmaps")
strHide.Add("Colors")
strHide.Add("DisplayThemes")
strHide.Add("DisplayWallpaper")
strHide.Add("EnableFontSmoothing")
strHide.Add("EnableDesktopComposition")
strHide.Add("Domain")
strHide.Add("ExtApp")
strHide.Add("ICAEncryption")
strHide.Add("PuttySession")
strHide.Add("RDGatewayDomain")
strHide.Add("RDGatewayHostname")
strHide.Add("RDGatewayPassword")
strHide.Add("RDGatewayUsageMethod")
strHide.Add("RDGatewayUseConnectionCredentials")
strHide.Add("RDGatewayUsername")
strHide.Add("RDPAuthenticationLevel")
strHide.Add("LoadBalanceInfo")
strHide.Add("RedirectDiskDrives")
strHide.Add("RedirectKeys")
strHide.Add("RedirectPorts")
strHide.Add("RedirectPrinters")
strHide.Add("RedirectSmartCards")
strHide.Add("RedirectSound;Resolution")
strHide.Add("AutomaticResize")
strHide.Add("UseConsoleSession")
strHide.Add("UseCredSsp")
strHide.Add("VNCAuthMode")
strHide.Add("VNCColors")
strHide.Add("VNCCompression")
strHide.Add("VNCEncoding")
strHide.Add("VNCProxyIP")
strHide.Add("VNCProxyPassword")
strHide.Add("VNCProxyPort")
strHide.Add("VNCProxyType")
strHide.Add("VNCProxyUsername")
strHide.Add("VNCSmartSizeMode")
strHide.Add("VNCViewOnly")
Case mRemoteNG.Connection.Protocol.Protocols.ICA
strHide.Add("DisplayThemes")
strHide.Add("DisplayWallpaper")
strHide.Add("EnableFontSmoothing")
strHide.Add("EnableDesktopComposition")
strHide.Add("ExtApp")
strHide.Add("Port")
strHide.Add("PuttySession")
strHide.Add("RDGatewayDomain")
strHide.Add("RDGatewayHostname")
strHide.Add("RDGatewayPassword")
strHide.Add("RDGatewayUsageMethod")
strHide.Add("RDGatewayUseConnectionCredentials")
strHide.Add("RDGatewayUsername")
strHide.Add("RDPAuthenticationLevel")
strHide.Add("LoadBalanceInfo")
strHide.Add("RedirectDiskDrives")
strHide.Add("RedirectKeys")
strHide.Add("RedirectPorts")
strHide.Add("RedirectPrinters")
strHide.Add("RedirectSmartCards")
strHide.Add("RedirectSound")
strHide.Add("RenderingEngine")
strHide.Add("AutomaticResize")
strHide.Add("UseConsoleSession")
strHide.Add("UseCredSsp")
strHide.Add("VNCAuthMode")
strHide.Add("VNCColors")
strHide.Add("VNCCompression")
strHide.Add("VNCEncoding")
strHide.Add("VNCProxyIP")
strHide.Add("VNCProxyPassword")
strHide.Add("VNCProxyPort")
strHide.Add("VNCProxyType")
strHide.Add("VNCProxyUsername")
strHide.Add("VNCSmartSizeMode")
strHide.Add("VNCViewOnly")
Case mRemoteNG.Connection.Protocol.Protocols.IntApp
strHide.Add("CacheBitmaps")
strHide.Add("Colors")
strHide.Add("DisplayThemes")
strHide.Add("DisplayWallpaper")
strHide.Add("EnableFontSmoothing")
strHide.Add("EnableDesktopComposition")
strHide.Add("Domain")
strHide.Add("ICAEncryption")
strHide.Add("PuttySession")
strHide.Add("RDGatewayDomain")
strHide.Add("RDGatewayHostname")
strHide.Add("RDGatewayPassword")
strHide.Add("RDGatewayUsageMethod")
strHide.Add("RDGatewayUseConnectionCredentials")
strHide.Add("RDGatewayUsername")
strHide.Add("RDPAuthenticationLevel")
strHide.Add("LoadBalanceInfo")
strHide.Add("RedirectDiskDrives")
strHide.Add("RedirectKeys")
strHide.Add("RedirectPorts")
strHide.Add("RedirectPrinters")
strHide.Add("RedirectSmartCards")
strHide.Add("RedirectSound")
strHide.Add("RenderingEngine")
strHide.Add("Resolution")
strHide.Add("AutomaticResize")
strHide.Add("UseConsoleSession")
strHide.Add("UseCredSsp")
strHide.Add("VNCAuthMode")
strHide.Add("VNCColors")
strHide.Add("VNCCompression")
strHide.Add("VNCEncoding")
strHide.Add("VNCProxyIP")
strHide.Add("VNCProxyPassword")
strHide.Add("VNCProxyPort")
strHide.Add("VNCProxyType")
strHide.Add("VNCProxyUsername")
strHide.Add("VNCSmartSizeMode")
strHide.Add("VNCViewOnly")
End Select
If conI.IsDefault = False Then
With conI.Inherit
If .CacheBitmaps Then
strHide.Add("CacheBitmaps")
End If
If .Colors Then
strHide.Add("Colors")
End If
If .Description Then
strHide.Add("Description")
End If
If .DisplayThemes Then
strHide.Add("DisplayThemes")
End If
If .DisplayWallpaper Then
strHide.Add("DisplayWallpaper")
End If
If .EnableFontSmoothing Then
strHide.Add("EnableFontSmoothing")
End If
If .EnableDesktopComposition Then
strHide.Add("EnableDesktopComposition")
End If
If .Domain Then
strHide.Add("Domain")
End If
If .Icon Then
strHide.Add("Icon")
End If
If .Password Then
strHide.Add("Password")
End If
If .Port Then
strHide.Add("Port")
End If
If .Protocol Then
strHide.Add("Protocol")
End If
If .PuttySession Then
strHide.Add("PuttySession")
End If
If .RedirectDiskDrives Then
strHide.Add("RedirectDiskDrives")
End If
If .RedirectKeys Then
strHide.Add("RedirectKeys")
End If
If .RedirectPorts Then
strHide.Add("RedirectPorts")
End If
If .RedirectPrinters Then
strHide.Add("RedirectPrinters")
End If
If .RedirectSmartCards Then
strHide.Add("RedirectSmartCards")
End If
If .RedirectSound Then
strHide.Add("RedirectSound")
End If
If .Resolution Then
strHide.Add("Resolution")
End If
If .UseConsoleSession Then
strHide.Add("UseConsoleSession")
End If
If .UseCredSsp Then
strHide.Add("UseCredSsp")
End If
If .RenderingEngine Then
strHide.Add("RenderingEngine")
End If
If .ICAEncryption Then
strHide.Add("ICAEncryption")
End If
If .RDPAuthenticationLevel Then
strHide.Add("RDPAuthenticationLevel")
End If
If .Username Then
strHide.Add("Username")
End If
If .Panel Then
strHide.Add("Panel")
End If
If conI.IsContainer Then
strHide.Add("Hostname")
End If
If .PreExtApp Then
strHide.Add("PreExtApp")
End If
If .PostExtApp Then
strHide.Add("PostExtApp")
End If
If .MacAddress Then
strHide.Add("MacAddress")
End If
If .UserField Then
strHide.Add("UserField")
End If
If .VNCAuthMode Then
strHide.Add("VNCAuthMode")
End If
If .VNCColors Then
strHide.Add("VNCColors")
End If
If .VNCCompression Then
strHide.Add("VNCCompression")
End If
If .VNCEncoding Then
strHide.Add("VNCEncoding")
End If
If .VNCProxyIP Then
strHide.Add("VNCProxyIP")
End If
If .VNCProxyPassword Then
strHide.Add("VNCProxyPassword")
End If
If .VNCProxyPort Then
strHide.Add("VNCProxyPort")
End If
If .VNCProxyType Then
strHide.Add("VNCProxyType")
End If
If .VNCProxyUsername Then
strHide.Add("VNCProxyUsername")
End If
If .VNCViewOnly Then
strHide.Add("VNCViewOnly")
End If
If .VNCSmartSizeMode Then
strHide.Add("VNCSmartSizeMode")
End If
If .ExtApp Then
strHide.Add("ExtApp")
End If
If .RDGatewayUsageMethod Then
strHide.Add("RDGatewayUsageMethod")
End If
If .RDGatewayHostname Then
strHide.Add("RDGatewayHostname")
End If
If .RDGatewayUsername Then
strHide.Add("RDGatewayUsername")
End If
If .RDGatewayPassword Then
strHide.Add("RDGatewayPassword")
End If
If .RDGatewayDomain Then
strHide.Add("RDGatewayDomain")
End If
If .RDGatewayUseConnectionCredentials Then
strHide.Add("RDGatewayUseConnectionCredentials")
End If
If .RDGatewayHostname Then
strHide.Add("RDGatewayHostname")
End If
End With
Else
strHide.Add("Hostname")
strHide.Add("Name")
End If
ElseIf TypeOf pGrid.SelectedObject Is Root.Info Then
Dim rootInfo As Root.Info = CType(pGrid.SelectedObject, Root.Info)
If rootInfo.Type = Root.Info.RootType.PuttySessions Then
strHide.Add("Password")
End If
End If
Me.pGrid.HiddenProperties = strHide.ToArray
Me.pGrid.Refresh()
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strConfigPropertyGridHideItemsFailed & vbNewLine & ex.Message, True)
End Try
End Sub
Private Sub btnShowProperties_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnShowProperties.Click
If TypeOf Me.pGrid.SelectedObject Is mRemoteNG.Connection.Info.Inheritance Then
If TryCast(Me.pGrid.SelectedObject, mRemoteNG.Connection.Info.Inheritance).IsDefault Then
Me.PropertiesVisible = True
Me.InheritanceVisible = False
Me.DefaultPropertiesVisible = False
Me.DefaultInheritanceVisible = False
Me.SetPropertyGridObject(TryCast(App.Runtime.Windows.treeForm.tvConnections.SelectedNode.Tag, mRemoteNG.Root.Info))
Else
Me.PropertiesVisible = True
Me.InheritanceVisible = False
Me.DefaultPropertiesVisible = False
Me.DefaultInheritanceVisible = False
Me.SetPropertyGridObject(TryCast(Me.pGrid.SelectedObject, mRemoteNG.Connection.Info.Inheritance).Parent)
End If
ElseIf TypeOf Me.pGrid.SelectedObject Is mRemoteNG.Connection.Info Then
If TryCast(Me.pGrid.SelectedObject, mRemoteNG.Connection.Info).IsDefault Then
Me.PropertiesVisible = True
Me.InheritanceVisible = False
Me.DefaultPropertiesVisible = False
Me.DefaultInheritanceVisible = False
Me.SetPropertyGridObject(TryCast(App.Runtime.Windows.treeForm.tvConnections.SelectedNode.Tag, mRemoteNG.Root.Info))
End If
End If
End Sub
Private Sub btnShowDefaultProperties_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnShowDefaultProperties.Click
If TypeOf Me.pGrid.SelectedObject Is mRemoteNG.Root.Info Or TypeOf Me.pGrid.SelectedObject Is mRemoteNG.Connection.Info.Inheritance Then
Me.PropertiesVisible = False
Me.InheritanceVisible = False
Me.DefaultPropertiesVisible = True
Me.DefaultInheritanceVisible = False
Me.SetPropertyGridObject(App.Runtime.DefaultConnectionFromSettings())
End If
End Sub
Private Sub btnShowInheritance_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnShowInheritance.Click
If TypeOf Me.pGrid.SelectedObject Is mRemoteNG.Connection.Info Then
Me.PropertiesVisible = False
Me.InheritanceVisible = True
Me.DefaultPropertiesVisible = False
Me.DefaultInheritanceVisible = False
Me.SetPropertyGridObject(TryCast(Me.pGrid.SelectedObject, mRemoteNG.Connection.Info).Inherit)
End If
End Sub
Private Sub btnShowDefaultInheritance_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnShowDefaultInheritance.Click
If TypeOf Me.pGrid.SelectedObject Is mRemoteNG.Root.Info Or TypeOf Me.pGrid.SelectedObject Is mRemoteNG.Connection.Info Then
Me.PropertiesVisible = False
Me.InheritanceVisible = False
Me.DefaultPropertiesVisible = False
Me.DefaultInheritanceVisible = True
Me.SetPropertyGridObject(App.Runtime.DefaultInheritanceFromSettings())
End If
End Sub
Private Sub btnHostStatus_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnHostStatus.Click
SetHostStatus(Me.pGrid.SelectedObject)
End Sub
Private Sub btnIcon_Click(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles btnIcon.MouseUp
Try
If TypeOf pGrid.SelectedObject Is mRemoteNG.Connection.Info And _
Not TypeOf pGrid.SelectedObject Is mRemoteNG.Connection.PuttySession.Info Then
Me.cMenIcons.Items.Clear()
For Each iStr As String In mRemoteNG.Connection.Icon.Icons
Dim tI As New ToolStripMenuItem
tI.Text = iStr
tI.Image = mRemoteNG.Connection.Icon.FromString(iStr).ToBitmap
AddHandler tI.Click, AddressOf IconMenu_Click
Me.cMenIcons.Items.Add(tI)
Next
Dim mPos As New Point(PointToScreen(New Point(e.Location.X + Me.pGrid.Width - 100, e.Location.Y)))
Me.cMenIcons.Show(mPos)
End If
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strConfigPropertyGridButtonIconClickFailed & vbNewLine & ex.Message, True)
End Try
End Sub
Private Sub IconMenu_Click(ByVal sender As Object, ByVal e As EventArgs)
Try
Dim connectionInfo As mRemoteNG.Connection.Info = TryCast(pGrid.SelectedObject, mRemoteNG.Connection.Info)
If connectionInfo Is Nothing Then Return
Dim selectedMenuItem As ToolStripMenuItem = TryCast(sender, ToolStripMenuItem)
If selectedMenuItem Is Nothing Then Return
Dim iconName As String = selectedMenuItem.Text
If String.IsNullOrEmpty(iconName) Then Return
Dim connectionIcon As Icon = mRemoteNG.Connection.Icon.FromString(iconName)
If connectionIcon Is Nothing Then Return
btnIcon.Image = connectionIcon.ToBitmap()
connectionInfo.Icon = iconName
pGrid.Refresh()
SaveConnectionsBG()
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, Language.strConfigPropertyGridMenuClickFailed & vbNewLine & ex.Message, True)
End Try
End Sub
#End Region
#Region "Host Status (Ping)"
Private HostName As String
Private pThread As Threading.Thread
Private Sub CheckHostAlive()
Dim pingSender As New Ping
Dim pReply As PingReply
Try
pReply = pingSender.Send(HostName)
If pReply.Status = IPStatus.Success Then
If Me.btnHostStatus.Tag = "checking" Then
ShowStatusImage(My.Resources.HostStatus_On)
End If
Else
If Me.btnHostStatus.Tag = "checking" Then
ShowStatusImage(My.Resources.HostStatus_Off)
End If
End If
Catch ex As Exception
If Me.btnHostStatus.Tag = "checking" Then
ShowStatusImage(My.Resources.HostStatus_Off)
End If
End Try
End Sub
Delegate Sub ShowStatusImageCB(ByVal [Image] As Image)
Private Sub ShowStatusImage(ByVal [Image] As Image)
If Me.pGrid.InvokeRequired Then
Dim d As New ShowStatusImageCB(AddressOf ShowStatusImage)
Me.pGrid.Invoke(d, New Object() {[Image]})
Else
Me.btnHostStatus.Image = Image
Me.btnHostStatus.Tag = "checkfinished"
End If
End Sub
Public Sub SetHostStatus(ByVal ConnectionInfo As Object)
Try
Me.btnHostStatus.Image = My.Resources.HostStatus_Check
' To check status, ConnectionInfo must be an mRemoteNG.Connection.Info that is not a container
If TypeOf ConnectionInfo Is mRemoteNG.Connection.Info Then
If TryCast(ConnectionInfo, mRemoteNG.Connection.Info).IsContainer Then Return
Else
Return
End If
Me.btnHostStatus.Tag = "checking"
HostName = TryCast(ConnectionInfo, mRemoteNG.Connection.Info).Hostname
pThread = New Threading.Thread(AddressOf CheckHostAlive)
pThread.SetApartmentState(Threading.ApartmentState.STA)
pThread.IsBackground = True
pThread.Start()
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strConfigPropertyGridSetHostStatusFailed & vbNewLine & ex.Message, True)
End Try
End Sub
#End Region
Private Sub propertyGridContextMenu_Opening(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles propertyGridContextMenu.Opening
propertyGridContextMenuShowHelpText.Checked = Settings.ShowConfigHelpText
End Sub
Private Sub propertyGridContextMenu_Click(sender As Object, e As EventArgs) Handles propertyGridContextMenuShowHelpText.Click
propertyGridContextMenuShowHelpText.Checked = Not propertyGridContextMenuShowHelpText.Checked
End Sub
Private Sub propertyGridContextMenu_CheckedChanged(sender As Object, e As EventArgs) Handles propertyGridContextMenuShowHelpText.CheckedChanged
Settings.ShowConfigHelpText = propertyGridContextMenuShowHelpText.Checked
pGrid.HelpVisible = propertyGridContextMenuShowHelpText.Checked
End Sub
End Class
End Namespace
End Namespace