Difference between revisions of "Sidebar"
From Apache OpenOffice Wiki
(Added status and resources sections.) |
(Added glossary and outline of the implementation work) |
||
Line 7: | Line 7: | ||
==Resources== | ==Resources== | ||
+ | * [[AOO_UX_Design_Exploration_-_Task_Pane_Content_-_Information_Design|UX design exploration]]. | ||
* Assessment of the [[AOO_Symphony_UX_Migration/Merge_Analysis_-_Task_Pane|migrating the Symphony sidebar]]. | * Assessment of the [[AOO_Symphony_UX_Migration/Merge_Analysis_-_Task_Pane|migrating the Symphony sidebar]]. | ||
* Older proposal to use the [[Sidebar_Proposal_by_IBM|Symphony sidebar]]. | * Older proposal to use the [[Sidebar_Proposal_by_IBM|Symphony sidebar]]. | ||
Line 12: | Line 13: | ||
* Introduction to [[Framework/Article/Tool Panels|writing tool panels]]. | * Introduction to [[Framework/Article/Tool Panels|writing tool panels]]. | ||
* Description of the [[Drawing framework|drawing framework]], that is used by the Impress tool panel. | * Description of the [[Drawing framework|drawing framework]], that is used by the Impress tool panel. | ||
+ | |||
+ | ==Glossary== | ||
+ | We are still working on this. | ||
+ | |||
+ | Here is a draft: | ||
+ | |||
+ | ;Sidebar: Name of the feature and name of the control including all its components (icon bar, content panels). | ||
+ | :Also known as task pane(l) or tool pane(l) | ||
+ | ;Icon bar: Similar to a vertical tool bar. Clicking on icons/buttons switches between content panels. | ||
+ | ;content panel: Displayed int the main window of the sidebar. Examples are the task panels of the Impress task pane or the property views of the Symphony sidebar. | ||
+ | |||
+ | ==Outline of the implementation work== | ||
+ | The UX part of the work is described on another [[AOO_UX_Design_Exploration_-_Task_Pane_Content_-_Information_Design|page]]. The following focuses on the implementation which consists of two parts, API changes/enhancements and the actual implemenation. | ||
+ | |||
+ | The sidebar implementation has to address several individual issues: | ||
+ | |||
+ | === API for implementing content panels === | ||
+ | *Use for both internal content panels (part of AOO SVN repository) | ||
+ | :and external content panels (provided by extension from the extension repository). | ||
+ | |||
+ | === API for internal handling of the sidebar=== | ||
+ | * Activation of content panes | ||
+ | * Detection of visible/active content panels | ||
+ | * Receiver of context switch notifications | ||
+ | * Factory for registering content panels and associations between contexts and content panels. | ||
+ | |||
+ | === API for aiding in implementing content panels=== | ||
+ | Optional but important for sidebar adoption by developers. | ||
+ | * Simple layout manager | ||
+ | * Notification of important events | ||
+ | : like switching to/from high contrast mode | ||
+ | * Skeletons for content panels and factory registration | ||
+ | |||
+ | === Implementation of context switch handling=== | ||
+ | * Receiver of context switch notifications as controller that updates the set of active content panels accodring to the new context. | ||
+ | * Factory and container for providers of content panels | ||
+ | * Extend Writer, Calc, Impress with context switch notifications. | ||
+ | ** This may follow toolbar switches. | ||
+ | ** Maybe toolbar switching can generate the notifications? | ||
+ | |||
+ | === Framework for implementing content panels === | ||
+ | * Base/helper classes for content panels, factories, registration, layouting. | ||
+ | |||
+ | === Content panels === | ||
+ | * Reuse code from AOO Impress and Symphony | ||
+ | |||
+ | * Implementation of the actual side bar | ||
+ | ** Icon bar as special case of tab bar. | ||
+ | ** Display of one or more content groups | ||
+ | ** Display of one or more content panels inside each content group. | ||
+ | ** Display of scroll bars when sidebar becomes too small for displaying all active content panels. |
Revision as of 16:39, 29 November 2012
The sidebar (working title) is a new feature likely to be in the 4.0 release. It combines ideas and code from both the Symphony sidebar and the OpenOffice Impress task pane.
Status
We are in the early planning stage.
Resources
- UX design exploration.
- Assessment of the migrating the Symphony sidebar.
- Older proposal to use the Symphony sidebar.
- Overview of an existing but unfinished attempt of implementing tool panels.
- Introduction to writing tool panels.
- Description of the drawing framework, that is used by the Impress tool panel.
Glossary
We are still working on this.
Here is a draft:
- Sidebar
- Name of the feature and name of the control including all its components (icon bar, content panels).
- Also known as task pane(l) or tool pane(l)
- Icon bar
- Similar to a vertical tool bar. Clicking on icons/buttons switches between content panels.
- content panel
- Displayed int the main window of the sidebar. Examples are the task panels of the Impress task pane or the property views of the Symphony sidebar.
Outline of the implementation work
The UX part of the work is described on another page. The following focuses on the implementation which consists of two parts, API changes/enhancements and the actual implemenation.
The sidebar implementation has to address several individual issues:
API for implementing content panels
- Use for both internal content panels (part of AOO SVN repository)
- and external content panels (provided by extension from the extension repository).
API for internal handling of the sidebar
- Activation of content panes
- Detection of visible/active content panels
- Receiver of context switch notifications
- Factory for registering content panels and associations between contexts and content panels.
API for aiding in implementing content panels
Optional but important for sidebar adoption by developers.
- Simple layout manager
- Notification of important events
- like switching to/from high contrast mode
- Skeletons for content panels and factory registration
Implementation of context switch handling
- Receiver of context switch notifications as controller that updates the set of active content panels accodring to the new context.
- Factory and container for providers of content panels
- Extend Writer, Calc, Impress with context switch notifications.
- This may follow toolbar switches.
- Maybe toolbar switching can generate the notifications?
Framework for implementing content panels
- Base/helper classes for content panels, factories, registration, layouting.
Content panels
- Reuse code from AOO Impress and Symphony
- Implementation of the actual side bar
- Icon bar as special case of tab bar.
- Display of one or more content groups
- Display of one or more content panels inside each content group.
- Display of scroll bars when sidebar becomes too small for displaying all active content panels.