Customize Menu Specification

OpenOffice.org 2.0

Document - ID	Specification Owner	Last Change	Status
	Christian Jansen	07/02/04	Final
Conforms to	
Applies to	Every module of OpenOffice.org
Task ID(s)	i20069 (PCD node) i20068, i20022, i21879, i21883 CWS: SRC680/Uicfgdialogs
Category	Feature

Abstract

The usability of the Menu tab of the Tools/Customize dialog is being improved to make it easier for users to create customized menus and menu items to suit their needs.

i-Team Members (The specification owner is part of the i-Team)

	Name	E-mail Address
User Experience	Christian Jansen	Christian.jansen@sun.com
Development	Tomas O'Connor	tomas.oconnor@sun.com
	Carsten Driesner	Carsten.Driesner@sun.com
Quality Assurance	Thorsten Martens	Thorsten.Martens@sun.com
Documentation	Uwe Fischer	uwe.fischer@sun.com

Approved for Implementation

	Approved by	Date
User Experience	Christian Jansen	April 30, 2004
Development	Tomas O'Connor Carsten Driesner	April 27, 2004 April 30, 2004
Quality Assurance	Thorsten Martens	April 30, 2004
Documentation	Uwe Fischer	April 28, 2004
String Review	Elizabeth Matthis	21 May 2004

Document Change History

Rev. Level	Change	Initials	Date
0.9	Prepare for final review	TOC	April 27, 2004
1.0	iTeam approved, spec is final	TOC	April 30, 2004
	update task Ids	MMP	12/05/04

Contents

Glossary	1

1	Motivation	1

2	User Scenarios	1

3	Goals	1

4	Requirements and Dependencies	2

4.1	Requirements	2

4.2	Technical Dependencies	2

5	Competitive Analyses	3

6	Detailed Specification	4

6.1	Menu Area	5

6.2	Menu Contents Area	8

6.3	Save In	13

6.4	Misc	13

6.5	Error Conditions	14

7	Future Tasks	14

8	Notes	14

9	References	15

Glossary

Term	Description
Builtin function	Function implemented internally by OpenOffice.org
Macro	A piece of code that can be written, tested, and executed from within the Basic IDE.
Assignment	The association of a builtin function, script or macro with a menu item, key combination, toolbar icon or event.
Scripting Framework	A framework provided by OpenOffice.org for the execution of code written in different languages such as Basic, Java, JavaScript, BeanShell and Python
Script	A piece of code that can be executed by the Scripting Framework

Motivation

A number of problems have been identified with the usability of the Menu tab of the Tools/Customize dialog. Also scripts available for execution via the Scripting Framework need to be presented to the user in the Tools/Customize dialog.

User Scenarios

User A writing a research paper wants to create their own custom menu for a command they they use regularly.

User B wants to create a document which shall be used as template for certain actions. The template also provides Macros. User B wants to give their colleagues fast access to run these macros by creating new menu items for executing them.

Goals

The goals of redesigning the tab are:

Simplify and improve the look and feel.

Reduce the number of clicks required to create assignments.

Add support for creating assignments to scripts supported by the Scripting Framework.

All of the functionality of the Tools/Customize dialog must be keyboard accessible.

Requirements and Dependencies

Requirements

This list summarizes some areas of the menu tab that could be improved. This list is not comprehensive.

The Menu entries section contains too much detail. This makes it difficult to navigate to the menu item in which you are interested eg. Getting to the Tools menu requires scrolling past nearly 200 items before you reach it.

The icon associated with a menu item is not shown.

You cannot assign an accelerator key combination to a menu item.

There is no way to filter the list of Functions to which a user can make an assignment eg. builtin only, by language, author, signed/unsigned?

Only one item in the tab should be highlighted at any one time, otherwise the user will be confused as to which item will respond to a cursor key.

It is not obvious how to rename a menu item – it is done by clicking on the item in the menu entries section of the tab, but users may not realize this.

There are two buttons labeled Reset in the dialog.

The built-in functions are not sorted alphabetically.

Technical Dependencies

The Scripting Framework needs to be available, and StarBasic need to be integrated with the framework.

The Configuration API needs to be implemented.

Competitive Analyses

Microsoft Office XP

Like for Toolbar customization the Customize (Tools -> Customize) dialog is the most important dialog for modifying built-in or custom menus. Even new Menus can be created from here.

Due to the fact that in Microsoft Office XP the menus are nothing else than toolbars is the way of customizing them quite similar. Calling the Customize dialog switches Microsoft Office in some kind of customization mode. Users have choose an category and have to drag the items from the commands list located beneath the Category list box into the menu.

Figure 1

It also possible to modify menu entries directly at their location in the menu. For doing this users have to right click the menu.

Detailed Specification

As in previous versions of OpenOffice.org, the menu tab is part of the Customize dialog which is accessed from the Tools/Customize menu item. The new Menu tabpage is divided into three main areas, an area for adding or modifying menus, an area for modifying the content of a menu and an area which displays a description of the selected menu entry.

Figure 2Menu tab

String list

Tab label	Menus	Menüs	Was “Menu” but must be plural to match “Events” and “Toolbars”.

Item	English	German	Comments
Text Label	%PRODUDUCTNAME %PRODUCTMODULE Menus	%PRODUDUCTNAME %PRODUCTMODULE Menüs	
Text Label	Menu	Menü	
Button	New...	~Neu...	
Button Drop Down (DD)	Menu	~Menu	
DD Menu Command	Move...	~Verschieben...	
DD Menu Command	Rename...	~Umbenennen...	
DD Menu Command	Delete	~Entfernen	EM->TO: Really no further step? If yes, please include “...” like in mockup.
Text Label	Menu Content	Menüinhalt	
Text Label	Entries	Einträge	
Button	~Add Commands...	~Befehle hinzufügen...	
Button DD	Command	Befehl	
DD Menu Command	Rename...	~Umbenennen	~Umbenennen
DD Menu Command	Begin a Group	~Gruppe beginnen	
DD Menu Command	Add Submenu	U~ntermenü einfügen	EM->TO: Really no further step? If yes, please include “...” like in mockup.
DD Menu Command	Delete	~Entfernen	EM->TO: Really no further step? If yes, please include “...” like in mockup.
Text Label	Save in	~Speichern in	
Separator	Description	Beschreibung	

Menu Area

The menu area provides a drop down list box that lists all of the Menus in the current context (See the Save In section for a description of how the menus list is populated). Submenus are listed with the names of their parent menus prepended, each menu name being seperated by a “|” character.

The table below shows the entries for the File menu in OpenOffice.org Writer 1.1 as an example:

Label	List Box item	Action
Menu	File	Top-level will be opened for editing
	File | Send	Send sub menu will be opened for editing
	File | Templates	Templates sub menu will be opened for editing

New Button

Clicking on the New button opens the New Menu dialog. This dialog allows users to name a custom menu and to specify its location. Users can give the custom menu a name of their choice. The dialog proposes a default name “New Menu 1”. The default name is selected, so that is easy for the user to overwrite the default name. The user can specify the location in of the menu in the menu bar by moving the custom menu up or down.

Figure 3New Menu dialog

Item	English	German	Comments
Dialog Title	New Menu	Neues Menü	
Placeholder	New Menu %n	Neues Menü %n	%n will be replaced at runtime by a number starting with 1 and increasing as necessary..
Label	Menu name	~Menüname	
Label	Menu position	Menüposition	
Button (default)	OK	OK	
Button	Cancel	Abbrechen	
Button	~Help	~Hilfe	

Each menu has to have a unique User Interface name. This rule is a module wide rule. For example it is not possible to have two menus named 'Help' depending to one module or the current document.

But it shall come to no conflicts when user A has created a custom menu (for example named menu1) dependent to one module. Now user A gets a document from user B dependent with a custom menu. This custom menu from user B is also called menu1. In this situation both menus are visible in the menu bar.

Menu Button

The Menu drop down push button provides the following commands (the table at the end of the list displays when each command is active):

Move...

Rename...

Delete

Move

Clicking Move opens a dialog from where users can change the location of a menu. The dialog is quite similar to New Menu dialog, but it shows only a list box for moving the menu. Changing the location of a menu shall be done by click the arrow buttons.

Figure 4Move Menu dialog

Item	English	German	Comments
Dialog Title	Move Menu	Menü verschieben	
Label	Menu position	~Menüposition	
Button (default)	OK	OK	
Button	Cancel	Abbrechen	
Button	Help	~Hilfe	

Rename...

Changes the name of a selected menu. This command is only enabled for custom menus. Selecting this command calls a Rename dialog. The text field in this dialog displays the current name of the menu in selected state. This makes is easier for the user to overwrite the name.

Figure 5 Rename dialog.

Item	English	German	Comments
Dialog Title	Rename Menu	Menü umbenennen	
Label	New name	~Neuer Name	
Button (default)	OK	OK	
Button	Cancel	Abbrechen	
Button	Help	~Hilfe	

Delete

The Delete command allows user to delete custom menu. Selecting this command calls a Warning dialog (Exclamation mark on yellow triangle). User have to commit that it is OK to delete the selected menu. It is not possible to delete a OpenOffice.org build-in menu. Users can only delete custom menus.

Item	English	German	Comments
Warning Title	%PRODUCTNAME %PRODUCTVERSION % MODULENAME	%PRODUCTNAME %PRODUCTVERSION % MODULENAME	
Warning Text	Are you sure you want to delete the '%MENUNAME' menu?	Sind Sie sicher, dass Sie das Menü '%MENUNAME' löschen möchten?	%MENUNAME will be replaced at runtime by the name of the selected menu.
Button (default)	OK	OK	
Button	Cancel	Abbrechen	

Command Matrix

The table below shows in which state a command can be executed.

Command	Module Menu selected	Custom Menu selected
New...	X	X
Move...	X	X
Rename...	-	X
Delete	-	X

X = can be executed
- = disabled

Menu Contents Area

Within this area users can modify the content of a custom or module menu. For example adding items to the menu or rearranging items.

Menu Contents List Box

The Menu Contents list box lists all available items of the selected menu or submenu. Items can be rearranged by using drag & drop or by using the arrow buttons located at the right hand side of the list box. When users creates a new menu the list box is initially empty. For better differentiation between a normal entry and a entry which is the top-level of an sub menu, sub menus shall have a small arrow located at the right hand side of a list box entry.

Add... Button

The 'Add ...' button allows users to add entries to the selected menu. Selecting the button calls the 'Add Commands' dialog. The dialog is a modeless dialog. User can select from the Commands category the commands they want to add to the menu. Adding items can be done by keyboard or for the mouse orientated user by drag & drop (Drawing 1).

The following figure illustrates the workflow of adding items.

Figure 6Adding Items to a menu.

Users can drag commands directly into existing menu or into the Command list field of the Customize Menu tab. The drag & drop interaction shall be visually enhanced compared with OpenOffice.org 1.1. Please compare with the Toolbar Specification (http://specs.openoffice.org/ui_in_general/toolbar_concept/openoffice_org_toolbar_spec.sxw).

Note, it may not be possible to implement the drag to existing menu feature in OpenOffice.org 2.0.

During the drag the mouse pointer shall be extended by a rectangle. The rectangle simulates the selected command. Over a menu OpenOffice.org shall indicate exactly where the command will be placed. Dragging the command somewhere over the module or desktop window cancels the actions.

When the user chooses to add commands by keyboard the commands shall be added below the current selection in the Commands list of the Customize Menu tab.

The Add Command dialog should not overlap the item list in the Customize dialog, because this is the target for new menu commands.

Drawing 1 Drag & Drop

Commands listed in the Commands list which are displaying a triangle on the right hand side are commands which open a sub menu or sub menu. In the moment of selecting a command the Description field displays the content of the extended ToolTip.

Figure 7 Add Commands dialog of OpenOffice.org 2.0

Item	English	German	Comments
Dialog Title	Add Commands	Befehle hinzufügen	Title of dialog opened by the button of the same name on the menus customization dialog.
Label	To add a command to a menu, select the category and then the command. Then drag the command to where you want it on the desired menu. Alternatively, you can drag the command to the Commands list of the Menus tab page in the Customize dialog.	Um Befehle einem Menu hinzuzufügen, wählen Sie zuerst eine Kategorie und dann den Befehl. Ziehen Sie den Befehl direkt in ein geöffnetes Menü. Alternativ ziehen Sie den Befehl in die Befehlsliste auf der Registerseite 'Menüs' im Dialog 'Anpassen'.	
Label	To add a command to a menu, select the category and then the command. You can also drag the command to the Commands list of the Menus tab page in the Customize dialog.	Um Befehle einem menu hinzuzufügen, wählen Sie zuerst eine Kategorie und dann den Befehl. Alternativ ziehen Sie den Befehl in die Befehlsliste auf der Registerseite 'Menüs' im Dialog 'Anpassen'.	This second string is added because the drag directly to menu feature may not be possible to implement in OOo 2.0
Label	~Category	~Kategorie	
Label	C~ommands	~Befehle	
Separator	Description	Beschreibung	
Button (default)	~Add	~Hinzufügen	
Button	Cancel	Abbrechen	
Button	~Help	~Hilfe	

Command Button

The Command drop down push button gives users access to commonly needed commands for modifying the content of a menu or sub menu. For example from here users can add or remove items. The Command drop down bush button contains the following buttons:

Add Submenu...

Begin Group

Rename...

Delete

For better readability the menu shall be clustered. The table below lists the menu with separators.

Menu Part	Command Name
Title	Menu
Button	Rename...
	Delete
	---------------------
	Add Submenu...
	---------------------
	Begin Group

All commands are specified in detail below:

Add Submenu

Clicking the Add Submenu command opens a dialog where user can give the submenu they want to add a name. The default name is “Submenu 1”. The text entry in the edit field shall be preselected, and the cursor shall be located by default at the end og the text entry. This assure an easy overwriting of existing data. Clicking OK adds the submenu to the menu. The submenu shall be located below the current selection and shall be fused next. Additionally the submenu shall appear in the Menu list.

Figure 8 Add Submenu dialog

Item	English	German	Comments
Dialog Title	Add Submenu	Untermenü hinzufügen	
Label	Submenu name	Name des Untermenüs	
Button (default)	OK	OK	
Button	Cancel	Abbrechen	
Button	~Help	~Hilfe	

Begin Group

Begin Group add a separator to the menu. The separator shall be inserted below the current selected entry.

Rename...

The command allows users to rename menu entries. The same dialog appears like when renaming menus..

Delete

Delete deletes the current selected item without any warning.

The table below lists the state when each command is available or not.

State	Active	Inactive
New or empty menu	Add...	
	Add Submenu...	
		Begin Group
		Rename...
		Delete
State	Active	Inactive
Item Selected	Add...	
	Add Submenu...	
	Begin Group	
	Rename...	
	Delete	
State	Active	Inactive
Separator Selected	Add...	
	Add Submenu...	
		Begin Group
		Rename...
	Delete	
State	Active	Inactive
Submenu selected	Add...	
	Add Submenu...	
	Begin Group	
	Rename...	
	Delete	

Save In

The Save In drop down box is used to switch between editing menu configurations for the module or for particular OpenOffice.org documents. When the Menu tab is created, the Save In drop down is populated with one entry for the module (eg. OpenOffice.org Writer) and one entry for each open document of that module (eg. all open OpenOffice.org Writer documents).

When the tab is created, if the document for which the menu tab was opened (ie. the document in which the user selected the Tools/Customize menu) has it's own menu configuration defined, then that document will be selected in the Save In drop down list. Otherwise the module will be selected in the dropdown list.

When the user changes the selection in the dropdown list, the menu configuration for their new selection is loaded into the Menu and Menu Contents areas. If the user has selected a document for which no configuration exists, then the module configuration is used by default for that document.

Changes to menu configurations are preserved when the user selects different items in the Save In dropdown. So if the user has made modifications to a document configuration, then switches to the module configuration, then switches back to the document configuration, the changes they made to the document configuration should still appear.

Misc

The description area displays the extended ToolTip of an selected menu entry. The description area shall remain empty when a Separator is selected.

Figure 9Description area

Behaviour of the Reset button

When the Reset button is clicked the user will be presented with a warning dialog asking them if they wish to proceed. If they select OK, then the configuration for the current selection in the Save In combo box will be reset back to the factory defaults, ie. the default menu configuration for an initial OpenOffice.org installation of that module.

Item	English	German	Comments
Warning Title	Reset	Zurücksetzen	
Warning Text	The menu configuration for %SAVE IN SELECTION% will be reset to the factory settings. Do you want to continue?	Die Menükonfiguration für %SAVE IN SELECTION% wird auf die Standardeinstellung zurückgesetzt. Möchten Sie fortfahren?	Translators: Do not translate “%SAVE IN SELECTION%”! It is a placeholder and will be replaced at runtime by the name of the selected application or document.
Button (default)	OK	OK	
Button	Cancel	Abbrechen	

Read Only Mode

For read only mode it shall be possible to hide menu if needed. Modifying a menu shall only be possible for menus which are bound to the module. Menus bound to a read-only document can't be modified.

Error Conditions

<List all error conditions, and the action the system takes about them. If an alert box comes up, which kind is it? Include exact text of messages, or say what points need to be covered. Error Messages need a string list>

Future Tasks

Image management for menu items is not being implemented. This would involve adding the following buttons to the Command dropdown: Icon only, Icons and Text, Text Only, Change Icon, Reset Icons.

There is no Reset functionality for individual menus or menu items

Notes

<Questions will arise during the writing of the specification. State these in here.>

References

Macro Selector Specification

http://specs.openoffice.org/scripting_framework/MacroSelectorSpecification.sxw

Customize Toolbars Specification
http://specs.openoffice.org/ui_in_general/toolbars/openoffice_org_toolbar_spec.sxw

Customize Keyboard Specification

Customize Menu

Page 15

http://specs.openoffice.org/appwide/menus/customize_menu_spec.sxw

Christian Jansen

2004-01-16T15:58:26