Menu Design for Complex Applications
By James Hobart
President & CEO
Many
complex applications that we create involve a large number of business objects on which
the user needs to operate. Creating a unified menu to accomplish this can be quite
challenging. Fortunately, as we begin to place the user's focus more on the objects and
tasks and less on the application itself, there are new window and menu constructs to
support this design technique. As the user activates different objects, different commands
need to be accessed in the user interface. Menus in the traditional application window are
now being divided into three types: primary window menus, workspace menus, and active
object menus. Each one of these types enhances usability by defining the appropriate user
interface as the user activates or deactivates an object.
Primary Window Menu
This menu is the topmost container menu and controls the work area of the window. It also
identifies the 'main' or high-level object and the commands normally associated with that
object. This menu is displayed in the menu bar at all times, regardless of which object is
active. If you have several main objects in the application, you should include a 16x16
pixel icon for each active object as part of the primary container window.
Workspace Menu
As we move away from MDI (Multiple Document Interface) applications, the workspace becomes
the new window construct to support the organization of child windows. The workspace menu
(typically labeled "window" on the menu bar) provides commands for managing the
child windows displayed within it. Like the primary window menu, the workspace menu should
always be displayed, regardless of which object is active.
Active Object
Menu
An active object can define the menus that appear on the primary container’s
menu bar. Actions that apply only to the active object should go on the active object
menus. If no child objects are active, the object defined by the primary window container
becomes the active object. Most of the menus on the menu bar are this type of menu. You
should follow the normal menu naming conventions and use separator bars to create clear
and intuitive menus. In addition to having a place on the application menu bar, an active
object menu is often associated with the object itself via a right-click pop-up menu.