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)); }
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 void OnControlStatusChanged(MpeControl sender, bool modified) { if (sender == control) { base.OnControlStatusChanged(sender, modified); } }
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); } }
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)); }
public override System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) { if (context.Instance is MpeControl) { MpeControl mpc = (MpeControl)context.Instance; return new StandardValuesCollection(mpc.Parser.FontNames); } else { return base.GetStandardValues(context); } }
public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) { if( value.GetType() == typeof(string) && context.Instance is MpeControl ) { MpeControl mpc = (MpeControl)context.Instance; return mpc.Parser.GetFont((string)value); } else { return base.ConvertFrom(context, culture, value); } }
public virtual void OnControlPropertyValueChanged(MpeControl sender, string property) { switch (property) { case "Id": UpdatePropertyManager(); break; } }
public void OnPropertyValueChanged(MpeControl sender, string property) { if (sender != null && sender == SelectedControl) { if (property != null && (property.Equals("Location") || property.Equals("Size") || property.Equals("LocationLocked") || property.Equals("SizeLocked"))) { Update(); } } }
public virtual void OnControlIdentityChanged(MpeControl sender, IdentityEventArgs e) { if (ResourceList != null && ResourceList.IsUniqueId(e.New) == false) { e.Cancel = true; e.Message = "The new Id is not unique and will therefore be reset."; } else { e.Cancel = false; MpeLog.Info("Control Id set to " + e.New); } }
private void ClearControlStatus(MpeControl c) { if (c != null) { c.Modified = false; if (c is MpeContainer) { for (int i = 0; i < c.Controls.Count; i++) { if (c.Controls[i] is MpeControl) { ClearControlStatus((MpeControl)c.Controls[i]); } } } } }
public override void OnControlStatusChanged(MpeControl sender, bool modified) { if (sender == screen) { base.OnControlStatusChanged(sender, modified); } else { if (modified == true && screen.Modified == false) { screen.Modified = true; } else if (modified == false && screen.Modified == true) { screen.Modified = false; } } }
public void OnDragDrop(object sender, DragEventArgs e) { MpeLog.Debug("OnDragDrop()"); if (sender == null || !(sender is MpeContainer)) { MpeLog.Warn("Could not locate parent MpeContainer... Cancelling DragDrop operation."); return; } MpeContainer mpc = (MpeContainer)sender; if (e.Data.GetDataPresent(typeof(MpeControlType))) { MpeControlType type = (MpeControlType)e.Data.GetData(typeof(MpeControlType)); MpeLog.Debug("DragDrop: " + type.ToString()); MpeControl c = Parser.CreateControl(type); c.Id = ResourceList.GenerateUniqueId(); c.Location = mpc.PointToClient(new Point(e.X, e.Y)); mpc.Controls.Add(c); c.BringToFront(); Mask.SelectedControl = c; UpdatePropertyManager(); } else if (e.Data.GetDataPresent(typeof(FileInfo))) { FileInfo image = (FileInfo)e.Data.GetData(typeof(FileInfo)); MpeImage mpi = (MpeImage)Parser.CreateControl(MpeControlType.Image); mpi.Id = ResourceList.GenerateUniqueId(); mpc.Controls.Add(mpi); mpi.Texture = image; mpi.AutoSize = true; mpi.Location = mpc.PointToClient(new Point(e.X, e.Y)); mpi.BringToFront(); Mask.SelectedControl = mpi; UpdatePropertyManager(); } else { MpeLog.Debug("Unknown DataType... Cancelling DragDrop"); return; } Focus(); }
private void OnDoubleClick(object sender, EventArgs e) { if (selectedNode == null || selectedNode.Parent == null) { return; } try { TreeNode parent = selectedNode.Parent; if (parent == screenNode) { mpe.AddDesigner(new MpeScreenDesigner(mpe, (MpeScreenInfo)selectedNode.Tag)); } else if (parent == languageNode) { mpe.AddDesigner( new MpeStringDesigner(mpe, Parser.GetStringTable("English"), (MpeStringTable)selectedNode.Tag)); } else if (parent == imageNode) { mpe.AddDesigner(new MpeImageDesigner(mpe, (FileInfo)selectedNode.Tag)); } else if (parent == controlNode) { MpeControl c = Parser.CreateControl((MpeControlType)selectedNode.Tag); mpe.AddDesigner(new MpeControlDesigner(mpe, c)); } else if (parent == fontNode) { MpeFont font = new MpeFont(Parser.GetFont(selectedNode.Text)); mpe.AddDesigner(new FontDesigner(mpe, font)); } } catch (Exception ee) { MpeLog.Debug(ee); MpeLog.Error(ee); } }
private void PrepareControl(MpeControl c) { if (c != null && c.Embedded == false) { MpeLog.Debug("Preparing " + c.ToString()); ResourceList.Add(c); c.MpeScreen = screen; c.Click += new EventHandler(OnControlClick); c.MouseDown += new MouseEventHandler(OnControlMouseDown); c.StatusChanged += new MpeControl.StatusChangedHandler(OnControlStatusChanged); c.KeyUp += new KeyEventHandler(OnKeyUp); c.IdentityChanged += new MpeControl.IdentityChangedHandler(OnControlIdentityChanged); c.PropertyValueChanged += new MpeControl.PropertyValueChangedHandler(OnControlPropertyValueChanged); if (c is MpeContainer) { c.ControlAdded += new ControlEventHandler(OnControlAdded); c.ControlRemoved += new ControlEventHandler(OnControlRemoved); if (AllowAdditions) { c.DragDrop += new DragEventHandler(OnDragDrop); c.DragEnter += new DragEventHandler(OnDragEnter); MpeLog.Debug("DragDrop enabled"); } for (int i = 0; i < c.Controls.Count; i++) { if (c.Controls[i] is MpeControl) { PrepareControl((MpeControl)c.Controls[i]); } } } } else if (c != null && c.Embedded == true) { MpeLog.Debug("Preparing Embedded " + c.ToString()); c.MpeScreen = screen; } MpeLog.Debug("Prepared " + 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)); MpeStringEditorForm selector = new MpeStringEditorForm((string)value, mpc.Parser, editorService); editorService.DropDownControl(selector); return(selector.SelectedValue); } catch (Exception ee) { MpeLog.Debug(ee); MpeLog.Error(ee); } } else if (context.Instance is MpeItem) { try { IWindowsFormsEditorService editorService = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService)); MpeStringEditorForm selector = new MpeStringEditorForm((string)value, MediaPortalEditor.Global.Parser, editorService); editorService.DropDownControl(selector); return(selector.SelectedValue); } catch (Exception ee) { MpeLog.Debug(ee); MpeLog.Error(ee); } } return(base.EditValue(context, provider, value)); }
public virtual void CutControl() { if (AllowDeletions) { if (mask.SelectedControl != screen && mask.SelectedControl.MpeParent != null) { try { MpeControl control = mask.SelectedControl; MpeContainer parent = control.MpeParent; parent.Controls.Remove(control); mpe.Clipboard = control; mask.SelectedControl = null; UpdatePropertyManager(); } catch (Exception ee) { MpeLog.Debug(ee); MpeLog.Error(ee); } } } }
public virtual void PasteControl() { if (mask.SelectedControl is MpeContainer) { if (mpe.Clipboard != null && mpe.Clipboard is MpeControl) { try { MpeControl c = ((MpeControl)mpe.Clipboard).Copy(); c.Left += mask.GridSize.Width; c.Top += mask.GridSize.Height; mask.SelectedControl.Controls.Add(c); mask.SelectedControl = c; UpdatePropertyManager(); MpeLog.Info("Pasted control..."); } catch (Exception ee) { MpeLog.Debug(ee); MpeLog.Error(ee); } } } }
protected virtual void UpdateContextMenu(MpeControl c) { // }
public MpeControlDesigner(MediaPortalEditor mpe, MpeControl control) : base(mpe) { this.control = control; }
protected void AddControl(MpeControl c) { Controls.Add(c); }
protected void RemoveControl(MpeControl c) { Controls.Remove(c); }
public void OnMenuSelection(MenuCommand command) { if (command == null || command.Enabled == false || mask.SelectedControl == null) { return; } switch (command.Text) { case "Parent": mask.SelectedControl = mask.SelectedControl.MpeParent; UpdatePropertyManager(); break; case "Send To Back": mask.SelectedControl.SendToBack(); break; case "Bring To Front": mask.SelectedControl.BringToFront(); break; case "Cut": CutControl(); break; case "Copy": CopyControl(); break; case "Paste": PasteControl(); break; case "Delete": if (AllowDeletions) { if (mask.SelectedControl.MpeParent != null) { try { MpeControl control = mask.SelectedControl; MpeContainer parent = control.MpeParent; parent.Controls.Remove(control); mask.SelectedControl = null; UpdatePropertyManager(); } catch (Exception ee) { MpeLog.Debug(ee); MpeLog.Error(ee); } } } break; case "Properties": mpe.FocusPropertyManager(); break; case "Test": //mask2.SelectedControl = mask.SelectedControl; break; } }
public override void OnControlStatusChanged(MpeControl sender, bool modified) { // }
public virtual void OnControlStatusChanged(MpeControl sender, bool modified) { mpe.ToggleDesignerStatus(ResourceName, modified); }