You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
169 lines
7.2 KiB
169 lines
7.2 KiB
using System; |
|
using System.Collections.Generic; |
|
using System.ComponentModel; |
|
using System.Data; |
|
using System.Drawing; |
|
using System.Text; |
|
using System.Windows.Forms; |
|
using System.Xml; |
|
|
|
namespace ArdupilotMega |
|
{ |
|
public partial class Gentemp : Form |
|
{ |
|
public Gentemp() |
|
{ |
|
InitializeComponent(); |
|
|
|
string item = ""; |
|
string name = ""; |
|
int locx = 0; |
|
int locy = 0; |
|
int sizeh = 0; |
|
int sizew = 0; |
|
string text = ""; |
|
string tooltip = ""; |
|
string parent = ""; |
|
string type = ""; |
|
|
|
|
|
XmlTextReader scriptXmlReader = new XmlTextReader("APM_config_screen.xml"); |
|
scriptXmlReader.WhitespaceHandling = WhitespaceHandling.None; |
|
|
|
while (scriptXmlReader.Read()) |
|
{ |
|
switch (scriptXmlReader.NodeType) |
|
{ |
|
case XmlNodeType.Element: |
|
item = scriptXmlReader.Name; |
|
break; |
|
|
|
case XmlNodeType.Text: |
|
switch (item) |
|
{ |
|
case "Name": |
|
name = scriptXmlReader.Value; |
|
break; |
|
case "Location.X": |
|
locx = int.Parse(scriptXmlReader.Value); |
|
break; |
|
case "Location.Y": |
|
locy = int.Parse(scriptXmlReader.Value); |
|
break; |
|
case "Size.Width": |
|
sizew = int.Parse(scriptXmlReader.Value); |
|
break; |
|
case "Size.Height": |
|
sizeh = int.Parse(scriptXmlReader.Value); |
|
break; |
|
case "Text": |
|
text = scriptXmlReader.Value; |
|
break; |
|
case "ToolTip": |
|
tooltip = scriptXmlReader.Value; |
|
break; |
|
case "Parent": |
|
parent = scriptXmlReader.Value; |
|
break; |
|
case "Type": |
|
type = scriptXmlReader.Value; |
|
break; |
|
} |
|
break; |
|
|
|
case XmlNodeType.EndElement: |
|
item = scriptXmlReader.Name; |
|
if (item == "Object") |
|
{ |
|
switch (type) { |
|
case "System.Windows.Forms.Button": |
|
Button but = new Button(); |
|
but.Parent = FindControlByName(parent); |
|
but.Name = name; |
|
but.Text = text; |
|
but.Size = new Size(sizew,sizeh); |
|
but.Location = new Point(locx,locy); |
|
but.Parent.Controls.Add(but); |
|
break; |
|
case "System.Windows.Forms.Label": |
|
Label lbl = new Label(); |
|
lbl.Parent = FindControlByName(parent); |
|
lbl.Name = name; |
|
lbl.Text = text; |
|
lbl.Size = new Size(sizew, sizeh); |
|
lbl.Location = new Point(locx, locy); |
|
|
|
lbl.Parent.Controls.Add(lbl); |
|
break; |
|
case "System.Windows.Forms.GroupBox": |
|
GroupBox Grp = new GroupBox(); |
|
Grp.Parent = FindControlByName(parent); |
|
Grp.Name = name; |
|
Grp.Text = text; |
|
Grp.Size = new Size(sizew, sizeh); |
|
Grp.Location = new Point(locx, locy); |
|
|
|
Grp.Parent.Controls.Add(Grp); |
|
break; |
|
case "System.Windows.Forms.TextBox": |
|
TextBox TXT = new TextBox(); |
|
TXT.Parent = FindControlByName(parent); |
|
TXT.Name = name; |
|
TXT.Text = text; |
|
TXT.Size = new Size(sizew, sizeh); |
|
TXT.Location = new Point(locx, locy); |
|
|
|
TXT.Parent.Controls.Add(TXT); |
|
break; |
|
case "System.Windows.Forms.CheckBox": |
|
CheckBox CHK = new CheckBox(); |
|
CHK.Parent = FindControlByName(parent); |
|
CHK.Name = name; |
|
CHK.Text = text; |
|
CHK.Size = new Size(sizew, sizeh); |
|
CHK.Location = new Point(locx, locy); |
|
|
|
CHK.Parent.Controls.Add(CHK); |
|
break; |
|
case "System.Windows.Forms.DomainUpDown": |
|
DomainUpDown DUD = new DomainUpDown(); |
|
DUD.Parent = FindControlByName(parent); |
|
DUD.Name = name; |
|
DUD.Text = text; |
|
DUD.Size = new Size(sizew, sizeh); |
|
DUD.Location = new Point(locx, locy); |
|
|
|
DUD.Parent.Controls.Add(DUD); |
|
break; |
|
case "System.Windows.Forms.ComboBox": |
|
ComboBox CMB = new ComboBox(); |
|
CMB.Parent = FindControlByName(parent); |
|
CMB.Name = name; |
|
CMB.Text = text; |
|
CMB.Size = new Size(sizew, sizeh); |
|
CMB.Location = new Point(locx, locy); |
|
|
|
CMB.Parent.Controls.Add(CMB); |
|
break; |
|
} |
|
} |
|
break; |
|
|
|
default: |
|
|
|
break; |
|
} |
|
} |
|
} |
|
|
|
private Control FindControlByName(string name) |
|
{ |
|
foreach (Control c in this.Controls) |
|
{ |
|
if (c.Name == name) |
|
return c; |
|
} |
|
return this; |
|
} |
|
} |
|
}
|
|
|