[[BackLinksMenu]] [[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|)]] = Analysis = == Overview == Halos currently are static. The halo menus should be rearranged. There should be at least * Upper halo menu - inside the frame title bar. See FRAME_POSITION_R1. This halo menu should allow left and right justification of halos (at the same time) * Upper halo menu size is declared in FRAME_POSITION_R1 * Left and right halo menus * Inner halo menu - this is for content halos. For example - Text and Paragraph halos should appear inside the text and should be moved above caret after a timeout. Other example is for video frames - the content HUD should appear on click inside the frame over the mouse. * Vertical halo menus may be needed too. [[Image(halomenus.png)]][[BR]] [[Image(wiki:FRAME_POSITION_R1:frame2.jpg)]] == Task requirements == * Implement content halo menu. * Implement halo aligning (left and right at the same time for top halo menu) * Implement bottom right halo menu (for rotation halo) and move the rotation halos there for now. * Optional - implement vertical halo menus == Task result == Source == Implementation idea == == Related == FRAME_POSITION_R1 == How to demo == * Demonstrate the new position of content and rotation halos = Design = * Implement content halo menu. * Content halo menu does not differ from other halo menus, except for its location. This means that the "computeLocation" method should be implemeted differently for every halo menu so that it appears in the right place. For the TextHaloMenu this means: * A method ImmPoint getHitPint(HotPos hotPos) should be implemented in HotTextLayout class. It should return an ImmPoint for the caret. (A method that returns the HotPos given an ImmPoint is already implemented.) * TextHaloMenu should return a relevant location in its computeLocation method using this method and providing the position of the caret in the text. * For other halo menus that should deal with content, other approaches may be defined. * Implement halo aligning (left and right at the same time for top halo menu) and Optional - implement vertical halo menus * Aligning halo menus will be defined as VERTICAL and HORIZONTAL aligning of menus. An enum in the HaloMenu class will define these two. And the actual aligning will be done in the locationSync method, that currently aligns halos horizontally in the menu. * Left and right halo menu aligning cannot be implemented so that it behaves properly in one halo menu. Since this is connected with the [wiki:FRAME_POSITION_R1] ... * Implement bottom right halo menu (for rotation halo) and move the rotation halos there for now. * botton right halo menu will be a halo menu with VERTICAL MenuAlignment at the specified location as in the diagram. * Changesets: * [changeset:4088] - MenuAlignment implementation and the method obtaining the ImmPoint of the caret (provided by Vlado). * [changeset:4102] - Some more things plus a test for the rotate halo menu. = 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.)