public MpeScreen(MpeScreen window) : base(window) { MpeLog.Debug("MpeScreen(window)"); AllowDrop = true; allowOverlay = window.allowOverlay; defaultControl = window.defaultControl; screenSize = window.screenSize; }
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; }
public override void Load(XPathNodeIterator iterator, MpeParser parser) { MpeLog.Debug("MpeScreen.Load()"); this.parser = parser; XPathNodeIterator i = null; if (iterator == null) { throw new MpeParserException("The given iterator is invalid."); } if (iterator.Current.Name == "controls") { Width = parser.GetInt(iterator, "skin/width", Width); Height = parser.GetInt(iterator, "skin/height", Height); ScreenSize = MpeScreenSize.FromResolution(Width, Height); i = iterator.Current.Select("control[type='image']"); if (i.MoveNext()) { backImage.Load(i, parser); } Id = 0; } else if (iterator.Current.Name == "window") { string stype = parser.GetString(iterator, "type", ""); if (stype == MpeScreenType.Dialog.ToString().ToLower()) { screenType = MpeScreenType.Dialog; } else if (stype == MpeScreenType.OnScreenDisplay.ToString().ToLower()) { screenType = MpeScreenType.OnScreenDisplay; } else { screenType = MpeScreenType.Window; } Id = parser.GetInt(iterator, "id", Id); AllowOverlay = parser.GetBoolean(iterator, "allowoverlay", AllowOverlay); AutohideTopbar = parser.GetBoolean(iterator, "autohidetopbar", AutohideTopbar); DefaultControl = parser.GetInt(iterator, "defaultcontrol", DefaultControl); if (screenType == MpeScreenType.Dialog) { // Initialize the default screen MpeScreen defaultScreen = (MpeScreen)parser.GetControl(MpeControlType.Screen); if (defaultScreen == null) { throw new MpeParserException("Reference screen was never initialized and loaded"); } TextureBack = defaultScreen.TextureBack; Size = defaultScreen.Size; AllowDrop = false; // First create the dialog group MpeGroup dialog = (MpeGroup)parser.CreateControl(MpeControlType.Group); dialog.Id = DialogGroupId; dialog.LayoutStyle = MpeLayoutStyle.Grid; dialog.Parser = Parser; Controls.Add(dialog); // Add all the controls i = iterator.Current.Select("controls/control"); bool first = true; while (i.MoveNext()) { string s = parser.GetString(i, "type", ""); if (first && s == MpeControlType.Image.ToString()) { first = false; dialog.TextureBackImage.Load(i, parser); dialog.Size = dialog.TextureBackImage.Size; dialog.Location = dialog.TextureBackImage.Location; } else { XPathNodeIterator typeIterator = i.Current.SelectChildren("type", ""); if (typeIterator.MoveNext()) { MpeControlType type = MpeControlType.Create(typeIterator.Current.Value); MpeControl c = parser.CreateControl(type); dialog.Controls.Add(c); c.Load(i, parser); c.BringToFront(); } } } } else { AllowDrop = true; i = iterator.Current.Select("controls/control"); bool first = true; while (i.MoveNext()) { string s = parser.GetString(i, "type", ""); if (first && s == MpeControlType.Image.ToString()) { backImage.Load(i, parser); } else { XPathNodeIterator typeIterator = i.Current.SelectChildren("type", ""); if (typeIterator.MoveNext()) { MpeControlType type = MpeControlType.Create(typeIterator.Current.Value); MpeControl c = parser.CreateControl(type); Controls.Add(c); c.Load(i, parser); c.BringToFront(); } } first = false; } } } Modified = false; }
public void SaveScreen(MpeScreen screen, FileInfo screenFile) { if (screen == null) { throw new MpeParserException("Invalid screen control."); } if (screenFile == null) { throw new MpeParserException("Invalid screen file."); } XmlTextWriter writer = null; try { XmlDocument doc = new XmlDocument(); XmlNode node = doc.CreateElement("window"); doc.AppendChild(node); screen.Save(doc, node, this, (MpeScreen) GetControl(MpeControlType.Screen)); writer = new XmlTextWriter(screenFile.FullName, Encoding.UTF8); writer.Formatting = Formatting.Indented; writer.Indentation = 3; doc.WriteTo(writer); writer.Close(); } catch (Exception e) { MpeLog.Debug(e); MpeLog.Error(e); throw new MpeParserException(e.Message); } }
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; }