2008-04-30

More ListBoxes, Fun with Flags

More amendments to the ListBox. It now allows multiple selections to be made, and it can be switched from single selection to multiple selection mode. There are more methods for working with option data, such as “removeOption()”, “selectAllOptions()”, etc. I’m tempted to write a sort routine that will sort the options alphabetically when called.

Despite spending some time a while ago renaming the “closeable” flag to “closable”, I’ve now decided to remove the flag entirely. The only gadgets that used it were the two Window subclasses as they are the only gadgets in the entire program that the user can close. Doesn’t make any sense to keep a flag in the Gadget class just for one specific circumstance.

I’ve added a new “windowFlags” parameter to the AmigaWindow and SkinnedWindow constructors instead, and that parameter can be used to show the close gadget and the depth gadget. Both of those gadgets can now be shown or hidden at any time by calling the appropriate “showXButton()” or “hideXButton()” method.

After getting that sorted out, I’ve added similar functionality to the two Screen subclasses. AmigaScreen and SkinnedScreen now accept a “screenFlags” parameter in their constructors that can be used to hide the depth and flip buttons. Additionally, both can be hidden or shown in the same way as the window decoration buttons. That’s another one off the SourceForge list.

I went for a separate flags parameter in preference to abusing the base Gadget class’ flags parameter as it’s more future-proof.

Oh, I should note - I think that the skin properties override the button visibility flags in the skinned classes.