mirror of
https://github.com/mRemoteNG/mRemoteNG.git
synced 2026-02-18 06:21:41 +08:00
Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
66c315f629 | ||
|
|
89c7baf7fa | ||
|
|
90eedc689e | ||
|
|
b262f00491 | ||
|
|
d0d81e382d | ||
|
|
5615dc18a6 | ||
|
|
ce08728652 | ||
|
|
fbc613efe5 | ||
|
|
d3560eb893 | ||
|
|
e53be11383 |
@@ -1,6 +1,6 @@
|
||||
@echo off
|
||||
|
||||
SET VERSIONTAG=RC2
|
||||
SET VERSIONTAG=RC3
|
||||
|
||||
SET VCVARSALL="%ProgramFiles(x86)%\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"
|
||||
SET DEVENV="devenv.exe"
|
||||
|
||||
@@ -3,6 +3,7 @@ Contributors
|
||||
|
||||
Lionel Caignec
|
||||
Felix Deimel
|
||||
Holger Henke
|
||||
Tom Hiller
|
||||
Riley McArdle
|
||||
Apisitt Rattana
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
For Each CultureName As String In My.Settings.SupportedUICultures.Split(",")
|
||||
Try
|
||||
CultureInfo = New Globalization.CultureInfo(CultureName.Trim)
|
||||
Add(CultureInfo.Name, CultureInfo.NativeName)
|
||||
Add(CultureInfo.Name, CultureInfo.TextInfo.ToTitleCase(CultureInfo.NativeName))
|
||||
Catch ex As Exception
|
||||
Debug.Print(String.Format("An exception occurred while adding the culture '{0}' to the list of supported cultures. {1}", CultureName, ex.ToString))
|
||||
End Try
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
1.67 (2011-05-25):
|
||||
1.67 (2011-05-28):
|
||||
Fixed migration of external tools configuration and panel layout from Local to Roaming folder.
|
||||
Disable ICA Hotkeys for Citrix connections. Fixes issue with international users.
|
||||
Added a language selection option so users can override the language if they don't want it automatically detected.
|
||||
@@ -18,6 +18,10 @@
|
||||
Added Font Smoothing and Desktop Composition RDP settings.
|
||||
Improved error handling when loading XML connection files.
|
||||
Added the mRemoteNG icon to the list of selectable icons for connection entries.
|
||||
Added confirmation before closing connection tabs.
|
||||
Fixed bug 42 - Maximized location not remembered with multiple monitors.
|
||||
Improved loading and saving of window location.
|
||||
Removed flickering on start up.
|
||||
Changed to use full four part version numbers with major, minor, build, and revision.
|
||||
|
||||
1.66 (2011-05-02):
|
||||
|
||||
@@ -38,28 +38,38 @@ Namespace Config
|
||||
My.Settings.UpdatePending = False
|
||||
End If
|
||||
|
||||
If My.Settings.MainFormLocation <> New Point(999, 999) Then
|
||||
.Location = My.Settings.MainFormLocation
|
||||
End If
|
||||
|
||||
If My.Settings.MainFormSize <> Nothing Then
|
||||
.Size = My.Settings.MainFormSize
|
||||
End If
|
||||
|
||||
'check if form is visible
|
||||
Dim curScreen As Screen = Screen.FromHandle(.Handle)
|
||||
|
||||
If .Right < curScreen.Bounds.Left Or .Left > curScreen.Bounds.Right _
|
||||
Or .Top * -1 > curScreen.Bounds.Top * -1 Or .Bottom > curScreen.Bounds.Bottom Then
|
||||
.Location = curScreen.Bounds.Location
|
||||
End If
|
||||
|
||||
|
||||
If My.Settings.MainFormState = Nothing Or My.Settings.MainFormState = FormWindowState.Minimized Then
|
||||
.WindowState = FormWindowState.Normal
|
||||
.WindowState = FormWindowState.Normal
|
||||
If My.Settings.MainFormState = FormWindowState.Normal Then
|
||||
If Not My.Settings.MainFormLocation.IsEmpty Then .Location = My.Settings.MainFormLocation
|
||||
If Not My.Settings.MainFormSize.IsEmpty Then .Size = My.Settings.MainFormSize
|
||||
Else
|
||||
.WindowState = My.Settings.MainFormState
|
||||
If Not My.Settings.MainFormRestoreLocation.IsEmpty Then .Location = My.Settings.MainFormRestoreLocation
|
||||
If Not My.Settings.MainFormRestoreSize.IsEmpty Then .Size = My.Settings.MainFormRestoreSize
|
||||
End If
|
||||
If My.Settings.MainFormState = FormWindowState.Maximized Then
|
||||
.WindowState = FormWindowState.Maximized
|
||||
End If
|
||||
|
||||
' Make sure the form is visible on the screen
|
||||
Const minHorizontal As Integer = 300
|
||||
Const minVertical As Integer = 150
|
||||
Dim screenBounds As Drawing.Rectangle = Screen.FromHandle(.Handle).Bounds
|
||||
Dim newBounds As Drawing.Rectangle = .Bounds
|
||||
|
||||
If newBounds.Right < screenBounds.Left + minHorizontal Then
|
||||
newBounds.X = screenBounds.Left + minHorizontal - newBounds.Width
|
||||
End If
|
||||
If newBounds.Left > screenBounds.Right - minHorizontal Then
|
||||
newBounds.X = screenBounds.Right - minHorizontal
|
||||
End If
|
||||
If newBounds.Bottom < screenBounds.Top + minVertical Then
|
||||
newBounds.Y = screenBounds.Top + minVertical - newBounds.Height
|
||||
End If
|
||||
If newBounds.Top > screenBounds.Bottom - minVertical Then
|
||||
newBounds.Y = screenBounds.Bottom - minVertical
|
||||
End If
|
||||
|
||||
.Location = newBounds.Location
|
||||
|
||||
If My.Settings.MainFormKiosk = True Then
|
||||
Tools.Misc.Fullscreen.EnterFullscreen()
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
Imports mRemoteNG.App.Runtime
|
||||
Imports System.Xml
|
||||
Imports System.IO
|
||||
Imports mRemoteNG.Tools.WindowPlacement
|
||||
|
||||
Namespace Config
|
||||
Namespace Settings
|
||||
@@ -25,12 +26,18 @@ Namespace Config
|
||||
Public Sub Save()
|
||||
Try
|
||||
With Me._MainForm
|
||||
If .WindowState = FormWindowState.Normal Then
|
||||
My.Settings.MainFormLocation = .Location
|
||||
My.Settings.MainFormSize = .Size
|
||||
Else
|
||||
My.Settings.MainFormLocation = .RestoreBounds.Location
|
||||
My.Settings.MainFormSize = .RestoreBounds.Size
|
||||
Dim windowPlacement As New Tools.WindowPlacement(_MainForm)
|
||||
If .WindowState = FormWindowState.Minimized And windowPlacement.RestoreToMaximized Then
|
||||
.Opacity = 0
|
||||
.WindowState = FormWindowState.Maximized
|
||||
End If
|
||||
|
||||
My.Settings.MainFormLocation = .Location
|
||||
My.Settings.MainFormSize = .Size
|
||||
|
||||
If Not .WindowState = FormWindowState.Normal Then
|
||||
My.Settings.MainFormRestoreLocation = .RestoreBounds.Location
|
||||
My.Settings.MainFormRestoreSize = .RestoreBounds.Size
|
||||
End If
|
||||
|
||||
My.Settings.MainFormState = .WindowState
|
||||
|
||||
3
mRemoteV1/Forms/frmMain.Designer.vb
generated
3
mRemoteV1/Forms/frmMain.Designer.vb
generated
@@ -740,7 +740,7 @@ Partial Class frmMain
|
||||
Me.ToolStrip1.Name = "ToolStrip1"
|
||||
Me.ToolStrip1.Size = New System.Drawing.Size(264, 25)
|
||||
Me.ToolStrip1.TabIndex = 19
|
||||
Me.ToolStrip1.Visible = False
|
||||
Me.ToolStrip1.Visible = False
|
||||
'
|
||||
'ToolStripButton1
|
||||
'
|
||||
@@ -806,6 +806,7 @@ Partial Class frmMain
|
||||
Me.Icon = Global.mRemoteNG.My.Resources.Resources.mRemote_Icon
|
||||
Me.MainMenuStrip = Me.msMain
|
||||
Me.Name = "frmMain"
|
||||
Me.Opacity = 0
|
||||
Me.Text = "mRemoteNG"
|
||||
Me.msMain.ResumeLayout(False)
|
||||
Me.msMain.PerformLayout()
|
||||
|
||||
@@ -15,27 +15,27 @@ Public Class frmMain
|
||||
'insert enable edition code here
|
||||
App.Editions.Spanlink.Enabled = False
|
||||
|
||||
App.SupportedCultures.InstantiateSingleton()
|
||||
If Not My.Settings.OverrideUICulture = "" And App.SupportedCultures.IsNameSupported(My.Settings.OverrideUICulture) Then
|
||||
Threading.Thread.CurrentThread.CurrentUICulture = New Globalization.CultureInfo(My.Settings.OverrideUICulture)
|
||||
End If
|
||||
|
||||
ApplyLanguage()
|
||||
|
||||
Debug.Print("---------------------------" & vbNewLine & "[START] - " & Now)
|
||||
|
||||
Startup.ParseCommandLineArgs()
|
||||
fpChainedWindowHandle = SetClipboardViewer(Me.Handle)
|
||||
Startup.CreateLogger()
|
||||
|
||||
' Create gui config load and save objects
|
||||
sL = New Config.Settings.Load(Me)
|
||||
sS = New Config.Settings.Save(Me)
|
||||
|
||||
Startup.CreateLogger()
|
||||
|
||||
' Load GUI Configuration
|
||||
sL.Load()
|
||||
|
||||
Debug.Print("---------------------------" & vbNewLine & "[START] - " & Now)
|
||||
|
||||
Startup.ParseCommandLineArgs()
|
||||
|
||||
App.SupportedCultures.InstantiateSingleton()
|
||||
If Not My.Settings.OverrideUICulture = "" And App.SupportedCultures.IsNameSupported(My.Settings.OverrideUICulture) Then
|
||||
Threading.Thread.CurrentThread.CurrentUICulture = New Globalization.CultureInfo(My.Settings.OverrideUICulture)
|
||||
End If
|
||||
ApplyLanguage()
|
||||
|
||||
fpChainedWindowHandle = SetClipboardViewer(Me.Handle)
|
||||
|
||||
mC = New Messages.Collector(Windows.errorsForm)
|
||||
|
||||
Connection.Protocol.RDP.Resolutions.AddResolutions()
|
||||
@@ -78,6 +78,8 @@ Public Class frmMain
|
||||
|
||||
AddSysMenuItems()
|
||||
AddHandler Microsoft.Win32.SystemEvents.DisplaySettingsChanged, AddressOf DisplayChanged
|
||||
|
||||
Me.Opacity = 1
|
||||
End Sub
|
||||
|
||||
Private Sub ApplyLanguage()
|
||||
|
||||
@@ -1850,15 +1850,6 @@ Starte mit neuer Datei.</value>
|
||||
<data name="strErrorCode" xml:space="preserve">
|
||||
<value>Fehler Nummer {0}.</value>
|
||||
</data>
|
||||
<data name="strConnenctionEventDisconnected" xml:space="preserve">
|
||||
<value>Protokoll Ereignis Verbindung getrennt.
|
||||
Nachricht:
|
||||
{0}</value>
|
||||
</data>
|
||||
<data name="strConnenctionEventDisconnectFailed" xml:space="preserve">
|
||||
<value>Protokoll Ereignis Trennen der Verbindung fehlgeschlagen!
|
||||
{0}</value>
|
||||
</data>
|
||||
<data name="strConnenctionClosedByUserDetail" xml:space="preserve">
|
||||
<value>Verbindung zu {0} mit {1} wurde vom Benutzer {2} getrennt. (Beschreibung: "{3}"; Benutzer Feld: "{4}")</value>
|
||||
</data>
|
||||
@@ -1957,4 +1948,42 @@ Fehler Beschreibung: {1}</value>
|
||||
<data name="strRDP32768Colors" xml:space="preserve">
|
||||
<value>32768 Farben (15Bit)</value>
|
||||
</data>
|
||||
<data name="strNoUpdateAvailable" xml:space="preserve">
|
||||
<value>Keine Updates verfügbar</value>
|
||||
</data>
|
||||
<data name="strTransferFailed" xml:space="preserve">
|
||||
<value>Übertragung fehlgeschlagen!</value>
|
||||
</data>
|
||||
<data name="strProtocolEventDisconnected" xml:space="preserve">
|
||||
<value>Protokollereignis Verbindung getrennnt.
|
||||
{0}</value>
|
||||
</data>
|
||||
<data name="strProtocolEventDisconnectFailed" xml:space="preserve">
|
||||
<value>Protokollereignis Verbindung trennen fehlgeschlagen.
|
||||
{0}</value>
|
||||
</data>
|
||||
<data name="strLanguage" xml:space="preserve">
|
||||
<value>Sprache</value>
|
||||
</data>
|
||||
<data name="strLanguageDefault" xml:space="preserve">
|
||||
<value>(Automatisch erkannt)</value>
|
||||
</data>
|
||||
<data name="strLanguageRestartRequired" xml:space="preserve">
|
||||
<value>{0} muss neu gestartet werden, bevor die Sprache aktiv wird.</value>
|
||||
</data>
|
||||
<data name="strAskUpdatesCommandAskLater" xml:space="preserve">
|
||||
<value>Später nochmal fragen</value>
|
||||
</data>
|
||||
<data name="strAskUpdatesCommandCustom" xml:space="preserve">
|
||||
<value>Einstellungen jetzt anpassen</value>
|
||||
</data>
|
||||
<data name="strAskUpdatesCommandRecommended" xml:space="preserve">
|
||||
<value>Verwende die empflohlenen Einstellungen</value>
|
||||
</data>
|
||||
<data name="strAskUpdatesContent" xml:space="preserve">
|
||||
<value>{0} kann automatisch nach Updates suchen die neue Funktionen und Bug Fixes enthalten können. Es wird empfohlen, dass Sie {0} erlauben wöchentlich nach Updates zu suchen.</value>
|
||||
</data>
|
||||
<data name="strAskUpdatesMainInstruction" xml:space="preserve">
|
||||
<value>Automatische Update Einstellungen</value>
|
||||
</data>
|
||||
</root>
|
||||
18
mRemoteV1/My Project/Resources.Designer.vb
generated
18
mRemoteV1/My Project/Resources.Designer.vb
generated
@@ -1679,6 +1679,24 @@ Namespace My.Resources
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Looks up a localized string similar to Confirm closing connection tabs.
|
||||
'''</summary>
|
||||
Friend ReadOnly Property strConfirmCloseConnection() As String
|
||||
Get
|
||||
Return ResourceManager.GetString("strConfirmCloseConnection", resourceCulture)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Looks up a localized string similar to Do you want to close the connection, "{0}"?.
|
||||
'''</summary>
|
||||
Friend ReadOnly Property strConfirmCloseConnectionMainInstruction() As String
|
||||
Get
|
||||
Return ResourceManager.GetString("strConfirmCloseConnectionMainInstruction", resourceCulture)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Looks up a localized string similar to Are you sure you want to delete the external tool, "{0}"?.
|
||||
'''</summary>
|
||||
|
||||
@@ -2319,4 +2319,10 @@ Error Description: {1}</value>
|
||||
<data name="strPropertyNameEnableDesktopComposition" xml:space="preserve">
|
||||
<value>Desktop Composition</value>
|
||||
</data>
|
||||
<data name="strConfirmCloseConnection" xml:space="preserve">
|
||||
<value>Confirm closing connection tabs</value>
|
||||
</data>
|
||||
<data name="strConfirmCloseConnectionMainInstruction" xml:space="preserve">
|
||||
<value>Do you want to close the connection, "{0}"?</value>
|
||||
</data>
|
||||
</root>
|
||||
43
mRemoteV1/My Project/Settings.Designer.vb
generated
43
mRemoteV1/My Project/Settings.Designer.vb
generated
@@ -56,8 +56,7 @@ Namespace My
|
||||
|
||||
<Global.System.Configuration.UserScopedSettingAttribute(), _
|
||||
Global.System.Configuration.SettingsProviderAttribute(GetType(mRemoteNG.Config.Settings.Providers.ChooseProvider)), _
|
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
Global.System.Configuration.DefaultSettingValueAttribute("999, 999")> _
|
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute()> _
|
||||
Public Property MainFormLocation() As Global.System.Drawing.Point
|
||||
Get
|
||||
Return CType(Me("MainFormLocation"),Global.System.Drawing.Point)
|
||||
@@ -69,8 +68,7 @@ Namespace My
|
||||
|
||||
<Global.System.Configuration.UserScopedSettingAttribute(), _
|
||||
Global.System.Configuration.SettingsProviderAttribute(GetType(mRemoteNG.Config.Settings.Providers.ChooseProvider)), _
|
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
Global.System.Configuration.DefaultSettingValueAttribute("900, 600")> _
|
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute()> _
|
||||
Public Property MainFormSize() As Global.System.Drawing.Size
|
||||
Get
|
||||
Return CType(Me("MainFormSize"),Global.System.Drawing.Size)
|
||||
@@ -2205,6 +2203,43 @@ Namespace My
|
||||
Me("InhDefaultEnableDesktopComposition") = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
<Global.System.Configuration.UserScopedSettingAttribute(), _
|
||||
Global.System.Configuration.SettingsProviderAttribute(GetType(mRemoteNG.Config.Settings.Providers.ChooseProvider)), _
|
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
Global.System.Configuration.DefaultSettingValueAttribute("True")> _
|
||||
Public Property ConfirmCloseConnection() As Boolean
|
||||
Get
|
||||
Return CType(Me("ConfirmCloseConnection"),Boolean)
|
||||
End Get
|
||||
Set
|
||||
Me("ConfirmCloseConnection") = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
<Global.System.Configuration.UserScopedSettingAttribute(), _
|
||||
Global.System.Configuration.SettingsProviderAttribute(GetType(mRemoteNG.Config.Settings.Providers.ChooseProvider)), _
|
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute()> _
|
||||
Public Property MainFormRestoreSize() As Global.System.Drawing.Size
|
||||
Get
|
||||
Return CType(Me("MainFormRestoreSize"),Global.System.Drawing.Size)
|
||||
End Get
|
||||
Set
|
||||
Me("MainFormRestoreSize") = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
<Global.System.Configuration.UserScopedSettingAttribute(), _
|
||||
Global.System.Configuration.SettingsProviderAttribute(GetType(mRemoteNG.Config.Settings.Providers.ChooseProvider)), _
|
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute()> _
|
||||
Public Property MainFormRestoreLocation() As Global.System.Drawing.Point
|
||||
Get
|
||||
Return CType(Me("MainFormRestoreLocation"),Global.System.Drawing.Point)
|
||||
End Get
|
||||
Set
|
||||
Me("MainFormRestoreLocation") = value
|
||||
End Set
|
||||
End Property
|
||||
End Class
|
||||
End Namespace
|
||||
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
<Profiles />
|
||||
<Settings>
|
||||
<Setting Name="MainFormLocation" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.Drawing.Point" Scope="User">
|
||||
<Value Profile="(Default)">999, 999</Value>
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
<Setting Name="MainFormSize" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.Drawing.Size" Scope="User">
|
||||
<Value Profile="(Default)">900, 600</Value>
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
<Setting Name="MainFormState" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.Windows.Forms.FormWindowState" Scope="User">
|
||||
<Value Profile="(Default)">Normal</Value>
|
||||
@@ -500,5 +500,14 @@
|
||||
<Setting Name="InhDefaultEnableDesktopComposition" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
<Setting Name="ConfirmCloseConnection" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">True</Value>
|
||||
</Setting>
|
||||
<Setting Name="MainFormRestoreSize" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.Drawing.Size" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
<Setting Name="MainFormRestoreLocation" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.Drawing.Point" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
120
mRemoteV1/Tools/Tools.WindowPlacement.vb
Normal file
120
mRemoteV1/Tools/Tools.WindowPlacement.vb
Normal file
@@ -0,0 +1,120 @@
|
||||
Imports System.Runtime.InteropServices
|
||||
|
||||
Namespace Tools
|
||||
Public Class WindowPlacement
|
||||
#Region "Windows API"
|
||||
#Region "Functions"
|
||||
Private Declare Function GetWindowPlacement Lib "user32" (ByVal hWnd As System.IntPtr, ByRef lpwndpl As WINDOWPLACEMENT) As Boolean
|
||||
Private Declare Function SetWindowPlacement Lib "user32" (ByVal hWnd As System.IntPtr, ByRef lpwndpl As WINDOWPLACEMENT) As Boolean
|
||||
#End Region
|
||||
|
||||
#Region "Structures"
|
||||
Private Structure WINDOWPLACEMENT
|
||||
Public length As UInteger
|
||||
Public flags As UInteger
|
||||
Public showCmd As UInteger
|
||||
Public ptMinPosition As POINT
|
||||
Public ptMaxPosition As POINT
|
||||
Public rcNormalPosition As RECT
|
||||
End Structure
|
||||
|
||||
Private Structure POINT
|
||||
Public x As Long
|
||||
Public y As Long
|
||||
End Structure
|
||||
|
||||
Private Structure RECT
|
||||
Public left As Long
|
||||
Public top As Long
|
||||
Public right As Long
|
||||
Public bottom As Long
|
||||
End Structure
|
||||
#End Region
|
||||
|
||||
#Region "Constants"
|
||||
' WINDOWPLACEMENT.flags values
|
||||
Private Const WPF_SETMINPOSITION As UInteger = &H1
|
||||
Private Const WPF_RESTORETOMAXIMIZED As UInteger = &H2
|
||||
Private Const WPF_ASYNCWINDOWPLACEMENT As UInteger = &H4
|
||||
|
||||
' WINDOWPLACEMENT.showCmd values
|
||||
Private Const SW_HIDE As UInteger = 0
|
||||
Private Const SW_SHOWNORMAL As UInteger = 1
|
||||
Private Const SW_SHOWMINIMIZED As UInteger = 2
|
||||
Private Const SW_SHOWMAXIMIZED As UInteger = 3
|
||||
Private Const SW_MAXIMIZE As UInteger = 3
|
||||
Private Const SW_SHOWNOACTIVATE As UInteger = 4
|
||||
Private Const SW_SHOW As UInteger = 5
|
||||
Private Const SW_MINIMIZE As UInteger = 6
|
||||
Private Const SW_SHOWMINNOACTIVE As UInteger = 7
|
||||
Private Const SW_SHOWNA As UInteger = 8
|
||||
Private Const SW_RESTORE As UInteger = 9
|
||||
#End Region
|
||||
#End Region
|
||||
|
||||
#Region "Private Variables"
|
||||
Private _form As Windows.Forms.Form
|
||||
#End Region
|
||||
|
||||
#Region "Constructors/Destructors"
|
||||
Public Sub New(ByRef form As Windows.Forms.Form)
|
||||
_form = form
|
||||
End Sub
|
||||
#End Region
|
||||
|
||||
#Region "Public Properties"
|
||||
Public Property Form() As Windows.Forms.Form
|
||||
Get
|
||||
Return _form
|
||||
End Get
|
||||
Set(ByVal value As Windows.Forms.Form)
|
||||
_form = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property RestoreToMaximized() As Boolean
|
||||
Get
|
||||
Dim windowPlacement As WINDOWPLACEMENT = GetWindowPlacement()
|
||||
Return windowPlacement.flags And WPF_RESTORETOMAXIMIZED
|
||||
End Get
|
||||
Set(ByVal value As Boolean)
|
||||
Dim windowPlacement As WINDOWPLACEMENT = GetWindowPlacement()
|
||||
If value Then
|
||||
windowPlacement.flags = windowPlacement.flags Or WPF_RESTORETOMAXIMIZED
|
||||
Else
|
||||
windowPlacement.flags = windowPlacement.flags And Not WPF_RESTORETOMAXIMIZED
|
||||
End If
|
||||
SetWindowPlacement(windowPlacement)
|
||||
End Set
|
||||
End Property
|
||||
#End Region
|
||||
|
||||
#Region "Private Functions"
|
||||
Private Function GetWindowPlacement() As WINDOWPLACEMENT
|
||||
If _form Is Nothing Then
|
||||
Throw New System.NullReferenceException("WindowPlacement.Form is not set.")
|
||||
End If
|
||||
Dim windowPlacement As WINDOWPLACEMENT
|
||||
windowPlacement.length = Marshal.SizeOf(windowPlacement)
|
||||
Try
|
||||
GetWindowPlacement(_form.Handle, windowPlacement)
|
||||
Return windowPlacement
|
||||
Catch ex As Exception
|
||||
Throw ex
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Private Function SetWindowPlacement(ByVal windowPlacement As WINDOWPLACEMENT) As Boolean
|
||||
If _form Is Nothing Then
|
||||
Throw New System.NullReferenceException("WindowPlacement.Form is not set.")
|
||||
End If
|
||||
windowPlacement.length = Marshal.SizeOf(windowPlacement)
|
||||
Try
|
||||
Return SetWindowPlacement(_form.Handle, windowPlacement)
|
||||
Catch ex As Exception
|
||||
Throw ex
|
||||
End Try
|
||||
End Function
|
||||
#End Region
|
||||
End Class
|
||||
End Namespace
|
||||
@@ -489,7 +489,6 @@ Namespace Tree
|
||||
|
||||
_TreeView.TreeViewNodeSorter = ns
|
||||
_TreeView.Sort()
|
||||
_TreeView.Sorted = False
|
||||
|
||||
For Each childNode As TreeNode In treeNode.Nodes
|
||||
If GetNodeType(childNode) = Type.Container Then Sort(childNode, sortType)
|
||||
|
||||
@@ -3,6 +3,7 @@ Imports System.Windows
|
||||
Imports System.Windows.Forms
|
||||
Imports Crownwood
|
||||
Imports WeifenLuo.WinFormsUI.Docking
|
||||
Imports PSTaskDialog
|
||||
Imports mRemoteNG.App.Runtime
|
||||
|
||||
Namespace UI
|
||||
@@ -344,12 +345,23 @@ Namespace UI
|
||||
End Sub
|
||||
|
||||
Private Sub CloseConnectionTab()
|
||||
Dim SelectedTab As Crownwood.Magic.Controls.TabPage = Me.TabController.SelectedTab
|
||||
If My.Settings.ConfirmCloseConnection Then
|
||||
Dim Result As DialogResult = cTaskDialog.MessageBox(Me, My.Application.Info.ProductName, String.Format(My.Resources.strConfirmCloseConnectionMainInstruction, SelectedTab.Title), "", "", "", My.Resources.strCheckboxDoNotShowThisMessageAgain, eTaskDialogButtons.YesNo, eSysIcons.Question, Nothing)
|
||||
If cTaskDialog.VerificationChecked Then
|
||||
My.Settings.ConfirmCloseConnection = False
|
||||
End If
|
||||
If Result = DialogResult.No Then
|
||||
Exit Sub
|
||||
End If
|
||||
End If
|
||||
|
||||
Try
|
||||
If Me.TabController.SelectedTab.Tag IsNot Nothing Then
|
||||
Dim IC As mRemoteNG.Connection.InterfaceControl = Me.TabController.SelectedTab.Tag
|
||||
If SelectedTab.Tag IsNot Nothing Then
|
||||
Dim IC As mRemoteNG.Connection.InterfaceControl = SelectedTab.Tag
|
||||
IC.Protocol.Close()
|
||||
Else
|
||||
Me.CloseTab(Me.TabController.SelectedTab)
|
||||
Me.CloseTab(SelectedTab)
|
||||
End If
|
||||
Catch ex As Exception
|
||||
mC.AddMessage(Messages.MessageClass.ErrorMsg, "CloseConnectionTab (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
|
||||
|
||||
@@ -109,6 +109,7 @@ Namespace UI
|
||||
Friend WithEvents lblLanguageRestartRequired As System.Windows.Forms.Label
|
||||
Friend WithEvents cboLanguage As System.Windows.Forms.ComboBox
|
||||
Friend WithEvents lblLanguage As System.Windows.Forms.Label
|
||||
Friend WithEvents chkConfirmCloseConnection As System.Windows.Forms.CheckBox
|
||||
Friend WithEvents TabController As Crownwood.Magic.Controls.TabControl
|
||||
|
||||
Private Sub InitializeComponent()
|
||||
@@ -215,6 +216,7 @@ Namespace UI
|
||||
Me.Label1 = New System.Windows.Forms.Label
|
||||
Me.btnOK = New System.Windows.Forms.Button
|
||||
Me.btnCancel = New System.Windows.Forms.Button
|
||||
Me.chkConfirmCloseConnection = New System.Windows.Forms.CheckBox
|
||||
Me.TabController.SuspendLayout()
|
||||
Me.tabAppearance.SuspendLayout()
|
||||
Me.pnlAppearance.SuspendLayout()
|
||||
@@ -252,8 +254,8 @@ Namespace UI
|
||||
Me.TabController.IDEPixelArea = True
|
||||
Me.TabController.Location = New System.Drawing.Point(0, 0)
|
||||
Me.TabController.Name = "TabController"
|
||||
Me.TabController.SelectedIndex = 1
|
||||
Me.TabController.SelectedTab = Me.tabAppearance
|
||||
Me.TabController.SelectedIndex = 0
|
||||
Me.TabController.SelectedTab = Me.tabStartupExit
|
||||
Me.TabController.Size = New System.Drawing.Size(573, 522)
|
||||
Me.TabController.TabIndex = 10
|
||||
Me.TabController.TabPages.AddRange(New Crownwood.Magic.Controls.TabPage() {Me.tabStartupExit, Me.tabAppearance, Me.tabTabs, Me.tabConnections, Me.tabUpdates, Me.tabAdvanced})
|
||||
@@ -264,6 +266,7 @@ Namespace UI
|
||||
Me.tabAppearance.Icon = Global.mRemoteNG.My.Resources.Resources.Appearance_Icon
|
||||
Me.tabAppearance.Location = New System.Drawing.Point(0, 0)
|
||||
Me.tabAppearance.Name = "tabAppearance"
|
||||
Me.tabAppearance.Selected = False
|
||||
Me.tabAppearance.Size = New System.Drawing.Size(573, 492)
|
||||
Me.tabAppearance.TabIndex = 2000
|
||||
Me.tabAppearance.Title = "Appearance"
|
||||
@@ -364,7 +367,6 @@ Namespace UI
|
||||
Me.tabStartupExit.Icon = Global.mRemoteNG.My.Resources.Resources.StartupExit_Icon
|
||||
Me.tabStartupExit.Location = New System.Drawing.Point(0, 0)
|
||||
Me.tabStartupExit.Name = "tabStartupExit"
|
||||
Me.tabStartupExit.Selected = False
|
||||
Me.tabStartupExit.Size = New System.Drawing.Size(573, 492)
|
||||
Me.tabStartupExit.TabIndex = 1000
|
||||
Me.tabStartupExit.Title = "Startup/Exit"
|
||||
@@ -375,6 +377,7 @@ Namespace UI
|
||||
Or System.Windows.Forms.AnchorStyles.Left) _
|
||||
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||
Me.pnlStartup.AutoScroll = True
|
||||
Me.pnlStartup.Controls.Add(Me.chkConfirmCloseConnection)
|
||||
Me.pnlStartup.Controls.Add(Me.chkSaveConsOnExit)
|
||||
Me.pnlStartup.Controls.Add(Me.chkProperInstallationOfComponentsAtStartup)
|
||||
Me.pnlStartup.Controls.Add(Me.chkConfirmExit)
|
||||
@@ -389,7 +392,7 @@ Namespace UI
|
||||
'
|
||||
Me.chkSaveConsOnExit.AutoSize = True
|
||||
Me.chkSaveConsOnExit.FlatStyle = System.Windows.Forms.FlatStyle.Flat
|
||||
Me.chkSaveConsOnExit.Location = New System.Drawing.Point(16, 16)
|
||||
Me.chkSaveConsOnExit.Location = New System.Drawing.Point(16, 64)
|
||||
Me.chkSaveConsOnExit.Name = "chkSaveConsOnExit"
|
||||
Me.chkSaveConsOnExit.Size = New System.Drawing.Size(153, 19)
|
||||
Me.chkSaveConsOnExit.TabIndex = 10
|
||||
@@ -400,7 +403,7 @@ Namespace UI
|
||||
'
|
||||
Me.chkProperInstallationOfComponentsAtStartup.AutoSize = True
|
||||
Me.chkProperInstallationOfComponentsAtStartup.FlatStyle = System.Windows.Forms.FlatStyle.Flat
|
||||
Me.chkProperInstallationOfComponentsAtStartup.Location = New System.Drawing.Point(16, 112)
|
||||
Me.chkProperInstallationOfComponentsAtStartup.Location = New System.Drawing.Point(16, 136)
|
||||
Me.chkProperInstallationOfComponentsAtStartup.Name = "chkProperInstallationOfComponentsAtStartup"
|
||||
Me.chkProperInstallationOfComponentsAtStartup.Size = New System.Drawing.Size(292, 19)
|
||||
Me.chkProperInstallationOfComponentsAtStartup.TabIndex = 50
|
||||
@@ -422,7 +425,7 @@ Namespace UI
|
||||
'
|
||||
Me.chkSingleInstance.AutoSize = True
|
||||
Me.chkSingleInstance.FlatStyle = System.Windows.Forms.FlatStyle.Flat
|
||||
Me.chkSingleInstance.Location = New System.Drawing.Point(16, 88)
|
||||
Me.chkSingleInstance.Location = New System.Drawing.Point(16, 112)
|
||||
Me.chkSingleInstance.Name = "chkSingleInstance"
|
||||
Me.chkSingleInstance.Size = New System.Drawing.Size(411, 19)
|
||||
Me.chkSingleInstance.TabIndex = 50
|
||||
@@ -433,7 +436,7 @@ Namespace UI
|
||||
'
|
||||
Me.chkReconnectOnStart.AutoSize = True
|
||||
Me.chkReconnectOnStart.FlatStyle = System.Windows.Forms.FlatStyle.Flat
|
||||
Me.chkReconnectOnStart.Location = New System.Drawing.Point(16, 64)
|
||||
Me.chkReconnectOnStart.Location = New System.Drawing.Point(16, 88)
|
||||
Me.chkReconnectOnStart.Name = "chkReconnectOnStart"
|
||||
Me.chkReconnectOnStart.Size = New System.Drawing.Size(296, 19)
|
||||
Me.chkReconnectOnStart.TabIndex = 40
|
||||
@@ -1381,6 +1384,17 @@ Namespace UI
|
||||
Me.btnCancel.Text = "&Cancel"
|
||||
Me.btnCancel.UseVisualStyleBackColor = True
|
||||
'
|
||||
'chkConfirmCloseConnection
|
||||
'
|
||||
Me.chkConfirmCloseConnection.AutoSize = True
|
||||
Me.chkConfirmCloseConnection.FlatStyle = System.Windows.Forms.FlatStyle.Flat
|
||||
Me.chkConfirmCloseConnection.Location = New System.Drawing.Point(16, 16)
|
||||
Me.chkConfirmCloseConnection.Name = "chkConfirmCloseConnection"
|
||||
Me.chkConfirmCloseConnection.Size = New System.Drawing.Size(196, 19)
|
||||
Me.chkConfirmCloseConnection.TabIndex = 51
|
||||
Me.chkConfirmCloseConnection.Text = "Confirm closing connection tabs"
|
||||
Me.chkConfirmCloseConnection.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Options
|
||||
'
|
||||
Me.CancelButton = Me.btnCancel
|
||||
@@ -1441,6 +1455,7 @@ Namespace UI
|
||||
Private Sub LoadOptions()
|
||||
Try
|
||||
Me.chkSaveConsOnExit.Checked = My.Settings.SaveConsOnExit
|
||||
Me.chkConfirmCloseConnection.Checked = My.Settings.ConfirmCloseConnection
|
||||
Me.chkConfirmExit.Checked = My.Settings.ConfirmExit
|
||||
Me.chkReconnectOnStart.Checked = My.Settings.OpenConsFromLastSession
|
||||
Me.chkProperInstallationOfComponentsAtStartup.Checked = My.Settings.StartupComponentsCheck
|
||||
@@ -1552,6 +1567,7 @@ Namespace UI
|
||||
Private Sub SaveOptions()
|
||||
Try
|
||||
My.Settings.SaveConsOnExit = Me.chkSaveConsOnExit.Checked
|
||||
My.Settings.ConfirmCloseConnection = Me.chkConfirmCloseConnection.Checked
|
||||
My.Settings.ConfirmExit = Me.chkConfirmExit.Checked
|
||||
My.Settings.OpenConsFromLastSession = Me.chkReconnectOnStart.Checked
|
||||
My.Settings.StartupComponentsCheck = Me.chkProperInstallationOfComponentsAtStartup.Checked
|
||||
@@ -1786,6 +1802,7 @@ Namespace UI
|
||||
chkSingleInstance.Text = My.Resources.strAllowOnlySingleInstance
|
||||
chkReconnectOnStart.Text = My.Resources.strReconnectAtStartup
|
||||
chkCheckForUpdatesOnStartup.Text = My.Resources.strCheckForUpdatesOnStartup
|
||||
chkConfirmCloseConnection.Text = My.Resources.strConfirmCloseConnection
|
||||
chkConfirmExit.Text = My.Resources.strConfirmExit
|
||||
chkSaveConsOnExit.Text = My.Resources.strSaveConsOnExit
|
||||
tabAppearance.Title = My.Resources.strTabAppearance
|
||||
|
||||
@@ -59,12 +59,6 @@
|
||||
</system.diagnostics>
|
||||
<userSettings>
|
||||
<mRemoteNG.My.MySettings>
|
||||
<setting name="MainFormLocation" serializeAs="String">
|
||||
<value>999, 999</value>
|
||||
</setting>
|
||||
<setting name="MainFormSize" serializeAs="String">
|
||||
<value>900, 600</value>
|
||||
</setting>
|
||||
<setting name="MainFormState" serializeAs="String">
|
||||
<value>Normal</value>
|
||||
</setting>
|
||||
@@ -554,6 +548,9 @@
|
||||
<setting name="InhDefaultEnableDesktopComposition" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
<setting name="ConfirmCloseConnection" serializeAs="String">
|
||||
<value>True</value>
|
||||
</setting>
|
||||
</mRemoteNG.My.MySettings>
|
||||
</userSettings>
|
||||
<applicationSettings>
|
||||
|
||||
@@ -263,6 +263,7 @@
|
||||
<Compile Include="Tools\Tools.Misc.vb" />
|
||||
<Compile Include="Tools\Tools.PortScan.vb" />
|
||||
<Compile Include="Tools\Tools.SystemMenu.vb" />
|
||||
<Compile Include="Tools\Tools.WindowPlacement.vb" />
|
||||
<Compile Include="Tree\Tree.Node.vb" />
|
||||
<Compile Include="UI\UI.Window.About.vb">
|
||||
<SubType>Form</SubType>
|
||||
|
||||
Reference in New Issue
Block a user