mirror of
https://github.com/mRemoteNG/mRemoteNG.git
synced 2026-02-17 22:11:48 +08:00
Create OptionsWindow for docked settings panel
Co-authored-by: Kvarkas <3611964+Kvarkas@users.noreply.github.com>
This commit is contained in:
@@ -28,6 +28,7 @@ namespace mRemoteNG.App
|
||||
internal static ErrorAndInfoWindow ErrorsForm { get; set; } = new ErrorAndInfoWindow();
|
||||
private static UpdateWindow UpdateForm { get; set; } = new UpdateWindow();
|
||||
internal static SSHTransferWindow SshtransferForm { get; private set; } = new SSHTransferWindow();
|
||||
internal static OptionsWindow OptionsFormWindow { get; private set; }
|
||||
|
||||
|
||||
public static void Show(WindowType windowType)
|
||||
@@ -44,8 +45,10 @@ namespace mRemoteNG.App
|
||||
_adimportForm.Show(dockPanel);
|
||||
break;
|
||||
case WindowType.Options:
|
||||
FrmMain.OptionsForm.SetActivatedPage(Language.StartupExit);
|
||||
FrmMain.OptionsForm.Visible = true;
|
||||
if (OptionsFormWindow == null || OptionsFormWindow.IsDisposed)
|
||||
OptionsFormWindow = new OptionsWindow();
|
||||
OptionsFormWindow.SetActivatedPage(Language.StartupExit);
|
||||
OptionsFormWindow.Show(dockPanel);
|
||||
break;
|
||||
case WindowType.SSHTransfer:
|
||||
if (SshtransferForm == null || SshtransferForm.IsDisposed)
|
||||
|
||||
@@ -398,8 +398,9 @@ namespace mRemoteNG.UI.Forms
|
||||
|
||||
if (CTaskDialog.CommandButtonResult != 1) return;
|
||||
|
||||
OptionsForm.SetActivatedPage(Language.Updates);
|
||||
OptionsForm.ShowDialog(this);
|
||||
App.Windows.Show(WindowType.Options);
|
||||
if (App.Windows.OptionsFormWindow != null)
|
||||
App.Windows.OptionsFormWindow.SetActivatedPage(Language.Updates);
|
||||
}
|
||||
|
||||
private async Task CheckForUpdates()
|
||||
|
||||
89
mRemoteNG/UI/Window/OptionsWindow.cs
Normal file
89
mRemoteNG/UI/Window/OptionsWindow.cs
Normal file
@@ -0,0 +1,89 @@
|
||||
using System;
|
||||
using System.Runtime.Versioning;
|
||||
using System.Windows.Forms;
|
||||
using mRemoteNG.Themes;
|
||||
using mRemoteNG.UI.Forms;
|
||||
using WeifenLuo.WinFormsUI.Docking;
|
||||
using mRemoteNG.Resources.Language;
|
||||
|
||||
namespace mRemoteNG.UI.Window
|
||||
{
|
||||
[SupportedOSPlatform("windows")]
|
||||
public partial class OptionsWindow : BaseWindow
|
||||
{
|
||||
private FrmOptions _optionsForm;
|
||||
|
||||
#region Public Methods
|
||||
|
||||
public OptionsWindow() : this(new DockContent())
|
||||
{
|
||||
}
|
||||
|
||||
public OptionsWindow(DockContent panel)
|
||||
{
|
||||
WindowType = WindowType.Options;
|
||||
DockPnl = panel;
|
||||
InitializeComponent();
|
||||
Icon = Resources.ImageConverter.GetImageAsIcon(Properties.Resources.Settings_16x);
|
||||
FontOverrider.FontOverride(this);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Form Stuff
|
||||
|
||||
private void Options_Load(object sender, EventArgs e)
|
||||
{
|
||||
ApplyTheme();
|
||||
ThemeManager.getInstance().ThemeChanged += ApplyTheme;
|
||||
ApplyLanguage();
|
||||
LoadOptionsForm();
|
||||
}
|
||||
|
||||
private new void ApplyTheme()
|
||||
{
|
||||
if (!ThemeManager.getInstance().ActiveAndExtended) return;
|
||||
base.ApplyTheme();
|
||||
}
|
||||
|
||||
private void ApplyLanguage()
|
||||
{
|
||||
Text = Language.Options;
|
||||
TabText = Language.Options;
|
||||
}
|
||||
|
||||
private void LoadOptionsForm()
|
||||
{
|
||||
if (_optionsForm == null || _optionsForm.IsDisposed)
|
||||
{
|
||||
_optionsForm = FrmMain.OptionsForm;
|
||||
_optionsForm.TopLevel = false;
|
||||
_optionsForm.FormBorderStyle = FormBorderStyle.None;
|
||||
_optionsForm.Dock = DockStyle.Fill;
|
||||
Controls.Add(_optionsForm);
|
||||
_optionsForm.Show();
|
||||
}
|
||||
}
|
||||
|
||||
public void SetActivatedPage(string pageName)
|
||||
{
|
||||
_optionsForm?.SetActivatedPage(pageName);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private void InitializeComponent()
|
||||
{
|
||||
SuspendLayout();
|
||||
//
|
||||
// OptionsWindow
|
||||
//
|
||||
ClientSize = new System.Drawing.Size(800, 600);
|
||||
Name = "OptionsWindow";
|
||||
Text = Language.Options;
|
||||
TabText = Language.Options;
|
||||
Load += Options_Load;
|
||||
ResumeLayout(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user