Version 18 (modified by stefan, 16 years ago) (diff) |
---|
Analysis
Overview
Define what menus are needed for Sophie. Try to keep the menus as clean and understandable as possible.
Refactor the menus for Sophie to use the new base menu library developed in BASE_MENUS_R0. The current menus are found in org.sophie2.main.view.menus. This code should be changed to use the new extension point.
Task requirements
- Define the base application menus
- Create a convention of menu items, where should they be put, what should be underlined, where to put "...", how to align text.
- Put the convention in a wiki page and discuss it with the whole team
- Apply the new menu design.
- Define where extensions should put their menu items - for Export As menu, Insert menu, Skins menu
- Make inactive menu items grey - marked in implementation idea.
Task result
The result of this task is code and menu design
Implementation idea
- File
- New Book... Ctrl+N
- Open Book... Ctrl+O
- Close Book Ctrl+W
- Separator
- Save Book Ctrl+S
- Save Book As... Ctrl+Shift+S
- Save As Template
- Export Book As >
- PDF...
- HTML...
- Separator
- Print to file
- Separator
- Book Properties...
- Separator
- Quit Sophie2 Ctrl+W
- Edit
- Undo Ctrl+Z
- Redo Ctrl+Y
- Separator
- Cut Ctrl+X
- Copy Ctrl+C
- Paste Ctrl+V
- Delete Delete
- Separator
- Book Title (no need for "set" as it is implied by being in the Edit menu)
- Page Dimensions
- Insert
- Text Ctrl+Alt+T
- Image... Ctrl+Alt+I
- Video... Ctrl+Alt+V
- Audio Record... Ctrl+Alt+R
- Audio... Ctrl+Alt+A
- PDF... Ctrl+Alt+P
- Browser Ctrl+Alt+B
- View
- Normal Mode
- Full Screen Mode F11
- Skins
- Default Skin
- Alternative Skin
- Window
- Cascade
- Tile
- Separator
- <List Open Books>
- Help
- Help Contents F1
- Send an Error Report...
- About Sophie
- In Skins currently selected skin should be inactive.
- In View current view should be inactive.
Related
How to demo
- Show convention. It must be part of the documentation
- Show the refactored menus.
Design
Basic Menu Items order/style will be defined by a convention (which will be put for a public discussion – wiki page).
- In every class that extends AppMenuItem class will be introduced new method called defineSkin which specifies values to certain properties (like title, toolips, shortcuts, mnemonics, etc.) of the skin's element. Example:
@SkinPartDef private static void defineSkin(ElementSkinPart part) { part.add(TITLE_PROP_ID, "PDF"); //title property defined as "PDF" part.add(TOOL_TIP_PROP_ID, "Exports current book to pdf file"); //Tool tip property defined part.add(MNEMONIC_PROP_ID, KeyEvent.VK_P); //Mnemonic - i.e. when P is pressed, combined with Alt. }
- Classes Affected by this change are as follow:
- NewBookItem
- OpenBookItem
- CloseBookItem
- Extracted Menu Items into a specific module (that has same functionality as the module itself):
- Specific (logical and intuitive) order of the Menu Items will be implemented:
- File
- Edit
- Insert
- View
- Skins
- Window
- Help
- Following shortcuts will be introduced:
- Ctrl+N - New Book
- Ctrl+O - Open Book
- Ctrl+W - Close Book
- Ctrl+S - Save Book
- Ctrl+Shift+S - Save Book As
- Ctrl+Z - Undo
- Ctrl+Y - Redo
- Ctrl+X - Cut
- Ctrl+C - Copy
- Ctrl+V - Paste
- Menu's items format (underling unique letters of the Item's title):
- "..." suffix for Items that, when clicked, open a Dialog:
Implementation
(Implementation results should be described and linked here (from the wiki or the repository))
Testing
Comments
(Write comments for this or later revisions here.)