14#ifndef PGSCROLLFRAME_H
15#define PGSCROLLFRAME_H
39class EXPCL_PANDA_PGUI PGScrollFrame :
public PGVirtualFrame,
public PGSliderBarNotify {
41 explicit PGScrollFrame(
const std::string &name =
"");
42 virtual ~PGScrollFrame();
45 PGScrollFrame(
const PGScrollFrame ©);
50 virtual void xform(
const LMatrix4 &mat);
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);
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,
94 PGSliderBar *slider_bar);
98 bool _needs_recompute_clip;
99 std::atomic_flag _canvas_computed;
101 bool _has_virtual_frame;
102 LVecBase4 _virtual_frame;
107 PT(PGSliderBar) _horizontal_slider;
108 PT(PGSliderBar) _vertical_slider;
114 static void init_type() {
115 PGVirtualFrame::init_type();
117 PGVirtualFrame::get_class_type());
120 return get_class_type();
122 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
This object performs a depth-first traversal of the scene graph, with optional view-frustum culling,...
void setup(PN_stdfloat width, PN_stdfloat height)
Creates a PGVirtualFrame with the indicated dimensions.
TypeHandle is the identifier used to differentiate C++ class types.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
void register_type(TypeHandle &type_handle, const std::string &name)
This inline function is just a convenient way to call TypeRegistry::register_type(),...