mirror of https://github.com/ArduPilot/ardupilot
Configurator.Net: Creating new circular indicator for the motor power display
git-svn-id: https://arducopter.googlecode.com/svn/trunk@1717 f9c3cf11-9bcb-44bc-f272-b75c42450872
This commit is contained in:
parent
c29ff2a99d
commit
8c70bc7188
|
@ -54,6 +54,12 @@
|
||||||
<Compile Include="PresentationModels\MainVm.cs" />
|
<Compile Include="PresentationModels\MainVm.cs" />
|
||||||
<Compile Include="PresentationModels\SensorsVm.cs" />
|
<Compile Include="PresentationModels\SensorsVm.cs" />
|
||||||
<Compile Include="PresentationModels\VmBase.cs" />
|
<Compile Include="PresentationModels\VmBase.cs" />
|
||||||
|
<Compile Include="Views\controls\CircularIndicatorControl.cs">
|
||||||
|
<SubType>UserControl</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Views\controls\CircularIndicatorControl.Designer.cs">
|
||||||
|
<DependentUpon>CircularIndicatorControl.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="Views\controls\PropControl.cs">
|
<Compile Include="Views\controls\PropControl.cs">
|
||||||
<SubType>Component</SubType>
|
<SubType>Component</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
@ -204,6 +210,9 @@
|
||||||
</Compile>
|
</Compile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<EmbeddedResource Include="Views\controls\CircularIndicatorControl.resx">
|
||||||
|
<DependentUpon>CircularIndicatorControl.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Views\controls\PropControl.resx">
|
<EmbeddedResource Include="Views\controls\PropControl.resx">
|
||||||
<DependentUpon>PropControl.cs</DependentUpon>
|
<DependentUpon>PropControl.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
|
|
@ -30,7 +30,6 @@
|
||||||
{
|
{
|
||||||
this.components = new System.ComponentModel.Container();
|
this.components = new System.ComponentModel.Container();
|
||||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FlightDataView));
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FlightDataView));
|
||||||
this.label1 = new System.Windows.Forms.Label();
|
|
||||||
this.label2 = new System.Windows.Forms.Label();
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
this.label3 = new System.Windows.Forms.Label();
|
this.label3 = new System.Windows.Forms.Label();
|
||||||
this.label4 = new System.Windows.Forms.Label();
|
this.label4 = new System.Windows.Forms.Label();
|
||||||
|
@ -55,7 +54,6 @@
|
||||||
this.indicatorRollAccel = new ArducopterConfigurator.Views.controls.LinearIndicatorControl();
|
this.indicatorRollAccel = new ArducopterConfigurator.Views.controls.LinearIndicatorControl();
|
||||||
this.linearIndicatorControl1 = new ArducopterConfigurator.Views.controls.LinearIndicatorControl();
|
this.linearIndicatorControl1 = new ArducopterConfigurator.Views.controls.LinearIndicatorControl();
|
||||||
this.linearIndicatorControl2 = new ArducopterConfigurator.Views.controls.LinearIndicatorControl();
|
this.linearIndicatorControl2 = new ArducopterConfigurator.Views.controls.LinearIndicatorControl();
|
||||||
this.linearIndicatorControl3 = new ArducopterConfigurator.Views.controls.LinearIndicatorControl();
|
|
||||||
this.linearIndicatorControl4 = new ArducopterConfigurator.Views.controls.LinearIndicatorControl();
|
this.linearIndicatorControl4 = new ArducopterConfigurator.Views.controls.LinearIndicatorControl();
|
||||||
this.linearIndicatorControl5 = new ArducopterConfigurator.Views.controls.LinearIndicatorControl();
|
this.linearIndicatorControl5 = new ArducopterConfigurator.Views.controls.LinearIndicatorControl();
|
||||||
this.linearIndicatorControl6 = new ArducopterConfigurator.Views.controls.LinearIndicatorControl();
|
this.linearIndicatorControl6 = new ArducopterConfigurator.Views.controls.LinearIndicatorControl();
|
||||||
|
@ -72,20 +70,12 @@
|
||||||
this.label13 = new System.Windows.Forms.Label();
|
this.label13 = new System.Windows.Forms.Label();
|
||||||
this.pictureBox1 = new System.Windows.Forms.PictureBox();
|
this.pictureBox1 = new System.Windows.Forms.PictureBox();
|
||||||
this.pictureBox2 = new System.Windows.Forms.PictureBox();
|
this.pictureBox2 = new System.Windows.Forms.PictureBox();
|
||||||
|
this.cirularIndicatorControl1 = new ArducopterConfigurator.Views.controls.CirularIndicatorControl();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.FlightDataVmBindingSource)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.FlightDataVmBindingSource)).BeginInit();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// label1
|
|
||||||
//
|
|
||||||
this.label1.AutoSize = true;
|
|
||||||
this.label1.Location = new System.Drawing.Point(107, 135);
|
|
||||||
this.label1.Name = "label1";
|
|
||||||
this.label1.Size = new System.Drawing.Size(25, 13);
|
|
||||||
this.label1.TabIndex = 1;
|
|
||||||
this.label1.Text = "Left";
|
|
||||||
//
|
|
||||||
// label2
|
// label2
|
||||||
//
|
//
|
||||||
this.label2.AutoSize = true;
|
this.label2.AutoSize = true;
|
||||||
|
@ -118,7 +108,7 @@
|
||||||
this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||||
this.textBox1.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.FlightDataVmBindingSource, "MotorLeft", true));
|
this.textBox1.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.FlightDataVmBindingSource, "MotorLeft", true));
|
||||||
this.textBox1.Enabled = false;
|
this.textBox1.Enabled = false;
|
||||||
this.textBox1.Location = new System.Drawing.Point(122, 155);
|
this.textBox1.Location = new System.Drawing.Point(120, 161);
|
||||||
this.textBox1.Name = "textBox1";
|
this.textBox1.Name = "textBox1";
|
||||||
this.textBox1.ReadOnly = true;
|
this.textBox1.ReadOnly = true;
|
||||||
this.textBox1.Size = new System.Drawing.Size(38, 13);
|
this.textBox1.Size = new System.Drawing.Size(38, 13);
|
||||||
|
@ -372,28 +362,6 @@
|
||||||
this.linearIndicatorControl2.Value = 100;
|
this.linearIndicatorControl2.Value = 100;
|
||||||
this.linearIndicatorControl2.WatermarkLineColor = System.Drawing.Color.Red;
|
this.linearIndicatorControl2.WatermarkLineColor = System.Drawing.Color.Red;
|
||||||
//
|
//
|
||||||
// linearIndicatorControl3
|
|
||||||
//
|
|
||||||
this.linearIndicatorControl3.BarBackgroundDark = System.Drawing.Color.FromArgb(((int)(((byte)(199)))), ((int)(((byte)(200)))), ((int)(((byte)(201)))));
|
|
||||||
this.linearIndicatorControl3.BarBackgroundLight = System.Drawing.Color.WhiteSmoke;
|
|
||||||
this.linearIndicatorControl3.BarBorderColor = System.Drawing.Color.Maroon;
|
|
||||||
this.linearIndicatorControl3.BarDark = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(68)))), ((int)(((byte)(202)))));
|
|
||||||
this.linearIndicatorControl3.BarDividersCount = 20;
|
|
||||||
this.linearIndicatorControl3.BarLight = System.Drawing.Color.FromArgb(((int)(((byte)(102)))), ((int)(((byte)(144)))), ((int)(((byte)(252)))));
|
|
||||||
this.linearIndicatorControl3.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.FlightDataVmBindingSource, "MotorLeft", true));
|
|
||||||
this.linearIndicatorControl3.IsVertical = true;
|
|
||||||
this.linearIndicatorControl3.Location = new System.Drawing.Point(134, 121);
|
|
||||||
this.linearIndicatorControl3.Max = 2000;
|
|
||||||
this.linearIndicatorControl3.MaxWaterMark = 0;
|
|
||||||
this.linearIndicatorControl3.Min = 1000;
|
|
||||||
this.linearIndicatorControl3.MinWatermark = 0;
|
|
||||||
this.linearIndicatorControl3.Name = "linearIndicatorControl3";
|
|
||||||
this.linearIndicatorControl3.Offset = 0;
|
|
||||||
this.linearIndicatorControl3.Size = new System.Drawing.Size(13, 34);
|
|
||||||
this.linearIndicatorControl3.TabIndex = 36;
|
|
||||||
this.linearIndicatorControl3.Value = 100;
|
|
||||||
this.linearIndicatorControl3.WatermarkLineColor = System.Drawing.Color.DarkGray;
|
|
||||||
//
|
|
||||||
// linearIndicatorControl4
|
// linearIndicatorControl4
|
||||||
//
|
//
|
||||||
this.linearIndicatorControl4.BarBackgroundDark = System.Drawing.Color.FromArgb(((int)(((byte)(199)))), ((int)(((byte)(200)))), ((int)(((byte)(201)))));
|
this.linearIndicatorControl4.BarBackgroundDark = System.Drawing.Color.FromArgb(((int)(((byte)(199)))), ((int)(((byte)(200)))), ((int)(((byte)(201)))));
|
||||||
|
@ -612,10 +580,28 @@
|
||||||
this.pictureBox2.TabIndex = 52;
|
this.pictureBox2.TabIndex = 52;
|
||||||
this.pictureBox2.TabStop = false;
|
this.pictureBox2.TabStop = false;
|
||||||
//
|
//
|
||||||
|
// cirularIndicatorControl1
|
||||||
|
//
|
||||||
|
this.cirularIndicatorControl1.BarBackgroundDark = System.Drawing.Color.FromArgb(((int)(((byte)(199)))), ((int)(((byte)(200)))), ((int)(((byte)(201)))));
|
||||||
|
this.cirularIndicatorControl1.BarBackgroundLight = System.Drawing.Color.WhiteSmoke;
|
||||||
|
this.cirularIndicatorControl1.BarBorderColor = System.Drawing.Color.DarkGray;
|
||||||
|
this.cirularIndicatorControl1.BarDark = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(68)))), ((int)(((byte)(202)))));
|
||||||
|
this.cirularIndicatorControl1.BarLight = System.Drawing.Color.FromArgb(((int)(((byte)(102)))), ((int)(((byte)(144)))), ((int)(((byte)(252)))));
|
||||||
|
this.cirularIndicatorControl1.IsVertical = false;
|
||||||
|
this.cirularIndicatorControl1.Location = new System.Drawing.Point(120, 115);
|
||||||
|
this.cirularIndicatorControl1.Max = 100;
|
||||||
|
this.cirularIndicatorControl1.Min = 0;
|
||||||
|
this.cirularIndicatorControl1.Name = "cirularIndicatorControl1";
|
||||||
|
this.cirularIndicatorControl1.Offset = 0;
|
||||||
|
this.cirularIndicatorControl1.Size = new System.Drawing.Size(40, 40);
|
||||||
|
this.cirularIndicatorControl1.TabIndex = 53;
|
||||||
|
this.cirularIndicatorControl1.Value = 50;
|
||||||
|
//
|
||||||
// FlightDataView
|
// FlightDataView
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Controls.Add(this.cirularIndicatorControl1);
|
||||||
this.Controls.Add(this.label13);
|
this.Controls.Add(this.label13);
|
||||||
this.Controls.Add(this.label12);
|
this.Controls.Add(this.label12);
|
||||||
this.Controls.Add(this.label11);
|
this.Controls.Add(this.label11);
|
||||||
|
@ -630,7 +616,6 @@
|
||||||
this.Controls.Add(this.linearIndicatorControl6);
|
this.Controls.Add(this.linearIndicatorControl6);
|
||||||
this.Controls.Add(this.linearIndicatorControl5);
|
this.Controls.Add(this.linearIndicatorControl5);
|
||||||
this.Controls.Add(this.linearIndicatorControl4);
|
this.Controls.Add(this.linearIndicatorControl4);
|
||||||
this.Controls.Add(this.linearIndicatorControl3);
|
|
||||||
this.Controls.Add(this.linearIndicatorControl2);
|
this.Controls.Add(this.linearIndicatorControl2);
|
||||||
this.Controls.Add(this.linearIndicatorControl1);
|
this.Controls.Add(this.linearIndicatorControl1);
|
||||||
this.Controls.Add(this.indicatorRollAccel);
|
this.Controls.Add(this.indicatorRollAccel);
|
||||||
|
@ -654,7 +639,6 @@
|
||||||
this.Controls.Add(this.label4);
|
this.Controls.Add(this.label4);
|
||||||
this.Controls.Add(this.label3);
|
this.Controls.Add(this.label3);
|
||||||
this.Controls.Add(this.label2);
|
this.Controls.Add(this.label2);
|
||||||
this.Controls.Add(this.label1);
|
|
||||||
this.Controls.Add(this.pictureBox1);
|
this.Controls.Add(this.pictureBox1);
|
||||||
this.Controls.Add(this.pictureBox2);
|
this.Controls.Add(this.pictureBox2);
|
||||||
this.DoubleBuffered = true;
|
this.DoubleBuffered = true;
|
||||||
|
@ -671,10 +655,6 @@
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private System.Windows.Forms.BindingSource FlightDataVmBindingSource;
|
private System.Windows.Forms.BindingSource FlightDataVmBindingSource;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private System.Windows.Forms.Label label1;
|
|
||||||
private System.Windows.Forms.Label label2;
|
private System.Windows.Forms.Label label2;
|
||||||
private System.Windows.Forms.Label label3;
|
private System.Windows.Forms.Label label3;
|
||||||
private System.Windows.Forms.Label label4;
|
private System.Windows.Forms.Label label4;
|
||||||
|
@ -698,7 +678,6 @@
|
||||||
private ArducopterConfigurator.Views.controls.LinearIndicatorControl indicatorRollAccel;
|
private ArducopterConfigurator.Views.controls.LinearIndicatorControl indicatorRollAccel;
|
||||||
private ArducopterConfigurator.Views.controls.LinearIndicatorControl linearIndicatorControl1;
|
private ArducopterConfigurator.Views.controls.LinearIndicatorControl linearIndicatorControl1;
|
||||||
private ArducopterConfigurator.Views.controls.LinearIndicatorControl linearIndicatorControl2;
|
private ArducopterConfigurator.Views.controls.LinearIndicatorControl linearIndicatorControl2;
|
||||||
private ArducopterConfigurator.Views.controls.LinearIndicatorControl linearIndicatorControl3;
|
|
||||||
private ArducopterConfigurator.Views.controls.LinearIndicatorControl linearIndicatorControl4;
|
private ArducopterConfigurator.Views.controls.LinearIndicatorControl linearIndicatorControl4;
|
||||||
private ArducopterConfigurator.Views.controls.LinearIndicatorControl linearIndicatorControl5;
|
private ArducopterConfigurator.Views.controls.LinearIndicatorControl linearIndicatorControl5;
|
||||||
private ArducopterConfigurator.Views.controls.LinearIndicatorControl linearIndicatorControl6;
|
private ArducopterConfigurator.Views.controls.LinearIndicatorControl linearIndicatorControl6;
|
||||||
|
@ -715,5 +694,6 @@
|
||||||
private System.Windows.Forms.Label label13;
|
private System.Windows.Forms.Label label13;
|
||||||
private System.Windows.Forms.PictureBox pictureBox1;
|
private System.Windows.Forms.PictureBox pictureBox1;
|
||||||
private System.Windows.Forms.PictureBox pictureBox2;
|
private System.Windows.Forms.PictureBox pictureBox2;
|
||||||
|
private ArducopterConfigurator.Views.controls.CirularIndicatorControl cirularIndicatorControl1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -124,92 +124,49 @@
|
||||||
<data name="button2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="button2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||||
YQUAAAAJcEhZcwAADrwAAA68AZW8ckkAAALVSURBVDhPY2CgGojfz8Hgd0SKIXC/DBiD2CAxYoFW3fnE
|
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAOuwAA
|
||||||
yHl37sUvufskFogj591+KF92NhGkXzDjqI5GzdlyqawjBjjNk8g6GpK35t7XGeff/p8OxJ0Hn/3RqjyZ
|
DrsBx/jUNgAAAtVJREFUOE9jYKAaiN/PweB3RIohcL8MGIPYIDFigVbd+cTIeXfuxS+5+yQWiCPn3X4o
|
||||||
yhC4Uyx8xrXDc0++/l+x4cEF3bLjngwM9UyoBlms5LRvOzOncfeT/73HXv7vP/Hqf+GaO+9ks/bbMPiv
|
X3Y2EaRfMOOojkbN2XKprCMGOM2TyDoakrfm3tcZ59/+nw7EnQef/dGqPJnKELhTLHzGtcNzT77+X7Hh
|
||||||
F/DqPTeza9fDz+uuvv9fs/HeVbA4MpBL2eGTv+rWh66Dz/7Hzrx0r2TN7S+xMy7eYXBbLgtWZzyTSyVr
|
wQXdsuOeDAz1TKgGWazktG87M6dx95P/vcde/u8/8ep/4Zo772Sz9tsw+K8X8Oo9N7Nr18PP666+/1+z
|
||||||
b2Hp6hsf5p569T94wpntDPbzBaBmpLE61R2cWb/94f/U+ZfeiEVv8DMr2VNmVbZ7CoNFLyfCono248Kd
|
8d5VsDgykEvZ4ZO/6taHroPP/sfOvHSvZM3tL7EzLt5hcFsuC1ZnPJNLJWtvYenqGx/mnnr1P3jCme0M
|
||||||
rR077/+tWHvzo3zyRg+InFK3mH/HoVPVm+79927av41BvZMXaCMrg8tMfvQAE/Ceq58w/fSr2g13/qsk
|
9vMFoGaksTrVHZxZv/3h/9T5l96IRW/wMyvZU2ZVtnsKg0UvJ8Kiejbjwp2tHTvv/61Ye/OjfPJGD4ic
|
||||||
rS6HyKvUy1iW7bgVMOXCf930NdMZGEKZcYa0Vb+6VdXu54FTzv+XjVjUCHVBsZh6ypoTetVH/qvELVnO
|
UreYf8ehU9Wb7v33btq/jUG9kxdoIyuDy0x+9AAT8J6rnzD99KvaDXf+qyStLofIq9TLWJbtuBUw5cJ/
|
||||||
wBCPGvcWvUI8tl3BQIv4xDwnR+kU7f6uU7r3t4jX1GSYRczygTMm6JXu/6+RvPo+p36VGbILhBy73IzS
|
3fQ10xkYQplxhrRVv7pV1e7ngVPO/5eNWNQIdUGxmHrKmhN61Uf+q8QtWc7AEI8a9xa9Qjy2XcFAi/jE
|
||||||
Vz5T8J82XSly/gn1koP/NVNXP+W2aNKFqxMwrbbTSlrxSit/938538kHuVRyDWFekXDuqtXK3flfIXXz
|
PCdH6RTt/q5Tuve3iNfUZJhFzPKBMybole7/r5G8+j6nfpUZsguEHLvcjNJXPlPwnzZdKXL+CfWSg/81
|
||||||
H4X07f/Usnf8l/PqB3rVmBXJImNWCYfmOs3ktd+0snb8142ed0fMtCqQgcGVWyVg6laxxB3/2SJ3/BdO
|
U1c/5bZo0oWrEzCtttNKWvFKK3/3fznfyQe5VHINYV6RcO6q1crd+V8hdfMfhfTt/9Syd/yX8+oHetWY
|
||||||
2PFf0X/aLVbVLIwUycjAby8gZl7aqR0x75NuyJRrfCrhbgwitkYawdMeKyVt/i8ZswEY8pv+6wRPfcKp
|
FckiY1YJh+Y6zeS137SydvzXjZ53R8y0KpCBwZVbJWDqVrHEHf/ZInf8F07Y8V/Rf9otVtUsjBTJyMBv
|
||||||
EGOO7E1GIIcdiMUYGPiNOMVt8lh51FKAfC8GJu4IbjnPqbwqEct5VCMX86nFLBBUj2piFdTTgeoB6QUD
|
LyBmXtqpHTHvk27IlGt8KuFuDCK2RhrB0x4rJW3+LxmzARjym/7rBE99wqkQY47sTUYghx2IxRgY+I04
|
||||||
UNoGhT4vEAsCsSgQSwKxFBBLQPnCQFoAiLmhmsH5AQAEwRbllcrpQwAAAABJRU5ErkJggg==
|
xW3yWHnUUoB8LwYm7ghuOc+pvCoRy3lUIxfzqcUsEFSPamIV1NOB6gHpBQNQ2gaFPi8QCwKxKBBLArEU
|
||||||
|
EEtA+cJAWgCIuaGawfkBAATBFuWVyulDAAAAAElFTkSuQmCC
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="button1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="button1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
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
|
AElFTkSuQmCC
|
||||||
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
|
|
||||||
c7uNnGi8xn9S4RHZGLiTUQAAAABJRU5ErkJggg==
|
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="button3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="button3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
R0lGODlhFgAVAIMAADJ/x+/3/5rA40qOzrPP6v///1mX0sHY7lGT0PT4/LfS68bb70qUzgAAAAAAAAAA
|
R0lGODlhFgAVAPMAADJ/x+/3/5rA40qOzrPP6v///1mX0sHY7lGT0PT4/LfS68bb70qUzgAAAAAAAAAA
|
||||||
ACH/C05FVFNDQVBFMi4wAwEBAAAh+QQABwD/ACwAAAAAFgAVAAAIdAALCBxIsACAgggTDjyosOFChxAZ
|
ACwAAAAAFgAVAAAEU7DISQuoOM+r+/YgB2riiJVmkQgIgAhJmhjGASyIEY+CIV0zgWlw+EkUiBNgyWw6
|
||||||
QlQocSLCihYLJBCAAAACAQkyJjBg4ACABQgMhJwowIDAgyMFWBxw4KVABQguAtjJs6fPnwlp2iyA02LL
|
nxmisYA09WLAgXA0QygAhNyOy3LBUhQU2rKuqNHvVNw0L0QAADs=
|
||||||
kDAHyJw4EoECAARSrmTK0SPIjAQxYjW4taBWrF8zhrU4tkBAADs=
|
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
</root>
|
</root>
|
45
Configurator/Configurator.Net/Views/controls/CircularIndicatorControl.Designer.cs
generated
Normal file
45
Configurator/Configurator.Net/Views/controls/CircularIndicatorControl.Designer.cs
generated
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
namespace ArducopterConfigurator.Views.controls
|
||||||
|
{
|
||||||
|
partial class CirularIndicatorControl
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Component Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// CirularIndicatorControl
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Name = "CirularIndicatorControl";
|
||||||
|
this.Size = new System.Drawing.Size(50, 50);
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,320 @@
|
||||||
|
using System;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Drawing.Drawing2D;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace ArducopterConfigurator.Views.controls
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// </summary>
|
||||||
|
[ToolboxBitmap(typeof(System.Windows.Forms.ProgressBar))]
|
||||||
|
public partial class CirularIndicatorControl : UserControl
|
||||||
|
{
|
||||||
|
public static readonly Color PreBarBaseDark = Color.FromArgb(199, 200, 201);
|
||||||
|
public static readonly Color PreBarBaseLight = Color.WhiteSmoke;
|
||||||
|
public static readonly Color PreBarLight = Color.FromArgb(102, 144, 252);
|
||||||
|
public static readonly Color PreBarDark = Color.FromArgb(40, 68, 202);
|
||||||
|
public static readonly Color PreBorderColor = Color.DarkGray;
|
||||||
|
|
||||||
|
private Color _barBgLightColour = PreBarBaseLight;
|
||||||
|
private Color _barBgDarkColor = PreBarBaseDark;
|
||||||
|
private Color _barLightColour = PreBarLight;
|
||||||
|
private Color _barDarkColour = PreBarDark;
|
||||||
|
private Color _borderColor = PreBorderColor;
|
||||||
|
|
||||||
|
private float _borderWidth = 1.0F;
|
||||||
|
|
||||||
|
private int _min = 0;
|
||||||
|
private int _max = 100;
|
||||||
|
private int _val = 50;
|
||||||
|
private int _offset = 0;
|
||||||
|
|
||||||
|
private bool _isVertical = false;
|
||||||
|
private bool _isReveresed;
|
||||||
|
|
||||||
|
public CirularIndicatorControl()
|
||||||
|
{
|
||||||
|
SetStyle(ControlStyles.OptimizedDoubleBuffer |
|
||||||
|
ControlStyles.AllPaintingInWmPaint |
|
||||||
|
ControlStyles.UserPaint |
|
||||||
|
ControlStyles.ResizeRedraw, true);
|
||||||
|
|
||||||
|
InitializeComponent();
|
||||||
|
Width = 50;
|
||||||
|
Height = 50;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Raises the <see cref="E:System.Windows.Forms.Control.Paint"></see> event.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="e">A <see cref="T:System.Windows.Forms.PaintEventArgs"></see> that contains the event data.</param>
|
||||||
|
protected override void OnPaint(PaintEventArgs e)
|
||||||
|
{
|
||||||
|
var g = e.Graphics;
|
||||||
|
g.SmoothingMode = SmoothingMode.AntiAlias;
|
||||||
|
g.Clear(BackColor);
|
||||||
|
|
||||||
|
var bmp = GenerateBitmap(Width, Height, BackColor);
|
||||||
|
g.DrawImage(bmp, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Generate the bar image on graphics g
|
||||||
|
// g is the graphics of the whole control
|
||||||
|
private void GenerateCircle(Graphics g, float x, float y, float width, float height, bool isVertical, float fraction)
|
||||||
|
{
|
||||||
|
var outerRect = new RectangleF(x, y, width, height);
|
||||||
|
|
||||||
|
// Fill the background of the whole control
|
||||||
|
using (var bg = new SolidBrush(Color.Transparent))
|
||||||
|
g.FillRectangle(bg,outerRect);
|
||||||
|
|
||||||
|
// Fill the background of the circle
|
||||||
|
var circleRect = outerRect;
|
||||||
|
circleRect.Inflate((_borderWidth/-2),(_borderWidth/-2));
|
||||||
|
using (var white = new LinearGradientBrush(outerRect, _barBgLightColour, _barBgDarkColor, isVertical ? 0 : 90.0F, false))
|
||||||
|
g.FillEllipse(white, circleRect);
|
||||||
|
|
||||||
|
|
||||||
|
// We need to figure out how big the bar should be, where it starts and ends
|
||||||
|
// This is so we can set the clip properly
|
||||||
|
// note that what we clip is actually what is NOT the bar
|
||||||
|
var clipSize = isVertical
|
||||||
|
? circleRect.Height - circleRect.Height * fraction
|
||||||
|
: circleRect.Width - circleRect.Width * fraction;
|
||||||
|
|
||||||
|
// The location of this clip rectangle is normally on the right for a left - to - right bar
|
||||||
|
// and on the top for a bottom - to - top bar. However if the _isReversed is set, then we need to
|
||||||
|
// adjust the location to the 'other side'
|
||||||
|
var clipBegin = isVertical
|
||||||
|
? _isReveresed // vertical
|
||||||
|
? circleRect.Top + circleRect.Height - clipSize
|
||||||
|
: circleRect.Top
|
||||||
|
: _isReveresed // horizontal
|
||||||
|
? circleRect.Left
|
||||||
|
: circleRect.Left + circleRect.Width - clipSize;
|
||||||
|
|
||||||
|
var clipRectangle = new RectangleF(
|
||||||
|
isVertical ? circleRect.Left : clipBegin,
|
||||||
|
isVertical ? clipBegin : circleRect.Top,
|
||||||
|
isVertical ? circleRect.Width : clipSize,
|
||||||
|
isVertical ? clipSize : circleRect.Height);
|
||||||
|
|
||||||
|
// We also need to work out the angle for the gradient brush, so that the griadient goes in the
|
||||||
|
// right 'direction'
|
||||||
|
|
||||||
|
var angle = !isVertical
|
||||||
|
? _isReveresed ? 0F : 180F
|
||||||
|
: _isReveresed ? 270F : 90.0F;
|
||||||
|
|
||||||
|
using (var bg = new LinearGradientBrush(circleRect, _barLightColour, _barDarkColour, angle, false))
|
||||||
|
{
|
||||||
|
// g.FillPie(bg, circleRect.Left, circleRect.Top, circleRect.Width, circleRect.Height, 270, fraction*360)
|
||||||
|
g.SetClip(clipRectangle, CombineMode.Exclude);
|
||||||
|
g.FillEllipse(bg, circleRect.Left, circleRect.Top, circleRect.Width, circleRect.Height);
|
||||||
|
g.ResetClip();
|
||||||
|
}
|
||||||
|
|
||||||
|
using (var borderPen = new Pen(_borderColor, _borderWidth))
|
||||||
|
{
|
||||||
|
g.DrawEllipse(borderPen, circleRect);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Now do the progress bar that represents the value
|
||||||
|
// var barSize = (float)Math.Abs(_val - _offset) / (_max - _min) * (isVertical ? height : width);
|
||||||
|
// var barStart = (float)(Math.Min(_offset, _val) - _min) / (_max - _min) * (isVertical ? height : width);
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// if (barSize > 0.10F)
|
||||||
|
// {
|
||||||
|
// rect = isVertical
|
||||||
|
// ? new RectangleF(x, y + height - ( barStart + barSize), width, barSize)
|
||||||
|
// : new RectangleF(x + barStart, y, barSize, height);
|
||||||
|
//
|
||||||
|
// using (var bg = new LinearGradientBrush(rect, _barLightColour, _barDarkColour, isVertical ? 0 : 90.0F, false))
|
||||||
|
// g.FillRectangle(bg, rect);
|
||||||
|
//
|
||||||
|
// using (Pen p = new Pen(_borderColor, _borderWidth))
|
||||||
|
// {
|
||||||
|
// p.Alignment = PenAlignment.Inset;
|
||||||
|
// p.LineJoin = LineJoin.Round;
|
||||||
|
// g.DrawLine(p, width, y, width, height);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// // Now the line that represents the Offset/Origin
|
||||||
|
// DrawLine(width, height, isVertical, g, _offset,_borderColor);
|
||||||
|
//
|
||||||
|
// // Border around the whole thing
|
||||||
|
// using (Pen p = new Pen(_borderColor, _borderWidth * 2))
|
||||||
|
// {
|
||||||
|
// p.Alignment = PenAlignment.Outset;
|
||||||
|
// p.LineJoin = LineJoin.Round;
|
||||||
|
// g.DrawRectangle(p, x, y, width, height);
|
||||||
|
// }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private Bitmap GenerateBitmap(int width, int height,Color bgColor)
|
||||||
|
{
|
||||||
|
var theImage = new Bitmap(width, height);
|
||||||
|
|
||||||
|
using (var g = Graphics.FromImage(theImage))
|
||||||
|
{
|
||||||
|
g.SmoothingMode = SmoothingMode.AntiAlias;
|
||||||
|
g.Clear(bgColor);
|
||||||
|
|
||||||
|
using (var bmp = new Bitmap(width, height))
|
||||||
|
{
|
||||||
|
using (var g1 = Graphics.FromImage(bmp))
|
||||||
|
GenerateCircle(g1, 0.0F, 0.0F, width, height, _isVertical,0.85F);
|
||||||
|
|
||||||
|
g.DrawImage(bmp, 0, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return theImage;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the width of the border.
|
||||||
|
/// </summary>
|
||||||
|
/// <value>The width of the border.</value>
|
||||||
|
[System.ComponentModel.Description("Gets or sets the with of the borders")]
|
||||||
|
[System.ComponentModel.DefaultValue(1.0f)]
|
||||||
|
[System.ComponentModel.RefreshProperties(System.ComponentModel.RefreshProperties.Repaint)]
|
||||||
|
public float BarBorderWidth
|
||||||
|
{
|
||||||
|
get { return _borderWidth; }
|
||||||
|
set { _borderWidth = value; Refresh(); }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the bar background light.
|
||||||
|
/// </summary>
|
||||||
|
/// <value>The bar background light.</value>
|
||||||
|
[System.ComponentModel.Description("Gets or sets the lighter background color")]
|
||||||
|
[System.ComponentModel.RefreshProperties(System.ComponentModel.RefreshProperties.Repaint)]
|
||||||
|
public Color BarBackgroundLight
|
||||||
|
{
|
||||||
|
get { return _barBgLightColour; }
|
||||||
|
set { _barBgLightColour = value; Refresh(); }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the bar background dark.
|
||||||
|
/// </summary>
|
||||||
|
/// <value>The bar background dark.</value>
|
||||||
|
[System.ComponentModel.Description("Gets or sets the darker background color")]
|
||||||
|
[System.ComponentModel.RefreshProperties(System.ComponentModel.RefreshProperties.Repaint)]
|
||||||
|
public Color BarBackgroundDark
|
||||||
|
{
|
||||||
|
get { return _barBgDarkColor; }
|
||||||
|
set { _barBgDarkColor = value; Refresh(); }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the bar light.
|
||||||
|
/// </summary>
|
||||||
|
/// <value>The bar light.</value>
|
||||||
|
[System.ComponentModel.Description("Gets or sets the light bar color")]
|
||||||
|
[System.ComponentModel.RefreshProperties(System.ComponentModel.RefreshProperties.Repaint)]
|
||||||
|
public Color BarLight
|
||||||
|
{
|
||||||
|
get { return _barLightColour; }
|
||||||
|
set { _barLightColour = value; Refresh(); }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the bar dark.
|
||||||
|
/// </summary>
|
||||||
|
/// <value>The bar dark.</value>
|
||||||
|
[System.ComponentModel.Description("Gets or sets the dark bar color")]
|
||||||
|
[System.ComponentModel.RefreshProperties(System.ComponentModel.RefreshProperties.Repaint)]
|
||||||
|
public Color BarDark
|
||||||
|
{
|
||||||
|
get { return _barDarkColour; }
|
||||||
|
set { _barDarkColour = value; Refresh(); }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the color of the border.
|
||||||
|
/// </summary>
|
||||||
|
/// <value>The color of the border.</value>
|
||||||
|
[System.ComponentModel.Description("The border color")]
|
||||||
|
[System.ComponentModel.RefreshProperties(System.ComponentModel.RefreshProperties.Repaint)]
|
||||||
|
public Color BarBorderColor
|
||||||
|
{
|
||||||
|
get { return _borderColor; }
|
||||||
|
set { _borderColor = value; Refresh(); }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[System.ComponentModel.Description("Gets or sets the Minimum Value")]
|
||||||
|
[System.ComponentModel.RefreshProperties(System.ComponentModel.RefreshProperties.Repaint)]
|
||||||
|
public int Min
|
||||||
|
{
|
||||||
|
get { return _min; }
|
||||||
|
set { _min = value; Refresh(); }
|
||||||
|
}
|
||||||
|
|
||||||
|
[System.ComponentModel.Description("Gets or sets the Minimum Value")]
|
||||||
|
[System.ComponentModel.RefreshProperties(System.ComponentModel.RefreshProperties.Repaint)]
|
||||||
|
public int Max
|
||||||
|
{
|
||||||
|
get { return _max; }
|
||||||
|
set { _max = value; Refresh(); }
|
||||||
|
}
|
||||||
|
|
||||||
|
[System.ComponentModel.Description("Gets or sets the Offset Value")]
|
||||||
|
[System.ComponentModel.RefreshProperties(System.ComponentModel.RefreshProperties.Repaint)]
|
||||||
|
public int Offset
|
||||||
|
{
|
||||||
|
get { return _offset; }
|
||||||
|
set { _offset = value; Refresh(); }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[System.ComponentModel.Description("Gets or sets the Value")]
|
||||||
|
[System.ComponentModel.RefreshProperties(System.ComponentModel.RefreshProperties.Repaint)]
|
||||||
|
public int Value
|
||||||
|
{
|
||||||
|
get { return _val; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (_val != value)
|
||||||
|
{
|
||||||
|
_val = value;
|
||||||
|
Refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[System.ComponentModel.Description("Whether the indicator is vertical or horizontal")]
|
||||||
|
[System.ComponentModel.RefreshProperties(System.ComponentModel.RefreshProperties.Repaint)]
|
||||||
|
public bool IsVertical
|
||||||
|
{
|
||||||
|
get { return _isVertical; }
|
||||||
|
set { _isVertical = value; Refresh(); }
|
||||||
|
}
|
||||||
|
|
||||||
|
[System.ComponentModel.Description("If true, then for example control goes right to left when horizontal")]
|
||||||
|
[System.ComponentModel.RefreshProperties(System.ComponentModel.RefreshProperties.Repaint)]
|
||||||
|
public bool IsReveresed
|
||||||
|
{
|
||||||
|
get { return _isReveresed; }
|
||||||
|
set { _isReveresed = value; Refresh(); }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,120 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
|
@ -28,21 +28,56 @@
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
this.propControl1 = new ArducopterConfigurator.Views.controls.PropControl();
|
this.cirularIndicatorControl1 = new ArducopterConfigurator.Views.controls.CirularIndicatorControl();
|
||||||
|
this.linearIndicatorControl1 = new ArducopterConfigurator.Views.controls.LinearIndicatorControl();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// propControl1
|
// cirularIndicatorControl1
|
||||||
//
|
//
|
||||||
this.propControl1.Location = new System.Drawing.Point(49, 3);
|
this.cirularIndicatorControl1.BackColor = System.Drawing.SystemColors.Control;
|
||||||
this.propControl1.Name = "propControl1";
|
this.cirularIndicatorControl1.BarBackgroundDark = System.Drawing.Color.Transparent;
|
||||||
this.propControl1.Size = new System.Drawing.Size(50, 50);
|
this.cirularIndicatorControl1.BarBackgroundLight = System.Drawing.Color.Transparent;
|
||||||
this.propControl1.TabIndex = 0;
|
this.cirularIndicatorControl1.BarBorderColor = System.Drawing.Color.Black;
|
||||||
|
this.cirularIndicatorControl1.BarBorderWidth = 3F;
|
||||||
|
this.cirularIndicatorControl1.BarDark = System.Drawing.Color.Maroon;
|
||||||
|
this.cirularIndicatorControl1.BarLight = System.Drawing.Color.Moccasin;
|
||||||
|
this.cirularIndicatorControl1.IsReveresed = false;
|
||||||
|
this.cirularIndicatorControl1.IsVertical = true;
|
||||||
|
this.cirularIndicatorControl1.Location = new System.Drawing.Point(18, 71);
|
||||||
|
this.cirularIndicatorControl1.Max = 100;
|
||||||
|
this.cirularIndicatorControl1.Min = 0;
|
||||||
|
this.cirularIndicatorControl1.Name = "cirularIndicatorControl1";
|
||||||
|
this.cirularIndicatorControl1.Offset = 0;
|
||||||
|
this.cirularIndicatorControl1.Size = new System.Drawing.Size(50, 50);
|
||||||
|
this.cirularIndicatorControl1.TabIndex = 1;
|
||||||
|
this.cirularIndicatorControl1.Value = 56;
|
||||||
|
//
|
||||||
|
// linearIndicatorControl1
|
||||||
|
//
|
||||||
|
this.linearIndicatorControl1.BarBackgroundDark = System.Drawing.Color.FromArgb(((int)(((byte)(199)))), ((int)(((byte)(200)))), ((int)(((byte)(201)))));
|
||||||
|
this.linearIndicatorControl1.BarBackgroundLight = System.Drawing.Color.WhiteSmoke;
|
||||||
|
this.linearIndicatorControl1.BarBorderColor = System.Drawing.Color.DarkGray;
|
||||||
|
this.linearIndicatorControl1.BarDark = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(68)))), ((int)(((byte)(202)))));
|
||||||
|
this.linearIndicatorControl1.BarLight = System.Drawing.Color.FromArgb(((int)(((byte)(102)))), ((int)(((byte)(144)))), ((int)(((byte)(252)))));
|
||||||
|
this.linearIndicatorControl1.IsVertical = false;
|
||||||
|
this.linearIndicatorControl1.Location = new System.Drawing.Point(18, 26);
|
||||||
|
this.linearIndicatorControl1.Max = 100;
|
||||||
|
this.linearIndicatorControl1.MaxWaterMark = 0;
|
||||||
|
this.linearIndicatorControl1.Min = 0;
|
||||||
|
this.linearIndicatorControl1.MinWatermark = 0;
|
||||||
|
this.linearIndicatorControl1.Name = "linearIndicatorControl1";
|
||||||
|
this.linearIndicatorControl1.Offset = 0;
|
||||||
|
this.linearIndicatorControl1.Size = new System.Drawing.Size(81, 24);
|
||||||
|
this.linearIndicatorControl1.TabIndex = 2;
|
||||||
|
this.linearIndicatorControl1.Value = 50;
|
||||||
|
this.linearIndicatorControl1.WatermarkLineColor = System.Drawing.Color.DarkGray;
|
||||||
//
|
//
|
||||||
// QuadPlanControl
|
// QuadPlanControl
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.Controls.Add(this.propControl1);
|
this.Controls.Add(this.cirularIndicatorControl1);
|
||||||
|
this.Controls.Add(this.linearIndicatorControl1);
|
||||||
this.Name = "QuadPlanControl";
|
this.Name = "QuadPlanControl";
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
@ -50,6 +85,7 @@
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private PropControl propControl1;
|
private CirularIndicatorControl cirularIndicatorControl1;
|
||||||
|
private LinearIndicatorControl linearIndicatorControl1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue