278 lines
8.7 KiB
C#
278 lines
8.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using System.Drawing;
|
|
|
|
namespace DevComponents.DotNetBar.Keyboard
|
|
{
|
|
/// <summary>
|
|
/// Defines the VirtualKeyboard colors.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// This class maintains internally a Brush for each Color. These Brush objects are disposed internally when not needed anymore.
|
|
/// A Brush of a certain color is obtained by setting the same Color property to that color.
|
|
/// Maintaining the brushes here helps to have less GDI handles created / destroyed on each drawing of the keyboard.
|
|
/// </remarks>
|
|
public sealed class VirtualKeyboardColorTable : IDisposable
|
|
{
|
|
/// <summary>
|
|
/// Creates a new color table for the VirtualKeyoard.
|
|
/// </summary>
|
|
public VirtualKeyboardColorTable()
|
|
{
|
|
_BackgroundBrush = new SolidBrush(BackgroundColor);
|
|
_KeysBrush = new SolidBrush(KeysColor);
|
|
_LightKeysBrush = new SolidBrush(LightKeysColor);
|
|
_DarkKeysBrush = new SolidBrush(DarkKeysColor);
|
|
_PressedKeysBrush = new SolidBrush(PressedKeysColor);
|
|
_TextBrush = new SolidBrush(TextColor);
|
|
_DownKeysBrush = new SolidBrush(DownKeysColor);
|
|
_DownTextBrush = new SolidBrush(DownTextColor);
|
|
_TopBarTextBrush = new SolidBrush(TopBarTextColor);
|
|
_ToggleTextBrush = new SolidBrush(ToggleTextColor);
|
|
}
|
|
|
|
private static void ReCreateBrush(ref Brush brush, Color color)
|
|
{
|
|
if (brush != null)
|
|
brush.Dispose();
|
|
|
|
brush = new SolidBrush(color);
|
|
}
|
|
|
|
|
|
private Color _BackgroundColor = Color.Black;
|
|
/// <summary>
|
|
/// Gets or sets the color used to draw the background of the keyboard.
|
|
/// </summary>
|
|
public Color BackgroundColor
|
|
{
|
|
get { return _BackgroundColor; }
|
|
set { _BackgroundColor = value; ReCreateBrush(ref _BackgroundBrush, _BackgroundColor); }
|
|
}
|
|
|
|
private Brush _BackgroundBrush;
|
|
/// <summary>
|
|
/// Gets a brush used for drawing the background of the keyboard.
|
|
/// </summary>
|
|
public Brush BackgroundBrush
|
|
{
|
|
get { return _BackgroundBrush; }
|
|
}
|
|
|
|
|
|
private Color _KeysColor = Color.FromArgb(0x30, 0x2f, 0x37);
|
|
/// <summary>
|
|
/// Gets or sets the color used for drawing normal keys.
|
|
/// </summary>
|
|
public Color KeysColor
|
|
{
|
|
get { return _KeysColor; }
|
|
set { _KeysColor = value; ReCreateBrush(ref _KeysBrush, _KeysColor); }
|
|
}
|
|
|
|
private Brush _KeysBrush;
|
|
/// <summary>
|
|
/// Gets a brush used for drawing normal keys.
|
|
/// </summary>
|
|
public Brush KeysBrush
|
|
{
|
|
get { return _KeysBrush; }
|
|
}
|
|
|
|
|
|
private Color _LightKeysColor = Color.FromArgb(0x45, 0x44, 0x4c);
|
|
/// <summary>
|
|
/// Gets or sets the color used for drawing light keys.
|
|
/// </summary>
|
|
public Color LightKeysColor
|
|
{
|
|
get { return _LightKeysColor; }
|
|
set { _LightKeysColor = value; ReCreateBrush(ref _LightKeysBrush, _LightKeysColor); }
|
|
}
|
|
|
|
private Brush _LightKeysBrush;
|
|
/// <summary>
|
|
/// Gets a brush used for drawing light keys.
|
|
/// </summary>
|
|
public Brush LightKeysBrush
|
|
{
|
|
get { return _LightKeysBrush; }
|
|
}
|
|
|
|
|
|
private Color _DarkKeysColor = Color.FromArgb(0x1d, 0x1c, 0x21);
|
|
/// <summary>
|
|
/// Gets or sets the color used for drawing dark keys.
|
|
/// </summary>
|
|
public Color DarkKeysColor
|
|
{
|
|
get { return _DarkKeysColor; }
|
|
set { _DarkKeysColor = value; ReCreateBrush(ref _DarkKeysBrush, _DarkKeysColor); }
|
|
}
|
|
|
|
private Brush _DarkKeysBrush;
|
|
/// <summary>
|
|
/// Gets a brush used for drawing dark keys.
|
|
/// </summary>
|
|
public Brush DarkKeysBrush
|
|
{
|
|
get { return _DarkKeysBrush; }
|
|
}
|
|
|
|
|
|
private Color _PressedKeysColor = Color.FromArgb(0x10, 0xa1, 0x51);
|
|
/// <summary>
|
|
/// Gets or sets a brush used for drawing pressed keys.
|
|
/// </summary>
|
|
public Color PressedKeysColor
|
|
{
|
|
get { return _PressedKeysColor; }
|
|
set { _PressedKeysColor = value; ReCreateBrush(ref _PressedKeysBrush, _PressedKeysColor); }
|
|
}
|
|
|
|
private Brush _PressedKeysBrush;
|
|
/// <summary>
|
|
/// Gets a brush used for drawing pressed keys.
|
|
/// </summary>
|
|
public Brush PressedKeysBrush
|
|
{
|
|
get { return _PressedKeysBrush; }
|
|
}
|
|
|
|
|
|
private Color _DownKeysColor = Color.White;
|
|
/// <summary>
|
|
/// Gets or sets a brush used for drawing pressed key when the key is down.
|
|
/// </summary>
|
|
public Color DownKeysColor
|
|
{
|
|
get { return _DownKeysColor; }
|
|
set { _DownKeysColor = value; ReCreateBrush(ref _DownKeysBrush, _DownKeysColor); }
|
|
}
|
|
|
|
private Brush _DownKeysBrush;
|
|
/// <summary>
|
|
/// Gets a brush used for drawing pressed key when the key is down.
|
|
/// </summary>
|
|
public Brush DownKeysBrush
|
|
{
|
|
get { return _DownKeysBrush; }
|
|
}
|
|
|
|
|
|
private Color _TextColor = Color.White;
|
|
/// <summary>
|
|
/// Gets or sets a color used for drawing the text on the keys.
|
|
/// </summary>
|
|
public Color TextColor
|
|
{
|
|
get { return _TextColor; }
|
|
set { _TextColor = value; ReCreateBrush(ref _TextBrush, _TextColor); }
|
|
}
|
|
|
|
private Brush _TextBrush;
|
|
/// <summary>
|
|
/// Gets a brush used for drawing the text on the keys.
|
|
/// </summary>
|
|
public Brush TextBrush
|
|
{
|
|
get { return _TextBrush; }
|
|
}
|
|
|
|
|
|
private Color _DownTextColor = Color.FromArgb(0x20, 0x20, 0x20);
|
|
/// <summary>
|
|
/// Gets or sets a color used for drawing the text on a key when the key is down.
|
|
/// </summary>
|
|
public Color DownTextColor
|
|
{
|
|
get { return _DownTextColor; }
|
|
set { _DownTextColor = value; ReCreateBrush(ref _DownTextBrush, _DownTextColor); }
|
|
}
|
|
|
|
private Brush _DownTextBrush;
|
|
/// <summary>
|
|
/// Gets a brush used for drawing the text on a key when the key is down.
|
|
/// </summary>
|
|
public Brush DownTextBrush
|
|
{
|
|
get { return _DownTextBrush; }
|
|
}
|
|
|
|
|
|
private Color _TopBarTextColor = Color.White;
|
|
/// <summary>
|
|
/// Gets or sets a color used for drawing the text on the top bar.
|
|
/// </summary>
|
|
public Color TopBarTextColor
|
|
{
|
|
get { return _TopBarTextColor; }
|
|
set { _TopBarTextColor = value; ReCreateBrush(ref _TopBarTextBrush, _TopBarTextColor); }
|
|
}
|
|
|
|
private Brush _TopBarTextBrush;
|
|
/// <summary>
|
|
/// Gets a brush used for drawing the text on the top bar.
|
|
/// </summary>
|
|
public Brush TopBarTextBrush
|
|
{
|
|
get { return _TopBarTextBrush; }
|
|
}
|
|
|
|
|
|
private Color _ToggleTextColor = Color.Green;
|
|
/// <summary>
|
|
/// Gets or sets a color used for drawing the text on a key when the key is in its toggled state.
|
|
/// </summary>
|
|
public Color ToggleTextColor
|
|
{
|
|
get { return _ToggleTextColor; }
|
|
set { _ToggleTextColor = value; ReCreateBrush(ref _ToggleTextBrush, _ToggleTextColor); }
|
|
}
|
|
|
|
private Brush _ToggleTextBrush;
|
|
/// <summary>
|
|
/// Gets a brush used for drawing the text on a key when the key is in its toggled state.
|
|
/// </summary>
|
|
public Brush ToggleTextBrush
|
|
{
|
|
get { return _ToggleTextBrush; }
|
|
}
|
|
|
|
|
|
public void Dispose()
|
|
{
|
|
if (_BackgroundBrush != null)
|
|
_BackgroundBrush.Dispose();
|
|
|
|
if (_KeysBrush != null)
|
|
_KeysBrush.Dispose();
|
|
|
|
if (_LightKeysBrush != null)
|
|
_LightKeysBrush.Dispose();
|
|
|
|
if (_DarkKeysBrush != null)
|
|
_DarkKeysBrush.Dispose();
|
|
|
|
if (_PressedKeysBrush != null)
|
|
_PressedKeysBrush.Dispose();
|
|
|
|
if (_TextBrush != null)
|
|
_TextBrush.Dispose();
|
|
|
|
if (_DownTextBrush != null)
|
|
_DownTextBrush.Dispose();
|
|
|
|
if (_DownKeysBrush != null)
|
|
_DownKeysBrush.Dispose();
|
|
|
|
if (_TopBarTextBrush != null)
|
|
_TopBarTextBrush.Dispose();
|
|
|
|
if (_ToggleTextBrush != null)
|
|
_ToggleTextBrush.Dispose();
|
|
}
|
|
}
|
|
}
|