Hi Ralf,

Thank ou very much for your answer.

>We do not directly apply styles to the widgets. We parse the CSS theme
files and generate instructions for our client library that define >the
default style of widgets.

>RAP application developers register the CSS theme file with an extension
point. There is no other API to apply styling.
Ok I understand.

>You refer to SWT styles like this:

  >Button[style='SWT.CHECK'] {
  > color:red;
  >}

>How would I select a button that has both style flags PUSH and BORDER set?
Yes it's a problem. But this rule is default behaviour of selectors
management. Each SWT widget are linked to CSSStylableElement instance which
define how manage the selectors with
IElementProvider<http://tk-ui.sourceforge.net/user-guide/cssengine/cssengine.html#IElementProvider>
.

And you can implement your own CSSStylableElement to change this rule (see
SWTElement<http://tk-ui.svn.sourceforge.net/svnroot/tk-ui/org.akrogen.tkui.css/trunk/org.akrogen.tkui.css.swt/src/org/akrogen/tkui/css/swt/dom/SWTElement.java>which
implement
CSSStylableElement<http://tk-ui.sourceforge.net/user-guide/cssengine/cssengine.html#CSSStylableElement>).


>One other thing I'm not quite sure about: You map style as well as all
other widget properties, plus any user data to attributes, e.g.:

  >text.setEditable( true );

> Text[editable=true] {
  >  color: blue;
  >}

  >text.setData( "foo", "warning" );

  >Text[foo="warning"] {
  >  color: red;
  >}

>This mean that style flag (or property) attributes could also be
overwritten like this:

> Button button = new Button( parent, SWT.PUSH );
  >button.setData( "style", "SWT.RADIO" );

>Would this result in a push button rendered like a radio button?
Yes you are right, but you can change this rule if you implement your own
CSSStylableElement.

>Wouldn't it be a good idea to avoid such collisions by prefixing user data
attributes like this:

  >Text[data.foo="warning"] {
  > color: red;
  >}
Yes you can manage that like by extending SWTElement and manage this rule
into getAttribute method.

Thank a lot for your idea.

Regards Angelo


2008/7/9 Ralf Sternberg <[EMAIL PROTECTED]>:

> Hi Angelo,
>
> Thanks for pointing me to the TK-UI CSS engine, which is very interesting.
> See my comments inline.
>
> Angelo zerr wrote:
>
>> Hi Ralf,
>>
>> I have read your RAP description about your CSS engine.
>> Thank you.
>>
>> It seems that your CSS engine looks like TK-UI CSS engine.
>> TK-UI CSS design is very similar to Matthew Hatem's work too. But TK-UI
>> have design to manage any Object with CSS (Swing widgets, SWT widgets,
>> update XML element....).
>>
>> My question is how do you apply CSS styles. Have you API to apply styles.
>>
>
> We do not directly apply styles to the widgets. We parse the CSS theme
> files and generate instructions for our client library that define the
> default style of widgets.
>
> RAP application developers register the CSS theme file with an extension
> point. There is no other API to apply styling.
>
>  If you are interested you can see the TK-UI API at
>> http://tk-ui.sourceforge.net/user-guide/cssengine/cssengine.html.
>>
>
> Thanks for the pointers, I'll have a look closer look at it asap.
>
>  You can find some information about SWT CSS implementation at
>> http://tk-ui.sourceforge.net/user-guide/cssengine/swtcssengine.html.
>>
>
> I just read this. It seems that the CSS flavor of the SWT part of your
> engine is indeed quite similar to ours, except for the use of attribute
> selectors. Let me ask a few question regarding this:
>
> You refer to SWT styles like this:
>
>  Button[style='SWT.CHECK'] {
>    color:red;
>  }
>
> How would I select a button that has both style flags PUSH and BORDER set?
>
> One other thing I'm not quite sure about: You map style as well as all
> other widget properties, plus any user data to attributes, e.g.:
>
>  text.setEditable( true );
>
>  Text[editable=true] {
>    color: blue;
>  }
>
>  text.setData( "foo", "warning" );
>
>  Text[foo="warning"] {
>    color: red;
>  }
>
> This mean that style flag (or property) attributes could also be
> overwritten like this:
>
>  Button button = new Button( parent, SWT.PUSH );
>  button.setData( "style", "SWT.RADIO" );
>
> Would this result in a push button rendered like a radio button?
>
> Wouldn't it be a good idea to avoid such collisions by prefixing user data
> attributes like this:
>
>  Text[data.foo="warning"] {
>    color: red;
>  }
>
> Best Regards,
> Ralf
>
> _______________________________________________
> eclipse-incubator-e4-dev mailing list
> [email protected]
> https://dev.eclipse.org/mailman/listinfo/eclipse-incubator-e4-dev
>
_______________________________________________
eclipse-incubator-e4-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/eclipse-incubator-e4-dev

Reply via email to