Projects/Usability/HIG/Toolbox
Purpose
A tool box is a graphical presentation of tools optimized for fast access. Tools are the different ways an user can manipulate a document. Only one tool can be enabled at any given time.
Examples
Guidelines
Is this the right control
- Provide a toolbox if there are different modes for manipulating documents directly using the cursor (such as e.g. in most graphics applications).
- Provide a toolbox in addition to the menu bar, but do not replace the menu bar.
Behavior
- A tool box should contain all available tools. If the number of operations is above 5 they have to be grouped with separators.
- Do not put any buttons that directly modify the document in the toolbox. Selecting a tool in the toolbox only changes the mode of operations. The document is only modified when the selected tool is applied to the canvas.
- Provide a keyboard shortcut to allow fast switch between tools.
- Do not use menu buttons in tool boxes. They do not fit well the concept of fast access.
- Do not hide tool boxes by default. If configurable, users should easily be able to make the tool box viewable again.
- Disable buttons that do not apply to the current context.
- Consider to provide customization for tool boxes in respect to position and content.
Appearance
- Use icon-only flat toggle buttons.
- Use a tooltip. As the user has no mean of knowing what it is, describe it to the tooltip.
- Toolboxes should be placed on the left side of the document by default.
- Toolboxes should look good in both vertical and horizontal mode.
- Use and design toolbox icons with special care. Users remember location of an object but rely as well on icon properties.
- A distinct association between the underlying function and its visual depiction is crucial. Follow the advice for icon design.
- Do not simulate Microsoft's ribbon controls. KDE stays plain and simple.
Implementation
- If there are less than 11 tools, use a QToolBar.
- If there are more than 10 tools, use a QToolBox.
- Use QKeySequence::toString() to add the keyboard shortcut to the tooltip, don't hard-code it.
- The keyboards shortcuts may change if they can be edited by the user. Don't forget to update the tooltip when needed.