sub_arctic.lib
Class panner

java.lang.Object
  |
  +--sub_arctic.lib.min_interactor
        |
        +--sub_arctic.lib.base_interactor
              |
              +--sub_arctic.lib.base_parent_interactor
                    |
                    +--sub_arctic.lib.parent_with_parts
                          |
                          +--sub_arctic.lib.panner

public class panner
extends parent_with_parts
implements callback_object

Class to allow a subtree to be scrolled in both x and y (i.e., "panned" over).

Panner works as a composite object. This is the tree built by the panner.

                         0
                        / \
                       /   \
                      1     5
                     / \
                    /   \
                   3     2
                         |
                         4
Object above are inserted into parents in ascending order (not left to right in the diagram).

#3 & #5 are only visible when necessary by the sizing. (these used to be actually removed, we now just change their visibility).

#2 and #3 are in that order due to the trickiness with FILL requiring a prev sibling -> next sibling FILL (this is not required with the new constraint system, but we don't fix what ain't broke...).

0 panner no size, you set the size and position. This exports the setting of the horizontal scrollbar as part_a and the vertical as part_b.

1 parent_with_parts (x=0, y=0, h=MINUS_OFFSET(PARENT.RIGHT), w=FILL(PREVIOUS_SIBLING.LEFT) This is child(0) of the panner and is constrained to transmits the setting of the horizontal scrollbar up as its part_a.

2 panner_helper (x=0, y=0, fits around child exactly.

3 h_scrollbar (x=0, y=FAR_EDGE_JUST(PARENT.BOTTOM), w=MINUS_OFFSET(PARENT.RIGHT)

4 your interactor

5 v_scrollbar x=FAR_EDGE_JUST(PREV_SIBLING.RIGHT), y=0, h=PLUS_OFFSET(PARENT.BOTTOM). This is child(1) of the panner.

Note that from the panner child(0).child(0).child(0) is the object being panned. From the outside, this can be more easily accessed as panned_child().


Field Summary
protected  int _actual_height
          Actual height of the object being panned.
protected  int _actual_width
          Actual width of the object being panned.
protected  boolean _force_scrollbars
          Variable to keep track of whether or not to force scrollbars.
protected  boolean have_h_slider
          Do we have a visible horizontal scrollbar.
protected  boolean have_v_slider
          Do we have a visible vertical scrollbar.
 
Fields inherited from class sub_arctic.lib.parent_with_parts
_part_a, _part_b
 
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
panner(base_interactor chld)
          Create a new panner which pans over the given child.
 
Method Summary
protected  void add_h_slider()
          This code makes the horizontal slider visible.
protected  void add_v_slider()
          This code make the horizontal slider visible.
 void callback(interactor from_obj, event evt, int callback_num, java.lang.Object callback_info)
          Callback routine that receives callbacks from the scrollbars.
protected  void child_size_changed_h(int newvalue)
          Handle the fact that child's size changed in y.
protected  void child_size_changed_w(int newvalue)
          Handle the fact that child's size changed in x.
 boolean force_scrollbars()
          Indicate whether we are forcing scrollbars to appear.
protected  void new_child_size(int w, int h)
          This is where we do the magic with scrollbars (deciding visibility, etc.).
 interactor panned_child()
          The object being panned.
 void set_force_scrollbars(boolean b)
          Set whether we are forcing scrollbars to appear.
 void set_panned_child(interactor c)
          Set the object being panned.
protected  void set_raw_h(int v)
          Catch our resizes so we can change scrollbars, etc.
protected  void set_raw_w(int v)
          Catch our resizes so we can change scrollbars, etc.
protected  void set_sbar_values()
          This sets the scrollbar values such as max value.
 void set_x_view_coordinate(int x)
          This function is used to control X coordinate of the point which the upper left corner of the panner is viewing.
 void set_y_view_coordinate(int y)
          This function is used to control Y coordinate of the point which the upper left corner of the panner is viewing.
 
Methods inherited from class sub_arctic.lib.parent_with_parts
intrinsic_constraints, part_a, part_b, set_part_a, set_part_b, set_raw_part_a, set_raw_part_b
 
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, 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_local, 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, 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, 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_b_constraint, 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_b_constraint, set_part_b_constraint, set_part_b_constraint, set_pos, set_pos, set_raw_enabled, set_raw_visible, 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

have_h_slider

protected boolean have_h_slider
Do we have a visible horizontal scrollbar.

have_v_slider

protected boolean have_v_slider
Do we have a visible vertical scrollbar.

_actual_width

protected int _actual_width
Actual width of the object being panned.

_actual_height

protected int _actual_height
Actual height of the object being panned.

_force_scrollbars

protected boolean _force_scrollbars
Variable to keep track of whether or not to force scrollbars.
Constructor Detail

panner

public panner(base_interactor chld)
Create a new panner which pans over the given child. We assume you will set the w, h, and x,y with constraints.
Parameters:
base_interactor - chld the root of the subtree we are panning over.
Method Detail

panned_child

public interactor panned_child()
The object being panned.
Returns:
interactor the single child of this object (which roots the subtree being panned).

set_panned_child

public void set_panned_child(interactor c)
Set the object being panned.
Parameters:
interactor - c The single child of this object (which roots the subtree being panned).

force_scrollbars

public boolean force_scrollbars()
Indicate whether we are forcing scrollbars to appear.
Returns:
boolean indicating whether we force scrollbars to appear.

set_force_scrollbars

public void set_force_scrollbars(boolean b)
Set whether we are forcing scrollbars to appear.
Parameters:
boolean - b indicating whether we force scrollbars to appear.

new_child_size

protected void new_child_size(int w,
                              int h)
This is where we do the magic with scrollbars (deciding visibility, etc.).
Parameters:
int - w new width of panned object.
int - h new height of panned object.

add_h_slider

protected void add_h_slider()
This code makes the horizontal slider visible. It doesn't try to put in the right maximum value, this is done in set_sbar_values().

add_v_slider

protected void add_v_slider()
This code make the horizontal slider visible. It doesn't try to put in the right maximum value, this is done in set_sbar_values().

set_sbar_values

protected void set_sbar_values()
This sets the scrollbar values such as max value.

child_size_changed_h

protected void child_size_changed_h(int newvalue)
Handle the fact that child's size changed in y.
Parameters:
int - newvalue new size value.

child_size_changed_w

protected void child_size_changed_w(int newvalue)
Handle the fact that child's size changed in x.
Parameters:
int - newvalue new size value.

callback

public void callback(interactor from_obj,
                     event evt,
                     int callback_num,
                     java.lang.Object callback_info)
Callback routine that receives callbacks from the scrollbars.
Specified by:
callback in interface callback_object
Parameters:
interactor - from_obj the interactor the callback is from.
event - evt the event "causing" the callback.
int - callback_num the number of the callback (indicating what kind).
Object - callback_info parameter information associated with the callback.

set_raw_h

protected void set_raw_h(int v)
Catch our resizes so we can change scrollbars, etc.
Parameters:
int - v new h value.
Overrides:
set_raw_h in class base_interactor

set_raw_w

protected void set_raw_w(int v)
Catch our resizes so we can change scrollbars, etc.
Parameters:
int - v new w value.
Overrides:
set_raw_w in class base_interactor

set_x_view_coordinate

public void set_x_view_coordinate(int x)
This function is used to control X coordinate of the point which the upper left corner of the panner is viewing.
Parameters:
int - x the x coordinate of the top left corner of the panner with respect to the panned object

set_y_view_coordinate

public void set_y_view_coordinate(int y)
This function is used to control Y coordinate of the point which the upper left corner of the panner is viewing.
Parameters:
int - y the y coordinate of the top left corner of the panner with respect to the panned object