The basic problem is that Windows has two models for windows: dialogs, which contain controls, and normal windows, which contain menus, toolbars, and typically one child control.
LiveJournal needs to be a mix of both. We need a "subject" entry (and related metadata) and a "submit" button, but the window needs to be resizable and contain the edit entry.
Currently, I've been trying to use a rebar (the IE widget for containing widgets in the toolbar) to contain the "subject" bar. Then, I'd use a toolbar to contain the "submit" button. My other option is to write my own custom widget that handles the subject, security, and other post options. Outlook (for example) has a custom control in the "compose" window containing the "subject" and "to" fields.
Why I should use a rebar:
- Less custom code means fewer bugs and more time to develop other things
- Rebars are more common on Windows; greater consistency with Windows apps
- Rebars automagically support user-dragged reordering of child bars; while this isn't necessarily an important feature, it is something the users would like (one has already requested "docking"), and I don't want to implement on my own
- Resizing is handled mostly automagically
Why I should instead use a custom control:
- Maybe a rebar isn't the "correct" way of doing this
- The controls are very close together in a rebar, and I can't work around that without using a custom control
- Rebars can only contain one control per bar. This makes adding something like a "detect" button to a "current music" rebar a very serious task
- I can't, for the life of me, get the toolbar to position properly in the rebar
- The location of the "submit" option remains a big question, as does the location of the "additional post options" selector (see the LoserJabber UI screenshot for my inspiration)
I hate getting caught up in relatively unimportant details...
but this may be sorta important.
The basic problem is: Where does the "submit" option belong? Having buttons on windows is not common in Windows, and one of the most important rules to follow when trying to make a professional-looking application is "make it look like everything else".
Ideas?