Ejemplo n.º 1
0
        private void CreateWzProp(IPropertyContainer parent, WzPropertyType propType, string propName, object value)
        {
            IWzImageProperty addedProp;

            switch (propType)
            {
            case WzPropertyType.ByteFloat:
                addedProp = new WzByteFloatProperty(propName);
                break;

            case WzPropertyType.Canvas:
                addedProp = new WzCanvasProperty(propName);
                ((WzCanvasProperty)addedProp).PngProperty = new WzPngProperty();
                break;

            case WzPropertyType.CompressedInt:
                addedProp = new WzCompressedIntProperty(propName);
                break;

            case WzPropertyType.Double:
                addedProp = new WzDoubleProperty(propName);
                break;

            /*case WzPropertyType.Sound:
             *  addedProp = new WzSoundProperty(propName);
             *  break;*/
            case WzPropertyType.String:
                addedProp = new WzStringProperty(propName);
                break;

            case WzPropertyType.UnsignedShort:
                addedProp = new WzUnsignedShortProperty(propName);
                break;

            case WzPropertyType.Vector:
                addedProp = new WzVectorProperty(propName);
                ((WzVectorProperty)addedProp).X = new WzCompressedIntProperty("X");
                ((WzVectorProperty)addedProp).Y = new WzCompressedIntProperty("Y");
                break;

            default:
                throw new NotSupportedException("not supported type");
            }
            addedProp.SetValue(value);
            parent.AddProperty(addedProp);
        }
Ejemplo n.º 2
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (method == 0)
            {
                switch (data.GetType().Name)
                {
                case "WzDirectory":
                    ((WzDirectory)data).Name = textBox1.Text;
                    break;

                case "WzImage":
                    ((WzImage)data).Name    = textBox1.Text;
                    ((WzImage)data).changed = true;
                    tree.Text = textBox1.Text;
                    Close();
                    return;

                case "WzSubProperty":
                    ((WzSubProperty)data).Name = textBox1.Text;
                    break;

                case "WzCompressedIntProperty":
                    ((WzCompressedIntProperty)data).Name  = textBox1.Text;
                    ((WzCompressedIntProperty)data).Value = Convert.ToInt32(textBox2.Text);
                    break;

                case "WzCanvasProperty":
                    if (((WzCanvasProperty)data).PngProperty == null)
                    {
                        ((WzCanvasProperty)data).PngProperty = new WzPngProperty();
                    }
                    ((WzCanvasProperty)data).PngProperty.Name   = textBox1.Text;
                    ((WzCanvasProperty)data).PngProperty.Height = pictureBox1.Image.Height;
                    ((WzCanvasProperty)data).PngProperty.Width  = pictureBox1.Image.Width;
                    ((WzCanvasProperty)data).PngProperty.PNG    = (Bitmap)pictureBox1.Image;
                    break;

                case "WzVectorProperty":
                    ((WzVectorProperty)data).Name    = textBox1.Text;
                    ((WzVectorProperty)data).X.Value = Convert.ToInt32(textBox2.Text.Split(Convert.ToChar(","))[0]);
                    ((WzVectorProperty)data).Y.Value = Convert.ToInt32(textBox2.Text.Split(Convert.ToChar(","))[1]);
                    break;

                case "WzStringProperty":
                    ((WzStringProperty)data).Name  = textBox1.Text;
                    ((WzStringProperty)data).Value = textBox2.Text;
                    break;

                case "WzUOLProperty":
                    ((WzUOLProperty)data).Name  = textBox1.Text;
                    ((WzUOLProperty)data).Value = textBox2.Text;
                    break;

                case "WzDoubleProperty":
                    ((WzDoubleProperty)data).Name  = textBox1.Text;
                    ((WzDoubleProperty)data).Value = Convert.ToDouble(textBox2.Text);
                    break;

                case "WzByteFloatProperty":
                    ((WzByteFloatProperty)data).Name  = textBox1.Text;
                    ((WzByteFloatProperty)data).Value = Convert.ToSingle(textBox2.Text);
                    break;

                case "WzSoundProperty":
                    ((WzSoundProperty)data).Name = textBox1.Text;
                    FileStream readmp3 = File.OpenRead(textBox2.Text);
                    byte[]     mpd     = new byte[readmp3.Length];
                    readmp3.Read(mpd, 0, (int)readmp3.Length);
                    ((WzSoundProperty)data).SoundData = mpd;
                    readmp3.Close();
                    break;

                case "WzConvexProperty":
                    ((WzConvexProperty)data).Name = textBox1.Text;
                    break;

                case "WzUnsignedShortProperty":
                    ((WzUnsignedShortProperty)data).Name  = textBox1.Text;
                    ((WzUnsignedShortProperty)data).Value = Convert.ToUInt16(textBox2.Text);
                    break;

                default:
                    break;
                }
                tree.Text = textBox1.Text;
                ((IWzImageProperty)data).ParentImage.changed = true;
                Close();
            }
            else if (method == 1)
            {
                switch (data.GetType().Name)
                {
                case "WzDirectory":
                    switch (comboBox1.SelectedIndex)
                    {
                    case 0:
                        WzDirectory dir = new WzDirectory(textBox1.Text);
                        ((WzDirectory)data).AddDirectory(dir);
                        tree.Nodes.Add(textBox1.Text).Tag = dir;
                        break;

                    case 1:
                        WzImage img = new WzImage(textBox1.Text);
                        ((WzDirectory)data).AddImage(img);
                        tree.Nodes.Add(textBox1.Text).Tag = img;
                        img.changed = true;
                        break;
                    }
                    Close();
                    return;

                    break;

                case "WzImage":
                    switch (comboBox1.SelectedIndex)
                    {
                    case 0:
                        WzCompressedIntProperty integer = new WzCompressedIntProperty(textBox1.Text, Convert.ToInt32(textBox2.Text));
                        ((WzImage)data).AddProperty(integer);
                        tree.Nodes.Add(textBox1.Text).Tag = integer;
                        break;

                    case 1:
                        WzCanvasProperty png = new WzCanvasProperty(textBox1.Text);
                        (png.PngProperty = new WzPngProperty()).PNG = (Bitmap)pictureBox1.Image;
                        png.PngProperty.Height = pictureBox1.Image.Height;
                        png.PngProperty.Width  = pictureBox1.Image.Width;
                        ((WzImage)data).AddProperty(png);
                        tree.Nodes.Add(textBox1.Text).Tag = png;
                        break;

                    case 2:
                        WzVectorProperty vector = new WzVectorProperty(textBox1.Text, new WzCompressedIntProperty("X", Convert.ToInt32(textBox2.Text.Split(Convert.ToChar(","))[0])), new WzCompressedIntProperty("Y", Convert.ToInt32(textBox2.Text.Split(Convert.ToChar(","))[1])));
                        ((WzImage)data).AddProperty(vector);
                        tree.Nodes.Add(textBox1.Text).Tag = vector;
                        break;

                    case 3:
                        WzStringProperty str = new WzStringProperty(textBox1.Text, textBox2.Text);
                        ((WzImage)data).AddProperty(str);
                        tree.Nodes.Add(textBox1.Text).Tag = str;
                        break;

                    case 4:
                        WzUOLProperty uol = new WzUOLProperty(textBox1.Text, textBox2.Text);
                        ((WzImage)data).AddProperty(uol);
                        tree.Nodes.Add(textBox1.Text).Tag = uol;
                        break;

                    case 5:
                        WzDoubleProperty dou = new WzDoubleProperty(textBox1.Text, Convert.ToDouble(textBox2.Text));
                        ((WzImage)data).AddProperty(dou);
                        tree.Nodes.Add(textBox1.Text).Tag = dou;
                        break;

                    case 6:
                        WzByteFloatProperty flo = new WzByteFloatProperty(textBox1.Text, Convert.ToSingle(textBox2.Text));
                        ((WzImage)data).AddProperty(flo);
                        tree.Nodes.Add(textBox1.Text).Tag = flo;
                        break;

                    case 7:
                        WzSubProperty sub = new WzSubProperty(textBox1.Text);
                        ((WzImage)data).AddProperty(sub);
                        tree.Nodes.Add(textBox1.Text).Tag = sub;
                        break;

                    case 8:
                        WzSoundProperty mps       = new WzSoundProperty(textBox1.Text);
                        FileStream      readsound = File.OpenRead(textBox2.Text);
                        byte[]          mpdata    = new byte[readsound.Length];
                        readsound.Read(mpdata, 0, (int)readsound.Length);
                        mps.SoundData = mpdata;
                        ((WzImage)data).AddProperty(mps);
                        tree.Nodes.Add(textBox1.Text).Tag = mps;
                        readsound.Close();
                        break;

                    case 9:
                        WzConvexProperty convex = new WzConvexProperty(textBox1.Text);
                        ((WzImage)data).AddProperty(convex);
                        tree.Nodes.Add(textBox1.Text).Tag = convex;
                        break;

                    case 10:
                        WzUnsignedShortProperty us = new WzUnsignedShortProperty(textBox1.Text, Convert.ToUInt16(textBox2.Text));
                        ((WzImage)data).AddProperty(us);
                        tree.Nodes.Add(textBox1.Text).Tag = us;
                        break;

                    default:
                        break;
                    }
                    break;

                case "WzSubProperty":
                    switch (comboBox1.SelectedIndex)
                    {
                    case 0:
                        WzCompressedIntProperty integer = new WzCompressedIntProperty(textBox1.Text, Convert.ToInt32(textBox2.Text));
                        ((WzSubProperty)data).AddProperty(integer);
                        tree.Nodes.Add(textBox1.Text).Tag = integer;
                        break;

                    case 1:
                        WzCanvasProperty png = new WzCanvasProperty(textBox1.Text);
                        (png.PngProperty = new WzPngProperty()).PNG = (Bitmap)pictureBox1.Image;
                        png.PngProperty.Height = pictureBox1.Image.Height;
                        png.PngProperty.Width  = pictureBox1.Image.Width;
                        ((WzSubProperty)data).AddProperty(png);
                        tree.Nodes.Add(textBox1.Text).Tag = png;
                        break;

                    case 2:
                        WzVectorProperty vector = new WzVectorProperty(textBox1.Text, new WzCompressedIntProperty("X", Convert.ToInt32(textBox2.Text.Split(Convert.ToChar(","))[0])), new WzCompressedIntProperty("Y", Convert.ToInt32(textBox2.Text.Split(Convert.ToChar(","))[1])));
                        ((WzSubProperty)data).AddProperty(vector);
                        tree.Nodes.Add(textBox1.Text).Tag = vector;
                        break;

                    case 3:
                        WzStringProperty str = new WzStringProperty(textBox1.Text, textBox2.Text);
                        ((WzSubProperty)data).AddProperty(str);
                        tree.Nodes.Add(textBox1.Text).Tag = str;
                        break;

                    case 4:
                        WzUOLProperty uol = new WzUOLProperty(textBox1.Text, textBox2.Text);
                        ((WzSubProperty)data).AddProperty(uol);
                        tree.Nodes.Add(textBox1.Text).Tag = uol;
                        break;

                    case 5:
                        WzDoubleProperty dou = new WzDoubleProperty(textBox1.Text, Convert.ToDouble(textBox2.Text));
                        ((WzSubProperty)data).AddProperty(dou);
                        tree.Nodes.Add(textBox1.Text).Tag = dou;
                        break;

                    case 6:
                        WzByteFloatProperty flo = new WzByteFloatProperty(textBox1.Text, Convert.ToSingle(textBox2.Text));
                        ((WzSubProperty)data).AddProperty(flo);
                        tree.Nodes.Add(textBox1.Text).Tag = flo;
                        break;

                    case 7:
                        WzSubProperty sub = new WzSubProperty(textBox1.Text);
                        ((WzSubProperty)data).AddProperty(sub);
                        tree.Nodes.Add(textBox1.Text).Tag = sub;
                        break;

                    case 8:
                        WzSoundProperty mps       = new WzSoundProperty(textBox1.Text);
                        FileStream      readsound = File.OpenRead(textBox2.Text);
                        byte[]          mpdata    = new byte[readsound.Length];
                        readsound.Read(mpdata, 0, (int)readsound.Length);
                        mps.SoundData = mpdata;
                        ((WzSubProperty)data).AddProperty(mps);
                        tree.Nodes.Add(textBox1.Text).Tag = mps;
                        readsound.Close();
                        break;

                    case 9:
                        WzConvexProperty convex = new WzConvexProperty(textBox1.Text);
                        ((WzSubProperty)data).AddProperty(convex);
                        tree.Nodes.Add(textBox1.Text).Tag = convex;
                        break;

                    case 10:
                        WzUnsignedShortProperty us = new WzUnsignedShortProperty(textBox1.Text, Convert.ToUInt16(textBox2.Text));
                        ((WzSubProperty)data).AddProperty(us);
                        tree.Nodes.Add(textBox1.Text).Tag = us;
                        break;

                    default:
                        break;
                    }
                    break;

                case "WzCanvasProperty":
                    WzCanvasProperty canvas = (WzCanvasProperty)data;
                    switch (comboBox1.SelectedIndex)
                    {
                    case 0:
                        WzCompressedIntProperty integer = new WzCompressedIntProperty(textBox1.Text, Convert.ToInt32(textBox2.Text));
                        canvas.AddProperty(integer);
                        tree.Nodes.Add(textBox1.Text).Tag = integer;
                        break;

                    case 1:
                        WzCanvasProperty png = new WzCanvasProperty(textBox1.Text);
                        png.PngProperty.PNG    = (Bitmap)pictureBox1.Image;
                        png.PngProperty.Height = pictureBox1.Image.Height;
                        png.PngProperty.Width  = pictureBox1.Image.Width;
                        canvas.AddProperty(png);
                        tree.Nodes.Add(textBox1.Text).Tag = png;
                        break;

                    case 2:
                        WzVectorProperty vector = new WzVectorProperty(textBox1.Text, new WzCompressedIntProperty("X", Convert.ToInt32(textBox2.Text.Split(Convert.ToChar(","))[0])), new WzCompressedIntProperty("Y", Convert.ToInt32(textBox2.Text.Split(Convert.ToChar(","))[1])));
                        canvas.AddProperty(vector);
                        tree.Nodes.Add(textBox1.Text).Tag = vector;
                        break;

                    case 3:
                        WzStringProperty str = new WzStringProperty(textBox1.Text, textBox2.Text);
                        canvas.AddProperty(str);
                        tree.Nodes.Add(textBox1.Text).Tag = str;
                        break;

                    case 4:
                        WzUOLProperty uol = new WzUOLProperty(textBox1.Text, textBox2.Text);
                        canvas.AddProperty(uol);
                        tree.Nodes.Add(textBox1.Text).Tag = uol;
                        break;

                    case 5:
                        WzDoubleProperty dou = new WzDoubleProperty(textBox1.Text, Convert.ToDouble(textBox2.Text));
                        canvas.AddProperty(dou);
                        tree.Nodes.Add(textBox1.Text).Tag = dou;
                        break;

                    case 6:
                        WzByteFloatProperty flo = new WzByteFloatProperty(textBox1.Text, Convert.ToSingle(textBox2.Text));
                        canvas.AddProperty(flo);
                        tree.Nodes.Add(textBox1.Text).Tag = flo;
                        break;

                    case 7:
                        WzSubProperty sub = new WzSubProperty(textBox1.Text);
                        canvas.AddProperty(sub);
                        tree.Nodes.Add(textBox1.Text).Tag = sub;
                        break;

                    case 8:
                        WzSoundProperty mps       = new WzSoundProperty(textBox1.Text);
                        FileStream      readsound = File.OpenRead(textBox2.Text);
                        byte[]          mpdata    = new byte[readsound.Length];
                        readsound.Read(mpdata, 0, (int)readsound.Length);
                        mps.SoundData = mpdata;
                        canvas.AddProperty(mps);
                        tree.Nodes.Add(textBox1.Text).Tag = mps;
                        readsound.Close();
                        break;

                    case 9:
                        WzConvexProperty convex = new WzConvexProperty(textBox1.Text);
                        canvas.AddProperty(convex);
                        tree.Nodes.Add(textBox1.Text).Tag = convex;
                        break;

                    case 10:
                        WzUnsignedShortProperty us = new WzUnsignedShortProperty(textBox1.Text, Convert.ToUInt16(textBox2.Text));
                        canvas.AddProperty(us);
                        tree.Nodes.Add(textBox1.Text).Tag = us;
                        break;

                    default:
                        break;
                    }
                    break;

                case "WzConvexProperty":
                    WzExtendedProperty ext = new WzExtendedProperty(textBox1.Text);
                    switch (comboBox1.SelectedIndex)
                    {
                    case 0:
                        WzCompressedIntProperty integer = new WzCompressedIntProperty(textBox1.Text, Convert.ToInt32(textBox2.Text));
                        ext.ExtendedProperty = integer;
                        ((WzConvexProperty)data).AddProperty(ext);
                        tree.Nodes.Add(textBox1.Text).Tag = integer;
                        break;

                    case 1:
                        WzCanvasProperty png = new WzCanvasProperty(textBox1.Text);
                        (png.PngProperty = new WzPngProperty()).PNG = (Bitmap)pictureBox1.Image;
                        png.PngProperty.Height = pictureBox1.Image.Height;
                        png.PngProperty.Width  = pictureBox1.Image.Width;
                        ext.ExtendedProperty   = png;
                        ((WzConvexProperty)data).AddProperty(ext);
                        tree.Nodes.Add(textBox1.Text).Tag = png;
                        break;

                    case 2:
                        WzVectorProperty vector = new WzVectorProperty(textBox1.Text, new WzCompressedIntProperty("X", Convert.ToInt32(textBox2.Text.Split(Convert.ToChar(","))[0])), new WzCompressedIntProperty("Y", Convert.ToInt32(textBox2.Text.Split(Convert.ToChar(","))[1])));
                        ext.ExtendedProperty = vector;
                        ((WzConvexProperty)data).AddProperty(ext);
                        tree.Nodes.Add(textBox1.Text).Tag = vector;
                        break;

                    case 3:
                        WzStringProperty str = new WzStringProperty(textBox1.Text, textBox2.Text);
                        ext.ExtendedProperty = str;
                        ((WzConvexProperty)data).AddProperty(ext);
                        tree.Nodes.Add(textBox1.Text).Tag = str;
                        break;

                    case 4:
                        WzUOLProperty uol = new WzUOLProperty(textBox1.Text, textBox2.Text);
                        ext.ExtendedProperty = uol;
                        ((WzConvexProperty)data).AddProperty(ext);
                        tree.Nodes.Add(textBox1.Text).Tag = uol;
                        break;

                    case 5:
                        WzDoubleProperty dou = new WzDoubleProperty(textBox1.Text, Convert.ToDouble(textBox2.Text));
                        ext.ExtendedProperty = dou;
                        ((WzConvexProperty)data).AddProperty(ext);
                        tree.Nodes.Add(textBox1.Text).Tag = dou;
                        break;

                    case 6:
                        WzByteFloatProperty flo = new WzByteFloatProperty(textBox1.Text, Convert.ToSingle(textBox2.Text));
                        ext.ExtendedProperty = flo;
                        ((WzConvexProperty)data).AddProperty(ext);
                        tree.Nodes.Add(textBox1.Text).Tag = flo;
                        break;

                    case 7:
                        WzSubProperty sub = new WzSubProperty(textBox1.Text);
                        ext.ExtendedProperty = sub;
                        ((WzConvexProperty)data).AddProperty(ext);
                        tree.Nodes.Add(textBox1.Text).Tag = sub;
                        break;

                    case 8:
                        WzSoundProperty mps       = new WzSoundProperty(textBox1.Text);
                        FileStream      readsound = File.OpenRead(textBox2.Text);
                        byte[]          mpdata    = new byte[readsound.Length];
                        readsound.Read(mpdata, 0, (int)readsound.Length);
                        mps.SoundData        = mpdata;
                        ext.ExtendedProperty = mps;
                        ((WzConvexProperty)data).AddProperty(ext);
                        tree.Nodes.Add(textBox1.Text).Tag = mps;
                        readsound.Close();
                        break;

                    case 9:
                        WzConvexProperty convex = new WzConvexProperty(textBox1.Text);
                        ext.ExtendedProperty = convex;
                        ((WzConvexProperty)data).AddProperty(ext);
                        tree.Nodes.Add(textBox1.Text).Tag = convex;
                        break;

                    case 10:
                        WzUnsignedShortProperty us = new WzUnsignedShortProperty(textBox1.Text, Convert.ToUInt16(textBox2.Text));
                        ext.ExtendedProperty = us;
                        ((WzConvexProperty)data).AddProperty(ext);
                        tree.Nodes.Add(textBox1.Text).Tag = us;
                        break;

                    default:
                        break;
                    }
                    break;
                }
                if (data is WzImage)
                {
                    ((WzImage)data).changed = true;
                }
                else
                {
                    ((IWzImageProperty)data).ParentImage.changed = true;
                }
                Close();
            }
        }
Ejemplo n.º 3
0
 private static void DumpXML(TextWriter tw, string depth, List <IWzImageProperty> props)
 {
     foreach (IWzImageProperty property in props)
     {
         if (property != null)
         {
             if (property is WzCanvasProperty)
             {
                 WzCanvasProperty canvas = (WzCanvasProperty)property;
                 MemoryStream     stream = new MemoryStream();
                 canvas.PngProperty.GetPNG(false).Save(stream, System.Drawing.Imaging.ImageFormat.Png);
                 byte[] pngbytes = stream.ToArray();
                 stream.Close();
                 tw.WriteLine(string.Concat(new object[] { depth, "<canvas name=\"", canvas.Name, "\" width=\"", canvas.PngProperty.Width, "\" height=\"", canvas.PngProperty.Height, "\" basedata=\"", Convert.ToBase64String(pngbytes), "\">" }));
                 DumpXML(tw, depth + indent, canvas.WzProperties);
                 tw.WriteLine(depth + "</canvas>");
             }
             else if (property is WzCompressedIntProperty)
             {
                 WzCompressedIntProperty compressedInt = (WzCompressedIntProperty)property;
                 tw.WriteLine(string.Concat(new object[] { depth, "<int name=\"", compressedInt.Name, "\" value=\"", compressedInt.Value, "\"/>" }));
             }
             else if (property is WzDoubleProperty)
             {
                 WzDoubleProperty doubleProp = (WzDoubleProperty)property;
                 tw.WriteLine(string.Concat(new object[] { depth, "<double name=\"", doubleProp.Name, "\" value=\"", doubleProp.Value.ToString(formattingInfo), "\"/>" }));
             }
             else if (property is WzNullProperty)
             {
                 WzNullProperty nullProp = (WzNullProperty)property;
                 tw.WriteLine(depth + "<null name=\"" + nullProp.Name + "\"/>");
             }
             else if (property is WzSoundProperty)
             {
                 WzSoundProperty sound = (WzSoundProperty)property;
                 tw.WriteLine(string.Concat(new object[] { depth, "<sound name=\"", sound.Name, "\" basedata=\"", Convert.ToBase64String(sound.GetBytes(false)), "\"/>" }));
             }
             else if (property is WzStringProperty)
             {
                 WzStringProperty stringProp = (WzStringProperty)property;
                 string           str        = stringProp.Value.Replace("<", "&lt;").Replace("&", "&amp;").Replace(">", "&gt;").Replace("'", "&apos;").Replace("\"", "&quot;");
                 tw.WriteLine(depth + "<string name=\"" + stringProp.Name + "\" value=\"" + str + "\"/>");
             }
             else if (property is WzSubProperty)
             {
                 WzSubProperty sub = (WzSubProperty)property;
                 tw.WriteLine(depth + "<imgdir name=\"" + sub.Name + "\">");
                 DumpXML(tw, depth + indent, sub.WzProperties);
                 tw.WriteLine(depth + "</imgdir>");
             }
             else if (property is WzUnsignedShortProperty)
             {
                 WzUnsignedShortProperty ushortProp = (WzUnsignedShortProperty)property;
                 tw.WriteLine(string.Concat(new object[] { depth, "<short name=\"", ushortProp.Name, "\" value=\"", ushortProp.Value.ToString(formattingInfo), "\"/>" }));
             }
             else if (property is WzUOLProperty)
             {
                 WzUOLProperty uol = (WzUOLProperty)property;
                 tw.WriteLine(depth + "<uol name=\"" + uol.Name + "\" value=\"" + uol.Value + "\"/>");
             }
             else if (property is WzVectorProperty)
             {
                 WzVectorProperty vector = (WzVectorProperty)property;
                 tw.WriteLine(string.Concat(new object[] { depth, "<vector name=\"", vector.Name, "\" x=\"", vector.X.Value, "\" y=\"", vector.Y.Value, "\"/>" }));
             }
             else if (property is WzByteFloatProperty)
             {
                 WzByteFloatProperty floatProp = (WzByteFloatProperty)property;
                 string str2 = floatProp.Value.ToString(formattingInfo);
                 if (!str2.Contains("."))
                 {
                     str2 = str2 + ".0";
                 }
                 tw.WriteLine(depth + "<float name=\"" + floatProp.Name + "\" value=\"" + str2 + "\"/>");
             }
             else if (property is WzConvexProperty)
             {
                 tw.WriteLine(depth + "<extended name=\"" + property.Name + "\">");
                 DumpXML(tw, depth + indent, ((WzConvexProperty)property).WzProperties);
                 tw.WriteLine(depth + "</extended>");
             }
         }
     }
 }
Ejemplo n.º 4
0
 private static void ParseXML(XmlElement element, IPropertyContainer wo)
 {
     foreach (XmlNode node in element)
     {
         if (!(node is XmlElement))
         {
             continue;
         }
         XmlElement childElement = (XmlElement)node;
         if (childElement.Name == "imgdir")
         {
             WzSubProperty sub = new WzSubProperty(childElement.GetAttribute("name"));
             wo.AddProperty(sub);
             ParseXML(childElement, (IPropertyContainer)sub);
         }
         else if (childElement.Name == "canvas")
         {
             WzCanvasProperty canvas = new WzCanvasProperty(childElement.GetAttribute("name"));
             canvas.PngProperty = new WzPngProperty();
             MemoryStream pngstream = new MemoryStream(Convert.FromBase64String(childElement.GetAttribute("basedata")));
             canvas.PngProperty.SetPNG((Bitmap)Image.FromStream(pngstream, true, true));
             wo.AddProperty(canvas);
             ParseXML(childElement, (IPropertyContainer)canvas);
         }
         if (childElement.Name == "int")
         {
             WzCompressedIntProperty compressedInt = new WzCompressedIntProperty(childElement.GetAttribute("name"), int.Parse(childElement.GetAttribute("value"), formattingInfo));
             wo.AddProperty(compressedInt);
         }
         if (childElement.Name == "double")
         {
             WzDoubleProperty doubleProp = new WzDoubleProperty(childElement.GetAttribute("name"), double.Parse(childElement.GetAttribute("value"), formattingInfo));
             wo.AddProperty(doubleProp);
         }
         if (childElement.Name == "null")
         {
             WzNullProperty nullProp = new WzNullProperty(childElement.GetAttribute("name"));
             wo.AddProperty(nullProp);
         }
         if (childElement.Name == "sound")
         {
             WzSoundProperty sound = new WzSoundProperty(childElement.GetAttribute("name"));
             sound.SetDataUnsafe(Convert.FromBase64String(childElement.GetAttribute("basedata")));
             wo.AddProperty(sound);
         }
         if (childElement.Name == "string")
         {
             string           str        = childElement.GetAttribute("value").Replace("&lt;", "<").Replace("&amp;", "&").Replace("&gt;", ">").Replace("&apos;", "'").Replace("&quot;", "\"");
             WzStringProperty stringProp = new WzStringProperty(childElement.GetAttribute("name"), str);
             wo.AddProperty(stringProp);
         }
         if (childElement.Name == "short")
         {
             WzUnsignedShortProperty shortProp = new WzUnsignedShortProperty(childElement.GetAttribute("name"), ushort.Parse(childElement.GetAttribute("value"), formattingInfo));
             wo.AddProperty(shortProp);
         }
         if (childElement.Name == "uol")
         {
             WzUOLProperty uol = new WzUOLProperty(childElement.GetAttribute("name"), childElement.GetAttribute("value"));
             wo.AddProperty(uol);
         }
         if (childElement.Name == "vector")
         {
             WzVectorProperty vector = new WzVectorProperty(childElement.GetAttribute("name"), new WzCompressedIntProperty("x", Convert.ToInt32(childElement.GetAttribute("x"))), new WzCompressedIntProperty("y", Convert.ToInt32(childElement.GetAttribute("y"))));
             wo.AddProperty(vector);
         }
         if (childElement.Name == "float")
         {
             WzByteFloatProperty floatProp = new WzByteFloatProperty(childElement.GetAttribute("name"), float.Parse(childElement.GetAttribute("value"), formattingInfo));
             wo.AddProperty(floatProp);
         }
         if (childElement.Name == "extended")
         {
             WzConvexProperty convex = new WzConvexProperty(childElement.GetAttribute("name"));
             wo.AddProperty(convex);
             ParseXML(childElement, (IPropertyContainer)convex);
         }
     }
 }
Ejemplo n.º 5
0
        internal IWzImageProperty ParsePropertyFromXMLElement(XmlElement element)
        {
            switch (element.Name)
            {
            case "imgdir":
                WzSubProperty sub = new WzSubProperty(element.GetAttribute("name"));
                foreach (XmlElement subelement in element)
                {
                    sub.AddProperty(ParsePropertyFromXMLElement(subelement));
                }
                return(sub);

            case "canvas":
                WzCanvasProperty canvas = new WzCanvasProperty(element.GetAttribute("name"));
                if (!element.HasAttribute("basedata"))
                {
                    throw new NoBase64DataException("no base64 data in canvas element with name " + canvas.Name);
                }
                canvas.PngProperty = new WzPngProperty();
                MemoryStream pngstream = new MemoryStream(Convert.FromBase64String(element.GetAttribute("basedata")));
                canvas.PngProperty.SetPNG((Bitmap)Image.FromStream(pngstream, true, true));
                foreach (XmlElement subelement in element)
                {
                    canvas.AddProperty(ParsePropertyFromXMLElement(subelement));
                }
                return(canvas);

            case "int":
                WzCompressedIntProperty compressedInt = new WzCompressedIntProperty(element.GetAttribute("name"), int.Parse(element.GetAttribute("value"), formattingInfo));
                return(compressedInt);

            case "double":
                WzDoubleProperty doubleProp = new WzDoubleProperty(element.GetAttribute("name"), double.Parse(element.GetAttribute("value"), formattingInfo));
                return(doubleProp);

            case "null":
                WzNullProperty nullProp = new WzNullProperty(element.GetAttribute("name"));
                return(nullProp);

            case "sound":
                if (!element.HasAttribute("basedata") || !element.HasAttribute("basehead") || !element.HasAttribute("length"))
                {
                    throw new NoBase64DataException("no base64 data in sound element with name " + element.GetAttribute("name"));
                }
                WzSoundProperty sound = new WzSoundProperty(element.GetAttribute("name"),
                                                            int.Parse(element.GetAttribute("length")),
                                                            Convert.FromBase64String(element.GetAttribute("basehead")),
                                                            Convert.FromBase64String(element.GetAttribute("basedata")));
                return(sound);

            case "string":
                WzStringProperty stringProp = new WzStringProperty(element.GetAttribute("name"), element.GetAttribute("value"));
                return(stringProp);

            case "short":
                WzUnsignedShortProperty shortProp = new WzUnsignedShortProperty(element.GetAttribute("name"), ushort.Parse(element.GetAttribute("value"), formattingInfo));
                return(shortProp);

            case "uol":
                WzUOLProperty uol = new WzUOLProperty(element.GetAttribute("name"), element.GetAttribute("value"));
                return(uol);

            case "vector":
                WzVectorProperty vector = new WzVectorProperty(element.GetAttribute("name"), new WzCompressedIntProperty("x", Convert.ToInt32(element.GetAttribute("x"))), new WzCompressedIntProperty("y", Convert.ToInt32(element.GetAttribute("y"))));
                return(vector);

            case "float":
                WzByteFloatProperty floatProp = new WzByteFloatProperty(element.GetAttribute("name"), float.Parse(element.GetAttribute("value"), formattingInfo));
                return(floatProp);

            case "extended":
                WzConvexProperty convex = new WzConvexProperty(element.GetAttribute("name"));
                foreach (XmlElement subelement in element)
                {
                    convex.AddProperty(ParsePropertyFromXMLElement(subelement));
                }
                return(convex);
            }
            throw new InvalidDataException("unknown XML prop " + element.Name);
        }
Ejemplo n.º 6
0
 protected void WritePropertyToXML(TextWriter tw, string depth, IWzImageProperty prop)
 {
     if (prop is WzCanvasProperty)
     {
         WzCanvasProperty property3 = (WzCanvasProperty)prop;
         if (ExportBase64Data)
         {
             MemoryStream stream = new MemoryStream();
             property3.PngProperty.GetPNG(false).Save(stream, System.Drawing.Imaging.ImageFormat.Png);
             byte[] pngbytes = stream.ToArray();
             stream.Close();
             tw.Write(string.Concat(new object[] { depth, "<canvas name=\"", XmlUtil.SanitizeText(property3.Name), "\" width=\"", property3.PngProperty.Width, "\" height=\"", property3.PngProperty.Height, "\" basedata=\"", Convert.ToBase64String(pngbytes), "\">" }) + lineBreak);
         }
         else
         {
             tw.Write(string.Concat(new object[] { depth, "<canvas name=\"", XmlUtil.SanitizeText(property3.Name), "\" width=\"", property3.PngProperty.Width, "\" height=\"", property3.PngProperty.Height, "\">" }) + lineBreak);
         }
         string newDepth = depth + indent;
         foreach (IWzImageProperty property in property3.WzProperties)
         {
             WritePropertyToXML(tw, newDepth, property);
         }
         tw.Write(depth + "</canvas>" + lineBreak);
     }
     else if (prop is WzCompressedIntProperty)
     {
         WzCompressedIntProperty property4 = (WzCompressedIntProperty)prop;
         tw.Write(string.Concat(new object[] { depth, "<int name=\"", XmlUtil.SanitizeText(property4.Name), "\" value=\"", property4.Value, "\"/>" }) + lineBreak);
     }
     else if (prop is WzDoubleProperty)
     {
         WzDoubleProperty property5 = (WzDoubleProperty)prop;
         tw.Write(string.Concat(new object[] { depth, "<double name=\"", XmlUtil.SanitizeText(property5.Name), "\" value=\"", property5.Value, "\"/>" }) + lineBreak);
     }
     else if (prop is WzNullProperty)
     {
         WzNullProperty property6 = (WzNullProperty)prop;
         tw.Write(depth + "<null name=\"" + XmlUtil.SanitizeText(property6.Name) + "\"/>" + lineBreak);
     }
     else if (prop is WzSoundProperty)
     {
         WzSoundProperty property7 = (WzSoundProperty)prop;
         if (ExportBase64Data)
         {
             tw.Write(string.Concat(new object[] { depth, "<sound name=\"", XmlUtil.SanitizeText(property7.Name), "\" length=\"", property7.Length.ToString(), "\" basehead=\"", Convert.ToBase64String(property7.Header), "\" basedata=\"", Convert.ToBase64String(property7.GetBytes(false)), "\"/>" }) + lineBreak);
         }
         else
         {
             tw.Write(depth + "<sound name=\"" + XmlUtil.SanitizeText(property7.Name) + "\"/>" + lineBreak);
         }
     }
     else if (prop is WzStringProperty)
     {
         WzStringProperty property8 = (WzStringProperty)prop;
         string           str       = XmlUtil.SanitizeText(property8.Value);
         tw.Write(depth + "<string name=\"" + XmlUtil.SanitizeText(property8.Name) + "\" value=\"" + str + "\"/>" + lineBreak);
     }
     else if (prop is WzSubProperty)
     {
         WzSubProperty property9 = (WzSubProperty)prop;
         tw.Write(depth + "<imgdir name=\"" + XmlUtil.SanitizeText(property9.Name) + "\">" + lineBreak);
         string newDepth = depth + indent;
         foreach (IWzImageProperty property in property9.WzProperties)
         {
             WritePropertyToXML(tw, newDepth, property);
         }
         tw.Write(depth + "</imgdir>" + lineBreak);
     }
     else if (prop is WzUnsignedShortProperty)
     {
         WzUnsignedShortProperty property10 = (WzUnsignedShortProperty)prop;
         tw.Write(string.Concat(new object[] { depth, "<short name=\"", XmlUtil.SanitizeText(property10.Name), "\" value=\"", property10.Value, "\"/>" }) + lineBreak);
     }
     else if (prop is WzUOLProperty)
     {
         WzUOLProperty property11 = (WzUOLProperty)prop;
         tw.Write(depth + "<uol name=\"" + property11.Name + "\" value=\"" + XmlUtil.SanitizeText(property11.Value) + "\"/>" + lineBreak);
     }
     else if (prop is WzVectorProperty)
     {
         WzVectorProperty property12 = (WzVectorProperty)prop;
         tw.Write(string.Concat(new object[] { depth, "<vector name=\"", XmlUtil.SanitizeText(property12.Name), "\" x=\"", property12.X.Value, "\" y=\"", property12.Y.Value, "\"/>" }) + lineBreak);
     }
     else if (prop is WzByteFloatProperty)
     {
         WzByteFloatProperty property13 = (WzByteFloatProperty)prop;
         string str2 = Convert.ToString(property13.Value, formattingInfo);
         if (!str2.Contains("."))
         {
             str2 = str2 + ".0";
         }
         tw.Write(depth + "<float name=\"" + XmlUtil.SanitizeText(property13.Name) + "\" value=\"" + str2 + "\"/>" + lineBreak);
     }
     else if (prop is WzConvexProperty)
     {
         tw.Write(depth + "<extended name=\"" + XmlUtil.SanitizeText(prop.Name) + "\">" + lineBreak);
         WzConvexProperty property14 = (WzConvexProperty)prop;
         string           newDepth   = depth + indent;
         foreach (IWzImageProperty property in property14.WzProperties)
         {
             WritePropertyToXML(tw, newDepth, property);
         }
         tw.Write(depth + "</extended>" + lineBreak);
     }
 }