Folks -
I've just pushed a version of preference pragmas into the trunk. With preference pragmas, you no longer need to litter Preferences with loose methods that confuse Monticello and don't get uninstalled. With preference pragmas, you define your preferences locally (for example as class variables) and provide an annotation that can be discovered automatically. A sample preference looks like here:
MyClass>>samplePref <preference: 'Sample Preference' category: 'My Application' description: 'A sample preference in my application' type: #Boolean> ^SamplePref
The following types of preferences are currently supported: #Boolean, #String, #Number, and #Color. When a preference is changed, the accompanying setter method is called.
Preference pragmas will help us get rid of most of the dependencies between Preferences and the rest of the world. New preference browsers or entire implementations can easily be written without introducing unnecessary dependencies by virtue of discovering the annotation.
Cheers, - Andreas
squeak-dev@lists.squeakfoundation.org