August 18th, 2002

belize
  • brad

Proposal: property usage declaration requirement for layers

I've been working on the user/theme editing wizard and I found myself writing this text:

These are properties available to all layouts, though some layouts may not use them all.

Then I realized how dumb that is... we could just make it a requirement that layouts must declare which core properties they actually use, then we can hide in the wizard properties which aren't applicable to that theme/user layer.

This solves two other problems:

1) The order to list the properties in the wizard. Right now I'm stuck between showing them merged together, duplicates removed from the core part, or showing them twice, with core listed first, then layout. If layouts listed which core properties they cared about, then we could just present the list in the wizard in the order that new properties were defined in the layout, or existing properties were listed as being needed.

2) The core layer can get really fat, without confusing the users. mart should like this, as most my objections to putting stuff in the core so far have been based on fear of the wizard getting ugly. I never really told him as such, because really I didn't know why I didn't like it... I just had a weird feeling it'd get ugly. With this, there's no reason.

Example:

Mart defined in the core "text_nogalleries" which defaults to "There are no galleries to display." Except, my Apache-style layout doesn't use that text. However, most layouts would. I want to hide it in the UI when possible.

Any objections?

I propose the S2 syntax be:

property use text_nogalleries;

which is valid only in layout layers. The compiler will then prevent use of that property in any of that layout's lower layers.

Sound good, Mart?