Version 18 (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 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


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) 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 FRAME_POSITION_R1 the actual adding of the buttons will be done both at the beginning and at the end of the halo menu. (It may also be considered that the frame title would become part of the top halo menu. see FRAME_POSITION_R1 for more info). However adding buttons so that frame title is inside the menu can be obtained through the buttons().get().add(index, button) 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.
  • 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.)