‹header›
‹date/time›
Click to edit Master text styles
Second level
Third level
Fourth level
Fifth level
‹footer›
‹#›
ModelSim is much like a software debugger.  It displays source code, data values, call stack. And, because of the concurrent nature of hardware simulation, there are time/value pair histories to display.  This leads to a complex, multi-dimensioned set of views.
The reason we chose Tcl/Tk is flexibility.  Of the 14 listed platforms, 9 of them did not exist when we made the decision to go with Tcl/Tk.  Since we cannot predict what the platforms our customers will need to use in the future, we need to be as flexible as possible to meet future demand.
This is why a Windows Look & Feel is so important.
Actual quote from a customer evaluating the first Windows release ModelSim using Tk.
Much of the control of the application was performed from the command line and worst yet, many features were Only available from the command line.
There were too many top level menu items using unfamiliar terms.
Continuing this approach with new features will quickly run out of room.
Reorganize top level menu using familiar terms (categories).
The two menu items unique to this application, Compile and Simulate, are not actually categories, but verbs.  However, these terms are immediately recognizable and understood by the user and we contend that they are really short hand for the phrase “Compile Tasks” and “Simulate Tasks” which make them categories.  These are the two primary tasks performed by the application.
For each command we tried to find analogous command in common MS tools.  This way, by placing these commands within the same menu location, users are more likely to find what they’re looking for, or will more likely understand what a particular command does by it’s location.
Here, the wrong verb (New) was used for operations that created new objects within a window. In MS applications the verb “New” is for file objects and the verb “Insert” is for items added to a view or file. In ModelSim, New Divider and New Window Pane have nothing to do with Files!
Dialog boxes play a large role in any user interface. If a programmer creates a dialog, adds some widgets and packs them without regard to final form, the resulting dialog will not look modern or intuitive.  There are a number of factors that must be considered in order to achieve an effective look and feel with Tcl/Tk.   These factors are both visual and behavioral.
In MS Windows applications there is a consistency across (almost) all the dialog boxes that, if nothing else, makes a user feel at home.
Multiple Selection combined with Tri-state widgets is the GUI equivalent of glob expressions in shell commands.  Without it, editing properties is very cumbersome.
Multi-column list and hierarchical list views are present in many MS Windows applications and is usually the main focal point of the tool. Out tree widget is a complete custom set of widgets that is used in a variety of ways within the application.
With 9 different presentations of data, ModelSim quickly clutters the desktop with windows.  By using MDI and Dockable panes, this clutter can be contained and controlled.  The MDI implementation shown here is work-in-progress based on the MySund MDI implementation.  The dockable panes also being developed using multiple iwidget::panedwindow widgets.
Having the ability to pull panes out into separate top level windows is something we will be working on soon.  Why?  Because other MS applications can.
We’ve developed a protocol for writing Wizards, but haven’t gone the next step to encapsulate this into single widget.
In one sense this was easy for us because all the widgets involved are custom built of our own making. Doing the same thing with standard Tk widgets in a portable manor would be much more difficult, unless the Tk widgets provided the appropriate hooks.