On Thu, Jul 15, 2010 at 2:32 PM, Max Carlson <[email protected]> wrote:
> Can you change useTLF to usetlf? Almost all other lzx attributes are > lowercase. Should we consider something more descriptive like > directionallayout? That doesn't read super-well. > I'll see if I can think of something that sounds better. > > Also, you should probably document the attribute as init-only if it can't > be changed dynamically. > > Otherwise, approved! > > > On 7/14/10 9:07 PM, Henry Minsky wrote: > >> >> On Wed, Jul 14, 2010 at 1:47 AM, Max Carlson<[email protected]> >> wrote: >> >> Not approved. >> >> Issues: >> >> kernel/swf9/LzTextSprite has a Debug.info() call in >> setTextfieldCursor(). Does this matter? >> >> >> no that was just for debugging, Ill take it out >> >> >> >> Also, you're now setting .htmltext instead of .text - do you need to >> change that? >> >> >> >> I need to do this for the TLF text field, something is broken, when >> setting just plain text >> the getLineMetrics call fails immediately after. I'll conditionalize that >> to just use htmltext for LzTLFTextField >> for now. >> >> >> >> >> >> >> >> >> >> kernel/swf9/LzTextSprite is missing this block in >> __initTextProperties(): >> >> if (this.enabled) { >> textfield.type = TextFieldType.INPUT; >> } else { >> textfield.type = TextFieldType.DYNAMIC; >> } >> >> >> The textfield.type property should already be getting set at some point >> by LzInputTextSprite.setEnabled, which should be getting set by >> LzInputText's setter for 'enabled'. >> >> >> >> >> Does kernel/swf9/LFCApplication.as really need the passthrough? >> >> >> looks like it doesn't, I removed that. >> >> >> >> >> LzText.useTLF should be marked as private/protected, and a @private >> doc comment should probably be added to keep it from showing up in the docs. >> >> >> We need some way to let the user specify which flavor of textfield to use. >> If I make it private, it won't be >> allowed in the schema so you can't say<text useTLF="true"/>. I'd like to >> leave that in for debugging for now, until we can >> figure out how we really want to enable this feature. >> >> >> >> LzInputtext.updateLineAttribute() now comments out the line attribute >> assertions. Can you add a note to put them back in? >> >> I'll uncomment that again >> >> >> >> Comments: >> >> It seems like you need to add a new capability (TLF) to LzSprite >> across all runtimes (directional_layout) so the LzText.direction setter can >> warn and avoid calling the sprite for unsupported runtimes. See the >> LaszloView.rotation setter for an example of what I mean. >> >> >> OK I added a capability >> >> >> >> >> >> >> Change 20100712-hqm-f by [email protected] on 2010-07-12 12:35:07 EDT >> in /Users/hqm/openlaszlo/trunktlf >> for http://svn.openlaszlo.org/openlaszlo/trunk >> >> Summary: add support for bidirectional text >> >> New Features: >> >> Bugs Fixed: LPP-9179 >> >> Technical Reviewer: max >> QA Reviewer: ptw >> Doc Reviewer: (pending) >> >> Documentation: >> >> Release Notes: >> >> Overview: >> >> A new class LzTLFTextField is added which is compatible with the >> native flash.text.TextField implementation. >> >> A flag in LzTextSprite, useTLF, says whether the instance should use >> the new TextField implementation or the old native text class. >> >> >> Details: >> >> LzTLFTextField.as: >> >> + Implements a TextField compatible class >> >> + There are some TextField methods which LzTextSprite and >> LzInputTextSprite need that are not yet implemented, such as the >> scrolling APIs. These were largely working in the LzTLFTextSprite >> implementation, and need to be ported over. >> >> + This implementation contains code which is supposed to optimize the >> common case of simple non-HTML, non-selectable text, by bypassing the >> TextFlow and HTML importer mechanism. >> >> Currently however all LzText is using the htmlText feature, so all >> text views using this will be calling the HTML import and TextFlow >> layout routines. I'm leaving the 'optimized' code paths in for now so >> that if we run into any efficiency issues we may want to try using it. >> >> >> + The LzTLFTextField has a model of 'invalidate and deferred render', >> where if you change some attributes, it doesn't re-layout, but sets a >> flag to re-render when the next frame updates. I have a flag to bypass >> that and render immediately, because the implementation in >> __initTextProperties and __setFormat in LzTextSprite expect to be able >> to set and then measure text immediately. At initialization, >> LzTextSprite sets the flag to render immediately, and after >> __initTextProperties runs it sets it to deferred rendering. >> >> >> LzText, LzTextSprite.as: created a flag named "useTLF" which says >> whether to instantiate a new LzTLFTextField or the old >> flash.text.TextField. It defaults to false, for back compatibility, >> but text that needs bidirectional functionality can set this to true. >> >> The classes LzTLFTextSprite and LzTLFInputTextSprite are not going to >> be used any longer, but the implementation of scrolling from them >> still needs to be copied over into LzTLFTextField, so I am leaving >> them in the tree for now. >> >> LzTLFSelectionManager.as, LzTLFEditManager.as: now have pointers to >> the instance of LzTLFTextField, to allow needed control of some >> mouse/cursor behavior >> >> ================ >> >> LzDebug.lzs, LzBootstrapDebugService.lzs: [not specific to bidi text >> feature, but moved some things around so that the flash debugger >> doesn't get errors when the app is just starting up, due to the lzx >> Debugger not being fully initialized] >> >> + use LzBrowserKernel.getInitArg('logdebug')) instead of globalValue >> >> + moved the initialization of Debug.log_all_writes into LFCApplication, >> so that >> the debugger is initialized enough to not get an error >> >> >> Tests: >> >> test/tlf/text-test.lzx >> >> Files: >> A test/tlf/text-test.lzx >> M WEB-INF/lps/lfc/kernel/swf/LzSprite.as >> M WEB-INF/lps/lfc/kernel/dhtml/LzSprite.js >> M WEB-INF/lps/lfc/kernel/swf9/LzTLFTextSprite.as >> M WEB-INF/lps/lfc/kernel/swf9/LzTLFSelectionManager.as >> M WEB-INF/lps/lfc/kernel/swf9/LzTLFEditManager.as >> M WEB-INF/lps/lfc/kernel/swf9/LzInputTextSprite.as >> A WEB-INF/lps/lfc/kernel/swf9/LzTLFTextFieldStyleResolver.as >> A WEB-INF/lps/lfc/kernel/swf9/LzTLFTextFieldHostFormat.as >> M WEB-INF/lps/lfc/kernel/swf9/LzSprite.as >> M WEB-INF/lps/lfc/kernel/swf9/LzTextSprite.as >> M WEB-INF/lps/lfc/kernel/swf9/LFCApplication.as >> M WEB-INF/lps/lfc/kernel/swf9/LzTextContainerManager.as >> A WEB-INF/lps/lfc/kernel/swf9/LzTLFTextField.as >> M WEB-INF/lps/lfc/kernel/swf9/LzTLFInputTextSprite.as >> M WEB-INF/lps/lfc/kernel/swf9/Library.lzs >> M WEB-INF/lps/lfc/debugger/LzDebug.lzs >> M WEB-INF/lps/lfc/views/LzInputText.lzs >> M WEB-INF/lps/lfc/views/LzText.lzs >> M WEB-INF/lps/lfc/views/Library.lzs >> M WEB-INF/lps/lfc/compiler/LzBootstrapDebugService.lzs >> M WEB-INF/lps/server/src/org/openlaszlo/compiler/ClassModel.java >> >> Changeset: >> http://svn.openlaszlo.org/openlaszlo/patches/20100712-hqm-f.tar >> > > -- > Regards, > Max Carlson > OpenLaszlo.org > -- Henry Minsky Software Architect [email protected]
