20 years ago, memory was scarce, computers were slow and screens were
small. Therefore, GUIs (if available at all) used small STATIC dialogs
with short texts.
Nowadays, dialogs can easily be made DYNAMIC to help the user understand
them and prevent errors BEFORE they occur.
Let's take my favourite NAME command as an example. In this case, the
renaming dialog for nets with more than one segment (I only created the
example dialog for segments distributed over several sheets). Here, the
renaming process does different things, depending on the desired NEW name:
1. If new and old name are identical, it does NOTHING. In this case,
the dialog could look as in 'ok.png'. Note a) the hand cursor and
tooltip for the current name and b) the disabled group box.
2. If the new name does not exist yet, and the whole net is selected,
the net is just RENAMED. The dialog could look as in 'rename.png'.
Note the descriptive tooltip for the 'unique' button.
3. If the new name does not exist yet, and only some segments are
selected, these segments are DISCONNECTED. The dialog could look as
in 'disconnect.png' (not included in this posting due to size
limitations). Note the tooltip for the 'Disconnect' button.
4. If the new name already exists, and the whole net is selected,
the current net is CONNECTED to the desired one, and the dialog
could look as in 'connect.png'. Note the edit field tooltip with
information about overscored text.
5. If the new name already exists, and only some segments are
selected, these segments are RECONNECTED to this existing net.
The dialog could look as in 'reconnect.png' (not included in this
posting due to size limitations). Note the tooltip for
the 'Reconnect' button.
The following dialog components are dynamic:
a) The caption and tooltip of the left button
b) The texts for the group box radio buttons
c) The enabled/disabled state of the group box
All these dynamic changes can easily be done DURING typing into the edit
field. This way, the user IMMEDIATELY sees what will happen after
pressing ENTER.
Of course, for the PROGRAMMER, the whole renaming thingy is nothing but
a stringe change as before, but for the USER, the rename dialog does
LOTS of DIFFERENT things, and it's wonderful if the user can SEE that.
It could even be argued that this way, the (sometimes following) safety
warnings 'Connect the nets' etc. could be thrown away, because the user
knows what will happen BEFORE doing it. Of course this would only apply
to using the GUI for renaming - when doing things with the command line,
those warnings SHOULD still appear, of course.
The bitmaps not attached here are sent to Walter Spermann separately.
Andreas Weidner