GUI designers cannot always anticipate the needs and preferences of potential end users. As a result, it is common for user interfaces to be customizable in their look and behaviour so as to fit the needs of the widest user base possible. The circuit editor GUI can be customized via the configuration dialog box as shown in Figure 2.5. This dialog box is displayed when the user selects the Configure... option from the File menu of the menu bar.
Figure 2.5: Configure Dialog Box
Currently, only four aspects of the GUI can be configured using this dialog box. These configuration parameters are selected by pressing the appropriate radio-buttons in the dialog box.
This section of the configuration dialog box lets the user change the location of the toolbar to either the left or right side of the circuit editor window. Pressing either radio-button moves the toolbar immediately, so that the user can evaluate the decision without having to first leave the dialog box. By default, the toolbar is displayed on the left side of the circuit editor window.
The intensity of the grid which is displayed in the workarea canvas may be modified to one of three settings so as to increase or decrease the visibility of the grid lines. The grid lines may also be turned off completely. Once the user selects the appropriate radio button, the grid intensity is changed immediately on the workarea, thereby giving the user instant feedback.
During netlist creation, when the user sets a point on top of an existing wire, wire point or component port, an attempt will be made to solder the new point to the overlapping item. If this behaviour is unacceptable to the user, then this feature can be turned off.
The user has the option of configuring the GUI to prohibit the drawing of slanted lines during netlist creation. If the user is doing a manhattan style layout, then this restriction would make such a layout easier. Note that this only affects netlist creation -- the user may subsequently move wires and wire points which would result in oblique wires.
After the user presses the OK button, a file named .digitclrc is automatically updated with the new configuration information in the user's home directory. Hence, the next time that the user starts the application, all the previous settings will be restored. If the user selects the Cancel button, the configuration settings will revert back to what they were before the configuration dialog box was activated.
Other aspects of the GUI can be configured using the X option database. Using this technique, virtually everything from the colour of circuit elements in the workarea of the circuit editor to the widths of the signals displayed in the signal display window can be customized by the user. Unfortunately, it is not easy to use the option database to configure the GUI. One must be familiar with the widget hierarchy employed by the application as well as be aware of the valid settings each configuration option can take. All the configurable aspects of the GUI are stored in the file optiondb.tcl which contains a procedure that assigns default values to option names. Any modifications made to the option values will take effect the next time the application is run. Alternatively, one can modify an option setting through the use of an X resource database such as the .Xdefaults file. For example, if the user wanted to change the colour used to display a wire when it is highlighted, the following line can be added to the user's .Xdefaults file:
and the option database would have to be re-read by issuing a command such as:
$ xrdb -merge ~/.Xdefaults
When the GUI is restarted, wires will be coloured green as the mouse pointer moves over them during, for example, a delete operation.