Mesen-X/GUI.NET/Controls/ctrlTrackbar.cs
2017-09-17 00:54:30 -04:00

77 lines
1.5 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Mesen.GUI.Controls
{
public partial class ctrlTrackbar : BaseControl
{
public event EventHandler ValueChanged
{
add { trackBar.ValueChanged += value; }
remove { trackBar.ValueChanged -= value; }
}
public ctrlTrackbar()
{
InitializeComponent();
if(!Program.IsMono) {
this.trackBar.BackColor = System.Drawing.SystemColors.ControlLightLight;
}
}
public int Minimum
{
get { return trackBar.Minimum; }
set { trackBar.Minimum = value; }
}
public int Maximum
{
get { return trackBar.Maximum; }
set { trackBar.Maximum = value; }
}
[Bindable(true)]
[Browsable(true)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
[EditorBrowsable(EditorBrowsableState.Always)]
public override string Text
{
get { return lblText.Text; }
set { lblText.Text = value; }
}
public int Value
{
get { return trackBar.Value; }
set
{
trackBar.Value = value;
UpdateText();
}
}
private void UpdateText()
{
if(this.Minimum == 0) {
lblValue.Text = trackBar.Value.ToString() + "%";
} else {
lblValue.Text = (trackBar.Value / 10.0).ToString() + "dB";
lblValue.Font = new Font("Microsoft Sans Serif", 6.75F);
}
}
private void trackBar_ValueChanged(object sender, EventArgs e)
{
UpdateText();
}
}
}