示例#1
0
 public TextBox(Texture2D texture, V2DInstance inst) : base(texture, inst)
 {
     if (inst.Definition is V2DText)
     {
         sb = new StringBuilder();
         V2DText t = (V2DText)inst.Definition;
         textAtoms = new List <TextAtom>();
         for (int i = 0; i < t.TextRuns.Count; i++)
         {
             TextAtom ta = new TextAtom(this.X, this.Y, t.TextRuns[i]);
             textAtoms.Add(ta);
             sb.Append(ta.Text);
         }
         RecreateTextRuns();
     }
 }
示例#2
0
        private void WriteDefinitions(V2DWorld v2dWorld)
        {
            foreach (Definition2D def in v2d.definitions)
            {
                V2DDefinition d;
                if (def is Text2D)
                {
                    V2DText v2t = new V2DText();
                    d            = v2t;
                    v2t.TextRuns = ((Text2D)def).TextRuns;
                }
                else
                {
                    d = new V2DDefinition();
                    d.V2DShapes.Clear();
                    for (int i = 0; i < def.Shapes.Count; i++)
                    {
                        d.V2DShapes.Add(def.Shapes[i].GetV2DShape());
                    }

                    d.Instances.Clear();
                    if (def.Children.Count > 0)
                    {
                        for (int i = 0; i < def.Children.Count; i++)
                        {
                            d.Instances.Add(GetV2DInstance(def.Children[i]));
                        }
                    }
                }

                v2dWorld.definitions.Add(d);
                d.Name        = def.DefinitionName;
                d.Id          = def.Id;
                d.LinkageName = def.LinkageName;                // paths.ContainsKey(def.Id) ? paths[def.Id] : "";
                d.FrameCount  = def.FrameCount;
                d.OffsetX     = def.Bounds.Point.X;
                d.OffsetY     = def.Bounds.Point.Y;
                d.Width       = def.Bounds.Size.Width;
                d.Height      = def.Bounds.Size.Height;

                d.Joints.Clear();
                if (def.Joints.Count > 0)
                {
                    WriteJointData(d.Joints, def);
                }
            }
        }