public MpeFont(MpeFont font)
 {
     textureWorkDir  = font.textureWorkDir;
     name            = font.name;
     systemFont      = new Font(font.systemFont.FontFamily, font.systemFont.Size, font.systemFont.Style);
     spacingPerChar  = font.spacingPerChar;
     startChar       = font.startChar;
     endChar         = font.endChar;
     textureFile     = font.textureFile;
     textureDataFile = font.TextureDataFile;
     if (font.texture != null)
     {
         try
         {
             texture = new Bitmap(font.texture, font.texture.Width, font.texture.Height);
         }
         catch (Exception e)
         {
             MpeLog.Warn(e);
         }
     }
     if (font.textureCoordinates != null)
     {
         textureCoordinates = new float[font.textureCoordinates.GetLength(0), font.textureCoordinates.GetLength(1)];
         for (int i = 0; i < textureCoordinates.GetLength(0); i++)
         {
             for (int j = 0; j < textureCoordinates.GetLength(1); j++)
             {
                 textureCoordinates[i, j] = font.textureCoordinates[i, j];
             }
         }
         ConvertTextureData();
     }
 }
 public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
 {
     if (context.Instance is MpeControl)
     {
         try
         {
             MpeControl mpc = (MpeControl)context.Instance;
             IWindowsFormsEditorService editorService =
                 (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
             MpeTextAreaEditorForm selector = new MpeTextAreaEditorForm((string)value, editorService);
             editorService.DropDownControl(selector);
             if (selector.Result == DialogResult.Cancel)
             {
                 return(value);
             }
             return(selector.TextValue);
         }
         catch (Exception ee)
         {
             MpeLog.Debug(ee);
             MpeLog.Error(ee);
         }
     }
     return(base.EditValue(context, provider, value));
 }
Beispiel #3
0
 private void ReleaseControl(MpeControl c)
 {
     MpeLog.Debug("Removing " + c.ToString());
     if (c is MpeContainer)
     {
         for (int i = 0; i < c.Controls.Count; i++)
         {
             if (c.Controls[i] is MpeControl)
             {
                 ReleaseControl((MpeControl)c.Controls[i]);
             }
         }
         c.ControlAdded   -= new ControlEventHandler(OnControlAdded);
         c.ControlRemoved -= new ControlEventHandler(OnControlRemoved);
         if (AllowAdditions)
         {
             c.DragDrop  -= new DragEventHandler(OnDragDrop);
             c.DragEnter -= new DragEventHandler(OnDragEnter);
         }
     }
     c.Click                -= new EventHandler(OnControlClick);
     c.MouseDown            -= new MouseEventHandler(OnControlMouseDown);
     c.StatusChanged        -= new MpeControl.StatusChangedHandler(OnControlStatusChanged);
     c.KeyUp                -= new KeyEventHandler(OnKeyUp);
     c.PropertyValueChanged -= new MpeControl.PropertyValueChangedHandler(OnControlPropertyValueChanged);
     c.IdentityChanged      -= new MpeControl.IdentityChangedHandler(OnControlIdentityChanged);
     ResourceList.Remove(c);
     MpeLog.Debug("Removed " + c.ToString());
 }
 public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
 {
     if (context.Instance is MpeControl)
     {
         try
         {
             MpeControl mpc = (MpeControl)context.Instance;
             IWindowsFormsEditorService editorService =
                 (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
             MpeImageEditorForm selector = new MpeImageEditorForm((FileInfo)value, mpc.Parser, editorService);
             editorService.DropDownControl(selector);
             if (selector.SelectedImageName == null)
             {
                 MpeLog.Info("Clearing Image...");
                 return(null);
             }
             MpeLog.Info("Changing texture to [" + selector.SelectedImageName + "]");
             return(mpc.Parser.GetImageFile(selector.SelectedImageName));
         }
         catch (Exception ee)
         {
             MpeLog.Debug(ee);
             MpeLog.Error(ee);
         }
     }
     return(base.EditValue(context, provider, value));
 }
        public override void Load(XPathNodeIterator iterator, MpeParser parser)
        {
            base.Load(iterator, parser);
            MpeLog.Debug("MpeCheckBox.Load()");
            this.parser = parser;
            label.Load(iterator, parser);
            label.Enabled = false;
            tags.Remove("label");
            tags.Remove("align");
            tags.Remove("textcolor");
            tags.Remove("disabledcolor");
            tags.Remove("font");
            // Textures
            Texture = parser.GetImageFile(iterator, "textureCheckmarkNoFocus", Texture);
            tags.Remove("textureCheckmarkNoFocus");
            TextureChecked = parser.GetImageFile(iterator, "textureCheckmark", TextureChecked);
            tags.Remove("textureCheckmark");
            int w = parser.GetInt(iterator, "MarkWidth", TextureSize.Width);

            tags.Remove("MarkWidth");
            int h = parser.GetInt(iterator, "MarkHeight", TextureSize.Height);

            tags.Remove("MarkHeight");
            TextureSize = new Size(w, h);
            Modified    = false;
        }
 public MpeGroup(MpeGroup group) : base(group)
 {
     MpeLog.Debug("MpeGroup(group)");
     Type      = MpeControlType.Group;
     AllowDrop = true;
     //animation = group.animation;
 }
Beispiel #7
0
 protected override void PrepareControl()
 {
     MpeLog.Debug("MpeLabel.Prepare()");
     if (font != null)
     {
         Rectangle r0 = Rectangle.Empty;
         if (screen != null)
         {
             r0 = font.GetStringRectangle(textValue, screen.Size);
         }
         else
         {
             r0 = font.GetStringRectangle(textValue, new Size(640, 480));
         }
         textSize = r0.Size;
         if (Alignment == MpeControlAlignment.Left)
         {
             textOffset = new Point(Padding.Left - r0.X, Padding.Top - r0.Y);
         }
         else
         {
             textOffset = new Point(Width - Padding.Right - textSize.Width - r0.X, Padding.Top - r0.Y);
         }
         if (AutoSize && (Type == MpeControlType.Label || Type == MpeControlType.FadeLabel))
         {
             int r = Right;
             Size = new Size(textSize.Width + Padding.Left + Padding.Right, textSize.Height + Padding.Top + Padding.Bottom);
             if (alignment == MpeControlAlignment.Right)
             {
                 Left = r - Width;
             }
         }
     }
     MpeLog.Debug("MpeLabel.Prepare().end");
 }
        //private MpeAnimationType animation;

        #endregion

        #region Constructors

        public MpeGroup() : base()
        {
            MpeLog.Debug("MpeGroup()");
            Type      = MpeControlType.Group;
            AllowDrop = true;
            //animation = MpeAnimationType.None;
        }
        private void OnPanelClick(object sender, StatusBarPanelClickEventArgs e)
        {
            if (e.StatusBarPanel == iconPanel && sender == this)
            {
                MenuCommand c = menu.TrackPopup(PointToScreen(new Point(0, -90)), false);
                if (c != null)
                {
                    switch (c.Text)
                    {
                    case "Debug":
                        MpeLog.Threshold = MpeLogLevel.Debug;
                        MpeLog.Debug("Log Level set to Debug");
                        break;

                    case "Info":
                        MpeLog.Threshold = MpeLogLevel.Info;
                        MpeLog.Info("Log Level set to Info");
                        break;

                    case "Warn":
                        MpeLog.Threshold = MpeLogLevel.Warn;
                        MpeLog.Warn("Log Level set to Warn");
                        break;

                    case "Error":
                        MpeLog.Threshold = MpeLogLevel.Error;
                        MpeLog.Error("Log Level set to Error");
                        break;
                    }
                }
            }
        }
Beispiel #10
0
 public override void Load(XPathNodeIterator iterator, MpeParser parser)
 {
     MpeLog.Debug("MpeLabel.Load()");
     base.Load(iterator, parser);
     this.parser = parser;
     Text        = parser.GetString(iterator, "label", "label");
     tags.Remove("label");
     Alignment = parser.GetAlignment(iterator, "align", Alignment);
     tags.Remove("align");
     if (Alignment == MpeControlAlignment.Right)
     {
         Left = Left - Width;
     }
     TextColor = parser.GetColor(iterator, "textcolor", TextColor);
     tags.Remove("textcolor");
     DisabledColor = parser.GetColor(iterator, "disabledcolor", DisabledColor);
     tags.Remove("disabledcolor");
     Font = parser.GetFont(iterator, "font", Font);
     tags.Remove("font");
     if (Type == MpeControlType.Label || Type == MpeControlType.FadeLabel)
     {
         AutoSize = true;
     }
     Prepare();
     Modified = false;
 }
Beispiel #11
0
 public void OnControlClick(object sender, EventArgs e)
 {
     if (activeMouseEvent != null)
     {
         if (mask.SelectedControl != sender && (sender is MaskComponent) == false)
         {
             try
             {
                 mask.SelectedControl = (MpeControl)sender;
                 Focus();
                 UpdatePropertyManager();
             }
             catch (Exception ee)
             {
                 MpeLog.Debug(ee);
                 MpeLog.Error(ee);
             }
         }
         if (activeMouseEvent.Button == MouseButtons.Right)
         {
             if (sender != null && sender is Control)
             {
                 Control c = (Control)sender;
                 UpdateContextMenu(mask.SelectedControl);
                 MenuCommand mc =
                     contextMenu.TrackPopup(c.PointToScreen(new Point(activeMouseEvent.X, activeMouseEvent.Y)), false);
                 OnMenuSelection(mc);
             }
         }
         activeMouseEvent = null;
     }
 }
 public override void Initialize()
 {
     try
     {
         AllowDrop = false;
         PropertyManager.HideResourceList();
         if (font != null)
         {
             screen                       = (MpeScreen)Parser.GetControl(MpeControlType.Screen);
             viewer                       = new MpeFontViewer(font, screen.TextureBack);
             viewer.Location              = new Point(Mask.NodeSize, Mask.NodeSize);
             viewer.SelectedIndexChanged += new MpeFontViewer.SelectedIndexChangedHandler(OnViewerIndexChanged);
             viewer.Modified              = false;
             Controls.Add(viewer);
         }
         MpeLog.Info("Font designer initialized [" + ResourceName + "]");
     }
     catch (MpeParserException mpe)
     {
         MpeLog.Debug(mpe);
         throw new DesignerException(mpe.Message);
     }
     catch (Exception e)
     {
         MpeLog.Debug(e);
         throw new DesignerException(e.Message);
     }
 }
 public MpeSelectButton() : base()
 {
     MpeLog.Debug("MpeSelectButton()");
     Type                = MpeControlType.SelectButton;
     layoutStyle         = MpeLayoutStyle.HorizontalFlow;
     autoSize            = false;
     active              = false;
     offset              = Point.Empty;
     textureSize         = new Size(32, 32);
     items               = new MpeItemManager();
     items.Type          = MpeItemType.Text;
     items.TypeChanging += new MpeItemManager.TypeChangingHandler(OnItemTypeChanging);
     leftImage           = new MpeImage();
     leftImage.Embedded  = true;
     leftImage.AutoSize  = false;
     leftImage.Size      = textureSize;
     leftImage.Padding   = new MpeControlPadding(8);
     rightImage          = new MpeImage();
     rightImage.Embedded = true;
     rightImage.AutoSize = false;
     rightImage.Size     = textureSize;
     rightImage.Padding  = new MpeControlPadding(8);
     label               = new MpeLabel();
     label.Embedded      = true;
     Prepare();
 }
 public override void Resume()
 {
     base.Resume();
     PropertyManager.SelectedResource = viewer;
     PropertyManager.HideResourceList();
     MpeLog.Info("Font designer resumed [" + ResourceName + "]");
 }
        public override void Load(XPathNodeIterator iterator, MpeParser parser)
        {
            MpeLog.Debug("MpeImage.Load()");
            this.parser = parser;
            AutoSize    = false;
            base.Load(iterator, parser);
            Texture = parser.GetImageFile(iterator, "texture", Texture);
            tags.Remove("texture");
            if (parser.GetInt(iterator, "width", -1) < 0 || parser.GetInt(iterator, "height", -1) < 0)
            {
                if (Texture == null)
                {
                    AutoSize = false;
                    Size     = new Size(64, 64);
                }
                else
                {
                    AutoSize = true;
                }
            }
            Centered = parser.GetBoolean(iterator, "centered", Centered);
            tags.Remove("centered");
            Filtered = parser.GetBoolean(iterator, "filtered", Filtered);
            tags.Remove("filtered");
            KeepAspectRatio = parser.GetBoolean(iterator, "keepaspectratio", KeepAspectRatio);
            tags.Remove("keepaspectratio");
            ColorKey = parser.GetInt(iterator, "colorkey", ColorKey);
            tags.Remove("colorkey");

            Modified = false;
        }
 public override void Initialize()
 {
     try
     {
         AllowDrop       = false;
         screen          = (MpeScreen)Parser.CreateControl(MpeControlType.Screen);
         screen.Location = new Point(Mask.NodeSize, Mask.NodeSize);
         Controls.Add(screen);
         if (control.Type != MpeControlType.Screen)
         {
             screen.Controls.Add(control);
         }
         else
         {
             control = screen;
         }
         control.IsReference = true;
         control.Modified    = false;
         MpeLog.Info("Control designer intialized [" + control.Type.DisplayName + "]");
     }
     catch (MpeParserException mpe)
     {
         MpeLog.Debug(mpe);
         throw new DesignerException(mpe.Message);
     }
     catch (Exception e)
     {
         MpeLog.Debug(e);
         throw new DesignerException(e.Message);
     }
 }
Beispiel #17
0
 protected void FireStatusChanged()
 {
     if (StatusChanged != null)
     {
         MpeLog.Debug("MpeControl.FireStatusChanged(" + modified + ")");
         StatusChanged(this, modified);
     }
 }
 private void OnItemTypeChanging(MpeItemEventArgs e)
 {
     if (e.NewType == MpeItemType.Text)
     {
         MpeLog.Warn("SpinButton items must be of type Integer or Float");
         e.CancelTypeChange = true;
     }
 }
 public MpeTextArea(MpeTextArea textarea) : base(textarea)
 {
     MpeLog.Debug("MpeTextArea(textarea)");
     label      = new MpeLabel(textarea.label);
     spinButton = new MpeSpinButton(textarea.spinButton);
     Controls.Add(label);
     Controls.Add(spinButton);
 }
Beispiel #20
0
 public MpeScreen(MpeScreen window) : base(window)
 {
     MpeLog.Debug("MpeScreen(window)");
     AllowDrop      = true;
     allowOverlay   = window.allowOverlay;
     defaultControl = window.defaultControl;
     screenSize     = window.screenSize;
 }
 public MpeToggleButton(MpeToggleButton button) : base(button)
 {
     MpeLog.Debug("MpeToggleButton(button)");
     Init();
     alternateTextureFocus   = button.alternateTextureFocus;
     alternateTextureNoFocus = button.alternateTextureNoFocus;
     toggled = button.toggled;
 }
 public void Destroy()
 {
     MpeLog.Debug("MpeFont.Destroy()");
     if (texture != null)
     {
         texture.Dispose();
     }
 }
Beispiel #23
0
 public virtual void CopyControl()
 {
     if (mask.SelectedControl != null)
     {
         mpe.Clipboard = mask.SelectedControl;
         MpeLog.Info("Copied control...");
     }
 }
 private void OnItemTypeChanging(MpeItemEventArgs e)
 {
     if (e.NewType != MpeItemType.Text)
     {
         MpeLog.Warn("MpeSelectButton items must be of type of Text");
         e.CancelTypeChange = true;
     }
 }
Beispiel #25
0
 protected void FirePropertyValueChanged(string propertyName)
 {
     if (PropertyValueChanged != null)
     {
         MpeLog.Debug("MpeControl.FirePropertyValueChanged(" + propertyName + ", " + modified + ")");
         PropertyValueChanged(this, propertyName);
     }
 }
 public override void Destroy()
 {
     base.Destroy();
     if (screen != null)
     {
         screen.Dispose();
     }
     MpeLog.Info("Image designer destroyed [" + ResourceName + "]");
 }
Beispiel #27
0
 private void OnResourceListSelectionChanged(object sender, EventArgs e)
 {
     SelectedResource = (MpeResource)resourceList.SelectedItem;
     MpeLog.Debug("ResourceListSelectionChange = " +
                  (SelectedResource != null ? SelectedResource.Id.ToString() : "null"));
     if (ResourceListSelectionChanged != null)
     {
         ResourceListSelectionChanged(SelectedResource);
     }
 }
 protected override void OnNotifyMessage(Message m)
 {
     if (m.Msg == (int)Msgs.WM_CONTEXTMENU)
     {
         short x = (short)(m.LParam.ToInt32());
         short y = (short)(m.LParam.ToInt32() >> 16);
         MpeLog.Info(x.ToString() + ", " + y.ToString());
     }
     base.OnNotifyMessage(m);
 }
 public MpeButton(MpeButton button) : base(button)
 {
     MpeLog.Debug("MpeButton(button)");
     Type                = MpeControlType.Button;
     textureFocus        = button.textureFocus;
     textureFocusImage   = button.textureFocusImage;
     textureNoFocus      = button.textureNoFocus;
     textureNoFocusImage = button.textureNoFocusImage;
     diffuseColor        = button.diffuseColor;
 }
        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;
        }