I guess I've probably always been aware that there was some suckage here, but I never really knew how bad.
So the other night I was trying to implement support for tweaking cache expiration preferences for IMAP4, but ran into some problems with providing a decent way of providing a UI for it. camel_object_[g,s]etv(): The problem with this method is that you can only specify a value type and a label. This makes it hard to present any sort of more complex user-input device for the user beyond true/false and possibly string input? (which is probably why CAMEL_ARG_BOO and CAMEL_ARG_STR were the only 2 arg-types mapped in the UI for folder properties). If you want to request a float or integer from the user, then you have no way of specifying an input range - nor do you have a proper way to represent the following UI: Cached messages should expire after [3600H] seconds. (e.g. text before and after the spinbutton, which helps to make the user-input query more readable) There's also no way to link inputs. For exmaple: [X] Expire messages older than [3600H] seconds. or [X] Enable XYZ XYZ should happen after [3600H] seconds. In the second example, the followup UI element should be disabled if the dependency element hasn't been enabled. I'm not sure which of the 2 above methods is the preferred choice (probably only 1 of them needs to be possible to do). camel-provider properties: Suffers from most of the same problems listed above. Not sure how exactly to fix these issues, but figured I'd maybe get the ball rolling by sending this mail and seeing if other people had ideas. The best I can come up with is some sort of XML blurb describing how the UI should look in some toolkit-agnostic way, but I'm not sure of the details. Jeff _______________________________________________ Evolution-hackers mailing list Evolutionfirstname.lastname@example.org http://mail.gnome.org/mailman/listinfo/evolution-hackers