wiki:BASE_HALOS_R1

Version 1 (modified by sriggins, 14 years ago) (diff)

--

Error: Macro BackLinksMenu(None) failed
compressed data is corrupt

Error: Macro TicketQuery(summary=BASE_HALOS_R1, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|) failed
current transaction is aborted, commands ignored until end of transaction block

Analysis

Overview

Halo menus are laid out with absolute coordinates defined by the halo menu. This means that there is no coordination going on between halo menus to prevent them from overlapping. This happens now when the user zooms the book out ot 10%, but it can happen later if plugins are allowed to provide their own halo menus.

Task requirements

  • Determine how to handle overlapping halo menus, or more importantly how to layout halo menus in ways other than absolute coordinates

Task result

(List the end product of the task (for example "Source code", "Wiki page", etc.))

Implementation idea

  • For a first pass, we can add a helper method to aid in determined what a true rectangle for halos should be. This would help with the issue of the frame (for example) getting smaller, but it won't help with plugins deciding they want to be placed where some other menu decided it should be. Potentially we'll need a halo menu layout system, that takes all of the halo menus, moves them so they don't overlap, and determines what the minimal bounding rectangle for them is. This may prove to be difficult given the existing absolute coordinate system, where halo menus place themselves on the page. Maybe we need halo menus to be able to also provide some hinting, for example topRight, or bottomCenter, and a HaloContainer can lay out the halo menus itself, sorted in order by the sort key within the position.

How to demo

Demo how the halo menus lay out properly when the page work area is zoomed to 10%

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