sub_arctic.lib
Class backdrop_drag_container

java.lang.Object
  |
  +--sub_arctic.lib.min_interactor
        |
        +--sub_arctic.lib.base_interactor
              |
              +--sub_arctic.lib.base_parent_interactor
                    |
                    +--sub_arctic.lib.shrink_wrap_container
                          |
                          +--sub_arctic.lib.drag_container
                                |
                                +--sub_arctic.lib.backdrop_drag_container

public class backdrop_drag_container
extends drag_container
implements does_callback

This class provides a container for dragging. You can put any subtree inside it to make that subtree draggable. The container handles the pick process correctly so that it only initiates a drag if you actually click over an object inside the an object in the sub-tree (not simply anywhere inside the bounds of the container). The container will "shrink-wrap" around the objects it contains, and can optionally draw a bounding rectangle as drag feedback.


Field Summary
protected  boolean do_bb
           
protected  loaded_image img
           
protected  java.applet.Applet our_applet
           
protected  backdrop_lens our_lens
           
protected  java.lang.String source
           
 
Fields inherited from class sub_arctic.lib.drag_container
_callback_obj, DO_BB_FEEDBACK, DOING_DRAG, END_MOVE_CALLBACK, MOVE_CALLBACK
 
Fields inherited from class sub_arctic.lib.shrink_wrap_container
_border, DRAW_BORDER
 
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
backdrop_drag_container(int x, int y, boolean do_bb_feedback, callback_object cbo, java.lang.String s, java.applet.Applet appl, backdrop_lens l)
          full constructor.
backdrop_drag_container(int x, int y, boolean do_bb_feedback, java.lang.String s, java.applet.Applet appl, backdrop_lens l)
          Nearly full constructor.
 
Method Summary
 boolean drag_end(event evt, int x_pos, int y_pos, int st_x, int st_y, int grab_x, int grab_y, java.lang.Object user_info)
          Handle input corresponding to the end of a drag.
 boolean drag_feedback(event evt, int x_pos, int y_pos, int st_x, int st_y, int grab_x, int grab_y, java.lang.Object user_info)
          Handle a movement during a drag.
 boolean drag_start(event evt, int x_pos, int y_pos, int grab_x, int grab_y, java.lang.Object user_info)
          Handle the start of a drag to the object.
protected  void draw_self_local(drawable d)
          Draw the object's current appearance.
 void pick(int pt_x, int pt_y, pick_collector pick_list)
          Determine if this object is "picked" by the the given point.
 boolean press(event evt, java.lang.Object user_info)
          Handle mouse button press input to the object.
 boolean release(event evt, java.lang.Object user_info)
          Companion to press().
 
Methods inherited from class sub_arctic.lib.drag_container
bounding_box_feedback, callback_obj, first_callback_num, last_callback_num, set_bounding_box_feedback, set_callback_obj
 
Methods inherited from class sub_arctic.lib.shrink_wrap_container
border, draw_border, set_border, set_draw_border, setup_constraints
 
Methods inherited from class sub_arctic.lib.base_interactor
active_constraints, add_child, 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, 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, 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, picked_by, pos, prev_sibling, register_resource_names, remove_child, remove_child, remove_user_datum, restyle_look_resources, restyle, 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

source

protected java.lang.String source

img

protected loaded_image img

our_applet

protected java.applet.Applet our_applet

do_bb

protected boolean do_bb

our_lens

protected backdrop_lens our_lens
Constructor Detail

backdrop_drag_container

public backdrop_drag_container(int x,
                               int y,
                               boolean do_bb_feedback,
                               callback_object cbo,
                               java.lang.String s,
                               java.applet.Applet appl,
                               backdrop_lens l)
full constructor.
Parameters:
int - x initial x position of the container.
int - y initial y position of the container.
boolean - do_bb_feedback whether we do bounding box feedback.
callback_object - cbo object to make callbacks to.

backdrop_drag_container

public backdrop_drag_container(int x,
                               int y,
                               boolean do_bb_feedback,
                               java.lang.String s,
                               java.applet.Applet appl,
                               backdrop_lens l)
Nearly full constructor. This provides a null callback.
Parameters:
int - x initial x position of the container.
int - y initial y position of the container.
boolean - do_bb_feedback whether we do bounding box feedback.
Method Detail

press

public boolean press(event evt,
                     java.lang.Object user_info)
Handle mouse button press input to the object. Here, we start dragging.
Parameters:
event - evt press event being dispatched.
Object - user_info information provided by this object at pick time (in this case ignored).
Overrides:
press in class drag_container

release

public boolean release(event evt,
                       java.lang.Object user_info)
Companion to press(). Here we ignore this.
Parameters:
event - evt release event being dispatched.
Object - user_info information provided by this object at pick time
Overrides:
release in class drag_container

drag_start

public boolean drag_start(event evt,
                          int x_pos,
                          int y_pos,
                          int grab_x,
                          int grab_y,
                          java.lang.Object user_info)
Handle the start of a drag to the object.
Parameters:
event - evt the event "causing" the start of the drag.
int - x_pos x position of new position (in parent's coords).
int - y_pos y position of new position (in parent's coords).
int - grab_x x position where we started the drag (in local coords).
int - grab_y y position where we started the drag (in local coords).
Object - user_info information provided when this object requested focus.
Returns:
boolean indicating whether the input was consumed (in this case it always is).
Overrides:
drag_start in class drag_container

drag_feedback

public boolean drag_feedback(event evt,
                             int x_pos,
                             int y_pos,
                             int st_x,
                             int st_y,
                             int grab_x,
                             int grab_y,
                             java.lang.Object user_info)
Handle a movement during a drag. Here we just set our position to follow the event location and do the move callback.
Parameters:
event - evt the event "causing" the start of the drag.
int - x_pos x position of new position (in parent's coords).
int - y_pos y position of new position (in parent's coords).
int - start_x x position where we started the drag (in parent's coords).
int - start_y y position where we started the drag (in parent's coords).
int - grab_x x position where we started the grab (in local coords).
int - grab_y y position where we started the grab (in local coords).
Object - user_info information provided when this object requested focus.
Returns:
boolean indicating whether the input was consumed (in this case it always is).
Overrides:
drag_feedback in class drag_container

drag_end

public boolean drag_end(event evt,
                        int x_pos,
                        int y_pos,
                        int st_x,
                        int st_y,
                        int grab_x,
                        int grab_y,
                        java.lang.Object user_info)
Handle input corresponding to the end of a drag.
Parameters:
event - evt the event "causing" the start of the drag.
int - x_pos x position of new position (in parent's coords).
int - y_pos y position of new position (in parent's coords).
int - start_x x position where we started the drag (in parent's coords).
int - start_y y position where we started the drag (in parent's coords).
int - grab_x x position where we started the grab (in local coords).
int - grab_y y position where we started the grab (in local coords).
Object - user_info information provided when this object requested focus.
Returns:
boolean indicating whether the input was consumed (in this case it always is).
Overrides:
drag_end in class drag_container

pick

public void pick(int pt_x,
                 int pt_y,
                 pick_collector pick_list)
Determine if this object is "picked" by the the given point. In this case, we are only picked if at least one of our descendents is picked, but we need to be in the pick list before our children so we can intercept input intended for them. To do this, we do a "local" pick within our children, then merge that back into the "real" pick as needed. putting ourselves first then picks from our children.
Parameters:
int - pt_x x of point we are testing for pick.
int - pt_y y of point we are testing for pick.
pick_collector - pick_list the collector for our result.
Overrides:
pick in class drag_container

draw_self_local

protected void draw_self_local(drawable d)
Draw the object's current appearance. This draws the children and then the optional border rectangle if we are being dragged.
Parameters:
drawable - d the surface we draw on.
Overrides:
draw_self_local in class drag_container