Alex did work getting TLF to work with spans. IIRC that was functional. I don’t remember whether editing worked or not, but that should be doable without too much trouble if not.
You’ll need a hidden input to take the interaction, but you probably know that already. > On Feb 17, 2021, at 6:04 PM, Yishay Weiss <[email protected]> wrote: > > I am not sure which problems are app related and which are FW related. Glad > to hear you're optimistic, makes me think it's worthwhile going for it. I'll > try to create some tests for these APIs. > > Spark TextArea isn't editable so I thought there might be issues with TLF, > but again, it could be Spark issues. > > Thanks. > ________________________________ > From: Harbs <[email protected]> > Sent: Wednesday, February 17, 2021 1:45 PM > To: Apache Royale Development <[email protected]> > Subject: Re: TLF APIs Effort Estimate > > The vast majority of this should work. No? > >> On Feb 17, 2021, at 12:30 PM, Yishay Weiss <[email protected]> wrote: >> >> Hi All, >> >> The app I am porting makes extensive use of some TLF APIs. Re-implementing >> everything differently will be difficult so I am trying to estimate the work >> involved in actually making the below APIs work. If anyone (prbly Harbs and >> Alex) has time to have a quick glance and help me asses the work involved, I >> would be grateful. >> >> Thanks, >> Yishay >> >> flashx.textLayout.container.ContainerController,3 >> flashx.textLayout.container.ContainerController:compositionHeight,3 >> flashx.textLayout.container.ContainerController:getContentBounds,1 >> flashx.textLayout.container.ContainerController:setCompositionSize,1 >> flashx.textLayout.container.ContainerController:verticalScrollPosition,4 >> flashx.textLayout.conversion.ConversionType,7 >> flashx.textLayout.conversion.ConversionType:STRING_TYPE,2 >> flashx.textLayout.conversion.ConversionType:XML_TYPE,5 >> flashx.textLayout.conversion.TextConverter,18 >> flashx.textLayout.conversion.TextConverter:TEXT_LAYOUT_FORMAT,9 >> flashx.textLayout.conversion.TextConverter:export,7 >> flashx.textLayout.conversion.TextConverter:importToFlow,2 >> flashx.textLayout.edit.EditManager,3 >> flashx.textLayout.edit.EditManager:applyFormat,2 >> flashx.textLayout.edit.EditManager:applyFormatToElement,2 >> flashx.textLayout.edit.EditManager:applyLink,2 >> flashx.textLayout.edit.EditManager:applyParagraphFormat,2 >> flashx.textLayout.edit.EditManager:insertInlineGraphic,1 >> flashx.textLayout.edit.EditManager:keyDownHandler,1 >> flashx.textLayout.edit.EditManager:keyUpHandler,1 >> flashx.textLayout.edit.EditManager:textFlow,1 >> flashx.textLayout.edit.EditManager:undoManager,1 >> flashx.textLayout.edit.ElementRange,4 >> flashx.textLayout.edit.ElementRange:createElementRange,1 >> flashx.textLayout.edit.ElementRange:textFlow,1 >> flashx.textLayout.edit.IEditManager,12 >> flashx.textLayout.edit.SelectionManager:activePosition,2 >> flashx.textLayout.edit.SelectionManager:anchorPosition,1 >> flashx.textLayout.edit.SelectionManager:getCommonCharacterFormat,1 >> flashx.textLayout.edit.SelectionManager:getSelectionState,12 >> flashx.textLayout.edit.SelectionState,12 >> flashx.textLayout.edit.SelectionState:absoluteEnd,3 >> flashx.textLayout.edit.SelectionState:absoluteStart,3 >> flashx.textLayout.edit.TextFlowEdit,2 >> flashx.textLayout.edit.TextFlowEdit:makeLink,1 >> flashx.textLayout.edit.TextFlowEdit:removeLink,1 >> flashx.textLayout.edit.TextScrap:textFlow,1 >> flashx.textLayout.elements.DivElement,93 >> flashx.textLayout.elements.DivElement:addChild,11 >> flashx.textLayout.elements.DivElement:addChildAt,2 >> flashx.textLayout.elements.DivElement:getChildAt,6 >> flashx.textLayout.elements.DivElement:getChildIndex,3 >> flashx.textLayout.elements.DivElement:getElementRelativeStart,1 >> flashx.textLayout.elements.DivElement:getFirstLeaf,5 >> flashx.textLayout.elements.DivElement:getLastLeaf,3 >> flashx.textLayout.elements.DivElement:getNextSibling,6 >> flashx.textLayout.elements.DivElement:getPreviousSibling,3 >> flashx.textLayout.elements.DivElement:numChildren,2 >> flashx.textLayout.elements.DivElement:removeChild,4 >> flashx.textLayout.elements.DivElement:removeChildAt,1 >> flashx.textLayout.elements.DivElement:setStyle,5 >> flashx.textLayout.elements.DivElement:splitAtIndex,1 >> flashx.textLayout.elements.FlowElement,30 >> flashx.textLayout.elements.FlowElement:deepCopy,1 >> flashx.textLayout.elements.FlowElement:fontStyle,1 >> flashx.textLayout.elements.FlowElement:fontWeight,1 >> flashx.textLayout.elements.FlowElement:getAbsoluteStart,2 >> flashx.textLayout.elements.FlowElement:getNextSibling,3 >> flashx.textLayout.elements.FlowElement:getParagraph,13 >> flashx.textLayout.elements.FlowElement:getParentByType,4 >> flashx.textLayout.elements.FlowElement:getStyle,4 >> flashx.textLayout.elements.FlowElement:getText,2 >> flashx.textLayout.elements.FlowElement:parent,5 >> flashx.textLayout.elements.FlowElement:setStyle,1 >> flashx.textLayout.elements.FlowElement:textDecoration,1 >> flashx.textLayout.elements.FlowElement:userStyles,2 >> flashx.textLayout.elements.FlowGroupElement,11 >> flashx.textLayout.elements.FlowGroupElement:addChild,6 >> flashx.textLayout.elements.FlowGroupElement:findLeaf,2 >> flashx.textLayout.elements.FlowGroupElement:getChildAt,2 >> flashx.textLayout.elements.FlowGroupElement:getFirstLeaf,5 >> flashx.textLayout.elements.FlowGroupElement:getStyle,13 >> flashx.textLayout.elements.FlowGroupElement:removeChild,2 >> flashx.textLayout.elements.FlowLeafElement,11 >> flashx.textLayout.elements.FlowLeafElement:getNextLeaf,1 >> flashx.textLayout.elements.FlowLeafElement:getParagraph,2 >> flashx.textLayout.elements.FlowLeafElement:getParentByType,2 >> flashx.textLayout.elements.FlowLeafElement:parent,5 >> flashx.textLayout.elements.FlowLeafElement:text,2 >> flashx.textLayout.elements.InlineGraphicElement,20 >> flashx.textLayout.elements.InlineGraphicElement:getNextSibling,1 >> flashx.textLayout.elements.InlineGraphicElement:graphic,4 >> flashx.textLayout.elements.InlineGraphicElement:height,4 >> flashx.textLayout.elements.InlineGraphicElement:lineHeight,3 >> flashx.textLayout.elements.InlineGraphicElement:source,4 >> flashx.textLayout.elements.InlineGraphicElement:width,5 >> flashx.textLayout.elements.LinkElement,20 >> flashx.textLayout.elements.LinkElement:getStyle,3 >> flashx.textLayout.elements.LinkElement:href,7 >> flashx.textLayout.elements.LinkElement:setStyle,5 >> flashx.textLayout.elements.LinkElement:target,6 >> flashx.textLayout.elements.ParagraphElement,87 >> flashx.textLayout.elements.ParagraphElement:addChild,15 >> flashx.textLayout.elements.ParagraphElement:computedFormat,1 >> flashx.textLayout.elements.ParagraphElement:deepCopy,1 >> flashx.textLayout.elements.ParagraphElement:fontFamily,2 >> flashx.textLayout.elements.ParagraphElement:fontSize,4 >> flashx.textLayout.elements.ParagraphElement:fontWeight,2 >> flashx.textLayout.elements.ParagraphElement:format,1 >> flashx.textLayout.elements.ParagraphElement:getAbsoluteStart,1 >> flashx.textLayout.elements.ParagraphElement:getChildAt,1 >> flashx.textLayout.elements.ParagraphElement:getFirstLeaf,4 >> flashx.textLayout.elements.ParagraphElement:getLastLeaf,1 >> flashx.textLayout.elements.ParagraphElement:getNextParagraph,2 >> flashx.textLayout.elements.ParagraphElement:getNextSibling,5 >> flashx.textLayout.elements.ParagraphElement:getParentByType,2 >> flashx.textLayout.elements.ParagraphElement:getPreviousSibling,1 >> flashx.textLayout.elements.ParagraphElement:getStyle,13 >> flashx.textLayout.elements.ParagraphElement:getText,2 >> flashx.textLayout.elements.ParagraphElement:parent,19 >> flashx.textLayout.elements.ParagraphElement:setStyle,38 >> flashx.textLayout.elements.ParagraphElement:textAlign,3 >> flashx.textLayout.elements.ParagraphElement:userStyles,1 >> flashx.textLayout.elements.SpanElement,40 >> flashx.textLayout.elements.SpanElement:getAbsoluteStart,1 >> flashx.textLayout.elements.SpanElement:getElementRelativeStart,2 >> flashx.textLayout.elements.SpanElement:getParagraph,1 >> flashx.textLayout.elements.SpanElement:setStyle,1 >> flashx.textLayout.elements.SpanElement:text,19 >> flashx.textLayout.elements.SpanElement:textDecoration,1 >> flashx.textLayout.elements.TextFlow,48 >> flashx.textLayout.elements.TextFlow:addChild,5 >> flashx.textLayout.elements.TextFlow:addChildAt,3 >> flashx.textLayout.elements.TextFlow:addEventListener,14 >> flashx.textLayout.elements.TextFlow:dispatchEvent,19 >> flashx.textLayout.elements.TextFlow:findLeaf,7 >> flashx.textLayout.elements.TextFlow:flowComposer,29 >> flashx.textLayout.elements.TextFlow:getChildAt,1 >> flashx.textLayout.elements.TextFlow:getChildIndex,3 >> flashx.textLayout.elements.TextFlow:getFirstLeaf,7 >> flashx.textLayout.elements.TextFlow:getLastLeaf,1 >> flashx.textLayout.elements.TextFlow:interactionManager,55 >> flashx.textLayout.elements.TextFlow:removeChild,2 >> flashx.textLayout.elements.TextFlow:removeEventListener,6 >> flashx.textLayout.elements.TextFlow:textLength,1 >> flashx.textLayout.elements.TextFlow:whiteSpaceCollapse,1 >> flashx.textLayout.elements.TextRange:absoluteEnd,4 >> flashx.textLayout.elements.TextRange:absoluteStart,5 >> flashx.textLayout.elements.TextRange:activePosition,4 >> flashx.textLayout.elements.TextRange:anchorPosition,1 >> flashx.textLayout.events.CompositionCompleteEvent,2 >> flashx.textLayout.events.CompositionCompleteEvent:COMPOSITION_COMPLETE,1 >> flashx.textLayout.events.FlowOperationEvent,23 >> flashx.textLayout.events.FlowOperationEvent:FLOW_OPERATION_BEGIN,5 >> flashx.textLayout.events.FlowOperationEvent:FLOW_OPERATION_COMPLETE,1 >> flashx.textLayout.events.FlowOperationEvent:FLOW_OPERATION_END,1 >> flashx.textLayout.events.FlowOperationEvent:operation,17 >> flashx.textLayout.events.FlowOperationEvent:preventDefault,1 >> flashx.textLayout.events.FlowOperationEvent:stopImmediatePropagation,1 >> flashx.textLayout.events.FlowOperationEvent:stopPropagation,1 >> flashx.textLayout.events.SelectionEvent,8 >> flashx.textLayout.events.SelectionEvent:SELECTION_CHANGE,4 >> flashx.textLayout.events.TextLayoutEvent,2 >> flashx.textLayout.events.TextLayoutEvent:SCROLL,1 >> flashx.textLayout.formats.ITextLayoutFormat,7 >> flashx.textLayout.formats.TextAlign,17 >> flashx.textLayout.formats.TextAlign:CENTER,7 >> flashx.textLayout.formats.TextAlign:JUSTIFY,2 >> flashx.textLayout.formats.TextAlign:LEFT,4 >> flashx.textLayout.formats.TextAlign:RIGHT,4 >> flashx.textLayout.formats.TextDecoration,8 >> flashx.textLayout.formats.TextDecoration:NONE,3 >> flashx.textLayout.formats.TextDecoration:UNDERLINE,5 >> flashx.textLayout.formats.TextLayoutFormat,43 >> flashx.textLayout.formats.TextLayoutFormat:backgroundColor,4 >> flashx.textLayout.formats.TextLayoutFormat:color,7 >> flashx.textLayout.formats.TextLayoutFormat:fontFamily,2 >> flashx.textLayout.formats.TextLayoutFormat:fontSize,5 >> flashx.textLayout.formats.TextLayoutFormat:fontStyle,7 >> flashx.textLayout.formats.TextLayoutFormat:fontWeight,7 >> flashx.textLayout.formats.TextLayoutFormat:lineThrough,2 >> flashx.textLayout.formats.TextLayoutFormat:textAlign,6 >> flashx.textLayout.formats.TextLayoutFormat:textDecoration,4 >> flashx.textLayout.formats.WhiteSpaceCollapse,1 >> flashx.textLayout.formats.WhiteSpaceCollapse:PRESERVE,1 >> flashx.textLayout.operations.DeleteTextOperation,4 >> flashx.textLayout.operations.DeleteTextOperation:deleteSelectionState,2 >> flashx.textLayout.operations.InsertInlineGraphicOperation,1 >> flashx.textLayout.operations.InsertTextOperation,5 >> flashx.textLayout.operations.InsertTextOperation:_text,1 >> flashx.textLayout.operations.MoveChildrenOperation,1 >> flashx.textLayout.operations.PasteOperation,3 >> flashx.textLayout.operations.PasteOperation:textScrap,1 >> flashx.textLayout.operations.SplitParagraphOperation,3 >> flashx.textLayout.operations.UndoOperation,1 >> flashx.textLayout.tlf_internal,2 >> flashx.undo.IUndoManager,1 >> flashx.undo.UndoManager,5 >> flashx.undo.UndoManager:undoAndRedoItemLimit,1 >> >
