Exemplo n.º 1
0
 public TextBuilder()
 {
     lines       = new LinePool(this);
     sbPool      = new ObjectPool <StringBuilder>(new StringBuilderPoolPolicy());
     BuilderMode = TextBuilderModes.Unlined;
     Format      = GlyphFormat.White;
 }
Exemplo n.º 2
0
                /// <summary>
                /// Facilitates general purpose access to TextBuilder members.
                /// </summary>
                protected virtual object GetOrSetMember(object data, int memberEnum)
                {
                    switch ((TextBuilderAccessors)memberEnum)
                    {
                    case TextBuilderAccessors.LineWrapWidth:
                    {
                        if (data == null)
                        {
                            return(LineWrapWidth);
                        }
                        else
                        {
                            LineWrapWidth = (float)data;
                        }

                        break;
                    }

                    case TextBuilderAccessors.BuilderMode:
                    {
                        if (data == null)
                        {
                            return(BuilderMode);
                        }
                        else
                        {
                            BuilderMode = (TextBuilderModes)data;
                        }

                        break;
                    }

                    case TextBuilderAccessors.GetRange:
                    {
                        var range = (MyTuple <Vector2I, Vector2I>)data;
                        return(GetTextRangeData(range.Item1, range.Item2));
                    }

                    case TextBuilderAccessors.SetFormatting:
                    {
                        var input = (MyTuple <Vector2I, Vector2I, GlyphFormatMembers>)data;

                        SetFormattingData(input.Item1, input.Item2, input.Item3);
                        break;
                    }

                    case TextBuilderAccessors.RemoveRange:
                    {
                        var range = (MyTuple <Vector2I, Vector2I>)data;

                        RemoveRange(range.Item1, range.Item2);
                        break;
                    }

                    case TextBuilderAccessors.Format:
                    {
                        if (data == null)
                        {
                            return(Format.Data);
                        }
                        else
                        {
                            Format = new GlyphFormat((GlyphFormatMembers)data);
                            break;
                        }
                    }

                    case TextBuilderAccessors.ToString:
                        return(ToString());
                    }

                    return(null);
                }