Hi!
In my blog post (http://smalltalk.gnu.org/blog/bertodsera/iliad-localization-package ), I had stated that top-bottom layouts were a “hope for the future”. I was wrong. The future is now, as I found out today. See http://msdn.microsoft.com/en-us/library/ms531187(VS.85).aspx Note that only Latin chars will appear as 90 degs rotated, Oriental scripts that make a normal use of this layout do appear as vertical. I provided to correct the post and to add the reference. This is good news, because it means that 98% of the users are immediately able to use this feature (with only us heretics funnily barred out from things that are supposed to be “socially responsible, i.e., our bag). I'm aware that most western coders won't currently use it, because it will fail on non-IE browsers, yet my take is that the power of the Eastern markets will drive anyone to adopt it pretty soon. Anyway, this means two things: 1.there is already a widespread industry standard for this issue that almost anyone can use 2.it gets important that we can manage it, as AFAIK no other framework can As a first reaction I will turn the #asString message into an #asMsWritingMode message. I did not really like to call it #asString because it doesn't do what a usual #asString does. This MS thing provides me with a readable solution that returns a well readable standard, one that can be widely used in HTML tagging. I will also re-factor TextLayout, to make it properly map all of the 8 existing layouts. Now to the question raised by Stefan about a possible #render: someText on: aWidget message. As long as I wasn't aware of this MS solution I would have quoted an old song and answered “take me into shallow waters, before I get too deep...” . It really looked like we were trying to use a non-existing thing, based on our imagination only. Now things have changed, because we DO have a tool and can verify the results (even if this sadly means I have to reinstall Windows on some box). I'm still trying to digest the news, so I won't immediately venture into details. I'd just like to ask Stefan if he could clarify what this message was expected to do. -- ============================== Constitution du 24 juin 1793 - Article 35. - Quand le gouvernement viole les droits du peuple, l'insurrection est, pour le peuple et pour chaque portion du peuple, le plus sacré des droits et le plus indispensable des devoirs. _______________________________________________ help-smalltalk mailing list [hidden email] http://lists.gnu.org/mailman/listinfo/help-smalltalk |
On Fri, 31 Jul 2009 15:58:11 +0300
Bèrto ëd Sèra <[hidden email]> wrote: > I'm still trying to digest the news, so I won't immediately venture > into details. I'd just like to ask Stefan if he could clarify what > this message was expected to do. The message render: someText on: aWidget was intended as placeholder, since _I_ don't know what _you_ are going to do with TextLayout :-) As I'm picturing TextLayout and friends to be layout engines, I'd expect them to handle nitty-gritty layout details for me, so that the different concerns are clearly separated. As a TextLayout user, it's my job to provide the content, and pass it to a suitable TextLayout implementation. TextLayout's responsibility should be to take care of positioning, font selection, etc. For this to work in an Iliad setting, a TextLayout needs to know what to put where and we have arrived at the message "render: someText on: aWidget" BTW: I looked at the MSDN page > http://msdn.microsoft.com/en-us/library/ms531187(VS.85).aspx and am a bit confused by their pictures... lr-tb is what I consider to be normal. rl-tb looks to be the same with "text-align: right", but this can't be right... I'd expect rl-tb to render "hello world" as | dlrow olleh | and not | hello world | as MSDN shows it. As I understand it, rl means that the first glyph appears in the right-most position, right? confused, s. _______________________________________________ help-smalltalk mailing list [hidden email] http://lists.gnu.org/mailman/listinfo/help-smalltalk |
On Fri, 31 Jul 2009 19:41:57 +0300
Bèrto ëd Sèra <[hidden email]> wrote: > > rl-tb looks to be the same with "text-align: right", but this > > can't be right... I'd expect rl-tb to render "hello world" as > > | dlrow olleh | > > and not > > | hello world | > It's not so simple. Font rendering implies a hidden rendering layer > that we do not control as it depends on unicode and it's managed > directly by CSS standards (at least as long as you use UTF-8, not sure > of what happens if you resort to other codings). ah ... so if the example had used arabic glyphs it would have appeared correctly. Learned something, thanks. > The unaddressed problems are not with fonts (unless you deal with > choosing different typefaces, sizes, etc), but rather with what > #content does. For example, > > a TopBottom layout needs > 1) to exchange colums with rows (and I guess we can hack this in > pretty much a user transparent way) > 2) to make sure that we can read an horizontal scroll, rather than a > vertical one. (pretty an headache, as I'm currently not aware of a way > to have a fixed 100% height for an HTML table) > > a rightToLeft horizontal layout needs to > 1) invert the float attributes of the inline images That's what the different TextLayout subclasses should handle. While I was thinking about a good example, where css/js are not enough to handle the requirements for different types of writing directions, I suddenly recognized what we're dealing with her: PluggableLayout So each subclass of PluggableLayout adds the necessary js/css statements to the page header and then implements one polymorphic message, say layout:on: (no render:on: anymore). Keep "inner, moving" widgets in a dictionary accessible to the outer widget, so that you can tell it to place it's content in the correct way. OuterWidget [ | innerWidgets | contents [ ^ [ :e | self textLayout layout: innerWidgets on: e ] ] ] where "self textLayout" answers e.g. one of the following: TwoColLayout [ layout: widgets on: parent [ |d| d := parent div class: 'twocollayout'. d build: ( widgets at: #search ). d div class: 'twocolumns'; build: ( widgets at: #results ); build: ( widgets at: #history ) ] ] WeirdThreeColLayout [ layout: widgets on: parent [ parent div class: 'threecolumns'; build: ( widgets at: #history ); build: ( widgets at: #results ); build: ( widgets at: #search ) ] ] If necessary, the "inner" widgets themselves could use the same approach and implement contents like OuterWidget above does. > Many other such things will popup in time. The target is to make all > the "obvious moves" in a transparent way, so that they need not being > hardcoded into the #content messages. In an ideal package you wouldn't > have to change a line of code to port your web-design design to RTL. As long as you provide a generic method to assign the correct layouter to a widget, that would be the case. s. _______________________________________________ help-smalltalk mailing list [hidden email] http://lists.gnu.org/mailman/listinfo/help-smalltalk |
Hi,
I'm just back from a trip, and I just saw all those emails about Iliad :) Thank you very much for your interest!! Now I have to read all of them ;) Cheers! Nico _______________________________________________ help-smalltalk mailing list [hidden email] http://lists.gnu.org/mailman/listinfo/help-smalltalk signature.asc (204 bytes) Download Attachment |
Thank YOU for making this possible :) Without your work there wouldn't
be an issue to discuss :) Berto -- ============================== Constitution du 24 juin 1793 - Article 35. - Quand le gouvernement viole les droits du peuple, l'insurrection est, pour le peuple et pour chaque portion du peuple, le plus sacré des droits et le plus indispensable des devoirs. _______________________________________________ help-smalltalk mailing list [hidden email] http://lists.gnu.org/mailman/listinfo/help-smalltalk |
I put up a testcase for this MS thing, so we get to know what the new
layout manager does by itself and what we have to manage on our own. Unfortunately, it is limited to windoze users, from IE8 on... so I cannot execute the test myself (gentoo and Fedora is all I have), but I arranged to get help from people on #gentoo-it IRC, and they should mail me screenshots of what they see. I used a handful of scripts, to get a rough idea of how they are treated by this new feature. I put in a fake form, a table and a couple of floated images. It should be enough for a first exploration. If we are lucky most of the stuff will happen by itself, as I placed the class in the BODY tag. It should be noted that I also found a W3C draft that goes pretty much on the same lines, so we can expect this thing to become general (as I expected, the power of the Asian markets is growing). You can read the draft here: http://www.w3.org/TR/2001/WD-css3-text-20010517/#PrimaryTextAdvanceDirection wjile I remind you that what we are testing is a MS feature described here: http://msdn.microsoft.com/en-us/library/ms531187(VS.85).aspx Now the test case: http://testlayout.i-iter.org/bt-lr.html http://testlayout.i-iter.org/bt-rl.html http://testlayout.i-iter.org/lr-bt.html http://testlayout.i-iter.org/lr-tb.html http://testlayout.i-iter.org/rl-bt.html http://testlayout.i-iter.org/rl-tb.html http://testlayout.i-iter.org/tb-lr.html http://testlayout.i-iter.org/tb-rl.html Pls, when you do the test, make a screenshot for each page and mail them to me, together with basic data like IE version and Win version. I will publish them on the foundation site, so we can keep them for comparison when in doubt (since it really has no effect on any other browser/OS). I remind you all that the expected effects concern mostly colum 3 (Asian), which are expected to remain upright even when the LTR text (thai, russian and english in the examples) should be turned some 90 degrees. I confes that I'm extremely curious of how forms will behave, so if you have friends who can type in an asian language, pls ask them to try the fake form and see if it's useable (supposing that it gets rotated). Berto -- ============================== Constitution du 24 juin 1793 - Article 35. - Quand le gouvernement viole les droits du peuple, l'insurrection est, pour le peuple et pour chaque portion du peuple, le plus sacré des droits et le plus indispensable des devoirs. _______________________________________________ help-smalltalk mailing list [hidden email] http://lists.gnu.org/mailman/listinfo/help-smalltalk |
> http://testlayout.i-iter.org/bt-lr.html > http://testlayout.i-iter.org/bt-rl.html > http://testlayout.i-iter.org/lr-bt.html > http://testlayout.i-iter.org/lr-tb.html > http://testlayout.i-iter.org/rl-bt.html > http://testlayout.i-iter.org/rl-tb.html > http://testlayout.i-iter.org/tb-lr.html > http://testlayout.i-iter.org/tb-rl.html http://ipinfo.info/netrenderer/ Let's stay a bit more in-topic, there are other MLs to discuss this. Paolo _______________________________________________ help-smalltalk mailing list [hidden email] http://lists.gnu.org/mailman/listinfo/help-smalltalk |
Hi!
> Let's stay a bit more in-topic, there are other MLs to discuss this. Yes and no. Yes, because it's not gst at all, so it doesn't belong in here. Full stop. No, because the output of the test conditions what the localization package will have to do with layouts, and it will be used as a reference throughout all the development cycle. Having this on another ML would kind of be quite dispersive. Possibly we need an Iliad-only subML, in which we can analyze the domain of the problems we are trying to solve? I have no problem in setting up one, if needed, I just wonder if we already have the traffic numbers that would call for such a strict division... yet it's not me having the burden to administer this ML, so the decision must be made but those who pour sweat in (i.e., Paolo) Just let me know and I will act as you require :) Berto -- ============================== Constitution du 24 juin 1793 - Article 35. - Quand le gouvernement viole les droits du peuple, l'insurrection est, pour le peuple et pour chaque portion du peuple, le plus sacré des droits et le plus indispensable des devoirs. _______________________________________________ help-smalltalk mailing list [hidden email] http://lists.gnu.org/mailman/listinfo/help-smalltalk |
> Yes, because it's not gst at all, so it doesn't belong in here. Full stop.
> > No, because the output of the test conditions what the localization > package will have to do with layouts, and it will be used as a > reference throughout all the development cycle. Having this on another > ML would kind of be quite dispersive. What is not on-topic is asking for renderings of the CSS3 (?) feature. Everything else is on topic. There is no need for an Iliad ML right now and, when it will exist, it will probably not be on gnu.org anyway, so it wouldn't be administered by me. Paolo _______________________________________________ help-smalltalk mailing list [hidden email] http://lists.gnu.org/mailman/listinfo/help-smalltalk |
Free forum by Nabble | Edit this page |