ardupilot/Tools/ArdupilotMegaPlanner/Controls/QuickView.cs

112 lines
3.2 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.Windows.Forms;
namespace ArdupilotMega.Controls
{
public partial class QuickView : UserControl
{
[System.ComponentModel.Browsable(true)]
public string desc
{
get
{
return labelWithPseudoOpacity1.Text;
}
set
{
if (labelWithPseudoOpacity1.Text == value)
return;
labelWithPseudoOpacity1.Text = value;
}
}
[System.ComponentModel.Browsable(true)]
public double number { get { return double.Parse(labelWithPseudoOpacity2.Text); }
set {
string ans = (value).ToString("0.00");
if (labelWithPseudoOpacity2.Text == ans)
return;
labelWithPseudoOpacity2.Text = ans;
GetFontSize();
}
}
[System.ComponentModel.Browsable(true)]
public Color numberColor { get { return labelWithPseudoOpacity2.ForeColor; } set { if (labelWithPseudoOpacity2.ForeColor == value) return; labelWithPseudoOpacity2.ForeColor = value; } }
public QuickView()
{
InitializeComponent();
labelWithPseudoOpacity1.DoubleClick += new EventHandler(labelWithPseudoOpacity1_DoubleClick);
labelWithPseudoOpacity2.DoubleClick += new EventHandler(labelWithPseudoOpacity2_DoubleClick);
labelWithPseudoOpacity2.DoubleBuffered = true;
}
void labelWithPseudoOpacity2_DoubleClick(object sender, EventArgs e)
{
this.OnDoubleClick(e);
}
void labelWithPseudoOpacity1_DoubleClick(object sender, EventArgs e)
{
this.OnDoubleClick(e);
}
public override void Refresh()
{
if (this.Visible)
base.Refresh();
}
protected override void OnInvalidated(InvalidateEventArgs e)
{
if (this.Visible)
base.OnInvalidated(e);
}
protected override void OnPaint(PaintEventArgs e)
{
if (this.Visible)
base.OnPaint(e);
}
void GetFontSize()
{
Size extent = TextRenderer.MeasureText(labelWithPseudoOpacity2.Text, this.Font);
float hRatio = (labelWithPseudoOpacity2.Height) / (float)(extent.Height);
float wRatio = this.Width / (float)extent.Width;
float ratio = (hRatio < wRatio) ? hRatio : wRatio;
float newSize = this.Font.Size * ratio;
if (newSize < 8)
newSize = 8;
//return newSize;
labelWithPseudoOpacity2.Font = new Font(labelWithPseudoOpacity2.Font.FontFamily, newSize - 2, labelWithPseudoOpacity2.Font.Style);
extent = TextRenderer.MeasureText(labelWithPseudoOpacity2.Text, labelWithPseudoOpacity2.Font);
}
protected override void OnResize(EventArgs e)
{
this.ResizeRedraw = true;
GetFontSize();
base.OnResize(e);
}
}
}