示例#1
0
 public MpeScreen(MpeScreen window) : base(window)
 {
   MpeLog.Debug("MpeScreen(window)");
   AllowDrop = true;
   allowOverlay = window.allowOverlay;
   defaultControl = window.defaultControl;
   screenSize = window.screenSize;
 }
示例#2
0
 public MpeScreen(MpeScreen window) : base(window)
 {
     MpeLog.Debug("MpeScreen(window)");
     AllowDrop      = true;
     allowOverlay   = window.allowOverlay;
     defaultControl = window.defaultControl;
     screenSize     = window.screenSize;
 }
示例#3
0
 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;
 }
示例#4
0
 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;
 }
示例#5
0
        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;
        }
示例#6
0
    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);
      }
    }
示例#7
0
 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;
 }
示例#8
0
 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;
 }