Version 13 (modified by mitex, 16 years ago) (diff) |
---|
Analysis
Overview
Full screen mode shows the currently viewed document (usually it's a book) in full screen. It is useful for presentations.
Task requirements
- In full screen mode only the contents of current document window are displayed. If current document is a book, current page and the bottom bar are displayed.
- Left and right flaps and the tab bar are hidden.
- Menus are hidden too, but all keyboard shortcuts should work (for example, Ctrl+S should save the book).
Invokation:
- View menu > Full screen (Create a View menu first)
- Keyboard shortcut:
- In Sophie 1 F5 or command-option-P is used.
- The same shortcut should be used for returning to previous mode.
Task result
The result should be source code.
Implementation idea
- Users should see only the contents of current document window's JInternalFrame.
- Create a boolean property fullScreenMode in MainWindow.
- (true = full screen mode, false = normal mode)
- Create a View menu and a Full Screen menu item.
- When selected, the fullScreenMode property is toggled.
- Modify the setup methods of each affected visual element - MDMainWindow, DefaultDocumentsDesktop, etc.,
Related
How to demo
- Run Sophie2
- Select Full Screen mode
- Return to normal mode
Design
- Create a boolean property fullScreenMode in MainWindow.
- (true = full screen mode, false = normal mode)
- Implement it in DefaultMainWindow.
- Create a &View menu in main.app.menus.
- Create a &Full Screen menu item in the View menu.
- Make the main window's JFrame in full screen when fullScreenMode is true
- In MDMainWindow.globalContainer modify the configureFrameSettings(JFrame gcf) method
- When fullScreenMode is true:
- use gcf.setUndecorated(true) to remove the window title bar, border and all other decorations
- resize it to screen's dimensions
- move it to the top left corner
- Hide/show the left and right flap
- ..............
- Hide/show the tab bar
- in DefaultDocumentsDesktop.swingComponent, setup method, add the tab bar only if fullScreenMode is false.
- Maximize current document's window and hide its title bar
- in DefaultDocumentWindow.swingComponent, setup method, set different settings for the JInternalFrame
- for full screen mode:
- res.setMaximum(true);
- res.setMaximizable(false);
- res.setIconifiable(false);
- res.setClosable(false);
- res.setResizable(false);
- Hide the title bar: ((BasicInternalFrameUI)res.getUI()).getNorthPane().setVisible(false);
- for full screen mode:
- in DefaultDocumentWindow.swingComponent, setup method, set different settings for the JInternalFrame
Implementation
(Implementation results should be described and linked here (from the wiki or the repository))
Testing
Comments
It will be nice to have zoom support in full screen mode while presenting.
Testers should test situations like these:
- Press the keyboard shortcut for full screen mode while dragging a frame.
- Press Alt+Tab in full screen mode.
Attachments
-
patch-fullscreen-test.patch
(20.7 KB) -
added by pap 16 years ago.
Patch for the design tests