Version 10 (modified by milen, 16 years ago) (diff) |
---|
Analysis
(Give as much as possible of the needed information for designing and implementing the task in the following sections.)
Overview
- Text frames should allow chaining between them. That means that when text overflows from one text frame it goes to another if they are linked. Also there should be overflow indicator.
- There should be opportunity for the user to have multiple flows from different text frames.
- The user should be able to point which text frame is linked with current flow and which is not.
- There should be automatic linking when flow text frame is used. See more at TEXT_AUTO_CHAIN_BEHAVIOUR_R1
- If there are many linked flow text frames user should have the opportunity to easily reorder/delete/unchain them.
Task requirements
- Implement chaining prototype
- Allow linking frames. One frame should allow the other frames to link to it.
- When the place is insufficient for the text content in a text frame of the chain the rest of the content should be put in the next chained frame.
- If all of the chained frames cannot display the content, the content gets floating and invisible.
- Implement GUI for chained frames
- Linking will be done through a combo box, that lists all available text frames (from all pages but the frames from the current page are first in the list) for chaining and auto chain option.
- The combo box will be in the HUD that appears when the indicating halo is clicked.
- Also label indicating which is the previous frame if the frame is not the first one from the chain, should be in the HUD.
- (optional) Frame connections should be visible by clicking a menu item or a checkbox in the book bottom panel.
- Implement unchaining of frames
- User should be able to unchain chained frames by clicking a halo button. This halo buttons should have crossed arrow icon.
- Unchaining frame separates the frame from the chain but don't destruct it.
- If the unlinked text frame is the first one in the chain, then all the text in the chain is saved in this frame. The links between the other text frames in the chain are saved as if there are not modified pages, having only empty text frames, these pages are deleted without loosing the links in the chain.
- If the unlinked text frame is a middle one in the chain, then the text frame is divided from the chain as the text frame before it is linked to the text frame after it and the links between the other text frames in the chain and the text are preserved.
- If the text frame is the last one then it is divided from the chain without destroying the chain before it and the text in the chain is saved.
- Implement editing of non-first chained frame
- Create appropriate halos
- The halo buttons for chaining and unchaining should be the same, but the unchaining halo should be crossed
- The unchain halo should present when the frame is part of a chain and is not the last one in the chain. Otherwise chain halo should present.
- Deleting a text frame which is part of linked text frames deletes the frame and:
- If the frame is the first one in the chain, then the frame and all the text in the chain is deleted but the text is saved in Resources . The links between the others are saved as if there are not modified pages, having only empty text frames, these pages are deleted without loosing the links in the chain. If all the pages are not modified and they have only empty frames the first page is not deleted.
- If the frame is a middle frame in the chain, then in case of no destructing the links between the frames before and after the deleted frame link them, save the links between the other frames in the new created chain and save the text.
- If the frame is the last one then the frame is deleted without destroying the chain before it and the text in the chain is saved.
- Deleting a page that contains linked text frames with other pages' frames should act in the same way as deleting a frame but including all the linked frames in the page.
Task result
The result is source code.
Implementation idea
- When the text overflows use the arrow at the bottom to chain the text frame to another one and the overflowed text will appear in the new chained text frame. The arrow should appear only when the frame is selected and there are no other frames linked with the first one. If the frame is linked to other frame the unchain halo is available instead of chain halo.
- Linking and unlinking should be done by halo buttons:
Related
TEXT_CHAINING_BEHAVIOUR_R0
GROUP_CHAINING_AND_HALOS_R0
TEXT_AUTO_CHAIN_BEHAVIOUR_R1
How to demo
- Chain four frames on a page.
- Show the halos - first three frames should have only unchain halos. Last frame should have chain halo.
- Unchain the third frame.
- Show that the other frames remain chained.
- Delete the second frame.
- Show that after the frame is deleted the other two frames remain chained.
Design
(Describe your design here.)
Implementation
(Describe and link the implementation results here (from the wiki or the repository).)
Testing
(Place the testing results here.)
Comments
(Write comments for this or later revisions here.)
Attachments
- 3chainedframespng.png (6.4 KB) - added by milen 16 years ago.
- unchaining.png (40.2 KB) - added by milen 16 years ago.