sub_arctic.lib
Class menu

java.lang.Object
  |
  +--sub_arctic.lib.min_interactor
        |
        +--sub_arctic.lib.base_interactor
              |
              +--sub_arctic.lib.base_parent_interactor
                    |
                    +--sub_arctic.lib.column
                          |
                          +--sub_arctic.lib.menu

public class menu
extends column
implements menu_focusable, does_callback

This class implements a columnar menu. It expects to popped up and down based on input from the menu_focus_agent. This object also holds the reference to the menu_focus_agent in a static variable.

You can put any interactor in this object as a child, but only things which are subclasses of menu_item will get the highlight behavior and get notified when they are selected. Thus it is useful to put labels or spacers in this object to decorate your menu.


Field Summary
protected  callback_object _callback_obj
          This holds the callback object.
protected  int _selected_item
          Value, get & set functions for the selected item.
static int MENU_SELECT_CALLBACK
          Callback constant number for menu selection callback
 
Fields inherited from class sub_arctic.lib.column
_border, _boxed, _colors, _interchild_space, _layout_type, _opaque, _size_by_children, CENTER_JUSTIFIED, LEFT_JUSTIFIED, RIGHT_JUSTIFIED
 
Fields inherited from class sub_arctic.lib.base_interactor
_child_index, _child_list, _clip_bounds, _constraint_flags, _enabled_constraint, _flags, _h, _h_constraint, _parent, _part_a_constraint, _part_b_constraint, _user_data, _visible_constraint, _w, _w_constraint, _x, _x_constraint, _y, _y_constraint, default_child_hint
 
Constructor Summary
menu()
          Construct a menu.
menu(callback_object co)
          Construct a menu.
menu(int x, int y)
          Construct a menu.
menu(int x, int y, callback_object co)
          Construct a menu.
 
Method Summary
static menu_focus_agent agent()
          Return the menu_focus_agent.
 callback_object callback_obj()
          Get the value of the current callback object.
static menu create_text_menu(java.lang.String[] value, java.awt.Font f, callback_object co)
          This is a convenience function for creating a simple menu from text strings in some font.
 void draw_self_local(drawable d)
          This is a special version of draw self local to allow us to give the object a raised look.
 int first_callback_num()
          First valid callback number
 void focus_set_enter(event cause_evt, focus_dispatch_agent of_agent, java.lang.Object user_info)
          This function gets called to inform you that you have been put into the focus set (in this case the menu_focus_agent is the agent whose set you are in).
 void focus_set_exit(event cause_evt, focus_dispatch_agent of_agent, java.lang.Object user_info)
          This is called when the menu leaves the focus set.
 int last_callback_num()
          Last valid callback number
 boolean menu_exit(event evt, java.lang.Object user_info)
          This gets called to tell us that the pointer has left us.
 boolean menu_feedback(event evt, java.lang.Object user_info)
          This function gets called during the process of the user dragging around on the menu.
 menu menu_generates_submenu(int local_x, int local_y)
          This gets called to ask us what child would result from this point.
 boolean menu_release(event evt, java.lang.Object user_info)
          This function gets called to inform you that the mouse button was released over your menu.
 int selected_item()
          Return the currently selected item's number.
 void set_callback_obj(callback_object c)
          Change the value of the current callback object.
 void set_selected_item(int v)
          Change the currently selected item.
 
Methods inherited from class sub_arctic.lib.column
add_child, border, boxed, colors, insert_child, interchild_space, layout_type, opaque, remove_child, remove_child, set_border, set_boxed, set_child_constraints, set_child, set_colors, set_interchild_space, set_layout_type, set_local_constraints, set_opaque, set_size_by_children, size_by_children
 
Methods inherited from class sub_arctic.lib.base_interactor
active_constraints, add_user_datum, attach_dependent, bound, child_index, child, clear_child_list, clear_constraint_flag_bit, clear_flag_bit, configure, constraint_flag_is_set, constraint_flag_string, constraint_on, custom_fun1, custom_fun2, damage_fixed, damage_from_child, damage_self, damage_self, damage_self, damage_self, damage_self, detach_dependent, do_action, do_action, do_callback, do_callback, drag_feature_point, draw_children, draw_self, enabled_constraint, enabled, enter_local_coordinates, eval_enabled, eval_h, eval_part_a, eval_part_b, eval_visible, eval_w, eval_x, eval_y, eval, exit_local_coords, feature_point_enabled, feature_point, filter_pt, find_child, fixed_children, flag_is_set, flag_string, get_awt_component, get_external_constraint, get_part, get_top_level, get_value, global_to_local, global_to_local, h_constraint, h, handle_cycle, inform_ood, inside_bounds, into_local, into_local, into_parent, into_parent, intrinsic_constraints, is_constrained, local_to_global, local_to_global, mark_all_ood, mark_enabled_ood, mark_h_ood, mark_ood, mark_part_a_ood, mark_part_b_ood, mark_reparented_ood, mark_visible_ood, mark_w_ood, mark_x_ood, mark_y_ood, marked_ood, move_child_downward, move_child_downward, move_child_to_bottom, move_child_to_bottom, move_child_to_top, move_child_to_top, move_child_upward, move_child_upward, move_downward, move_to_bottom, move_to_top, move_upward, new_look_configure, next_sibling, num_actions, num_children, num_feature_points, ood_inform_all, parent, part_a_constraint, part_a, part_b_constraint, part_b, pick_within_children, pick, picked_by, pos, prev_sibling, register_resource_names, remove_user_datum, restyle_look_resources, restyle, set_child_index, set_constraint_flag_bit, set_constraint_flag_bit, set_constraint, set_constraint, set_enabled_constraint, set_enabled_constraint, set_enabled_constraint, set_enabled, set_flag_bit, set_flag_bit, set_h_constraint, set_h_constraint, set_h_constraint, set_h, set_intrinsic_h, set_intrinsic_size, set_intrinsic_w, set_parent, set_part_a_constraint, set_part_a_constraint, set_part_a_constraint, set_part_a, set_part_b_constraint, set_part_b_constraint, set_part_b_constraint, set_part_b, set_pos, set_pos, set_raw_enabled, set_raw_h, set_raw_part_a, set_raw_part_b, set_raw_visible, set_raw_w, set_raw_x, set_raw_y, set_size, set_style_lock, set_user_info, set_visible_constraint, set_visible_constraint, set_visible_constraint, set_visible, set_w_constraint, set_w_constraint, set_w_constraint, set_w, set_x_constraint, set_x_constraint, set_x_constraint, set_x, set_y_constraint, set_y_constraint, set_y_constraint, set_y, setup_for_children, setup_for_children, setup_for_fixed_children, size, style_change_local, style_change, supports_children, tag_str, toString, traverse_and_collect_children, traverse_and_collect_parent, traverse_and_collect, trivial_reject, trivial_reject, user_data, user_info, value_ood, visible_constraint, visible, w_constraint, w, x_constraint, x_into_local, x_into_parent, x, y_constraint, y_into_local, y_into_parent, y
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

_callback_obj

protected callback_object _callback_obj
This holds the callback object.

MENU_SELECT_CALLBACK

public static final int MENU_SELECT_CALLBACK
Callback constant number for menu selection callback

_selected_item

protected int _selected_item
Value, get & set functions for the selected item. This is -1 when nothing is selected.
Constructor Detail

menu

public menu(int x,
            int y)
Construct a menu. This version assumes you want to use the style system's beveling routines to figure out your spacing.
Parameters:
int - xv x position of this interactor
int - yv y position of this interactor

menu

public menu(int x,
            int y,
            callback_object co)
Construct a menu. This version assumes you want to use the style system's beveling routines to figure out your spacing.
Parameters:
int - xv x position of this interactor
int - yv y position of this interactor
callback_object - co the object to send callbacks to

menu

public menu(callback_object co)
Construct a menu. This version assumes you want to use the style system's beveling routines to figure out your spacing and the constraint system to do your placement.
Parameters:
callback_object - co the object to send callbacks to

menu

public menu()
Construct a menu. This version assumes you want to use the style system's beveling routines to figure out your spacing and the constraint system to do your placement.
Method Detail

callback_obj

public callback_object callback_obj()
Get the value of the current callback object.
Specified by:
callback_obj in interface does_callback
Returns:
callback_object the current object who gets the callbacks of this menu.
Overrides:
callback_obj in class base_interactor

set_callback_obj

public void set_callback_obj(callback_object c)
Change the value of the current callback object.
Specified by:
set_callback_obj in interface does_callback
Parameters:
callback_object - c the new callback object.
Overrides:
set_callback_obj in class base_interactor

menu_feedback

public boolean menu_feedback(event evt,
                             java.lang.Object user_info)
This function gets called during the process of the user dragging around on the menu. The menu should probably use pick() to figure out who to highlight based on this event. We ignore the user_info for now.
Specified by:
menu_feedback in interface menu_focusable
Parameters:
event - evt the event causing the feedback.
Object - user_info (not used) this is the object we passed to the menu_focus_agent when we made ourselves the focus.
Returns:
boolean we always return true

first_callback_num

public int first_callback_num()
First valid callback number
Specified by:
first_callback_num in interface does_callback
Overrides:
first_callback_num in class base_interactor

last_callback_num

public int last_callback_num()
Last valid callback number
Specified by:
last_callback_num in interface does_callback
Overrides:
last_callback_num in class base_interactor

menu_release

public boolean menu_release(event evt,
                            java.lang.Object user_info)
This function gets called to inform you that the mouse button was released over your menu. Again, no use of user_info for now.
Specified by:
menu_release in interface menu_focusable
Parameters:
event - evt the event which terminated the interactor (probably a mouse up).
Object - user_info (not used) the object we passed to the menu_focus_agent when we put ourselves into the menu focus.
Returns:
boolean we always return true

focus_set_enter

public void focus_set_enter(event cause_evt,
                            focus_dispatch_agent of_agent,
                            java.lang.Object user_info)
This function gets called to inform you that you have been put into the focus set (in this case the menu_focus_agent is the agent whose set you are in). We pop up (display) the menu at this point.
Parameters:
event - cause_event the event that caused you to enter the focus set
focus_dispatch_agent - of_agent this is the agent whose set you have been added to (we ignore this right now).
Object - user_info the object you passed to the agent when you asked to enter the set (we ignore this right now).
Overrides:
focus_set_enter in class base_interactor

focus_set_exit

public void focus_set_exit(event cause_evt,
                           focus_dispatch_agent of_agent,
                           java.lang.Object user_info)
This is called when the menu leaves the focus set. We use it pop-down (remove from the display) the menu. We do this because we know that the "active" menus with respect to the menu_focus_agent (the one's the user is interacting with) are always kept in the focus set.
Parameters:
event - cause_event the event that caused you to exit the focus set.
focus_dispatch_agent - of_agent this is the agent whose set you have just left (we ignore this right now).
Object - user_info the object you passed to the agent when you asked to enter the set (we ignore this right now).
Overrides:
focus_set_exit in class base_interactor

selected_item

public int selected_item()
Return the currently selected item's number. You will get -1 when nothing is selected.
Returns:
int the currently selected item's number

set_selected_item

public void set_selected_item(int v)
Change the currently selected item.
Parameters:
int - v the new selected item (use -1 for no selected item)

agent

public static menu_focus_agent agent()
Return the menu_focus_agent.
Parameters:
menu_focus_agent - the system's menu_focus_agent.

menu_exit

public boolean menu_exit(event evt,
                         java.lang.Object user_info)
This gets called to tell us that the pointer has left us. We just reset our state to not having anything selected.
Specified by:
menu_exit in interface menu_focusable
Parameters:
event - evt the event that caused us to be exited (probably a mouse movement).
Object - user_info the object you passed to the agent when you asked to enter the set (we ignore this right now).
Returns:
boolean we always return true

menu_generates_submenu

public menu menu_generates_submenu(int local_x,
                                   int local_y)
This gets called to ask us what child would result from this point. This is used by the menu_focus_agent to determine if the user is "pointing at" another pullright which would result in a different menu being popped up from the one that is currently popped up.
Specified by:
menu_generates_submenu in interface menu_focusable
Parameters:
int - local_x the x coordinate in question in our coordinate system
int - local_y the y coordinate in question in our coordinate system

draw_self_local

public void draw_self_local(drawable d)
This is a special version of draw self local to allow us to give the object a raised look.
Parameters:
drawable - d the surface to draw on.
Overrides:
draw_self_local in class column

create_text_menu

public static menu create_text_menu(java.lang.String[] value,
                                    java.awt.Font f,
                                    callback_object co)
This is a convenience function for creating a simple menu from text strings in some font.
Parameters:
String[] - value the array of strings to place on the menu
Font - f the font to build the menu items in (if you pass null you will get the system default font).
callback_object - co the object to send the callbacks to
Returns:
menu a menu with a set of text_menu_items in it (one for each string)