Files
mRemoteNG/mRemoteV1/UI/Controls/Base/NGTextBox.cs
2019-01-03 09:28:48 -05:00

65 lines
2.2 KiB
C#

using mRemoteNG.Themes;
using System;
using System.Windows.Forms;
namespace mRemoteNG.UI.Controls.Base
{
//This class is only minimally themed as textboxes onPaint are hard to theme (system wm paint control most of the drawing process
//There are some glitches on the initial draw of some controls
public class NGTextBox : TextBox
{
private ThemeManager _themeManager;
public NGTextBox()
{
ThemeManager.getInstance().ThemeChanged += OnCreateControl;
}
protected override void OnCreateControl()
{
base.OnCreateControl();
_themeManager = ThemeManager.getInstance();
if (!_themeManager.ThemingActive) return;
ForeColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("TextBox_Foreground");
BackColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("TextBox_Background");
Invalidate();
}
protected override void OnEnabledChanged(EventArgs e)
{
_themeManager = ThemeManager.getInstance();
if (_themeManager.ThemingActive)
{
_themeManager = ThemeManager.getInstance();
if(_themeManager.ThemingActive)
{
if (Enabled)
{
ForeColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("TextBox_Foreground");
BackColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("TextBox_Background");
}
else
{
BackColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("TextBox_Disabled_Background");
}
}
}
base.OnEnabledChanged(e);
Invalidate();
}
private void InitializeComponent()
{
this.SuspendLayout();
//
// NGTextBox
//
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.ResumeLayout(false);
}
}
}