Changes between Version 4 and Version 5 of BASE_HALOS_R1


Ignore:
Timestamp:
05/19/09 19:41:51 (16 years ago)
Author:
sriggins
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • BASE_HALOS_R1

    v4 v5  
    1 [[BackLinksMenu]] 
    2  
    3 [[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|)]] 
    4  
    5 = Analysis = 
    6  
    7 == Overview == 
    8  
    9 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. 
    10  
    11 This task should change the way halos lay out so they don't overlap when there is a small frame or the page work area is zoomed in. 
    12  
    13 == Task requirements == 
    14  
    15  * Determine how to handle overlapping halo menus, or more importantly how to layout halo menus in ways other than absolute coordinates 
    16  * For now, a simple minimal bounding rectangle, aligned with the selection topLeft will suffice 
    17  
    18 == Task result == 
    19  
    20  * The result of this task is code 
    21  
    22 == Implementation idea == 
    23  
    24  * 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. 
    25  
    26 == Related == 
    27  * [wiki:BASE_HALOS_R0] 
    28  
    29 == How to demo == 
    30   
    31  * Demo how the halo menus lay out properly when the page work area is zoomed to 10%, or a small frame is created 
    32  
    33 = Design = 
    34   
    35  * Due to time constraints, we decided to not implement a new halo menu layout system.  Instead, I will add two static ints to AppHaloUtil that determine the smallest width and height of a rectangle that the halo menus should use 
    36  
    37   * I'll then write a method to return the selection bounds constrained by this minimal rectangle, and utilize it in the halo menus that wrap frames. 
    38  
    39 = Implementation = 
    40  
    41   * Added a method to AppHaloUtil that gets the minimum selection bounds 
    42   * Replace code with call to new method in rotate, move and main halo menus 
    43   * see [2422] 
    44  
    45 = Testing = 
    46 ^(Place the testing results here.)^ 
    47  
    48 = Comments = 
    49 ^(Write comments for this or later revisions here.)