public void WriteDefinition(Stream result) { byte[] t; result.Write(OPEN_GROUP, 0, OPEN_GROUP.Length); result.Write(LIST_LEVEL, 0, LIST_LEVEL.Length); result.Write(LIST_LEVEL_TYPE, 0, LIST_LEVEL_TYPE.Length); switch (this.listType) { case LIST_TYPE_BULLET: result.Write(t = IntToByteArray(23), 0, t.Length); break; case LIST_TYPE_NUMBERED: result.Write(t = IntToByteArray(0), 0, t.Length); break; case LIST_TYPE_UPPER_LETTERS: result.Write(t = IntToByteArray(3), 0, t.Length); break; case LIST_TYPE_LOWER_LETTERS: result.Write(t = IntToByteArray(4), 0, t.Length); break; case LIST_TYPE_UPPER_ROMAN: result.Write(t = IntToByteArray(1), 0, t.Length); break; case LIST_TYPE_LOWER_ROMAN: result.Write(t = IntToByteArray(2), 0, t.Length); break; /* New types */ case LIST_TYPE_ARABIC: result.Write(t = IntToByteArray(0), 0, t.Length); break; case LIST_TYPE_UPPERCASE_ROMAN_NUMERAL: result.Write(t = IntToByteArray(1), 0, t.Length); break; case LIST_TYPE_LOWERCASE_ROMAN_NUMERAL: result.Write(t = IntToByteArray(2), 0, t.Length); break; case LIST_TYPE_UPPERCASE_LETTER: result.Write(t = IntToByteArray(3), 0, t.Length); break; case LIST_TYPE_ORDINAL_NUMBER: result.Write(t = IntToByteArray(4), 0, t.Length); break; case LIST_TYPE_CARDINAL_TEXT_NUMBER: result.Write(t = IntToByteArray(5), 0, t.Length); break; case LIST_TYPE_ORDINAL_TEXT_NUMBER: result.Write(t = IntToByteArray(6), 0, t.Length); break; case LIST_TYPE_LOWERCASE_LETTER: result.Write(t = IntToByteArray(7), 0, t.Length); break; case LIST_TYPE_ARABIC_LEADING_ZERO: result.Write(t = IntToByteArray(22), 0, t.Length); break; case LIST_TYPE_NO_NUMBER: result.Write(t = IntToByteArray(255), 0, t.Length); break; default: // catch all for other unsupported types if (this.listType >= RtfListLevel.LIST_TYPE_BASE) { result.Write(t = IntToByteArray(this.listType - RtfListLevel.LIST_TYPE_BASE), 0, t.Length); } break; } result.Write(LIST_LEVEL_TYPE_NEW, 0, LIST_LEVEL_TYPE_NEW.Length); switch (this.listType) { case LIST_TYPE_BULLET: result.Write(t = IntToByteArray(23), 0, t.Length); break; case LIST_TYPE_NUMBERED: result.Write(t = IntToByteArray(0), 0, t.Length); break; case LIST_TYPE_UPPER_LETTERS: result.Write(t = IntToByteArray(3), 0, t.Length); break; case LIST_TYPE_LOWER_LETTERS: result.Write(t = IntToByteArray(4), 0, t.Length); break; case LIST_TYPE_UPPER_ROMAN: result.Write(t = IntToByteArray(1), 0, t.Length); break; case LIST_TYPE_LOWER_ROMAN: result.Write(t = IntToByteArray(2), 0, t.Length); break; /* New types */ case LIST_TYPE_ARABIC: result.Write(t = IntToByteArray(0), 0, t.Length); break; case LIST_TYPE_UPPERCASE_ROMAN_NUMERAL: result.Write(t = IntToByteArray(1), 0, t.Length); break; case LIST_TYPE_LOWERCASE_ROMAN_NUMERAL: result.Write(t = IntToByteArray(2), 0, t.Length); break; case LIST_TYPE_UPPERCASE_LETTER: result.Write(t = IntToByteArray(3), 0, t.Length); break; case LIST_TYPE_ORDINAL_NUMBER: result.Write(t = IntToByteArray(4), 0, t.Length); break; case LIST_TYPE_CARDINAL_TEXT_NUMBER: result.Write(t = IntToByteArray(5), 0, t.Length); break; case LIST_TYPE_ORDINAL_TEXT_NUMBER: result.Write(t = IntToByteArray(6), 0, t.Length); break; case LIST_TYPE_LOWERCASE_LETTER: result.Write(t = IntToByteArray(7), 0, t.Length); break; case LIST_TYPE_ARABIC_LEADING_ZERO: result.Write(t = IntToByteArray(22), 0, t.Length); break; case LIST_TYPE_NO_NUMBER: result.Write(t = IntToByteArray(255), 0, t.Length); break; default: // catch all for other unsupported types if (this.listType >= RtfListLevel.LIST_TYPE_BASE) { result.Write(t = IntToByteArray(this.listType - RtfListLevel.LIST_TYPE_BASE), 0, t.Length); } break; } result.Write(LIST_LEVEL_ALIGNMENT, 0, LIST_LEVEL_ALIGNMENT.Length); result.Write(t = IntToByteArray(0), 0, t.Length); result.Write(LIST_LEVEL_ALIGNMENT_NEW, 0, LIST_LEVEL_ALIGNMENT_NEW.Length); result.Write(t = IntToByteArray(0), 0, t.Length); result.Write(LIST_LEVEL_FOLOW, 0, LIST_LEVEL_FOLOW.Length); result.Write(t = IntToByteArray(levelFollowValue), 0, t.Length); result.Write(LIST_LEVEL_START_AT, 0, LIST_LEVEL_START_AT.Length); result.Write(t = IntToByteArray(this.listStartAt), 0, t.Length); if (this.isTentative) { result.Write(LIST_LEVEL_TENTATIVE, 0, LIST_LEVEL_TENTATIVE.Length); } if (this.isLegal) { result.Write(LIST_LEVEL_LEGAL, 0, LIST_LEVEL_LEGAL.Length); } result.Write(LIST_LEVEL_SPACE, 0, LIST_LEVEL_SPACE.Length); result.Write(t = IntToByteArray(0), 0, t.Length); result.Write(LIST_LEVEL_INDENT, 0, LIST_LEVEL_INDENT.Length); result.Write(t = IntToByteArray(0), 0, t.Length); if (levelPicture != -1) { result.Write(LIST_LEVEL_PICTURE, 0, LIST_LEVEL_PICTURE.Length); result.Write(t = IntToByteArray(levelPicture), 0, t.Length); } result.Write(OPEN_GROUP, 0, OPEN_GROUP.Length); // { leveltext result.Write(LIST_LEVEL_TEXT, 0, LIST_LEVEL_TEXT.Length); result.Write(LIST_LEVEL_TEMPLATE_ID, 0, LIST_LEVEL_TEMPLATE_ID.Length); result.Write(t = IntToByteArray(this.templateID), 0, t.Length); /* NEVER seperate the LEVELTEXT elements with a return in between * them or it will not fuction correctly! */ // TODO Needs to be rewritten to support 1-9 levels, not just simple single level if (this.listType != LIST_TYPE_BULLET) { result.Write(LIST_LEVEL_STYLE_NUMBERED_BEGIN, 0, LIST_LEVEL_STYLE_NUMBERED_BEGIN.Length); if (this.levelTextNumber < 10) { result.Write(t = IntToByteArray(0), 0, t.Length); } result.Write(t = IntToByteArray(this.levelTextNumber), 0, t.Length); result.Write(LIST_LEVEL_STYLE_NUMBERED_END, 0, LIST_LEVEL_STYLE_NUMBERED_END.Length); } else { result.Write(LIST_LEVEL_STYLE_BULLETED_BEGIN, 0, LIST_LEVEL_STYLE_BULLETED_BEGIN.Length); this.document.FilterSpecialChar(result, this.bulletCharacter, false, false); result.Write(LIST_LEVEL_STYLE_BULLETED_END, 0, LIST_LEVEL_STYLE_BULLETED_END.Length); } result.Write(CLOSE_GROUP, 0, CLOSE_GROUP.Length); // } leveltext result.Write(OPEN_GROUP, 0, OPEN_GROUP.Length); // { levelnumbers result.Write(LIST_LEVEL_NUMBERS_BEGIN, 0, LIST_LEVEL_NUMBERS_BEGIN.Length); if (this.listType != LIST_TYPE_BULLET) { result.Write(LIST_LEVEL_NUMBERS_NUMBERED, 0, LIST_LEVEL_NUMBERS_NUMBERED.Length); } result.Write(LIST_LEVEL_NUMBERS_END, 0, LIST_LEVEL_NUMBERS_END.Length); result.Write(CLOSE_GROUP, 0, CLOSE_GROUP.Length);// { levelnumbers // write properties now result.Write(RtfFontList.FONT_NUMBER, 0, RtfFontList.FONT_NUMBER.Length); if (this.listType != LIST_TYPE_BULLET) { result.Write(t = IntToByteArray(fontNumber.GetFontNumber()), 0, t.Length); } else { result.Write(t = IntToByteArray(fontBullet.GetFontNumber()), 0, t.Length); } result.Write(t = DocWriter.GetISOBytes("\\cf"), 0, t.Length); // document.GetDocumentHeader().GetColorNumber(new RtfColor(this.document,this.GetFontNumber().GetColor())); result.Write(t = IntToByteArray(document.GetDocumentHeader().GetColorNumber(new RtfColor(this.document, this.GetFontNumber().Color))), 0, t.Length); WriteIndentation(result); result.Write(CLOSE_GROUP, 0, CLOSE_GROUP.Length); this.document.OutputDebugLinebreak(result); }
public void WriteDefinition(Stream result) { byte[] t; result.Write(OpenGroup, 0, OpenGroup.Length); result.Write(_listLevel, 0, _listLevel.Length); result.Write(_listLevelType, 0, _listLevelType.Length); switch (_listType) { case LIST_TYPE_BULLET: result.Write(t = IntToByteArray(23), 0, t.Length); break; case LIST_TYPE_NUMBERED: result.Write(t = IntToByteArray(0), 0, t.Length); break; case LIST_TYPE_UPPER_LETTERS: result.Write(t = IntToByteArray(3), 0, t.Length); break; case LIST_TYPE_LOWER_LETTERS: result.Write(t = IntToByteArray(4), 0, t.Length); break; case LIST_TYPE_UPPER_ROMAN: result.Write(t = IntToByteArray(1), 0, t.Length); break; case LIST_TYPE_LOWER_ROMAN: result.Write(t = IntToByteArray(2), 0, t.Length); break; /* New types */ case LIST_TYPE_ARABIC: result.Write(t = IntToByteArray(0), 0, t.Length); break; case LIST_TYPE_UPPERCASE_ROMAN_NUMERAL: result.Write(t = IntToByteArray(1), 0, t.Length); break; case LIST_TYPE_LOWERCASE_ROMAN_NUMERAL: result.Write(t = IntToByteArray(2), 0, t.Length); break; case LIST_TYPE_UPPERCASE_LETTER: result.Write(t = IntToByteArray(3), 0, t.Length); break; case LIST_TYPE_ORDINAL_NUMBER: result.Write(t = IntToByteArray(4), 0, t.Length); break; case LIST_TYPE_CARDINAL_TEXT_NUMBER: result.Write(t = IntToByteArray(5), 0, t.Length); break; case LIST_TYPE_ORDINAL_TEXT_NUMBER: result.Write(t = IntToByteArray(6), 0, t.Length); break; case LIST_TYPE_LOWERCASE_LETTER: result.Write(t = IntToByteArray(7), 0, t.Length); break; case LIST_TYPE_ARABIC_LEADING_ZERO: result.Write(t = IntToByteArray(22), 0, t.Length); break; case LIST_TYPE_NO_NUMBER: result.Write(t = IntToByteArray(255), 0, t.Length); break; default: // catch all for other unsupported types if (_listType >= LIST_TYPE_BASE) { result.Write(t = IntToByteArray(_listType - LIST_TYPE_BASE), 0, t.Length); } break; } result.Write(_listLevelTypeNew, 0, _listLevelTypeNew.Length); switch (_listType) { case LIST_TYPE_BULLET: result.Write(t = IntToByteArray(23), 0, t.Length); break; case LIST_TYPE_NUMBERED: result.Write(t = IntToByteArray(0), 0, t.Length); break; case LIST_TYPE_UPPER_LETTERS: result.Write(t = IntToByteArray(3), 0, t.Length); break; case LIST_TYPE_LOWER_LETTERS: result.Write(t = IntToByteArray(4), 0, t.Length); break; case LIST_TYPE_UPPER_ROMAN: result.Write(t = IntToByteArray(1), 0, t.Length); break; case LIST_TYPE_LOWER_ROMAN: result.Write(t = IntToByteArray(2), 0, t.Length); break; /* New types */ case LIST_TYPE_ARABIC: result.Write(t = IntToByteArray(0), 0, t.Length); break; case LIST_TYPE_UPPERCASE_ROMAN_NUMERAL: result.Write(t = IntToByteArray(1), 0, t.Length); break; case LIST_TYPE_LOWERCASE_ROMAN_NUMERAL: result.Write(t = IntToByteArray(2), 0, t.Length); break; case LIST_TYPE_UPPERCASE_LETTER: result.Write(t = IntToByteArray(3), 0, t.Length); break; case LIST_TYPE_ORDINAL_NUMBER: result.Write(t = IntToByteArray(4), 0, t.Length); break; case LIST_TYPE_CARDINAL_TEXT_NUMBER: result.Write(t = IntToByteArray(5), 0, t.Length); break; case LIST_TYPE_ORDINAL_TEXT_NUMBER: result.Write(t = IntToByteArray(6), 0, t.Length); break; case LIST_TYPE_LOWERCASE_LETTER: result.Write(t = IntToByteArray(7), 0, t.Length); break; case LIST_TYPE_ARABIC_LEADING_ZERO: result.Write(t = IntToByteArray(22), 0, t.Length); break; case LIST_TYPE_NO_NUMBER: result.Write(t = IntToByteArray(255), 0, t.Length); break; default: // catch all for other unsupported types if (_listType >= LIST_TYPE_BASE) { result.Write(t = IntToByteArray(_listType - LIST_TYPE_BASE), 0, t.Length); } break; } result.Write(_listLevelAlignment, 0, _listLevelAlignment.Length); result.Write(t = IntToByteArray(0), 0, t.Length); result.Write(_listLevelAlignmentNew, 0, _listLevelAlignmentNew.Length); result.Write(t = IntToByteArray(0), 0, t.Length); result.Write(_listLevelFolow, 0, _listLevelFolow.Length); result.Write(t = IntToByteArray(_levelFollowValue), 0, t.Length); result.Write(_listLevelStartAt, 0, _listLevelStartAt.Length); result.Write(t = IntToByteArray(_listStartAt), 0, t.Length); if (_isTentative) { result.Write(_listLevelTentative, 0, _listLevelTentative.Length); } if (_isLegal) { result.Write(_listLevelLegal, 0, _listLevelLegal.Length); } result.Write(_listLevelSpace, 0, _listLevelSpace.Length); result.Write(t = IntToByteArray(0), 0, t.Length); result.Write(_listLevelIndent, 0, _listLevelIndent.Length); result.Write(t = IntToByteArray(0), 0, t.Length); if (_levelPicture != -1) { result.Write(_listLevelPicture, 0, _listLevelPicture.Length); result.Write(t = IntToByteArray(_levelPicture), 0, t.Length); } result.Write(OpenGroup, 0, OpenGroup.Length); // { leveltext result.Write(_listLevelText, 0, _listLevelText.Length); result.Write(_listLevelTemplateId, 0, _listLevelTemplateId.Length); result.Write(t = IntToByteArray(_templateId), 0, t.Length); /* NEVER seperate the LEVELTEXT elements with a return in between * them or it will not fuction correctly! */ // TODO Needs to be rewritten to support 1-9 levels, not just simple single level if (_listType != LIST_TYPE_BULLET) { result.Write(_listLevelStyleNumberedBegin, 0, _listLevelStyleNumberedBegin.Length); if (_levelTextNumber < 10) { result.Write(t = IntToByteArray(0), 0, t.Length); } result.Write(t = IntToByteArray(_levelTextNumber), 0, t.Length); result.Write(_listLevelStyleNumberedEnd, 0, _listLevelStyleNumberedEnd.Length); } else { result.Write(_listLevelStyleBulletedBegin, 0, _listLevelStyleBulletedBegin.Length); Document.FilterSpecialChar(result, _bulletCharacter, false, false); result.Write(_listLevelStyleBulletedEnd, 0, _listLevelStyleBulletedEnd.Length); } result.Write(CloseGroup, 0, CloseGroup.Length); // } leveltext result.Write(OpenGroup, 0, OpenGroup.Length); // { levelnumbers result.Write(_listLevelNumbersBegin, 0, _listLevelNumbersBegin.Length); if (_listType != LIST_TYPE_BULLET) { result.Write(_listLevelNumbersNumbered, 0, _listLevelNumbersNumbered.Length); } result.Write(_listLevelNumbersEnd, 0, _listLevelNumbersEnd.Length); result.Write(CloseGroup, 0, CloseGroup.Length);// { levelnumbers // write properties now result.Write(RtfFontList.FontNumber, 0, RtfFontList.FontNumber.Length); if (_listType != LIST_TYPE_BULLET) { result.Write(t = IntToByteArray(_fontNumber.GetFontNumber()), 0, t.Length); } else { result.Write(t = IntToByteArray(_fontBullet.GetFontNumber()), 0, t.Length); } result.Write(t = DocWriter.GetIsoBytes("\\cf"), 0, t.Length); // document.GetDocumentHeader().GetColorNumber(new RtfColor(this.document,this.GetFontNumber().GetColor())); result.Write(t = IntToByteArray(Document.GetDocumentHeader().GetColorNumber(new RtfColor(Document, GetFontNumber().Color))), 0, t.Length); WriteIndentation(result); result.Write(CloseGroup, 0, CloseGroup.Length); Document.OutputDebugLinebreak(result); }