15 #ifndef PGSCROLLFRAME_H
16 #define PGSCROLLFRAME_H
18 #include "pandabase.h"
20 #include "pgVirtualFrame.h"
21 #include "pgSliderBarNotify.h"
22 #include "pgSliderBar.h"
53 void setup(PN_stdfloat width, PN_stdfloat height,
54 PN_stdfloat left, PN_stdfloat right, PN_stdfloat bottom, PN_stdfloat top,
55 PN_stdfloat slider_width, PN_stdfloat bevel);
57 INLINE
void set_virtual_frame(PN_stdfloat left, PN_stdfloat right, PN_stdfloat bottom, PN_stdfloat top);
58 INLINE
void set_virtual_frame(
const LVecBase4 &virtual_frame);
59 INLINE
const LVecBase4 &get_virtual_frame()
const;
60 INLINE
bool has_virtual_frame()
const;
61 INLINE
void clear_virtual_frame();
63 INLINE
void set_manage_pieces(
bool manage_pieces);
64 INLINE
bool get_manage_pieces()
const;
66 INLINE
void set_auto_hide(
bool auto_hide);
67 INLINE
bool get_auto_hide()
const;
69 INLINE
void set_horizontal_slider(
PGSliderBar *horizontal_slider);
70 INLINE
void clear_horizontal_slider();
73 INLINE
void set_vertical_slider(
PGSliderBar *vertical_slider);
74 INLINE
void clear_vertical_slider();
78 INLINE
void recompute();
81 virtual void frame_changed();
83 virtual void item_transform_changed(
PGItem *item);
84 virtual void item_frame_changed(
PGItem *item);
85 virtual void item_draw_mask_changed(
PGItem *item);
86 virtual void slider_bar_adjust(
PGSliderBar *slider_bar);
89 void recompute_clip();
91 void recompute_canvas();
92 PN_stdfloat interpolate_canvas(PN_stdfloat clip_min, PN_stdfloat clip_max,
93 PN_stdfloat canvas_min, PN_stdfloat canvas_max,
98 bool _needs_recompute_clip;
99 bool _needs_recompute_canvas;
103 bool _has_virtual_frame;
116 static void init_type() {
117 PGVirtualFrame::init_type();
118 register_type(_type_handle,
"PGScrollFrame",
119 PGVirtualFrame::get_class_type());
122 return get_class_type();
124 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
130 #include "pgScrollFrame.I"
A basic node of the scene graph or data graph.
virtual void xform(const LMatrix4 &mat)
Transforms the contents of this node by the indicated matrix, if it means anything to do so...
This is the base class for all the various kinds of gui widget objects.
This represents a frame that is rendered as a window onto another (possibly much larger) canvas...
This collects together the pieces of data that are accumulated for each node while walking the scene ...
This is a 4-by-4 transform matrix.
void setup(PN_stdfloat width, PN_stdfloat height)
Creates a PGVirtualFrame with the indicated dimensions.
This is the base class for all three-component vectors and points.
Objects that inherit from this class can receive notify messages when a slider bar moves or otherwise...
TypeHandle is the identifier used to differentiate C++ class types.
This object performs a depth-first traversal of the scene graph, with optional view-frustum culling...
This is a particular kind of PGItem that draws a little bar with a slider that moves from left to rig...