LayoutFarm.Text.EditableTextFlowLayer.AppendLine C# (CSharp) Method

AppendLine() private method

private AppendLine ( EditableTextLine line ) : void
line EditableTextLine
return void
        void AppendLine(EditableTextLine line)
        {
            if ((layerFlags & FLOWLAYER_HAS_MULTILINE) != 0)
            {
                List<EditableTextLine> lines = (List<EditableTextLine>)lineCollection;
                int lineCount = lines.Count;
                EditableTextLine lastLine = lines[lineCount - 1];
                line.SetLineNumber(lineCount);
                line.SetTop(lastLine.Top + lastLine.ActualLineHeight);
                lines.Add(line);
            }
            else
            {
                EditableTextLine onlyLine = (EditableTextLine)lineCollection;
                List<EditableTextLine> newLineList = new List<EditableTextLine>();
                newLineList.Add(onlyLine);
                line.SetTop(onlyLine.ActualLineHeight);
                line.SetLineNumber(1);
                newLineList.Add(line);
                lineCollection = newLineList;
                FlowLayerHasMultiLines = true;
            }
        }
        void PerformHorizontalFlowArrangeForMultilineText(

Usage Example

            public void CloseCurrentLine(int lineWidth, int lineHeight)
            {
                currentLine.SetPostArrangeLineSize(lineWidth, lineHeight);
                if (isMultiLine)
                {
                    if (currentRelocatorLineId < sourceLines.Count - 1)
                    {
                        ++currentRelocatorLineId;
                        currentLine = sourceLines[currentRelocatorLineId];
                    }
                    else
                    {
                        currentRelocatorLineId++;
                        EditableTextLine newLine = new EditableTextLine(flowLayer);
                        flowLayer.AppendLine(newLine);
                        currentLine = newLine;
                    }
                }
                else
                {
                    currentRelocatorLineId++;
                    EditableTextLine newLine = new EditableTextLine(flowLayer);
                    flowLayer.AppendLine(newLine);
                    sourceLines = (List <EditableTextLine>)flowLayer.lineCollection;
                    currentLine = newLine;
                    isMultiLine = true;
                }

                isFirstRunOfLine = true;
            }