You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@royale.apache.org by Yishay Weiss <yi...@hotmail.com> on 2021/02/17 10:30:27 UTC

TLF APIs Effort Estimate

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


Re: TLF APIs Effort Estimate

Posted by Yishay Weiss <yi...@hotmail.com>.
Got it. Thank you.
________________________________
From: Hugo Ferreira <hf...@gmail.com>
Sent: Wednesday, February 17, 2021 12:54 PM
To: Apache Royale Development <de...@royale.apache.org>
Subject: Re: TLF APIs Effort Estimate

Hi Yishay Weiss,

What I meant to say is that I have fixes and new features on the TLF Flex
version.
If we get a similar (paired) version on Royale, perhaps I can apply
does fixes and new features also on Royale.

Yishay Weiss <yi...@hotmail.com> escreveu no dia quarta, 17/02/2021
à(s) 12:30:

> Hi Hugo,
>
> >My TLF use has a lot of fixes and new features that they don't exists on
> >Flex and I would be glad to contribute to the Royale version and make it
> >standard.
>
> Do I understand correctly that you already have some fixes for Royale
> implemented in your private repo?
>
> Thanks
> ________________________________
> From: Hugo Ferreira <hf...@gmail.com>
> Sent: Wednesday, February 17, 2021 12:19 PM
> To: Apache Royale Development <de...@royale.apache.org>
> Subject: Re: TLF APIs Effort Estimate
>
> Hi Yishay Weiss,
>
> In the last few months I have been absent from my own porting from Flex to
> Royale (I hope the things call down in April and get time to continue my
> porting where I stopped).
> I also have extensive use of some TLF APIs.
> I have an alternative strategy passing by creating a Word Add-In but having
> TLF on Royale would give an option.
>
> My TLF use has a lot of fixes and new features that they don't exists on
> Flex and I would be glad to contribute to the Royale version and make it
> standard.
>
> Yishay Weiss <yi...@hotmail.com> escreveu no dia quarta, 17/02/2021
> à(s) 10:30:
>
> > 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
> >
> >
>

Re: TLF APIs Effort Estimate

Posted by Hugo Ferreira <hf...@gmail.com>.
Hi Yishay Weiss,

What I meant to say is that I have fixes and new features on the TLF Flex
version.
If we get a similar (paired) version on Royale, perhaps I can apply
does fixes and new features also on Royale.

Yishay Weiss <yi...@hotmail.com> escreveu no dia quarta, 17/02/2021
à(s) 12:30:

> Hi Hugo,
>
> >My TLF use has a lot of fixes and new features that they don't exists on
> >Flex and I would be glad to contribute to the Royale version and make it
> >standard.
>
> Do I understand correctly that you already have some fixes for Royale
> implemented in your private repo?
>
> Thanks
> ________________________________
> From: Hugo Ferreira <hf...@gmail.com>
> Sent: Wednesday, February 17, 2021 12:19 PM
> To: Apache Royale Development <de...@royale.apache.org>
> Subject: Re: TLF APIs Effort Estimate
>
> Hi Yishay Weiss,
>
> In the last few months I have been absent from my own porting from Flex to
> Royale (I hope the things call down in April and get time to continue my
> porting where I stopped).
> I also have extensive use of some TLF APIs.
> I have an alternative strategy passing by creating a Word Add-In but having
> TLF on Royale would give an option.
>
> My TLF use has a lot of fixes and new features that they don't exists on
> Flex and I would be glad to contribute to the Royale version and make it
> standard.
>
> Yishay Weiss <yi...@hotmail.com> escreveu no dia quarta, 17/02/2021
> à(s) 10:30:
>
> > 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
> >
> >
>

Re: TLF APIs Effort Estimate

Posted by Yishay Weiss <yi...@hotmail.com>.
Hi Hugo,

>My TLF use has a lot of fixes and new features that they don't exists on
>Flex and I would be glad to contribute to the Royale version and make it
>standard.

Do I understand correctly that you already have some fixes for Royale implemented in your private repo?

Thanks
________________________________
From: Hugo Ferreira <hf...@gmail.com>
Sent: Wednesday, February 17, 2021 12:19 PM
To: Apache Royale Development <de...@royale.apache.org>
Subject: Re: TLF APIs Effort Estimate

Hi Yishay Weiss,

In the last few months I have been absent from my own porting from Flex to
Royale (I hope the things call down in April and get time to continue my
porting where I stopped).
I also have extensive use of some TLF APIs.
I have an alternative strategy passing by creating a Word Add-In but having
TLF on Royale would give an option.

My TLF use has a lot of fixes and new features that they don't exists on
Flex and I would be glad to contribute to the Royale version and make it
standard.

Yishay Weiss <yi...@hotmail.com> escreveu no dia quarta, 17/02/2021
à(s) 10:30:

> 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
>
>

Re: TLF APIs Effort Estimate

Posted by Hugo Ferreira <hf...@gmail.com>.
Hi Yishay Weiss,

In the last few months I have been absent from my own porting from Flex to
Royale (I hope the things call down in April and get time to continue my
porting where I stopped).
I also have extensive use of some TLF APIs.
I have an alternative strategy passing by creating a Word Add-In but having
TLF on Royale would give an option.

My TLF use has a lot of fixes and new features that they don't exists on
Flex and I would be glad to contribute to the Royale version and make it
standard.

Yishay Weiss <yi...@hotmail.com> escreveu no dia quarta, 17/02/2021
à(s) 10:30:

> 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
>
>

Re: TLF APIs Effort Estimate

Posted by Yishay Weiss <yi...@hotmail.com>.
I just realized interactionManager (EditManager) wasn't being picked up by the API reporter so here's what I see in the code:

interactionManager.anchorPosition
interactionManager.getSelectionState
interactionManager.refreshSelection
interactionManager.selectRange
interactionManager.setFocus
interactionManager.setSelectionState

________________________________
From: Yishay Weiss <yi...@hotmail.com>
Sent: Wednesday, February 17, 2021 10:30 AM
To: dev@royale.apache.org <de...@royale.apache.org>
Subject: TLF APIs Effort Estimate

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


Re: TLF APIs Effort Estimate

Posted by Alex Harui <ah...@adobe.com.INVALID>.
IIRC, editing worked at one point, but not rich text editing.

TLF had many goals, one of which was to provide pixel-perfect cross-browser glyph positioning.  If you need that, I don't know if any JS editors do that, so you probably have to stick with TLF and have a lot of work left to make it perfect.  What I had working at one time did not guarantee pixel-perfect.

Nor did it guarantee the next level back from that which would be cross-browser line-breaking.  That is probably much less work than pixel-perfect, and potentially easier for certain width and other trade-offs

TLF also support right-to-left text.  I did not get that working.

If all you need is rich text editing and different glyph positions on different browser is ok, I would not recommend trying to use TLF.  There is a TinyEditor wrapper for that.  The couple of use cases I saw stored rich text as HTML anyway, so why convert it to TextFlow and back out again?

HTH,
-Alex

On 2/17/21, 8:16 AM, "Harbs" <ha...@gmail.com> wrote:

    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 <yi...@hotmail.com> 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 <ha...@gmail.com>
    > Sent: Wednesday, February 17, 2021 1:45 PM
    > To: Apache Royale Development <de...@royale.apache.org>
    > Subject: Re: TLF APIs Effort Estimate
    > 
    > The vast majority of this should work. No?
    > 
    >> On Feb 17, 2021, at 12:30 PM, Yishay Weiss <yi...@hotmail.com> 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
    >> 
    > 



Re: TLF APIs Effort Estimate

Posted by Harbs <ha...@gmail.com>.
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 <yi...@hotmail.com> 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 <ha...@gmail.com>
> Sent: Wednesday, February 17, 2021 1:45 PM
> To: Apache Royale Development <de...@royale.apache.org>
> Subject: Re: TLF APIs Effort Estimate
> 
> The vast majority of this should work. No?
> 
>> On Feb 17, 2021, at 12:30 PM, Yishay Weiss <yi...@hotmail.com> 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
>> 
> 


Re: TLF APIs Effort Estimate

Posted by Yishay Weiss <yi...@hotmail.com>.
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 <ha...@gmail.com>
Sent: Wednesday, February 17, 2021 1:45 PM
To: Apache Royale Development <de...@royale.apache.org>
Subject: Re: TLF APIs Effort Estimate

The vast majority of this should work. No?

> On Feb 17, 2021, at 12:30 PM, Yishay Weiss <yi...@hotmail.com> 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
>


Re: TLF APIs Effort Estimate

Posted by Harbs <ha...@gmail.com>.
The vast majority of this should work. No?

> On Feb 17, 2021, at 12:30 PM, Yishay Weiss <yi...@hotmail.com> 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
>