Ah, sorry. I didn't realize that. It looks like we are using AllCSSValuesImpl in Express? It could have its parseStyles parse into a BindableCSSStyles.
-Alex On 10/25/17, 1:34 PM, "Harbs" <[email protected]> wrote: >Right. My point is that Express creates a BindableCSSStyles object in the >constructor. That’s useful for folks who expect to be able to change >style properties at runtime. > >I’m looking for an easy was to specify styles i a component *without* >overwriting the default BindableCSSStyles. > >> On Oct 25, 2017, at 10:35 PM, Alex Harui <[email protected]> >>wrote: >> >> IIRC, a UIBase style property is either declared as a string or as a >>style >> object like BindableCSSStyles. If declared as a string, >> SimpleCSSValuesImpl will parse the string into an object. The only >> reasons for SimpleCSSStyles is to save the time parsing the strings and >> have the compiler and IDEs catch errors early. BindableCSSStyles >>provides >> change events. >> >> HTH, >> -Alex >> >> On 10/25/17, 10:31 AM, "Harbs" <[email protected]> wrote: >> >>> I have used that, but I forgot to include it. >>> >>> How does that work? Is the declared style object preserved (i.e. >>> BindableCSSStyles) when declaring the style as a string? >>> >>>> On Oct 25, 2017, at 8:13 PM, Alex Harui <[email protected]> >>>> wrote: >>>> >>>> There is a fourth, which is to declare styles as in HTML: >>>> >>>> <js:SomeComponent style="fontWeight:bold; fontStyle:italic" /> >>>> >>>> There should be some usage of it in RoyaleStore. >>>> >>>> We could fatten the API surface of Express to populate every CSS style >>>> onto the components, but IMO, it gets nasty when you want to allow for >>>> non-standard/browser-specific styles (--moz-xxx). So, that's why, at >>>> least for now, Royale does not put styles in the APIs. >>>> >>>> It would be cool if the newer IDEs would help check for mis-spellings >>>> and >>>> invalid values in that HTML-like style syntax. >>>> >>>> HTH, >>>> -Alex >>>> >>>> On 10/25/17, 3:14 AM, "Harbs" <[email protected]> wrote: >>>> >>>>> I’m trying to figure out the best way to make it easier to declare >>>>> styling for express components. >>>>> >>>>> Right now, I know of three ways to set styling: >>>>> 1. Using class names in css blocks >>>>> 2. programmatically setting the values when the component is >>>>> initialized >>>>> 3. using js:style mxml blocks and declaring some kind of stlye object >>>>> in >>>>> that. >>>>> >>>>> None of these options are as easy as what we had in Flex. >>>>> >>>>> In Flex, you could just declare the styling options as attributes of >>>>> the >>>>> main tag. Even option #3 is problematic because it makes it too easy >>>>>to >>>>> swap out the style object defined in the component, so >>>>> BindableCSSStyles >>>>> might be replaced with the non-bindable version by mistake. >>>>> >>>>> One option is that we can add getters and setters for the styles that >>>>> Flex supported natively. That would use whatever CSS object is >>>>>created >>>>> by >>>>> default, and support simple declarations in the main tags. >>>>> >>>>> Another option would be to add a new setter which takes an object of >>>>> any >>>>> type and for-ins the object to insert the values into the default >>>>> styles >>>>> object in the component. >>>>> >>>>> One variation on the first option is to create a new “styleable” >>>>> component set which has a large gamut of style-able proprties (and >>>>> possibly a better skinning story). Maybe express could be >>>>>middleweight >>>>> components and “styleable” or “skinnable” would be a heavier-weight >>>>> component set which would be closer to Flex components. >>>>> >>>>> Thoughts? >>>>> >>>>> Harbs >>>> >>> >> >
