public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { if (value is String) { string s = (string)value; if (s.IndexOf(",") < 0) { try { int i = int.Parse(s); return(new MpeControlPadding(i)); } catch { MpeLog.Warn("Invalid format for padding property."); throw new ArgumentException("Invalid format for padding property [" + s + "]"); } } else { MpeControlPadding padding = new MpeControlPadding(); try { string[] ss = s.Split(','); if (ss == null || (ss.Length != 4 && ss.Length != 2)) { MpeLog.Warn("Invalid format for padding property [" + s + "]"); throw new ArgumentException("Invalid format for padding property [" + s + "]"); } if (ss.Length == 4) { padding.Left = int.Parse(ss[0].Trim()); padding.Right = int.Parse(ss[1].Trim()); padding.Top = int.Parse(ss[2].Trim()); padding.Bottom = int.Parse(ss[3].Trim()); } else { padding.Left = int.Parse(ss[0].Trim()); padding.Right = padding.Left; padding.Top = int.Parse(ss[1].Trim()); padding.Bottom = padding.Top; } return(padding); } catch (Exception ee) { MpeLog.Debug(ee); MpeLog.Warn("Invalid format for padding property [" + s + "]"); throw new ArgumentException("Invalid format for padding property [" + s + "]"); } } } return(base.ConvertFrom(context, culture, value)); }
public override bool Equals(object obj) { if (obj != null && obj is MpeControlPadding) { MpeControlPadding p = (MpeControlPadding)obj; if (p.Left == Left && p.Right == Right && p.Top == Top && p.Bottom == Bottom) { return(true); } } return(false); }
public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType == typeof(String) && value is MpeControlPadding) { MpeControlPadding padding = (MpeControlPadding)value; if (padding.All) { return(padding.Left.ToString()); } else if (padding.Simple) { return(padding.Left + ", " + padding.Top); } else { return(padding.Left + ", " + padding.Right + ", " + padding.Top + ", " + padding.Bottom); } } return(base.ConvertTo(context, culture, value, destinationType)); }
public override void Load(XPathNodeIterator iterator, MpeParser parser) { MpeLog.Debug("MpeSelectButton.Load()"); base.Load(iterator, parser); this.parser = parser; // Regular Button Properties label.Load(iterator, parser); label.AutoSize = false; label.Size = new Size(parser.GetInt(iterator, "width", Width), parser.GetInt(iterator, "height", Height)); offset = new Point(parser.GetInt(iterator, "textXOff2", offset.X), parser.GetInt(iterator, "textYOff2", offset.Y)); TextureButton = parser.GetImageFile(iterator, "textureNoFocus", TextureButton); TextureButtonFocus = parser.GetImageFile(iterator, "textureFocus", TextureButton); tags.Remove("align"); tags.Remove("font"); tags.Remove("textcolor"); tags.Remove("disabledcolor"); tags.Remove("label"); tags.Remove("textXOff"); tags.Remove("textYOff"); tags.Remove("textureFocus"); tags.Remove("textureNoFocus"); // Select Button Properties int x = parser.GetInt(iterator, "textXOff", TexturePadding.Width); TextureSize = new Size(parser.GetInt(iterator, "textureWidth", textureSize.Width), parser.GetInt(iterator, "textureHeight", textureSize.Height)); TexturePadding = new MpeControlPadding(x/2, (Height - textureSize.Height)/2); TextureBackground = parser.GetImageFile(iterator, "texturebg", TextureBack); TextureLeft = parser.GetImageFile(iterator, "textureLeft", TextureLeft); TextureLeftFocus = parser.GetImageFile(iterator, "textureLeftFocus", TextureLeftFocus); TextureRight = parser.GetImageFile(iterator, "textureRight", TextureRight); TextureRightFocus = parser.GetImageFile(iterator, "textureRightFocus", TextureRightFocus); tags.Remove("texturebg"); tags.Remove("textureLeft"); tags.Remove("textureLeftFocus"); tags.Remove("textureRight"); tags.Remove("textureRightFocus"); tags.Remove("textureWidth"); tags.Remove("textureHeight"); tags.Remove("textXOff2"); tags.Remove("textYOff2"); // Get SubItems items.Values.Clear(); XPathNodeIterator i = iterator.Current.Select("subitems/subitem"); while (i.MoveNext()) { MpeItem item = new MpeItem(); item.Value = i.Current.Value; items.Values.Add(item); } Prepare(); Modified = false; }
public MpeControlPadding GetPadding(XPathNodeIterator iterator, string tagName, MpeControlPadding defaultValue) { XPathNodeIterator i = iterator.Current.Select(tagName); if (i.MoveNext()) { return new MpeControlPadding( GetInt(i, "top", 0), GetInt(i, "right", 0), GetInt(i, "bottom", 0), GetInt(i, "left", 0) ); } return defaultValue; }
public void SetPadding(XmlDocument doc, XmlNode node, string name, MpeControlPadding value) { // First check to see if the element already exists, and if so, remove it XmlNode n = node.SelectSingleNode(name); if (n != null) { node.RemoveChild(n); } XmlElement padding = doc.CreateElement(name); SetInt(doc, padding, "top", value.Top); SetInt(doc, padding, "right", value.Right); SetInt(doc, padding, "bottom", value.Bottom); SetInt(doc, padding, "left", value.Left); node.AppendChild(padding); }
public MpeControlPadding(MpeControlPadding padding) { Set(padding.Left, padding.Right, padding.Top, padding.Bottom); }
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { if (value is String) { string s = (string) value; if (s.IndexOf(",") < 0) { try { int i = int.Parse(s); return new MpeControlPadding(i); } catch { MpeLog.Warn("Invalid format for padding property."); throw new ArgumentException("Invalid format for padding property [" + s + "]"); } } else { MpeControlPadding padding = new MpeControlPadding(); try { string[] ss = s.Split(','); if (ss == null || (ss.Length != 4 && ss.Length != 2)) { MpeLog.Warn("Invalid format for padding property [" + s + "]"); throw new ArgumentException("Invalid format for padding property [" + s + "]"); } if (ss.Length == 4) { padding.Left = int.Parse(ss[0].Trim()); padding.Right = int.Parse(ss[1].Trim()); padding.Top = int.Parse(ss[2].Trim()); padding.Bottom = int.Parse(ss[3].Trim()); } else { padding.Left = int.Parse(ss[0].Trim()); padding.Right = padding.Left; padding.Top = int.Parse(ss[1].Trim()); padding.Bottom = padding.Top; } return padding; } catch (Exception ee) { MpeLog.Debug(ee); MpeLog.Warn("Invalid format for padding property [" + s + "]"); throw new ArgumentException("Invalid format for padding property [" + s + "]"); } } } return base.ConvertFrom(context, culture, value); }
public MpeControl() { MpeLog.Debug("MpeControl()"); preparing = true; SetStyle(ControlStyles.SupportsTransparentBackColor, true); SetStyle(ControlStyles.DoubleBuffer, true); SetStyle(ControlStyles.AllPaintingInWmPaint, true); SetStyle(ControlStyles.UserPaint, true); SetStyle(ControlStyles.ResizeRedraw, true); Animation = new MpeAnimationType(); BackColor = Color.Transparent; Size = new Size(64, 64); Location = new Point(8, 8); alignment = MpeControlAlignment.Left; autoSize = false; borderPen = new Pen(Color.FromArgb(128, 255, 255, 255), 1.0f); borderPen.DashStyle = DashStyle.Dash; controlLock = new MpeControlLock(); controlLock.LockChanged += new MpeControlLock.LockChangedHandler(OnLockChanged); description = ""; diffuseColor = Color.FromArgb(255, 255, 255, 255); dimColor = Color.FromArgb(0x60ffffff); embedded = false; enabled = true; focused = false; id = 0; masked = false; modified = false; onLeft = 0; onRight = 0; onUp = 0; onDown = 0; padding = new MpeControlPadding(0); padding.PaddingChanged += new MpeControlPadding.PaddingChangedHandler(OnPaddingChanged); parser = null; textBrush = new SolidBrush(Color.Black); type = MpeControlType.Empty; visible = "true"; screen = null; tags = new MpeTagCollection(); tags.TagAdded += new MpeTagCollection.TagAddedHandler(OnTagCollectionChanged); tags.TagChanged += new MpeTagCollection.TagChangedHandler(OnTagCollectionChanged); tags.TagRemoved += new MpeTagCollection.TagRemovedHandler(OnTagCollectionChanged); preparing = false; reference = false; }
public MpeControl(MpeControl control) : this() { MpeLog.Debug("MpeControl(control)"); preparing = true; Size = control.Size; Location = control.Location; alignment = control.alignment; autoSize = control.autoSize; borderPen = control.borderPen; controlLock = new MpeControlLock(control.controlLock); controlLock.LockChanged += new MpeControlLock.LockChangedHandler(OnLockChanged); description = control.description; diffuseColor = control.diffuseColor; dimColor = control.dimColor; animation = control.animation; embedded = control.embedded; enabled = control.enabled; focused = control.focused; id = control.id; masked = control.masked; modified = control.modified; onLeft = control.onLeft; onRight = control.onRight; onUp = control.onUp; onDown = control.onDown; padding = new MpeControlPadding(control.padding); padding.PaddingChanged += new MpeControlPadding.PaddingChangedHandler(OnPaddingChanged); parser = control.parser; textBrush = (SolidBrush) control.textBrush.Clone(); type = control.type; visible = control.visible; screen = control.screen; tags = new MpeTagCollection(control.tags); tags.TagAdded += new MpeTagCollection.TagAddedHandler(OnTagCollectionChanged); tags.TagChanged += new MpeTagCollection.TagChangedHandler(OnTagCollectionChanged); tags.TagRemoved += new MpeTagCollection.TagRemovedHandler(OnTagCollectionChanged); preparing = false; }
protected override void OnPaddingChanged() { if (LayoutStyle == MpeLayoutStyle.Grid) { MpeLog.Warn("Padding cannot be changed. The control belongs to a grid layout."); Padding = new MpeControlPadding(0); } else { Prepare(); } }