コード例 #1
0
 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));
 }
コード例 #2
0
 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);
 }
コード例 #3
0
 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));
 }
コード例 #4
0
 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;
 }
コード例 #5
0
ファイル: MpeParser.cs プロジェクト: arangas/MediaPortal-1
 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;
 }
コード例 #6
0
ファイル: MpeParser.cs プロジェクト: arangas/MediaPortal-1
    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);
    }
コード例 #7
0
 public MpeControlPadding(MpeControlPadding padding)
 {
   Set(padding.Left, padding.Right, padding.Top, padding.Bottom);
 }
コード例 #8
0
 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);
 }
コード例 #9
0
ファイル: MpeControl.cs プロジェクト: arangas/MediaPortal-1
 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;
 }
コード例 #10
0
ファイル: MpeControl.cs プロジェクト: arangas/MediaPortal-1
 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;
 }
コード例 #11
0
ファイル: MpeContainer.cs プロジェクト: arangas/MediaPortal-1
 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();
   }
 }
コード例 #12
0
 public MpeControlPadding(MpeControlPadding padding)
 {
     Set(padding.Left, padding.Right, padding.Top, padding.Bottom);
 }