static void saveXml(bloPane pane, XmlWriter writer) { var typeID = "pane"; if (pane is bloTextbox) { typeID = "textbox"; } else if (pane is bloWindow) { typeID = "window"; } else if (pane is bloPicture) { typeID = "picture"; } writer.WriteStartElement(typeID); pane.saveXml(writer); if (pane.getChildPane() > 0) { writer.WriteComment("children"); foreach (var childpane in pane) { saveXml(childpane, writer); } } writer.WriteEndElement(); }
static void saveCompact(bloPane pane, aBinaryWriter writer) { var typeID = cPaneID; if (pane is bloTextbox) { typeID = cTextboxID; } else if (pane is bloWindow) { typeID = cWindowID; } else if (pane is bloPicture) { typeID = cPictureID; } writer.Write16(typeID); pane.saveCompact(writer); if (pane.getChildPane() > 0) { writer.Write16(cBeginID); foreach (var childpane in pane) { saveCompact(childpane, writer); } writer.Write16(cEndID); } }
static void saveBlo1(bloPane pane, aBinaryWriter writer, ref uint blockcount) { var typeID = cPAN1; if (pane is bloTextbox) { typeID = cTBX1; } else if (pane is bloWindow) { typeID = cWIN1; } else if (pane is bloPicture) { typeID = cPIC1; } var blockstart = writer.Position; writer.Write32(typeID); writer.Write32(0u); // dummy size pane.saveBlo1(writer); writer.WritePadding(4, 0); var blockend = writer.Position; writer.Goto(blockstart + 4); writer.Write32((uint)(blockend - blockstart)); writer.Goto(blockend); ++blockcount; if (pane.getChildPane() > 0) { writer.Write32(cBGN1); writer.Write32(0x8u); ++blockcount; foreach (var childpane in pane) { saveBlo1(childpane, writer, ref blockcount); } writer.Write32(cEND1); writer.Write32(0x8u); ++blockcount; } }