From: Tony G. <Ton...@Su...> - 2005-03-12 23:27:55
|
Julian Rosse <gn...@th...> writes: > Right now dump-info.xml has <property> tags (with only "name" attributes) > for shorthand > properties for seven of the eight absolute/relative sides - "border-bottom" is > missing. The XSL spec only seems to mention shorthands for the absolute > sides - border-bottom, border-top, border-left, border-right. Should the other > four exist? There seems to be code talking about border-after's and such in No, the other four shouldn't exist. I shouldn't have put them in dump-info.xml. > some of the area code, and the spec seems to talk about it in those terms, > but not for actual element attributes. Also, right now spec-dump doesn't seem > to include any of these properties in the files it dumps; I didn't see right > off what suppresses them. Selective patching on my part. > There are already fo-property-border.[ch] files which seem to have some > general border-oriented enums and such - will I want to merge these with the > same-named files that spec-dump will produce, or rename these existing files, > ...? You should be able to replace the files without a problem. At one time, all of the border-related enums were defined in fo-border.[ch] and all the border types were subclasses of FoBorder. That was too unwieldy and didn't reflect that fact that 'border' is itself a property. The enums have been superseded by the enums in datatype/fo-enum.[ch]. All enums are currently defined there both so a particular enum object is only created once and so there's less hassle in getting an enumerated value from a property of a different type using from-parent(), etc. The definitions of thin, medium, and thick borders have been superseded by functions in datatype/fo-length.[ch]. fo_property_border_resolve() has been moved to fo_property_util_border_resolve() and, thanks to you, has been significanlty updated. > A semantic question for which I didn't notice an answer in the spec right > off - the spec clearly says that the border-<side> shorthands are of higher > priority than border-{style,color,width}, and "border" is lowest priority. > You're allowed to omit any or all of the style, color, and width components > from the border{,-<side>} shorthands, right (I don't know the XSL spec regex > vocabulary particularly - ||, etc.)? e.g., border-top="1px solid" is valid, > no? In the case that components are omitted, it would seem intuitive that > any values already assigned by a lower-priority shorthand which correspond > to an omitted component on the current one would remain as the value, rather > than, say, a default value for that omitted component overriding the actually > specified value from a lower-priority shorthand. If that is the desired > semantics, how will that be represented in xmlroff? In particular, what will, > say, fo_wsc_get_color() return if that component was omitted from the > shorthand attribute corresponding to the FoWsc? I want to say NULL, but that > seems to indicate other error conditions - would we need some other enum value > meaning "omitted" or something? I guess that's somewhere > between a question and a suggestion. I was wondering much the same thing when I was implementing datatype/fo-wsc.[ch]. fo_wsc_new() creates an FoWsc with NULL for all three components, yet fo_wsc_new_from_values() will complain if you don't provide component values, so you can see I am conflicted about this. I had a whole different answer worked out, but it now seems to me that we should use NULL for a component that is not specified. Consider this: <fo:block border-color="red" border-left="thin solid"/> I think the result for the left/start border would be thin/solid/red rather than thin/solid/(text color). > If 'inherit' is specified on one of these shorthands, will that be resolved > in the expr-eval code? From my perspective, that will already be resolved > before the fo-context-util code gets ahold of the FoWsc's, right? The resolved value should be the value from the parent context. It will be resolved by the expr-eval code (once it's written). The fo-context-util code shouldn't have to worry about it. Good questions. Thanks. Regards, Tony. |