Exemple #1
0
        /// <inheritdoc/>
        public override bool Break(BreakableComponent breakTo)
        {
            using (Graphics g = FRichTextBox.CreateGraphics())
            {
                // determine number of characters fit in the bounds. Set less height to prevent possible data loss.
                RectangleF textRect        = new RectangleF(0, 0, Width - Padding.Horizontal, Height - Padding.Vertical - 20);
                Graphics   measureGraphics = Report == null ? g : Report.PrintSettings.MeasureGraphics;
                if (measureGraphics == null)
                {
                    measureGraphics = g;
                }

                int textStart  = ActualTextStart;
                int textLength = ActualTextLength != 0 ? ActualTextLength : FRichTextBox.TextLength - textStart;
                int charsFit   = FRichTextBox.FormatRange(g, measureGraphics, textRect, textStart, textStart + textLength, true) - textStart;

                if (charsFit <= 0)
                {
                    return(false);
                }

                // perform break
                if (breakTo != null)
                {
                    RichObject richTo = breakTo as RichObject;
                    richTo.Text            = Text;
                    richTo.ActualTextStart = textStart + charsFit;
                    ActualTextLength       = charsFit;
                }

                return(true);
            }
        }
Exemple #2
0
        /// <inheritdoc/>
        public override void Assign(Base source)
        {
            base.Assign(source);

            RichObject src = source as RichObject;

            DataColumn       = src.DataColumn;
            ActualTextStart  = src.ActualTextStart;
            ActualTextLength = src.ActualTextLength;
        }
Exemple #3
0
        /// <inheritdoc/>
        public override void Serialize(FRWriter writer)
        {
            RichObject c = writer.DiffObject as RichObject;

            base.Serialize(writer);

            if (ActualTextStart != c.ActualTextStart)
            {
                writer.WriteInt("ActualTextStart", ActualTextStart);
            }
            if (ActualTextLength != c.ActualTextLength)
            {
                writer.WriteInt("ActualTextLength", ActualTextLength);
            }
            if (writer.SerializeTo != SerializeTo.Preview)
            {
                if (DataColumn != c.DataColumn)
                {
                    writer.WriteStr("DataColumn", DataColumn);
                }
            }
        }