[Laszlo-dev] dguide: Color chapter

P T Withington ptw at pobox.com
Tue Nov 18 09:44:04 PST 2008


I appended our email as a comment.

On 2008-11-18, at 12:33EST, Lou Iorio wrote:

> I see there is a JIRA for this and Josh owns it.
>
> http://www.openlaszlo.org/jira/browse/LPP-7194
>
>
> On Nov 18, 2008, at 7:42 AM, Lou Iorio wrote:
>
>> So in this broken example in the dguide (I think Josh is working on  
>> it, but
>> I want to make sure I understand):
>>
>> <canvas debug="true">
>>    <simplelayout axis="x" spacing="10"/>
>>    <class name="box1" width="100" height="100" bgcolor="$ 
>> {global['gold4']}"/>
>>    <class name="box2" width="100" height="100" bgcolor="$ 
>> {iceblue1}"/>
>>    <box1 id="sun">
>>        <text text="Sun"/>
>>    </box1>
>>    <box2 id="mystic">
>>        <text fgcolor="0xFFFFFF" text="Mystic"/>
>>    </box2>
>> </canvas>
>>
>> You need to change the class tags:
>>
>>    <class name="box1" width="100" height="100" bgcolor="gold4"/>
>>    <class name="box2" width="100" height="100" bgcolor="iceblue1"/>
>>
>> But this only works because the debugger is on, and that includes  
>> the extra colors.
>>
>> If you turn the debugger off, the example displays the wrong  
>> colors. You then need
>> to add this:
>>
>>    <include href="base/colors.lzx"/>
>>
>> for the example to work.
>>
>> I don't see a JIRA for this. If I'm correct, I'll file a JIRA and  
>> fix the example and
>> the paragraph that introduces it.
>>
>>
>> On Nov 16, 2008, at 10:11 AM, P T Withington wrote:
>>
>>> Probably so.
>>>
>>> Amusingly, for your little example that we worked on, since it  
>>> includes a slider, you get all those colors.  I think if you  
>>> include _any_ component, you get all the extra colors, but if you  
>>> just try to use one of those extra colors on a plain view, you  
>>> will lose (unless you happen to be in debug mode, in which case  
>>> the debugger will have included them for you).  Messy.
>>>
>>> On 2008-11-16, at 07:05EST, Lou Iorio wrote:
>>>
>>>>
>>>> On Nov 15, 2008, at 6:52 PM, P T Withington wrote:
>>>>
>>>>> If you load base/colors.lzx, it defines a whole bunch of colors  
>>>>> (adds them to lz.colors).  Once that is loaded, you can, in  
>>>>> fact, specify colors using those names.
>>>>
>>>> Ah, thanks, I didn't know that. Perhaps I should add that to the  
>>>> dguide?
>>>>>
>>>>>
>>>>> André has pointed out that when you turn debugging on in swf8 or  
>>>>> 9, the debugger gets loaded into your app, and it happens to  
>>>>> load these extra colors.  So, by accident, you can use these  
>>>>> colors in debug mode in swf8/9 (this is one of the many problems  
>>>>> with running the debugger in the app, which is why I did not do  
>>>>> it that way for dhtml, and why we have the 'console remote  
>>>>> debug' option for swf8/9.  If you run the demo app in either  
>>>>> dhtml or with the console debugger, you will see only the  
>>>>> standard CSS color names.
>>>>>
>>>>> The upshot is, if you want a demo that uses these extended color  
>>>>> names, you need to make your demo include the base/colors.lzx  
>>>>> file.
>>>>>
>>>>> As to the names of the colors in that file, I believe they are  
>>>>> psuedo-standard, they might be from emacs, who knows.  I did not  
>>>>> create that file.
>>>>>
>>>>> On 2008-11-15, at 04:48EST, Lou Iorio wrote:
>>>>>
>>>>>> I concede to your technical prowess. But I still contend that  
>>>>>> what I was looking for here is the hex value.
>>>>>> I can't use "gray20" to specify a color in lzx, right? I'm a  
>>>>>> bit leery of "psuedo-standards".
>>>>>>
>>>>>> In addition, why is there no red20, green20 or blue20?
>>>>>>
>>>>>> I'm not suggesting that you change anything, and I'm not trying  
>>>>>> to be difficult, I'm just curious.
>>>>>>
>>>>>>
>>>>>> On Nov 14, 2008, at 7:33 PM, P T Withington wrote:
>>>>>>
>>>>>>> Uh, because 20% gray has a technical meaning:  
>>>>>>> rgb(256*(1-20/100),256*(1-20/100),256*(1-20/100)) or  
>>>>>>> lab(1-20/100,0,0), or hsb(0,0,20), or #333333, etc., but it  
>>>>>>> much shorter to think/say when you want a gray with a certain  
>>>>>>> brightness.
>>>>>>>
>>>>>>> On 2008-11-14, at 18:06EST, Lou Iorio wrote:
>>>>>>>
>>>>>>>> Sure, but what do I care what someone chose to define as 20%  
>>>>>>>> gray? What does that even mean?
>>>>>>>> 20% gray, and 80% what else? Any color where the r, g, and b  
>>>>>>>> values are the same is gray. Why pick
>>>>>>>> an integer percent and name it?
>>>>>>>>
>>>>>>>> As I said, I'm old; I still think in hex. (And, I still call  
>>>>>>>> it 'grey'.)
>>>>>>>>
>>>>>>>> On Nov 14, 2008, at 6:49 PM, P T Withington wrote:
>>>>>>>>
>>>>>>>>> Well, as I said in my TODO, there needs to be a way, for a  
>>>>>>>>> type like color, for you to say what your preferred  
>>>>>>>>> presentation is.  Like maybe you should be allowed to say  
>>>>>>>>> something like 'color(rgb)' or 'color(#)' or  
>>>>>>>>> 'color(token,#)' or something...  We could get really  
>>>>>>>>> carried away!
>>>>>>>>>
>>>>>>>>> I'm pretty sure gray20 is '20% gray' and a psuedo-standard  
>>>>>>>>> color name.
>>>>>>>>>
>>>>>>>>> On 2008-11-14, at 17:38EST, Lou Iorio wrote:
>>>>>>>>>
>>>>>>>>>> I also noticed several "gray" colors showing up. Cute, but  
>>>>>>>>>> I'm not sure I like it.
>>>>>>>>>>
>>>>>>>>>> gray 20, for example, seems completely arbitrary. For me, I  
>>>>>>>>>> really want to see
>>>>>>>>>> the hex values. But then, I'm old.
>>>>>>>>>>
>>>>>>>>>> On Nov 14, 2008, at 6:31 PM, P T Withington wrote:
>>>>>>>>>>
>>>>>>>>>>> 'data' is historical, because that was the original  
>>>>>>>>>>> application for setting/getting string versions of a  
>>>>>>>>>>> value, but now we see there are more general reasons to do  
>>>>>>>>>>> that.
>>>>>>>>>>>
>>>>>>>>>>> Isn't it cute how 0 becomes 'black' and 0xffffff becomes  
>>>>>>>>>>> 'white'?  If you are very careful, you can set the slider  
>>>>>>>>>>> to some other named colors...
>>>>>>>>>>>
>>>>>>>>>>> Gee, it would be fun to have a 'digital' slider that only  
>>>>>>>>>>> let you pick named colors.  Hm...
>>>>>>>>>>>
>>>>>>>>>>> On 2008-11-14, at 17:10EST, Lou Iorio wrote:
>>>>>>>>>>>
>>>>>>>>>>>> I like it mucho. The example works just as I intended.
>>>>>>>>>>>>
>>>>>>>>>>>> From a purely subjective point of view, I like 'present'  
>>>>>>>>>>>> and 'accept'.
>>>>>>>>>>>>
>>>>>>>>>>>> The "Data" part seems extraneous.
>>>>>>>>>>>>
>>>>>>>>>>>> Lou
>>>>>>>>>>>>
>>>>>>>>>>>> On Nov 14, 2008, at 5:43 PM, P T Withington wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> My fixes are in.  Update, rebuild and try this and see  
>>>>>>>>>>>>> if you like it:
>>>>>>>>>>>>>
>>>>>>>>>>>>> <canvas>
>>>>>>>>>>>>> <simplelayout spacing="5"/>
>>>>>>>>>>>>> <view id="swatch" width="300" height="100" bgcolor="$ 
>>>>>>>>>>>>> {color.value}" />
>>>>>>>>>>>>> <view id="sliders">
>>>>>>>>>>>>> <simplelayout />
>>>>>>>>>>>>> <slider id="color" width="300" value="0" minvalue="0"  
>>>>>>>>>>>>> maxvalue="0xffffff" type="color" />
>>>>>>>>>>>>> <text text="${color.updateData()}" />
>>>>>>>>>>>>> </view>
>>>>>>>>>>>>> </canvas>
>>>>>>>>>>>>>
>>>>>>>>>>>>> `updateData` is probably not the most mnemonic name for  
>>>>>>>>>>>>> how to get a string representation of the slider's value  
>>>>>>>>>>>>> according to the type (in this case 'color').  The  
>>>>>>>>>>>>> inverse is called `applyData`, it takes a string  
>>>>>>>>>>>>> representation and tries to parse it according to the  
>>>>>>>>>>>>> type. `presentValueAsString` / `acceptValueFromString`  
>>>>>>>>>>>>> seem too ponderous.  Perhaps simply `present` and  
>>>>>>>>>>>>> `accept`?  I'd appreciate your input.
>>>>>>>>>>>>>
>>>>>>>>>>>>> On 2008-11-14, at 09:42EST, Lou Iorio wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Nov 13, 2008, at 1:17 PM, P T Withington wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Basically, using '0x000000' in CSS was a kludge, non- 
>>>>>>>>>>>>>>> standard, and probably should have been documented as  
>>>>>>>>>>>>>>> such.  It will cause a deprecation warning.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Any of the other 3 methods are standard, acceptable,  
>>>>>>>>>>>>>>> and work.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> It would be fine with me if we just said that you  
>>>>>>>>>>>>>>> specified colors the same as the CSS standard.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> You can specify your color as a numeric value also,  
>>>>>>>>>>>>>>> the result of a computation, it doesn't need to be  
>>>>>>>>>>>>>>> expressed as a hex constant.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I'll add this to the chapter. I'd like to include a  
>>>>>>>>>>>>>> simple example:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>>>>>>>>>>>> <canvas>
>>>>>>>>>>>>>> <simplelayout spacing="5"/>
>>>>>>>>>>>>>> <view id="swatch" width="300" height="100" bgcolor="$ 
>>>>>>>>>>>>>> {color.value}" />
>>>>>>>>>>>>>> <view id="sliders">
>>>>>>>>>>>>>> <simplelayout />
>>>>>>>>>>>>>> <slider id="color" width="300" value="0" minvalue="0"  
>>>>>>>>>>>>>> maxvalue="16777215"/>
>>>>>>>>>>>>>> <text text="${color.value}" />
>>>>>>>>>>>>>> </view>
>>>>>>>>>>>>>> </canvas>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Is this worth including? My intent for the last <text>  
>>>>>>>>>>>>>> tag was to print the hex equivalent
>>>>>>>>>>>>>> of the slider value, but I can't figure out how to do  
>>>>>>>>>>>>>> that. I tried:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> <text text="${color.value.toString(16)}" />
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> but that doesn't work. Any ideas? Better example?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Lou
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On 2008-11-13, at 08:49EST, Lou Iorio wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> The text preceding Example 20.3. Coloring text using  
>>>>>>>>>>>>>>>> CSS seems to completely contradict what the example  
>>>>>>>>>>>>>>>> shows.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> The text says:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> OpenLaszlo enables coloring in four ways: 0x000000,  
>>>>>>>>>>>>>>>> #000000, rgb(0,0,0), and "black". For now, the best  
>>>>>>>>>>>>>>>> reason to prefer to use the hex style 0x000000 is  
>>>>>>>>>>>>>>>> that it always works, whether the color is assigned  
>>>>>>>>>>>>>>>> explicitly within the view, or by stylesheet. Color  
>>>>>>>>>>>>>>>> assignment by stylesheet fails by name, #hex, or  
>>>>>>>>>>>>>>>> rgb(). Explicit color assignment by rgb() fails  
>>>>>>>>>>>>>>>> unless the RGB values are all numerals -- that is,  
>>>>>>>>>>>>>>>> rgb(0,0,0) produces black, but rgb(FF,FF,FF), which  
>>>>>>>>>>>>>>>> should produce white, comes back at compile time as  
>>>>>>>>>>>>>>>> an invalid color.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Coloring of text with fgcolor="foo" is enabled in the  
>>>>>>>>>>>>>>>> same fashions, but with the same limitations.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> CSS spits out an error if you use 0x000000. How about:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> OpenLaszlo enables coloring in four ways: 0x000000,  
>>>>>>>>>>>>>>>> #000000, rgb(0,0,0), and "black". Using the format  
>>>>>>>>>>>>>>>> 0x000000 only works for explicit assignment; it does  
>>>>>>>>>>>>>>>> not work in CSS. Color assignment using rgb() must be  
>>>>>>>>>>>>>>>> specified with decimal values from 0 - 255.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Coloring of text with fgcolor="foo" is enabled in the  
>>>>>>>>>>>>>>>> same fashions, but with the same limitations.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> In addition, the title of the example, "Coloring text  
>>>>>>>>>>>>>>>> using CSS", might be better if changed to "Applying  
>>>>>>>>>>>>>>>> color explictly and with CSS" since it shows coloring  
>>>>>>>>>>>>>>>> views as well as text.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> If you agree (or have a better idea), I'll make the  
>>>>>>>>>>>>>>>> changes.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Lou
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>




More information about the Laszlo-dev mailing list