|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
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
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 | 4Object 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 java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
wait,
wait,
wait |
Field Detail |
protected boolean have_h_slider
protected boolean have_v_slider
protected int _actual_width
protected int _actual_height
protected boolean _force_scrollbars
Constructor Detail |
public panner(base_interactor chld)
base_interactor
- chld the root of the subtree we are panning over.Method Detail |
public interactor panned_child()
public void set_panned_child(interactor c)
interactor
- c The single child of this object (which roots the
subtree being panned).public boolean force_scrollbars()
public void set_force_scrollbars(boolean b)
boolean
- b indicating whether we force scrollbars to appear.protected void new_child_size(int w, int h)
int
- w new width of panned object.int
- h new height of panned object.protected void add_h_slider()
protected void add_v_slider()
protected void set_sbar_values()
protected void child_size_changed_h(int newvalue)
int
- newvalue new size value.protected void child_size_changed_w(int newvalue)
int
- newvalue new size value.public void callback(interactor from_obj, event evt, int callback_num, java.lang.Object callback_info)
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.protected void set_raw_h(int v)
int
- v new h value.protected void set_raw_w(int v)
int
- v new w value.public void set_x_view_coordinate(int x)
int
- x the x coordinate of the top left corner of the panner
with respect to the panned objectpublic void set_y_view_coordinate(int y)
int
- y the y coordinate of the top left corner of the panner
with respect to the panned object
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |