Version 21 (modified by peko, 13 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



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)
  • 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.

Task requirements

  • Implement content 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


Implementation idea


How to demo

  • Demonstrate the new position of content and rotation halos


  • 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) - see FRAME_POSITION_R1 where aligning is implemented.
  • 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 - the MenuOrientation enum. And the actual aligning will be done in the locationSync method, that currently aligns halos horizontally in the menu. Every implementation of a halo menu should override the computeOrientation method.
  • 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. The computeLocation will provide the location of the menu. When menu alignment is implemented, the location will be changed and the buttons will be aligned at the end of the menu.
  • Changesets:
    • 4088 - MenuAlignment implementation and the method obtaining the ImmPoint of the caret (provided by Vlado).
    • 4102 - Some more things plus a test for the rotate halo menu.


(Describe and link the implementation results here (from the wiki or the repository).)


(Place the testing results here.)


(Write comments for this or later revisions here.)