sub_arctic.lib
Class debug_lens_top_level

java.lang.Object
  |
  +--sub_arctic.lib.min_interactor
        |
        +--sub_arctic.lib.base_interactor
              |
              +--sub_arctic.lib.base_parent_interactor
                    |
                    +--sub_arctic.lib.top_level
                          |
                          +--sub_arctic.lib.debug_lens_top_level

public class debug_lens_top_level
extends top_level
implements click_tracking, dispatch_handler

This class is a special subclass of top_level that provides support for a semantic_lens object providing debugging information about the interactors installed under it. To support a semantic lens it does extra damage declarations similar to those done by semantic_lens_parent.

The lens is initially disabled (debugging turned off) and can be brought up (and removed) by a mouse click with certain modifier keys held down (this defaults to control-shift, but can be reset). When debugging_mode is turned on this object works by forcing its last child to be a semantic lens (the configure() for this object moves the lens to be last if it is not already last). The semantic lens does a debug output traversal that displays information about each interactor that it is over.

This top_level is typically used with a fake_top_level child to keep subtrees from being disturbed by the addition of the lens as the last child (this can wreck layout constraints). This is done in debug_interactor_applet, for example.

See Also:
semantic_lens_parent, sub_arctic.lib.semantic, debug_interactor_applet

Field Summary
protected  semantic_lens _debug_lens
          The debugging lens object.
protected  boolean _debugging
          Are we currently showing the debug lens?
protected  int _signal_modifiers
          The set of modifier keys that must be down for a mouse button press to toggle debugging mode on/off.
 
Fields inherited from class sub_arctic.lib.top_level
_awt_parent, _damage_area, _offscreen_graphics, _offscreen_image, _offscreen_size
 
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
debug_lens_top_level()
          Construct a debug_lens_top_level and give it default values for x,y, width and height.
debug_lens_top_level(int x_v, int y_v, int w_v, int h_v)
          Construct a debug_lens_top_level object with know x,y, width and height.
 
Method Summary
 void configure()
          Override configure to force our lens child to be last (when enabled)
 void damage_from_child(interactor originator, java.lang.Object user_info, java.awt.Point top_left, java.awt.Dimension sz)
          Catch damage from children and expand it to include damage from our lens if it overlaps any of that damage.
 boolean debugging()
          Are we currently showing the debug lens?
 void handle(dispatch_result dr)
          Event dispatch handler.
 boolean lens_is_parent(interactor i)
          This function returns true if the interactor supplied is either our debugging lens or a child (at any level) of our lens.
 void set_debugging(boolean setting)
          Programmatically turn debugging lens on or off
 void set_signal_modifiers(int msk)
          Change the set of modifier keys that must be down for a mouse button press to toggle debugging mode on/off.
protected  void setup_lens()
          Initialize the debug lens
 int signal_modifiers()
          The set of modifier keys that must be down for a mouse button press to toggle debugging mode on/off.
 boolean track_click(event evt, java.lang.Object user_info)
          Listen for mouse button press input somewhere in the interface.
 
Methods inherited from class sub_arctic.lib.top_level
awt_parent, damage_fixed, damage_self, draw_self, set_awt_parent, setup_offscreen
 
Methods inherited from class sub_arctic.lib.base_interactor
active_constraints, add_child, add_user_datum, attach_dependent, bound, callback_obj, child_index, child, clear_child_list, clear_constraint_flag_bit, clear_flag_bit, constraint_flag_is_set, constraint_flag_string, constraint_on, custom_fun1, custom_fun2, 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_local, 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, first_callback_num, fixed_children, flag_is_set, flag_string, focus_set_enter, focus_set_exit, 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, insert_child, inside_bounds, into_local, into_local, into_parent, into_parent, intrinsic_constraints, is_constrained, last_callback_num, 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_child, remove_child, remove_user_datum, restyle_look_resources, restyle, set_callback_obj, set_child_index, set_child, 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

_debugging

protected boolean _debugging
Are we currently showing the debug lens?

_debug_lens

protected semantic_lens _debug_lens
The debugging lens object. When we are in debugging mode, this will be installed and maintained as our last child. Otherwise, it is unrooted, and just hangs here.

_signal_modifiers

protected int _signal_modifiers
The set of modifier keys that must be down for a mouse button press to toggle debugging mode on/off. This will be some combination of event.ALT_MASK, event.CTRL_MASK, event.META_MASK, and event.SHIFT_MASK ORed together. This defaults to event.SHIFT_MASK | event.CTRL_MASK.
Constructor Detail

debug_lens_top_level

public debug_lens_top_level(int x_v,
                            int y_v,
                            int w_v,
                            int h_v)
Construct a debug_lens_top_level object with know x,y, width and height.
Parameters:
int - x_v the x coordinate of this interactor (should be zero unless you want this interactor to not cover all of its hosting AWT parent).
int - y_v the y coordinate of this interactor (should be zero unless you want this interactor to not cover all of its hosting AWT parent).
int - w_v the width of this top_level (this is also tied to the size of the AWT component).
int - h_v the height of this top_level (this is also tied to the size of the AWT component).

debug_lens_top_level

public debug_lens_top_level()
Construct a debug_lens_top_level and give it default values for x,y, width and height. We assume that the system will fill in these values later.
Method Detail

damage_from_child

public void damage_from_child(interactor originator,
                              java.lang.Object user_info,
                              java.awt.Point top_left,
                              java.awt.Dimension sz)
Catch damage from children and expand it to include damage from our lens if it overlaps any of that damage. We need to do this because drawing in a lens is not limited to the bound of the object that created it (but is limited to the lens).
Parameters:
interactor - originator the interactor that caused the damage.
Object - user_info uninterpreted information supplied by the originator at damage time.
Point - top_left top-left corner of child's damage area (in our coordinate system).
Dimension - sz size of the damage area.
Overrides:
damage_from_child in class base_interactor

debugging

public boolean debugging()
Are we currently showing the debug lens?

set_debugging

public void set_debugging(boolean setting)
Programmatically turn debugging lens on or off

setup_lens

protected void setup_lens()
Initialize the debug lens

configure

public void configure()
Override configure to force our lens child to be last (when enabled)
Overrides:
configure in class top_level

signal_modifiers

public int signal_modifiers()
The set of modifier keys that must be down for a mouse button press to toggle debugging mode on/off. This will be some combination of event.ALT_MASK, event.CTRL_MASK, event.META_MASK, and event.SHIFT_MASK ORed together. This defaults to event.SHIFT_MASK | event.CTRL_MASK.
Returns:
int the modifiers required to toggle the lens.

set_signal_modifiers

public void set_signal_modifiers(int msk)
Change the set of modifier keys that must be down for a mouse button press to toggle debugging mode on/off. The new value must be some combination of event.ALT_MASK, event.CTRL_MASK, event.META_MASK, and event.SHIFT_MASK ORed together.
Parameters:
int - msk the modifiers required to toggle the lens.

track_click

public boolean track_click(event evt,
                           java.lang.Object user_info)
Listen for mouse button press input somewhere in the interface. We are only interested mouse down events in the case that all the required modifier keys are held down (and that occured inside us, not somewhere else). In that case we toggle debugging mode (but still do not consume the event).
Specified by:
track_click in interface click_tracking
Parameters:
event - evt the click event we receive.
Object - user_info (ignored here).
See Also:
click_tracking

handle

public void handle(dispatch_result dr)
Event dispatch handler. This is called by the manager to display events. For now we just dump them out on standard out.
Specified by:
handle in interface dispatch_handler

lens_is_parent

public boolean lens_is_parent(interactor i)
This function returns true if the interactor supplied is either our debugging lens or a child (at any level) of our lens.
Parameters:
interactor - i the object being tested
Returns:
true if the object passed has the lens in its parent chain