public XElement Visit(StyleChangeShapeRecordRGBA record, object arg) { var res = FormatShapeSetup(record); if (record.StateNewStyles) { var xStyles = new XElement("styles"); xStyles.Add(XStyleList.ToXml(record.FillStyles, record.LineStyles)); res.Add(xStyles); } return(res); }
public IShapeRecord Visit(StyleChangeShapeRecordRGBA record, XElement xShapeRecord) { ReadStyleChange(record, xShapeRecord); var xStyles = xShapeRecord.Element("styles"); if (xStyles != null) { record.StateNewStyles = true; XStyleList.FromXml(xStyles.Element("StyleList"), record.FillStyles, record.LineStyles); } return(record); }
ShapeRecordWriteContext IShapeRecordVisitor <ShapeRecordWriteContext, ShapeRecordWriteContext> .Visit(StyleChangeShapeRecordRGBA record, ShapeRecordWriteContext ctx) { var writer = ctx.Writer; WriteStyleChangeShapeRecord(writer, record, ref ctx.FillStyleBits, ref ctx.LineStyleBits); if (record.StateNewStyles) { writer.WriteFillStylesRGBA(record.FillStyles); writer.WriteLineStylesRGBA(record.LineStyles); ctx.FillStyleBits = new UnsignedBitsCount((uint)record.FillStyles.Count).GetBits(); ctx.LineStyleBits = new UnsignedBitsCount((uint)record.LineStyles.Count).GetBits(); if (ctx.FillStyleBits < 1) { ctx.FillStyleBits = 1; //TODO: adobe? } writer.WriteUnsignedBits(ctx.FillStyleBits, 4); writer.WriteUnsignedBits(ctx.LineStyleBits, 4); } return(ctx); }
private static void AreEqual(StyleChangeShapeRecordRGBA expected, StyleChangeShapeRecordRGBA actual, string message) { Assert.AreEqual(expected.FillStyles.Count, actual.FillStyles.Count); }