} // DeriveWithSuperScript public RtfTextFormat DeriveWithSuperScript(bool super) { var copy = new RtfTextFormat(this); copy.FontSize = Math.Max(1, FontSize * 2 / 3); copy.SuperScript = (super ? 1 : -1) * Math.Max(1, FontSize / 2); return(copy); } // DeriveWithSuperScript
} // DeriveWithSuperScript // ---------------------------------------------------------------------- public RtfTextFormat DeriveWithSuperScript(bool super) { RtfTextFormat copy = new RtfTextFormat(this); copy.fontSize = Math.Max(1, (fontSize * 2) / 3); copy.superScript = (super ? 1 : -1) * Math.Max(1, fontSize / 2); return(copy); } // DeriveWithSuperScript
} // RtfDocument // ---------------------------------------------------------------------- public RtfDocument( int rtfVersion, IRtfFont defaultFont, IRtfFontCollection fontTable, IRtfColorCollection colorTable, string generator, IRtfTextFormatCollection uniqueTextFormats, IRtfDocumentInfo documentInfo, IRtfDocumentPropertyCollection userProperties, IRtfVisualCollection visualContent ) { if (rtfVersion != RtfSpec.RtfVersion1) { throw new RtfUnsupportedStructureException(Strings.UnsupportedRtfVersion(rtfVersion)); } if (defaultFont == null) { throw new ArgumentNullException("defaultFont"); } if (fontTable == null) { throw new ArgumentNullException("fontTable"); } if (colorTable == null) { throw new ArgumentNullException("colorTable"); } if (uniqueTextFormats == null) { throw new ArgumentNullException("uniqueTextFormats"); } if (documentInfo == null) { throw new ArgumentNullException("documentInfo"); } if (userProperties == null) { throw new ArgumentNullException("userProperties"); } if (visualContent == null) { throw new ArgumentNullException("visualContent"); } this.rtfVersion = rtfVersion; this.defaultFont = defaultFont; defaultTextFormat = new RtfTextFormat(defaultFont, RtfSpec.DefaultFontSize); this.fontTable = fontTable; this.colorTable = colorTable; this.generator = generator; this.uniqueTextFormats = uniqueTextFormats; this.documentInfo = documentInfo; this.userProperties = userProperties; this.visualContent = visualContent; } // RtfDocument
} // RtfDocument public RtfDocument( int rtfVersion, IRtfFont defaultFont, IRtfFontCollection fontTable, IRtfColorCollection colorTable, string generator, IRtfTextFormatCollection uniqueTextFormats, IRtfDocumentInfo documentInfo, IRtfDocumentPropertyCollection userProperties, IRtfVisualCollection visualContent ) { if (rtfVersion != RtfSpec.RtfVersion1) { throw new RtfUnsupportedStructureException(Strings.UnsupportedRtfVersion(rtfVersion)); } if (defaultFont == null) { throw new ArgumentNullException(nameof(defaultFont)); } if (fontTable == null) { throw new ArgumentNullException(nameof(fontTable)); } if (colorTable == null) { throw new ArgumentNullException(nameof(colorTable)); } if (uniqueTextFormats == null) { throw new ArgumentNullException(nameof(uniqueTextFormats)); } if (documentInfo == null) { throw new ArgumentNullException(nameof(documentInfo)); } if (userProperties == null) { throw new ArgumentNullException(nameof(userProperties)); } if (visualContent == null) { throw new ArgumentNullException(nameof(visualContent)); } RtfVersion = rtfVersion; DefaultFont = defaultFont; DefaultTextFormat = new RtfTextFormat(defaultFont, RtfSpec.DefaultFontSize); FontTable = fontTable; ColorTable = colorTable; Generator = generator; UniqueTextFormats = uniqueTextFormats; DocumentInfo = documentInfo; UserProperties = userProperties; VisualContent = visualContent; } // RtfDocument
} // SuperScript // ---------------------------------------------------------------------- public RtfTextFormat DeriveWithSuperScript(int deviation) { if (superScript == deviation) { return(this); } RtfTextFormat copy = new RtfTextFormat(this); copy.superScript = deviation; return(copy); } // DeriveWithSuperScript
} // IsHidden // ---------------------------------------------------------------------- public RtfTextFormat DeriveWithHidden(bool derivedHidden) { if (hidden == derivedHidden) { return(this); } RtfTextFormat copy = new RtfTextFormat(this); copy.hidden = derivedHidden; return(copy); } // DeriveWithHidden
} // IsStrikeThrough // ---------------------------------------------------------------------- public RtfTextFormat DeriveWithStrikeThrough(bool derivedStrikeThrough) { if (strikeThrough == derivedStrikeThrough) { return(this); } RtfTextFormat copy = new RtfTextFormat(this); copy.strikeThrough = derivedStrikeThrough; return(copy); } // DeriveWithStrikeThrough
} // Alignment // ---------------------------------------------------------------------- public RtfTextFormat DeriveWithAlignment(RtfTextAlignment derivedAlignment) { if (alignment == derivedAlignment) { return(this); } RtfTextFormat copy = new RtfTextFormat(this); copy.alignment = derivedAlignment; return(copy); } // DeriveWithForegroundColor
} // IsItalic // ---------------------------------------------------------------------- public RtfTextFormat DeriveWithItalic(bool derivedItalic) { if (italic == derivedItalic) { return(this); } RtfTextFormat copy = new RtfTextFormat(this); copy.italic = derivedItalic; return(copy); } // DeriveWithItalic
} // IsUnderline // ---------------------------------------------------------------------- public RtfTextFormat DeriveWithUnderline(bool derivedUnderline) { if (underline == derivedUnderline) { return(this); } RtfTextFormat copy = new RtfTextFormat(this); copy.underline = derivedUnderline; return(copy); } // DeriveWithUnderline
} // IsNormal // ---------------------------------------------------------------------- public RtfTextFormat DeriveNormal() { if (IsNormal) { return(this); } RtfTextFormat copy = new RtfTextFormat(font, RtfSpec.DefaultFontSize); copy.alignment = alignment; // this is a paragraph property, keep it return(copy); } // DeriveNormal
} // IsBold // ---------------------------------------------------------------------- public RtfTextFormat DeriveWithBold(bool derivedBold) { if (bold == derivedBold) { return(this); } RtfTextFormat copy = new RtfTextFormat(this); copy.bold = derivedBold; return(copy); } // DeriveWithBold
} // FontSize // ---------------------------------------------------------------------- public RtfTextFormat DeriveWithFontSize(int derivedFontSize) { if (derivedFontSize < 0 || derivedFontSize > 0xFFFF) { throw new ArgumentException(Strings.FontSizeOutOfRange(derivedFontSize)); } if (fontSize == derivedFontSize) { return(this); } RtfTextFormat copy = new RtfTextFormat(this); copy.fontSize = derivedFontSize; return(copy); } // DeriveWithFontSize
} // DeriveWithHidden public RtfTextFormat DeriveWithBackgroundColor(IRtfColor derivedBackgroundColor) { if (derivedBackgroundColor == null) { throw new ArgumentNullException(nameof(derivedBackgroundColor)); } if (BackgroundColor.Equals(derivedBackgroundColor)) { return(this); } var copy = new RtfTextFormat(this); copy.BackgroundColor = derivedBackgroundColor; return(copy); } // DeriveWithBackgroundColor
} // Font // ---------------------------------------------------------------------- public RtfTextFormat DeriveWithFont(IRtfFont rtfFont) { if (rtfFont == null) { throw new ArgumentNullException("rtfFont"); } if (font.Equals(rtfFont)) { return(this); } RtfTextFormat copy = new RtfTextFormat(this); copy.font = rtfFont; return(copy); } // DeriveWithFont
} // ForegroundColor // ---------------------------------------------------------------------- public RtfTextFormat DeriveWithForegroundColor(IRtfColor derivedForegroundColor) { if (derivedForegroundColor == null) { throw new ArgumentNullException("derivedForegroundColor"); } if (foregroundColor.Equals(derivedForegroundColor)) { return(this); } RtfTextFormat copy = new RtfTextFormat(this); copy.foregroundColor = derivedForegroundColor; return(copy); } // DeriveWithForegroundColor
} // SuperScript // ---------------------------------------------------------------------- public RtfTextFormat DeriveWithSuperScript(int deviation) { if (superScript == deviation) { return(this); } RtfTextFormat copy = new RtfTextFormat(this); copy.superScript = deviation; // reset font size if (deviation == 0) { copy.fontSize = (fontSize / 2) * 3; } return(copy); } // DeriveWithSuperScript
} // RtfTextFormat public RtfTextFormat(RtfTextFormat copy) { if (copy == null) { throw new ArgumentNullException(nameof(copy)); } Font = copy.Font; // enough because immutable FontSize = copy.FontSize; SuperScript = copy.SuperScript; IsBold = copy.IsBold; IsItalic = copy.IsItalic; IsUnderline = copy.IsUnderline; IsStrikeThrough = copy.IsStrikeThrough; IsHidden = copy.IsHidden; BackgroundColor = copy.BackgroundColor; // enough because immutable ForegroundColor = copy.ForegroundColor; // enough because immutable Alignment = copy.Alignment; } // RtfTextFormat
} // GetHashCode // ---------------------------------------------------------------------- private bool IsEqual(object obj) { RtfTextFormat compare = obj as RtfTextFormat; // guaranteed to be non-null return (compare != null && font.Equals(compare.font) && fontSize == compare.fontSize && superScript == compare.superScript && bold == compare.bold && italic == compare.italic && underline == compare.underline && strikeThrough == compare.strikeThrough && hidden == compare.hidden && backgroundColor.Equals(compare.backgroundColor) && foregroundColor.Equals(compare.foregroundColor) && alignment == compare.alignment); } // IsEqual
// ---------------------------------------------------------------------- public RtfTextFormat( RtfTextFormat copy ) { if ( copy == null ) { throw new ArgumentNullException( "copy" ); } font = copy.font; // enough because immutable fontSize = copy.fontSize; superScript = copy.superScript; bold = copy.bold; italic = copy.italic; underline = copy.underline; strikeThrough = copy.strikeThrough; hidden = copy.hidden; backgroundColor = copy.backgroundColor; // enough because immutable foregroundColor = copy.foregroundColor; // enough because immutable alignment = copy.alignment; }
} // RtfTextFormat // ---------------------------------------------------------------------- public RtfTextFormat(RtfTextFormat copy) { if (copy == null) { throw new ArgumentNullException("copy"); } font = copy.font; // enough because immutable fontSize = copy.fontSize; superScript = copy.superScript; bold = copy.bold; italic = copy.italic; underline = copy.underline; strikeThrough = copy.strikeThrough; hidden = copy.hidden; backgroundColor = copy.backgroundColor; // enough because immutable foregroundColor = copy.foregroundColor; // enough because immutable alignment = copy.alignment; } // RtfTextFormat
} // SuperScript // ---------------------------------------------------------------------- public RtfTextFormat DeriveWithSuperScript( int deviation ) { if ( this.superScript == deviation ) { return this; } RtfTextFormat copy = new RtfTextFormat( this ); copy.superScript = deviation; return copy; } // DeriveWithSuperScript
// ---------------------------------------------------------------------- public RtfTextFormat DeriveWithUnderline( bool derivedUnderline ) { if ( underline == derivedUnderline ) { return this; } RtfTextFormat copy = new RtfTextFormat( this ); copy.underline = derivedUnderline; return copy; }
// ---------------------------------------------------------------------- public RtfTextFormat DeriveWithSuperScript( bool super ) { RtfTextFormat copy = new RtfTextFormat( this ); copy.fontSize = Math.Max( 1, ( fontSize * 2 ) / 3 ); copy.superScript = ( super ? 1 : -1 ) * Math.Max( 1, fontSize / 2 ); return copy; }
// ---------------------------------------------------------------------- public RtfTextFormat DeriveWithSuperScript( int deviation ) { if ( superScript == deviation ) { return this; } RtfTextFormat copy = new RtfTextFormat( this ); copy.superScript = deviation; // reset font size if ( deviation == 0 ) { copy.fontSize = ( fontSize / 2 ) * 3; } return copy; }
// ---------------------------------------------------------------------- public RtfTextFormat DeriveWithStrikeThrough( bool derivedStrikeThrough ) { if ( strikeThrough == derivedStrikeThrough ) { return this; } RtfTextFormat copy = new RtfTextFormat( this ); copy.strikeThrough = derivedStrikeThrough; return copy; }
// ---------------------------------------------------------------------- public RtfTextFormat DeriveWithItalic( bool derivedItalic ) { if ( italic == derivedItalic ) { return this; } RtfTextFormat copy = new RtfTextFormat( this ); copy.italic = derivedItalic; return copy; }
// ---------------------------------------------------------------------- public RtfTextFormat DeriveWithHidden( bool derivedHidden ) { if ( hidden == derivedHidden ) { return this; } RtfTextFormat copy = new RtfTextFormat( this ); copy.hidden = derivedHidden; return copy; }
// ---------------------------------------------------------------------- public RtfTextFormat DeriveWithForegroundColor( IRtfColor derivedForegroundColor ) { if ( derivedForegroundColor == null ) { throw new ArgumentNullException( "derivedForegroundColor" ); } if ( foregroundColor.Equals( derivedForegroundColor ) ) { return this; } RtfTextFormat copy = new RtfTextFormat( this ); copy.foregroundColor = derivedForegroundColor; return copy; }
// ---------------------------------------------------------------------- public RtfTextFormat DeriveWithFontSize( int derivedFontSize ) { if ( derivedFontSize < 0 || derivedFontSize > 0xFFFF ) { throw new ArgumentException( Strings.FontSizeOutOfRange( derivedFontSize ) ); } if ( fontSize == derivedFontSize ) { return this; } RtfTextFormat copy = new RtfTextFormat( this ); copy.fontSize = derivedFontSize; return copy; }
// ---------------------------------------------------------------------- public RtfTextFormat DeriveWithFont( IRtfFont rtfFont ) { if ( rtfFont == null ) { throw new ArgumentNullException( "rtfFont" ); } if ( font.Equals( rtfFont ) ) { return this; } RtfTextFormat copy = new RtfTextFormat( this ); copy.font = rtfFont; return copy; }
// ---------------------------------------------------------------------- public RtfTextFormat DeriveWithBold( bool derivedBold ) { if ( bold == derivedBold ) { return this; } RtfTextFormat copy = new RtfTextFormat( this ); copy.bold = derivedBold; return copy; }
// ---------------------------------------------------------------------- public RtfTextFormat DeriveWithAlignment( RtfTextAlignment derivedAlignment ) { if ( alignment == derivedAlignment ) { return this; } RtfTextFormat copy = new RtfTextFormat( this ); copy.alignment = derivedAlignment; return copy; }
// ---------------------------------------------------------------------- public RtfTextFormat DeriveNormal() { if ( IsNormal ) { return this; } RtfTextFormat copy = new RtfTextFormat( font, RtfSpec.DefaultFontSize ); copy.alignment = alignment; // this is a paragraph property, keep it return copy; }
// ---------------------------------------------------------------------- public void Reset() { state = RtfInterpreterState.Init; rtfVersion = RtfSpec.RtfVersion1; defaultFontId = "f0"; fontTable.Clear(); colorTable.Clear(); generator = null; uniqueTextFormats.Clear(); textFormatStack.Clear(); currentTextFormat = null; documentInfo.Reset(); userProperties.Clear(); }
// ---------------------------------------------------------------------- public void PopCurrentTextFormat() { if ( textFormatStack.Count == 0 ) { throw new RtfStructureException( Strings.InvalidTextContextState ); } currentTextFormat = (RtfTextFormat)textFormatStack.Pop(); }