1412104229
2 2
9 libp3pgui 4 Q2_k 12 panda3d.core 
238
248 12 PGFrameStyle 0 4 486 26 PGFrameStyle::PGFrameStyle 0 2 1 2 945
// Filename: pgFrameStyle.I
// Created by:  drose (03Jul01)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::Copy Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
101
inline PGFrameStyle::PGFrameStyle(void);
inline PGFrameStyle::PGFrameStyle(PGFrameStyle const &copy);

249 10 operator = 0 4 486 24 PGFrameStyle::operator = 0 1 3 238
////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::Copy Assignment Operator
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
63
inline void PGFrameStyle::operator =(PGFrameStyle const &copy);

250 13 ~PGFrameStyle 0 4 486 27 PGFrameStyle::~PGFrameStyle 0 0 224
////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::Destructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
41
inline PGFrameStyle::~PGFrameStyle(void);

251 8 set_type 0 4 486 22 PGFrameStyle::set_type 0 1 4 251
////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::set_type
//       Access: Published
//  Description: Sets the basic type of frame.
////////////////////////////////////////////////////////////////////
60
inline void PGFrameStyle::set_type(PGFrameStyle::Type type);

252 8 get_type 0 4 486 22 PGFrameStyle::get_type 0 1 5 254
////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::get_type
//       Access: Published
//  Description: Returns the basic type of frame.
////////////////////////////////////////////////////////////////////
61
inline PGFrameStyle::Type PGFrameStyle::get_type(void) const;

253 9 set_color 0 4 486 23 PGFrameStyle::set_color 0 2 6 7 522
////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::set_color
//       Access: Published
//  Description: Sets the dominant color of the frame.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::set_color
//       Access: Published
//  Description: Sets the dominant color of the frame.
////////////////////////////////////////////////////////////////////
134
inline void PGFrameStyle::set_color(float r, float g, float b, float a);
inline void PGFrameStyle::set_color(LVecBase4f const &color);

254 9 get_color 0 4 486 23 PGFrameStyle::get_color 0 1 8 263
////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::set_color
//       Access: Published
//  Description: Returns the dominant color of the frame.
////////////////////////////////////////////////////////////////////
54
inline LVecBase4f PGFrameStyle::get_color(void) const;

255 11 set_texture 0 4 486 25 PGFrameStyle::set_texture 0 1 9 298
////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::set_texture
//       Access: Published
//  Description: Specifies a texture that should be applied to the
//               frame.
////////////////////////////////////////////////////////////////////
56
inline void PGFrameStyle::set_texture(Texture *texture);

256 11 has_texture 0 4 486 25 PGFrameStyle::has_texture 0 1 10 298
////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::has_texture
//       Access: Published
//  Description: Returns true if a texture has been applied to the
//               frame.
////////////////////////////////////////////////////////////////////
50
inline bool PGFrameStyle::has_texture(void) const;

257 11 get_texture 0 4 486 25 PGFrameStyle::get_texture 0 1 11 337
////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::get_texture
//       Access: Published
//  Description: Returns the texture that has been applied to the
//               frame, or NULL if no texture has been applied.
////////////////////////////////////////////////////////////////////
54
inline Texture *PGFrameStyle::get_texture(void) const;

258 13 clear_texture 0 4 486 27 PGFrameStyle::clear_texture 0 1 12 262
////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::clear_texture
//       Access: Published
//  Description: Removes the texture from the frame.
////////////////////////////////////////////////////////////////////
46
inline void PGFrameStyle::clear_texture(void);

259 9 set_width 0 4 486 23 PGFrameStyle::set_width 0 2 13 14 914
////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::set_width
//       Access: Published
//  Description: Sets the width parameter, which has meaning only for
//               certain frame types.  For instance, this is the width
//               of the bevel for T_bevel_in or T_bevel_out.  The
//               units are in screen units.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::set_width
//       Access: Published
//  Description: Sets the width parameter, which has meaning only for
//               certain frame types.  For instance, this is the width
//               of the bevel for T_bevel_in or T_bevel_out.  The
//               units are in screen units.
////////////////////////////////////////////////////////////////////
116
inline void PGFrameStyle::set_width(float x, float y);
inline void PGFrameStyle::set_width(LVecBase2f const &width);

260 9 get_width 0 4 486 23 PGFrameStyle::get_width 0 1 15 458
////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::get_width
//       Access: Published
//  Description: Returns the width parameter, which has meaning only
//               for certain frame types.  For instance, this is the
//               width of the bevel for T_bevel_in or T_bevel_out.
//               The units are in screen units.
////////////////////////////////////////////////////////////////////
61
inline LVecBase2f const &PGFrameStyle::get_width(void) const;

261 12 set_uv_width 0 4 486 26 PGFrameStyle::set_uv_width 0 2 16 17 900
////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::set_uv_width
//       Access: Published
//  Description: Sets the uv_width parameter, which indicates the
//               amount of the texture that is consumed by the inner
//               bevel--the width in texture space of the amount
//               indicated by set_width.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::set_uv_width
//       Access: Published
//  Description: Sets the uv_width parameter, which indicates the
//               amount of the texture that is consumed by the inner
//               bevel--the width in texture space of the amount
//               indicated by set_width.
////////////////////////////////////////////////////////////////////
125
inline void PGFrameStyle::set_uv_width(float u, float v);
inline void PGFrameStyle::set_uv_width(LVecBase2f const &uv_width);

262 12 get_uv_width 0 4 486 26 PGFrameStyle::get_uv_width 0 1 18 245
////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::get_uv_width
//       Access: Published
//  Description: See set_uv_width().
////////////////////////////////////////////////////////////////////
64
inline LVecBase2f const &PGFrameStyle::get_uv_width(void) const;

263 17 set_visible_scale 0 4 486 31 PGFrameStyle::set_visible_scale 0 2 19 20 1042
////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::set_visible_scale
//       Access: Published
//  Description: Sets a scale factor on the visible representation of
//               the frame, in the X and Y directions.  If this scale
//               factor is other than 1, it will affect the size of
//               the visible frame representation within the actual
//               frame border.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::set_visible_scale
//       Access: Published
//  Description: Sets a scale factor on the visible representation of
//               the frame, in the X and Y directions.  If this scale
//               factor is other than 1, it will affect the size of
//               the visible frame representation within the actual
//               frame border.
////////////////////////////////////////////////////////////////////
140
inline void PGFrameStyle::set_visible_scale(float x, float y);
inline void PGFrameStyle::set_visible_scale(LVecBase2f const &visible_scale);

264 17 get_visible_scale 0 4 486 31 PGFrameStyle::get_visible_scale 0 1 21 525
////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::get_visible_scale
//       Access: Published
//  Description: Returns the scale factor on the visible
//               representation of the frame, in the X and Y
//               directions.  If this scale factor is other than 1, it
//               will affect the size of the visible frame
//               representation within the actual frame border.
////////////////////////////////////////////////////////////////////
69
inline LVecBase2f const &PGFrameStyle::get_visible_scale(void) const;

265 18 get_internal_frame 0 4 486 32 PGFrameStyle::get_internal_frame 0 1 22 487
////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::get_internal_frame
//       Access: Published
//  Description: Computes the size of the internal frame, given the
//               indicated external frame, appropriate for this kind
//               of frame style.  This simply subtracts the border
//               width for those frame styles that include a border.
////////////////////////////////////////////////////////////////////
75
LVecBase4f PGFrameStyle::get_internal_frame(LVecBase4f const &frame) const;

266 6 output 0 4 486 20 PGFrameStyle::output 0 1 23 220
////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::output
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
46
void PGFrameStyle::output(ostream &out) const;

267 6 PGItem 0 4 488 14 PGItem::PGItem 0 1 24 442
////////////////////////////////////////////////////////////////////
//     Function: PGItem::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: PGItem::Copy Constructor
//       Access: Public
//  Description: 
////////////////////////////////////////////////////////////////////
49
PGItem::PGItem(basic_string< char > const &name);

268 8 set_name 0 4 488 16 PGItem::set_name 0 1 25 694
// Filename: pgItem.I
// Created by:  drose (13Mar02)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: PGItem::set_name
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
63
inline void PGItem::set_name(basic_string< char > const &name);

269 9 set_frame 0 4 488 17 PGItem::set_frame 0 2 26 27 1076
////////////////////////////////////////////////////////////////////
//     Function: PGItem::set_frame
//       Access: Published
//  Description: Sets the bounding rectangle of the item, in local
//               coordinates.  This is the region on screen within
//               which the mouse will be considered to be within the
//               item.  Normally, it should correspond to the bounding
//               rectangle of the visible geometry of the item.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: PGItem::set_frame
//       Access: Published
//  Description: Sets the bounding rectangle of the item, in local
//               coordinates.  This is the region on screen within
//               which the mouse will be considered to be within the
//               item.  Normally, it should correspond to the bounding
//               rectangle of the visible geometry of the item.
////////////////////////////////////////////////////////////////////
136
inline void PGItem::set_frame(float left, float right, float bottom, float top);
inline void PGItem::set_frame(LVecBase4f const &frame);

270 9 get_frame 0 4 488 17 PGItem::get_frame 0 1 28 371
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_frame
//       Access: Published
//  Description: Returns the bounding rectangle of the item.  See
//               set_frame().  It is an error to call this if
//               has_frame() returns false.
////////////////////////////////////////////////////////////////////
55
inline LVecBase4f const &PGItem::get_frame(void) const;

271 9 has_frame 0 4 488 17 PGItem::has_frame 0 1 29 301
////////////////////////////////////////////////////////////////////
//     Function: PGItem::has_frame
//       Access: Published
//  Description: Returns true if the item has a bounding rectangle;
//               see set_frame().
////////////////////////////////////////////////////////////////////
42
inline bool PGItem::has_frame(void) const;

272 11 clear_frame 0 4 488 19 PGItem::clear_frame 0 1 30 385
////////////////////////////////////////////////////////////////////
//     Function: PGItem::clear_frame
//       Access: Published
//  Description: Removes the bounding rectangle from the item.  It
//               will no longer be possible to position the mouse
//               within the item; see set_frame().
////////////////////////////////////////////////////////////////////
38
inline void PGItem::clear_frame(void);

273 9 set_state 0 4 488 17 PGItem::set_state 0 1 31 428
////////////////////////////////////////////////////////////////////
//     Function: PGItem::set_state
//       Access: Published
//  Description: Sets the "state" of this particular PGItem.  
//
//               The PGItem node will render as if it were the
//               subgraph assigned to the corresponding index via
//               set_state_def().
////////////////////////////////////////////////////////////////////
41
inline void PGItem::set_state(int state);

274 9 get_state 0 4 488 17 PGItem::get_state 0 1 32 298
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_state
//       Access: Published
//  Description: Returns the "state" of this particular PGItem.  See
//               set_state().
////////////////////////////////////////////////////////////////////
41
inline int PGItem::get_state(void) const;

275 10 set_active 0 6 488 18 PGItem::set_active 0 1 33 519
////////////////////////////////////////////////////////////////////
//     Function: PGItem::set_active
//       Access: Published, Virtual
//  Description: Sets whether the PGItem is active for mouse watching.
//               This is not necessarily related to the
//               active/inactive appearance of the item, which is
//               controlled by set_state(), but it does affect whether
//               it responds to mouse events.
////////////////////////////////////////////////////////////////////
45
virtual void PGItem::set_active(bool active);

276 10 get_active 0 4 488 18 PGItem::get_active 0 1 34 318
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_active
//       Access: Published
//  Description: Returns whether the PGItem is currently active for
//               mouse events.  See set_active().
////////////////////////////////////////////////////////////////////
43
inline bool PGItem::get_active(void) const;

277 9 set_focus 0 6 488 17 PGItem::set_focus 0 1 35 717
////////////////////////////////////////////////////////////////////
//     Function: PGItem::set_focus
//       Access: Published, Virtual
//  Description: Sets whether the PGItem currently has keyboard focus.
//               This simply means that the item may respond to
//               keyboard events as well as to mouse events; precisely
//               what this means is up to the individual item.  
//
//               Only one PGItem in the world is allowed to have focus
//               at any given time.  Setting the focus on any other
//               item automatically disables the focus from the
//               previous item.
////////////////////////////////////////////////////////////////////
43
virtual void PGItem::set_focus(bool focus);

278 9 get_focus 0 4 488 17 PGItem::get_focus 0 1 36 319
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_focus
//       Access: Published
//  Description: Returns whether the PGItem currently has focus for
//               keyboard events.  See set_focus().
////////////////////////////////////////////////////////////////////
42
inline bool PGItem::get_focus(void) const;

279 20 set_background_focus 0 4 488 28 PGItem::set_background_focus 0 1 37 554
////////////////////////////////////////////////////////////////////
//     Function: PGItem::set_background_focus
//       Access: Published
//  Description: Sets the background_focus flag for this item.  When
//               background_focus is enabled, the item will receive
//               keypress events even if it is not in focus; in fact,
//               even if it is not onscreen.  Unlike normal focus,
//               many items may have background_focus simultaneously.
////////////////////////////////////////////////////////////////////
46
void PGItem::set_background_focus(bool focus);

280 20 get_background_focus 0 4 488 28 PGItem::get_background_focus 0 1 38 328
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_background_focus
//       Access: Published
//  Description: Returns whether background_focus is currently
//               enabled.  See set_background_focus().
////////////////////////////////////////////////////////////////////
53
inline bool PGItem::get_background_focus(void) const;

281 18 set_suppress_flags 0 4 488 26 PGItem::set_suppress_flags 0 1 39 396
////////////////////////////////////////////////////////////////////
//     Function: PGItem::set_suppress_flags
//       Access: Published
//  Description: This is just an interface to set the suppress flags
//               on the underlying MouseWatcherRegion.  See
//               MouseWatcherRegion::set_suppress_flags().
////////////////////////////////////////////////////////////////////
59
inline void PGItem::set_suppress_flags(int suppress_flags);

282 18 get_suppress_flags 0 4 488 26 PGItem::get_suppress_flags 0 1 40 396
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_suppress_flags
//       Access: Published
//  Description: This is just an interface to get the suppress flags
//               on the underlying MouseWatcherRegion.  See
//               MouseWatcherRegion::get_suppress_flags().
////////////////////////////////////////////////////////////////////
50
inline int PGItem::get_suppress_flags(void) const;

283 18 get_num_state_defs 0 4 488 26 PGItem::get_num_state_defs 0 1 41 619
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_num_state_defs
//       Access: Published
//  Description: Returns one more than the highest-numbered state def
//               that was ever assigned to the PGItem.  The complete
//               set of state defs assigned may then be retrieved by
//               indexing from 0 to (get_num_state_defs() - 1).
//
//               This is only an upper limit on the actual number of
//               state defs, since there may be holes in the list.
////////////////////////////////////////////////////////////////////
43
int PGItem::get_num_state_defs(void) const;

284 15 clear_state_def 0 4 488 23 PGItem::clear_state_def 0 1 42 381
////////////////////////////////////////////////////////////////////
//     Function: PGItem::clear_state_def
//       Access: Published
//  Description: Resets the NodePath assigned to the indicated state
//               to its initial default, with only a frame
//               representation if appropriate.
////////////////////////////////////////////////////////////////////
40
void PGItem::clear_state_def(int state);

285 13 has_state_def 0 4 488 21 PGItem::has_state_def 0 1 43 404
////////////////////////////////////////////////////////////////////
//     Function: PGItem::has_state_def
//       Access: Published
//  Description: Returns true if get_state_def() has ever been called
//               for the indicated state (thus defining a render
//               subgraph for this state index), false otherwise.
////////////////////////////////////////////////////////////////////
44
bool PGItem::has_state_def(int state) const;

286 13 get_state_def 0 4 488 21 PGItem::get_state_def 0 1 44 468
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_state_def
//       Access: Published
//  Description: Returns the Node that is the root of the subgraph
//               that will be drawn when the PGItem is in the
//               indicated state.  The first time this is called for a
//               particular state index, it may create the Node.
////////////////////////////////////////////////////////////////////
43
NodePath &PGItem::get_state_def(int state);

287 21 instance_to_state_def 0 4 488 29 PGItem::instance_to_state_def 0 1 45 340
////////////////////////////////////////////////////////////////////
//     Function: PGItem::instance_to_state_def
//       Access: Published
//  Description: Parents an instance of the bottom node of the
//               indicated NodePath to the indicated state index.
////////////////////////////////////////////////////////////////////
72
NodePath PGItem::instance_to_state_def(int state, NodePath const &path);

288 15 get_frame_style 0 4 488 23 PGItem::get_frame_style 0 1 46 335
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_frame_style
//       Access: Published
//  Description: Returns the kind of frame that will be drawn behind
//               the item when it is in the indicated state.
////////////////////////////////////////////////////////////////////
48
PGFrameStyle PGItem::get_frame_style(int state);

289 15 set_frame_style 0 4 488 23 PGItem::set_frame_style 0 1 47 335
////////////////////////////////////////////////////////////////////
//     Function: PGItem::set_frame_style
//       Access: Published
//  Description: Changes the kind of frame that will be drawn behind
//               the item when it is in the indicated state.
////////////////////////////////////////////////////////////////////
67
void PGItem::set_frame_style(int state, PGFrameStyle const &style);

290 6 get_id 0 4 488 14 PGItem::get_id 0 1 48 426
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_id
//       Access: Published
//  Description: Returns the unique ID assigned to this PGItem.  This
//               will be assigned to the region created with the
//               MouseWatcher, and will thus be used to generate event
//               names.
////////////////////////////////////////////////////////////////////
62
inline basic_string< char > const &PGItem::get_id(void) const;

291 6 set_id 0 4 488 14 PGItem::set_id 0 1 49 654
////////////////////////////////////////////////////////////////////
//     Function: PGItem::set_id
//       Access: Published
//  Description: Set the unique ID assigned to this PGItem.  It is the
//               user's responsibility to ensure that this ID is
//               unique.
//
//               Normally, this should not need to be called, as the
//               PGItem will assign itself an ID when it is created,
//               but this function allows the user to decide to
//               redefine the ID to be something possibly more
//               meaningful.
////////////////////////////////////////////////////////////////////
59
inline void PGItem::set_id(basic_string< char > const &id);

292 16 get_enter_prefix 0 4 488 24 PGItem::get_enter_prefix 0 1 50 415
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_enter_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the enter
//               event for all PGItems.  The enter event is the
//               concatenation of this string followed by get_id().
////////////////////////////////////////////////////////////////////
66
static inline basic_string< char > PGItem::get_enter_prefix(void);

293 15 get_exit_prefix 0 4 488 23 PGItem::get_exit_prefix 0 1 51 412
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_exit_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the exit
//               event for all PGItems.  The exit event is the
//               concatenation of this string followed by get_id().
////////////////////////////////////////////////////////////////////
65
static inline basic_string< char > PGItem::get_exit_prefix(void);

294 17 get_within_prefix 0 4 488 25 PGItem::get_within_prefix 0 1 52 418
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_within_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the within
//               event for all PGItems.  The within event is the
//               concatenation of this string followed by get_id().
////////////////////////////////////////////////////////////////////
67
static inline basic_string< char > PGItem::get_within_prefix(void);

295 18 get_without_prefix 0 4 488 26 PGItem::get_without_prefix 0 1 53 421
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_without_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the without
//               event for all PGItems.  The without event is the
//               concatenation of this string followed by get_id().
////////////////////////////////////////////////////////////////////
68
static inline basic_string< char > PGItem::get_without_prefix(void);

296 19 get_focus_in_prefix 0 4 488 27 PGItem::get_focus_in_prefix 0 1 54 527
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_focus_in_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the focus_in
//               event for all PGItems.  The focus_in event is the
//               concatenation of this string followed by get_id().
//
//               Unlike most item events, this event is thrown with no
//               parameters.
////////////////////////////////////////////////////////////////////
69
static inline basic_string< char > PGItem::get_focus_in_prefix(void);

297 20 get_focus_out_prefix 0 4 488 28 PGItem::get_focus_out_prefix 0 1 55 530
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_focus_out_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the focus_out
//               event for all PGItems.  The focus_out event is the
//               concatenation of this string followed by get_id().
//
//               Unlike most item events, this event is thrown with no
//               parameters.
////////////////////////////////////////////////////////////////////
70
static inline basic_string< char > PGItem::get_focus_out_prefix(void);

298 16 get_press_prefix 0 4 488 24 PGItem::get_press_prefix 0 1 56 472
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_press_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the press
//               event for all PGItems.  The press event is the
//               concatenation of this string followed by a button
//               name, followed by a hyphen and get_id().
////////////////////////////////////////////////////////////////////
66
static inline basic_string< char > PGItem::get_press_prefix(void);

299 17 get_repeat_prefix 0 4 488 25 PGItem::get_repeat_prefix 0 1 57 475
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_repeat_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the repeat
//               event for all PGItems.  The repeat event is the
//               concatenation of this string followed by a button
//               name, followed by a hyphen and get_id().
////////////////////////////////////////////////////////////////////
67
static inline basic_string< char > PGItem::get_repeat_prefix(void);

300 18 get_release_prefix 0 4 488 26 PGItem::get_release_prefix 0 1 58 478
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_release_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the release
//               event for all PGItems.  The release event is the
//               concatenation of this string followed by a button
//               name, followed by a hyphen and get_id().
////////////////////////////////////////////////////////////////////
68
static inline basic_string< char > PGItem::get_release_prefix(void);

301 20 get_keystroke_prefix 0 4 488 28 PGItem::get_keystroke_prefix 0 1 59 457
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_keystroke_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the
//               keystroke event for all PGItems.  The keystroke event
//               is the concatenation of this string followed by a
//               hyphen and get_id().
////////////////////////////////////////////////////////////////////
70
static inline basic_string< char > PGItem::get_keystroke_prefix(void);

302 15 get_enter_event 0 4 488 23 PGItem::get_enter_event 0 1 60 382
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_enter_event
//       Access: Published
//  Description: Returns the event name that will be thrown when the
//               item is active and the mouse enters its frame, but
//               not any nested frames.
////////////////////////////////////////////////////////////////////
64
inline basic_string< char > PGItem::get_enter_event(void) const;

303 14 get_exit_event 0 4 488 22 PGItem::get_exit_event 0 1 61 379
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_exit_event
//       Access: Published
//  Description: Returns the event name that will be thrown when the
//               item is active and the mouse exits its frame, or
//               enters a nested frame.
////////////////////////////////////////////////////////////////////
63
inline basic_string< char > PGItem::get_exit_event(void) const;

304 16 get_within_event 0 4 488 24 PGItem::get_within_event 0 1 62 545
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_within_event
//       Access: Published
//  Description: Returns the event name that will be thrown when the
//               item is active and the mouse moves within the
//               boundaries of the frame.  This is different from the
//               enter_event in that the mouse is considered within
//               the frame even if it is also within a nested frame.
////////////////////////////////////////////////////////////////////
65
inline basic_string< char > PGItem::get_within_event(void) const;

305 17 get_without_event 0 4 488 25 PGItem::get_without_event 0 1 63 574
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_without_event
//       Access: Published
//  Description: Returns the event name that will be thrown when the
//               item is active and the mouse moves completely outside
//               the boundaries of the frame.  This is different from
//               the exit_event in that the mouse is considered
//               within the frame even if it is also within a nested
//               frame.
////////////////////////////////////////////////////////////////////
66
inline basic_string< char > PGItem::get_without_event(void) const;

306 18 get_focus_in_event 0 4 488 26 PGItem::get_focus_in_event 0 1 64 324
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_focus_in_event
//       Access: Published
//  Description: Returns the event name that will be thrown when the
//               item gets the keyboard focus.
////////////////////////////////////////////////////////////////////
67
inline basic_string< char > PGItem::get_focus_in_event(void) const;

307 19 get_focus_out_event 0 4 488 27 PGItem::get_focus_out_event 0 1 65 326
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_focus_out_event
//       Access: Published
//  Description: Returns the event name that will be thrown when the
//               item loses the keyboard focus.
////////////////////////////////////////////////////////////////////
68
inline basic_string< char > PGItem::get_focus_out_event(void) const;

308 15 get_press_event 0 4 488 23 PGItem::get_press_event 0 1 66 433
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_press_event
//       Access: Published
//  Description: Returns the event name that will be thrown when the
//               item is active and the indicated mouse or keyboard
//               button is depressed while the mouse is within the
//               frame.
////////////////////////////////////////////////////////////////////
86
inline basic_string< char > PGItem::get_press_event(ButtonHandle const &button) const;

309 16 get_repeat_event 0 4 488 24 PGItem::get_repeat_event 0 1 67 447
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_repeat_event
//       Access: Published
//  Description: Returns the event name that will be thrown when the
//               item is active and the indicated mouse or keyboard
//               button is continuously held down while the mouse is
//               within the frame.
////////////////////////////////////////////////////////////////////
87
inline basic_string< char > PGItem::get_repeat_event(ButtonHandle const &button) const;

310 17 get_release_event 0 4 488 25 PGItem::get_release_event 0 1 68 442
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_release_event
//       Access: Published
//  Description: Returns the event name that will be thrown when the
//               item is active and the indicated mouse or keyboard
//               button, formerly clicked down is within the frame, is
//               released.
////////////////////////////////////////////////////////////////////
88
inline basic_string< char > PGItem::get_release_event(ButtonHandle const &button) const;

311 19 get_keystroke_event 0 4 488 27 PGItem::get_keystroke_event 0 1 69 346
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_keystroke_event
//       Access: Published
//  Description: Returns the event name that will be thrown when the
//               item is active and any key is pressed by the user.
////////////////////////////////////////////////////////////////////
68
inline basic_string< char > PGItem::get_keystroke_event(void) const;

312 19 get_frame_inv_xform 0 4 488 27 PGItem::get_frame_inv_xform 0 1 70 284
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_frame_inv_xform
//       Access: Published, Static
//  Description: Returns the inverse of the frame transform matrix
////////////////////////////////////////////////////////////////////
57
inline LMatrix4f PGItem::get_frame_inv_xform(void) const;

313 9 set_sound 0 4 488 17 PGItem::set_sound 0 1 71 305
////////////////////////////////////////////////////////////////////
//     Function: PGItem::set_sound
//       Access: Published
//  Description: Sets the sound that will be played whenever the
//               indicated event occurs.
////////////////////////////////////////////////////////////////////
77
void PGItem::set_sound(basic_string< char > const &event, AudioSound *sound);

314 11 clear_sound 0 4 488 19 PGItem::clear_sound 0 1 72 290
////////////////////////////////////////////////////////////////////
//     Function: PGItem::clear_sound
//       Access: Published
//  Description: Removes the sound associated with the indicated
//               event.
////////////////////////////////////////////////////////////////////
60
void PGItem::clear_sound(basic_string< char > const &event);

315 9 get_sound 0 4 488 17 PGItem::get_sound 0 1 73 329
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_sound
//       Access: Published
//  Description: Returns the sound associated with the indicated
//               event, or NULL if there is no associated sound.
////////////////////////////////////////////////////////////////////
71
AudioSound *PGItem::get_sound(basic_string< char > const &event) const;

316 9 has_sound 0 4 488 17 PGItem::has_sound 0 1 74 323
////////////////////////////////////////////////////////////////////
//     Function: PGItem::has_sound
//       Access: Published
//  Description: Returns true if there is a sound associated with the
//               indicated event, or false otherwise.
////////////////////////////////////////////////////////////////////
64
bool PGItem::has_sound(basic_string< char > const &event) const;

317 13 get_text_node 0 4 488 21 PGItem::get_text_node 0 1 75 427
// HAVE_AUDIO
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_text_node
//       Access: Published, Static
//  Description: Returns the TextNode object that will be used by all
//               PGItems to generate default labels given a string.
//               This can be loaded with the default font, etc.
////////////////////////////////////////////////////////////////////
45
static TextNode *PGItem::get_text_node(void);

318 13 set_text_node 0 4 488 21 PGItem::set_text_node 0 1 76 413
////////////////////////////////////////////////////////////////////
//     Function: PGItem::set_text_node
//       Access: Published, Static
//  Description: Changes the TextNode object that will be used by all
//               PGItems to generate default labels given a string.
//               This can be loaded with the default font, etc.
////////////////////////////////////////////////////////////////////
57
static inline void PGItem::set_text_node(TextNode *node);

319 14 get_focus_item 0 4 488 22 PGItem::get_focus_item 0 1 77 486
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_focus_item
//       Access: Published, Static
//  Description: Returns the one PGItem in the world that currently
//               has keyboard focus, if any, or NULL if no item has
//               keyboard focus.  Use PGItem::set_focus() to activate
//               or deactivate keyboard focus on a particular item.
////////////////////////////////////////////////////////////////////
51
static inline PGItem *PGItem::get_focus_item(void);

320 14 get_class_type 0 4 488 22 PGItem::get_class_type 0 1 78 0
47
static TypeHandle PGItem::get_class_type(void);

321 8 PGButton 0 4 490 18 PGButton::PGButton 0 1 79 446
////////////////////////////////////////////////////////////////////
//     Function: PGButton::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: PGButton::Copy Constructor
//       Access: Public
//  Description: 
////////////////////////////////////////////////////////////////////
53
PGButton::PGButton(basic_string< char > const &name);

322 5 setup 0 4 490 15 PGButton::setup 0 6 80 81 82 83 84 85 1741
////////////////////////////////////////////////////////////////////
//     Function: PGButton::setup
//       Access: Published
//  Description: Sets up the button using the indicated NodePath as
//               arbitrary geometry.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: PGButton::setup
//       Access: Published
//  Description: Sets up the button using the indicated NodePath as
//               arbitrary geometry.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: PGButton::setup
//       Access: Published
//  Description: Sets up the button using the indicated NodePath as
//               arbitrary geometry.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: PGButton::setup
//       Access: Published
//  Description: Sets up the button as a default text button using the
//               indicated label string.  The TextNode defined by
//               PGItem::get_text_node() will be used to create the
//               label geometry.  This automatically sets up the frame
//               according to the size of the text.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: PGButton::setup
//       Access: Published
//  Description: Sets up the button using the indicated NodePath as
//               arbitrary geometry.
////////////////////////////////////////////////////////////////////
437
void PGButton::setup(basic_string< char > const &label, float bevel = (0.1));
inline void PGButton::setup(NodePath const &ready);
inline void PGButton::setup(NodePath const &ready, NodePath const &depressed);
inline void PGButton::setup(NodePath const &ready, NodePath const &depressed, NodePath const &rollover);
void PGButton::setup(NodePath const &ready, NodePath const &depressed, NodePath const &rollover, NodePath const &inactive);

323 16 add_click_button 0 4 490 26 PGButton::add_click_button 0 1 86 484
////////////////////////////////////////////////////////////////////
//     Function: PGButton::add_click_button
//       Access: Published
//  Description: Adds the indicated button to the set of buttons that
//               can effectively "click" the PGButton.  Normally, this
//               is just MouseButton::one().  Returns true if the
//               button was added, or false if it was already there.
////////////////////////////////////////////////////////////////////
60
bool PGButton::add_click_button(ButtonHandle const &button);

324 19 remove_click_button 0 4 490 29 PGButton::remove_click_button 0 1 87 512
////////////////////////////////////////////////////////////////////
//     Function: PGButton::remove_click_button
//       Access: Published
//  Description: Removes the indicated button from the set of buttons
//               that can effectively "click" the PGButton.  Normally,
//               this is just MouseButton::one().  Returns true if the
//               button was removed, or false if it was not in the
//               set.
////////////////////////////////////////////////////////////////////
63
bool PGButton::remove_click_button(ButtonHandle const &button);

325 16 has_click_button 0 4 490 26 PGButton::has_click_button 0 1 88 407
////////////////////////////////////////////////////////////////////
//     Function: PGButton::has_click_button
//       Access: Published
//  Description: Returns true if the indicated button is on the set of
//               buttons that can effectively "click" the PGButton.
//               Normally, this is just MouseButton::one().
////////////////////////////////////////////////////////////////////
60
bool PGButton::has_click_button(ButtonHandle const &button);

326 14 is_button_down 0 4 490 24 PGButton::is_button_down 0 1 89 340
////////////////////////////////////////////////////////////////////
//     Function: PGButton::is_button_down
//       Access: Published
//  Description: Returns true if the user is currently holding the
//               mouse button down on the button, false otherwise.
////////////////////////////////////////////////////////////////////
43
inline bool PGButton::is_button_down(void);

327 16 get_click_prefix 0 4 490 26 PGButton::get_click_prefix 0 1 90 419
////////////////////////////////////////////////////////////////////
//     Function: PGButton::get_click_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the click
//               event for all PGButtons.  The click event is the
//               concatenation of this string followed by get_id().
////////////////////////////////////////////////////////////////////
68
static inline basic_string< char > PGButton::get_click_prefix(void);

328 15 get_click_event 0 4 490 25 PGButton::get_click_event 0 1 91 321
////////////////////////////////////////////////////////////////////
//     Function: PGButton::get_click_event
//       Access: Published
//  Description: Returns the event name that will be thrown when the
//               button is clicked normally.
////////////////////////////////////////////////////////////////////
88
inline basic_string< char > PGButton::get_click_event(ButtonHandle const &button) const;

329 14 get_class_type 0 4 490 24 PGButton::get_class_type 0 1 92 0
49
static TypeHandle PGButton::get_class_type(void);

330 5 PGTop 0 4 492 12 PGTop::PGTop 0 1 93 921
// Filename: pgTop.I
// Created by:  drose (13Mar02)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: PGTop::Copy Constructor
//       Access: Public
//  Description: 
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: PGTop::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
47
PGTop::PGTop(basic_string< char > const &name);

331 17 set_mouse_watcher 0 4 492 24 PGTop::set_mouse_watcher 0 1 94 388
////////////////////////////////////////////////////////////////////
//     Function: PGTop::set_mouse_watcher
//       Access: Published
//  Description: Sets the MouseWatcher pointer that the PGTop object
//               registers its PG items with.  This must be set before
//               the PG items are active.
////////////////////////////////////////////////////////////////////
53
void PGTop::set_mouse_watcher(MouseWatcher *watcher);

332 17 get_mouse_watcher 0 4 492 24 PGTop::get_mouse_watcher 0 1 95 391
////////////////////////////////////////////////////////////////////
//     Function: PGTop::get_mouse_watcher
//       Access: Published
//  Description: Returns the MouseWatcher pointer that the PGTop object
//               registers its PG items with, or NULL if the
//               MouseWatcher has not yet been set.
////////////////////////////////////////////////////////////////////
58
inline MouseWatcher *PGTop::get_mouse_watcher(void) const;

333 9 get_group 0 4 492 16 PGTop::get_group 0 1 96 388
////////////////////////////////////////////////////////////////////
//     Function: PGTop::get_group
//       Access: Published
//  Description: Returns the MouseWatcherGroup pointer that the PGTop
//               object registers its PG items with, or NULL if the
//               MouseWatcher has not yet been set.
////////////////////////////////////////////////////////////////////
55
inline MouseWatcherGroup *PGTop::get_group(void) const;

334 14 set_start_sort 0 4 492 21 PGTop::set_start_sort 0 1 97 1044
////////////////////////////////////////////////////////////////////
//     Function: PGTop::set_start_sort
//       Access: Published
//  Description: Specifies the sort index that is assigned during the
//               traversal to the first PGItem that is discovered
//               during traversal.  Subsequent PGItems will be
//               assigned consecutively higher sort indexes.
//
//               This number is used by the MouseWatcher system to
//               rank the clickable mouse regions in the same order in
//               which the items are rendered, so that items on top
//               will receive mouse priority.
//
//               Normally, it makes the most sense to leave this
//               initial value at its default value of 0, unless you
//               need the PGItems to have a particular sort value with
//               respect to some other objects in the scene
//               (particularly with a second PGTop node).
////////////////////////////////////////////////////////////////////
50
inline void PGTop::set_start_sort(int start_sort);

335 14 get_start_sort 0 4 492 21 PGTop::get_start_sort 0 1 98 395
////////////////////////////////////////////////////////////////////
//     Function: PGTop::get_start_sort
//       Access: Published
//  Description: Returns the sort index that is assigned during the
//               traversal to the first PGItem that is discovered
//               during traversal.  See set_start_sort().
////////////////////////////////////////////////////////////////////
45
inline int PGTop::get_start_sort(void) const;

336 14 get_class_type 0 4 492 21 PGTop::get_class_type 0 1 99 0
46
static TypeHandle PGTop::get_class_type(void);

337 7 PGEntry 0 4 493 16 PGEntry::PGEntry 0 1 100 447
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: PGEntry::Copy Constructor
//       Access: Protected
//  Description: 
////////////////////////////////////////////////////////////////////
51
PGEntry::PGEntry(basic_string< char > const &name);

338 5 setup 0 4 493 14 PGEntry::setup 0 1 101 538
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::setup
//       Access: Published
//  Description: Sets up the entry for normal use.  The width is the
//               maximum width of characters that will be typed, and
//               num_lines is the integer number of lines of text of
//               the entry.  Both of these together determine the size
//               of the entry, based on the TextNode in effect.
////////////////////////////////////////////////////////////////////
48
void PGEntry::setup(float width, int num_lines);

339 13 setup_minimal 0 4 493 22 PGEntry::setup_minimal 0 1 102 304
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::setup_minimal
//       Access: Published
//  Description: Sets up the entry without creating any frame or other
//               decoration.
////////////////////////////////////////////////////////////////////
56
void PGEntry::setup_minimal(float width, int num_lines);

340 8 set_text 0 4 493 17 PGEntry::set_text 0 1 103 1113
// Filename: pgEntry.I
// Created by:  drose (13Mar02)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::set_text
//       Access: Published
//  Description: Changes the text currently displayed within the
//               entry.  This uses the Unicode encoding currently
//               specified for the "focus" TextNode; therefore, the
//               TextNode must exist before calling set_text().
//
//               The return value is true if all the text is accepted,
//               or false if some was truncated (see set_max_width(),
//               etc.).
////////////////////////////////////////////////////////////////////
64
inline bool PGEntry::set_text(basic_string< char > const &text);

341 14 get_plain_text 0 4 493 23 PGEntry::get_plain_text 0 1 104 531
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_plain_text
//       Access: Published
//  Description: Returns the text currently displayed within the
//               entry, without any embedded properties characters.
//
//               This uses the Unicode encoding currently specified
//               for the "focus" TextNode; therefore, the TextNode
//               must exist before calling get_text().
////////////////////////////////////////////////////////////////////
64
inline basic_string< char > PGEntry::get_plain_text(void) const;

342 8 get_text 0 4 493 17 PGEntry::get_text 0 1 105 462
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_text
//       Access: Published
//  Description: Returns the text currently displayed within the
//               entry.  This uses the Unicode encoding currently
//               specified for the "focus" TextNode; therefore, the
//               TextNode must exist before calling get_text().
////////////////////////////////////////////////////////////////////
58
inline basic_string< char > PGEntry::get_text(void) const;

343 18 get_num_characters 0 4 493 27 PGEntry::get_num_characters 0 1 106 699
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_num_characters
//       Access: Published
//  Description: Returns the number of characters of text in the
//               entry.  This is the actual number of visible
//               characters, not counting implicit newlines due to
//               wordwrapping, or formatted characters for text
//               properties changes.  If there is an embedded
//               TextGraphic object, it counts as one character.
//
//               This is also the length of the string returned by
//               get_plain_text().
////////////////////////////////////////////////////////////////////
51
inline int PGEntry::get_num_characters(void) const;

344 13 get_character 0 4 493 22 PGEntry::get_character 0 1 107 404
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_character
//       Access: Published
//  Description: Returns the character at the indicated position in
//               the entry.  If the object at this position is a
//               graphic object instead of a character, returns 0.
////////////////////////////////////////////////////////////////////
51
inline wchar_t PGEntry::get_character(int n) const;

345 11 get_graphic 0 4 493 20 PGEntry::get_graphic 0 1 108 444
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_graphic
//       Access: Published
//  Description: Returns the graphic object at the indicated position
//               in the pre-wordwrapped string.  If the object at this
//               position is a character instead of a graphic object,
//               returns NULL.
////////////////////////////////////////////////////////////////////
60
inline TextGraphic const *PGEntry::get_graphic(int n) const;

346 14 get_properties 0 4 493 23 PGEntry::get_properties 0 1 109 365
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_properties
//       Access: Published
//  Description: Returns the TextProperties in effect for the object
//               at the indicated position in the pre-wordwrapped
//               string.
////////////////////////////////////////////////////////////////////
66
inline TextProperties const &PGEntry::get_properties(int n) const;

347 19 set_cursor_position 0 4 493 28 PGEntry::set_cursor_position 0 1 110 469
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::set_cursor_position
//       Access: Published
//  Description: Sets the current position of the cursor.  This is the
//               position within the text at which the next letter
//               typed by the user will be inserted; normally it is
//               the same as the length of the text.
////////////////////////////////////////////////////////////////////
55
inline void PGEntry::set_cursor_position(int position);

348 19 get_cursor_position 0 4 493 28 PGEntry::get_cursor_position 0 1 111 271
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_cursor_position
//       Access: Published
//  Description: Returns the current position of the cursor.
////////////////////////////////////////////////////////////////////
52
inline int PGEntry::get_cursor_position(void) const;

349 12 get_cursor_X 0 4 493 21 PGEntry::get_cursor_X 0 1 112 262
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_cursor_X
//       Access: Published
//  Description: Returns the node position x of the cursor
////////////////////////////////////////////////////////////////////
47
inline float PGEntry::get_cursor_X(void) const;

350 12 get_cursor_Y 0 4 493 21 PGEntry::get_cursor_Y 0 1 113 262
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_cursor_y
//       Access: Published
//  Description: Returns the node position y of the cursor
////////////////////////////////////////////////////////////////////
47
inline float PGEntry::get_cursor_Y(void) const;

351 13 set_max_chars 0 4 493 22 PGEntry::set_max_chars 0 1 114 507
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::set_max_chars
//       Access: Published
//  Description: Sets the maximum number of characters that may be
//               typed into the entry.  This is a limit on the number
//               of characters, as opposed to the width of the entry;
//               see also set_max_width().
//
//               If this is 0, there is no limit.
////////////////////////////////////////////////////////////////////
50
inline void PGEntry::set_max_chars(int max_chars);

352 13 get_max_chars 0 4 493 22 PGEntry::get_max_chars 0 1 115 387
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_max_chars
//       Access: Published
//  Description: Returns the current maximum number of characters that
//               may be typed into the entry, or 0 if there is no
//               limit.  See set_max_chars().
////////////////////////////////////////////////////////////////////
46
inline int PGEntry::get_max_chars(void) const;

353 13 set_max_width 0 4 493 22 PGEntry::set_max_width 0 1 116 790
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::set_max_width
//       Access: Published
//  Description: Sets the maximum width of all characters that may be
//               typed into the entry.  This is a limit on the width
//               of the formatted text, not a fixed limit on the
//               number of characters; also set_max_chars().
//
//               If this is 0, there is no limit.
//
//               If _num_lines is more than 1, rather than being a
//               fixed width on the whole entry, this becomes instead
//               the wordwrap width (and the width limit on the entry
//               is essentially _max_width * _num_lines).
////////////////////////////////////////////////////////////////////
52
inline void PGEntry::set_max_width(float max_width);

354 13 get_max_width 0 4 493 22 PGEntry::get_max_width 0 1 117 390
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_max_width
//       Access: Published
//  Description: Returns the current maximum width of the characters
//               that may be typed into the entry, or 0 if there is no
//               limit.  See set_max_width().
////////////////////////////////////////////////////////////////////
48
inline float PGEntry::get_max_width(void) const;

355 13 set_num_lines 0 4 493 22 PGEntry::set_num_lines 0 1 118 411
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::set_num_lines
//       Access: Published
//  Description: Sets the number of lines of text the PGEntry will
//               use.  This only has meaning if _max_width is not 0;
//               _max_width indicates the wordwrap width of each line.
////////////////////////////////////////////////////////////////////
50
inline void PGEntry::set_num_lines(int num_lines);

356 13 get_num_lines 0 4 493 22 PGEntry::get_num_lines 0 1 119 342
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_num_lines
//       Access: Published
//  Description: Returns the number of lines of text the PGEntry will
//               use, if _max_width is not 0.  See set_num_lines().
////////////////////////////////////////////////////////////////////
46
inline int PGEntry::get_num_lines(void) const;

357 14 set_blink_rate 0 4 493 23 PGEntry::set_blink_rate 0 1 120 431
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::set_blink_rate
//       Access: Published
//  Description: Sets the number of times per second the cursor will
//               blink while the entry has keyboard focus.
//
//               If this is 0, the cursor does not blink, but is held
//               steady.
////////////////////////////////////////////////////////////////////
54
inline void PGEntry::set_blink_rate(float blink_rate);

358 14 get_blink_rate 0 4 493 23 PGEntry::get_blink_rate 0 1 121 337
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_blink_rate
//       Access: Published
//  Description: Returns the number of times per second the cursor
//               will blink, or 0 if the cursor is not to blink.
////////////////////////////////////////////////////////////////////
49
inline float PGEntry::get_blink_rate(void) const;

359 14 get_cursor_def 0 4 493 23 PGEntry::get_cursor_def 0 1 122 375
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_cursor_def
//       Access: Published
//  Description: Returns the Node that will be rendered to represent
//               the cursor.  You can attach suitable cursor geometry
//               to this node.
////////////////////////////////////////////////////////////////////
46
inline NodePath PGEntry::get_cursor_def(void);

360 16 clear_cursor_def 0 4 493 25 PGEntry::clear_cursor_def 0 1 123 336
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::clear_cursor_def
//       Access: Published
//  Description: Removes all the children from the cursor_def node, in
//               preparation for adding a new definition.
////////////////////////////////////////////////////////////////////
44
inline void PGEntry::clear_cursor_def(void);

361 22 set_cursor_keys_active 0 4 493 31 PGEntry::set_cursor_keys_active 0 1 124 394
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::set_cursor_keys_active
//       Access: Published
//  Description: Sets whether the arrow keys (and home/end) control
//               movement of the cursor.  If true, they are active; if
//               false, they are ignored.
////////////////////////////////////////////////////////////////////
55
inline void PGEntry::set_cursor_keys_active(bool flag);

362 22 get_cursor_keys_active 0 4 493 31 PGEntry::get_cursor_keys_active 0 1 125 378
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_cursor_keys_active
//       Access: Published
//  Description: Returns whether the arrow keys are currently set to
//               control movement of the cursor; see
//               set_cursor_keys_active().
////////////////////////////////////////////////////////////////////
56
inline bool PGEntry::get_cursor_keys_active(void) const;

363 16 set_obscure_mode 0 4 493 25 PGEntry::set_obscure_mode 0 1 126 759
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::set_obscure_mode
//       Access: Published
//  Description: Specifies whether obscure mode should be enabled.  In
//               obscure mode, a string of asterisks is displayed
//               instead of the literal text, e.g. for entering
//               passwords.
//
//               In obscure mode, the width of the text is computed
//               based on the width of the string of asterisks, not on
//               the width of the actual text.  This has implications
//               on the maximum length of text that may be entered if
//               max_width is in effect.
////////////////////////////////////////////////////////////////////
49
inline void PGEntry::set_obscure_mode(bool flag);

364 16 get_obscure_mode 0 4 493 25 PGEntry::get_obscure_mode 0 1 127 309
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_obscure_mode
//       Access: Published
//  Description: Specifies whether obscure mode is enabled.  See
//               set_obscure_mode().
////////////////////////////////////////////////////////////////////
50
inline bool PGEntry::get_obscure_mode(void) const;

365 17 set_overflow_mode 0 4 493 26 PGEntry::set_overflow_mode 0 1 128 489
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::set_overflow_mode
//       Access: Published
//  Description: Specifies whether overflow mode should be enabled.
//               In overflow mode, text can overflow the boundaries
//               of the Entry element horizontally.
//
//               Overflow mode only works when the number of lines
//               is 1.
////////////////////////////////////////////////////////////////////
50
inline void PGEntry::set_overflow_mode(bool flag);

366 17 get_overflow_mode 0 4 493 26 PGEntry::get_overflow_mode 0 1 129 312
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_overflow_mode
//       Access: Published
//  Description: Specifies whether overflow mode is enabled.  See
//               set_overflow_mode().
////////////////////////////////////////////////////////////////////
51
inline bool PGEntry::get_overflow_mode(void) const;

367 20 set_candidate_active 0 4 493 29 PGEntry::set_candidate_active 0 1 130 984
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::set_candidate_active
//       Access: Published
//  Description: Specifies the name of the TextProperties structure
//               added to the TextPropertiesManager that will be used
//               to render candidate strings from the IME, used for
//               typing characters in east Asian languages.  Each
//               candidate string represents one possible way to
//               interpret the sequence of keys the user has just
//               entered; it should not be considered typed yet, but
//               it is important for the user to be able to see what
//               he is considering entering.
//
//               This particular method sets the properties for the
//               subset of the current candidate string that the user
//               can actively scroll through.
////////////////////////////////////////////////////////////////////
88
inline void PGEntry::set_candidate_active(basic_string< char > const &candidate_active);

368 20 get_candidate_active 0 4 493 29 PGEntry::get_candidate_active 0 1 131 256
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_candidate_active
//       Access: Published
//  Description: See set_candidate_active().
////////////////////////////////////////////////////////////////////
77
inline basic_string< char > const &PGEntry::get_candidate_active(void) const;

369 22 set_candidate_inactive 0 4 493 31 PGEntry::set_candidate_inactive 0 1 132 992
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::set_candidate_inactive
//       Access: Published
//  Description: Specifies the name of the TextProperties structure
//               added to the TextPropertiesManager that will be used
//               to render candidate strings from the IME, used for
//               typing characters in east Asian languages.  Each
//               candidate string represents one possible way to
//               interpret the sequence of keys the user has just
//               entered; it should not be considered typed yet, but
//               it is important for the user to be able to see what
//               he is considering entering.
//
//               This particular method sets the properties for the
//               subset of the current candidate string that the user
//               is not actively scrolling through.
////////////////////////////////////////////////////////////////////
92
inline void PGEntry::set_candidate_inactive(basic_string< char > const &candidate_inactive);

370 22 get_candidate_inactive 0 4 493 31 PGEntry::get_candidate_inactive 0 1 133 260
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_candidate_inactive
//       Access: Published
//  Description: See set_candidate_inactive().
////////////////////////////////////////////////////////////////////
79
inline basic_string< char > const &PGEntry::get_candidate_inactive(void) const;

371 12 set_text_def 0 4 493 21 PGEntry::set_text_def 0 1 134 500
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::set_text_def
//       Access: Published
//  Description: Changes the TextNode that will be used to render the
//               text within the entry when the entry is in the
//               indicated state.  The default if nothing is specified
//               is the same TextNode returned by
//               PGItem::get_text_node().
////////////////////////////////////////////////////////////////////
54
void PGEntry::set_text_def(int state, TextNode *node);

372 12 get_text_def 0 4 493 21 PGEntry::get_text_def 0 1 135 392
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_text_def
//       Access: Published
//  Description: Returns the TextNode that will be used to render the
//               text within the entry when the entry is in the
//               indicated state.  See set_text_def().
////////////////////////////////////////////////////////////////////
49
TextNode *PGEntry::get_text_def(int state) const;

373 17 get_accept_prefix 0 4 493 26 PGEntry::get_accept_prefix 0 1 136 421
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_accept_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the accept
//               event for all PGEntries.  The accept event is the
//               concatenation of this string followed by get_id().
////////////////////////////////////////////////////////////////////
68
static inline basic_string< char > PGEntry::get_accept_prefix(void);

374 24 get_accept_failed_prefix 0 4 493 33 PGEntry::get_accept_failed_prefix 0 1 137 429
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_accept_failed_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the accept
//               failed event for all PGEntries.  This event is the
//               concatenation of this string followed by get_id().
////////////////////////////////////////////////////////////////////
75
static inline basic_string< char > PGEntry::get_accept_failed_prefix(void);

375 19 get_overflow_prefix 0 4 493 28 PGEntry::get_overflow_prefix 0 1 138 427
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_overflow_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the overflow
//               event for all PGEntries.  The overflow event is the
//               concatenation of this string followed by get_id().
////////////////////////////////////////////////////////////////////
70
static inline basic_string< char > PGEntry::get_overflow_prefix(void);

376 15 get_type_prefix 0 4 493 24 PGEntry::get_type_prefix 0 1 139 415
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_type_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the type
//               event for all PGEntries.  The type event is the
//               concatenation of this string followed by get_id().
////////////////////////////////////////////////////////////////////
66
static inline basic_string< char > PGEntry::get_type_prefix(void);

377 16 get_erase_prefix 0 4 493 25 PGEntry::get_erase_prefix 0 1 140 418
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_erase_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the erase
//               event for all PGEntries.  The erase event is the
//               concatenation of this string followed by get_id().
////////////////////////////////////////////////////////////////////
67
static inline basic_string< char > PGEntry::get_erase_prefix(void);

378 21 get_cursormove_prefix 0 4 493 30 PGEntry::get_cursormove_prefix 0 1 141 425
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_cursormove_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the cursor
//               event for all PGEntries.  The cursor event is the
//               concatenation of this string followed by get_id().
////////////////////////////////////////////////////////////////////
72
static inline basic_string< char > PGEntry::get_cursormove_prefix(void);

379 16 get_accept_event 0 4 493 25 PGEntry::get_accept_event 0 1 142 321
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_accept_event
//       Access: Published
//  Description: Returns the event name that will be thrown when the
//               entry is accepted normally.
////////////////////////////////////////////////////////////////////
88
inline basic_string< char > PGEntry::get_accept_event(ButtonHandle const &button) const;

380 23 get_accept_failed_event 0 4 493 32 PGEntry::get_accept_failed_event 0 1 143 329
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_accept_failed_event
//       Access: Published
//  Description: Returns the event name that will be thrown when the
//               entry cannot accept an input
////////////////////////////////////////////////////////////////////
95
inline basic_string< char > PGEntry::get_accept_failed_event(ButtonHandle const &button) const;

381 18 get_overflow_event 0 4 493 27 PGEntry::get_overflow_event 0 1 144 459
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_overflow_event
//       Access: Published
//  Description: Returns the event name that will be thrown when too
//               much text is attempted to be entered into the
//               PGEntry, exceeding either the limit set via
//               set_max_chars() or via set_max_width().
////////////////////////////////////////////////////////////////////
68
inline basic_string< char > PGEntry::get_overflow_event(void) const;

382 14 get_type_event 0 4 493 23 PGEntry::get_type_event 0 1 145 328
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_type_event
//       Access: Published
//  Description: Returns the event name that will be thrown whenever
//               the user extends the text by typing.
////////////////////////////////////////////////////////////////////
64
inline basic_string< char > PGEntry::get_type_event(void) const;

383 15 get_erase_event 0 4 493 24 PGEntry::get_erase_event 0 1 146 332
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_erase_event
//       Access: Published
//  Description: Returns the event name that will be thrown whenever
//               the user erases characters in the text.
////////////////////////////////////////////////////////////////////
65
inline basic_string< char > PGEntry::get_erase_event(void) const;

384 20 get_cursormove_event 0 4 493 29 PGEntry::get_cursormove_event 0 1 147 314
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_cursormove_event
//       Access: Published
//  Description: Returns the event name that will be thrown whenever
//               the cursor moves
////////////////////////////////////////////////////////////////////
70
inline basic_string< char > PGEntry::get_cursormove_event(void) const;

385 9 set_wtext 0 4 493 18 PGEntry::set_wtext 0 1 148 457
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::set_wtext
//       Access: Published
//  Description: Changes the text currently displayed within the
//               entry.
//
//               The return value is true if all the text is accepted,
//               or false if some was truncated (see set_max_width(),
//               etc.).
////////////////////////////////////////////////////////////////////
69
inline bool PGEntry::set_wtext(basic_string< wchar_t > const &wtext);

386 15 get_plain_wtext 0 4 493 24 PGEntry::get_plain_wtext 0 1 149 339
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_plain_wtext
//       Access: Published
//  Description: Returns the text currently displayed within the
//               entry, without any embedded properties characters.
////////////////////////////////////////////////////////////////////
68
inline basic_string< wchar_t > PGEntry::get_plain_wtext(void) const;

387 9 get_wtext 0 4 493 18 PGEntry::get_wtext 0 1 150 289
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_wtext
//       Access: Published
//  Description: Returns the text currently displayed within the
//               entry.
////////////////////////////////////////////////////////////////////
62
inline basic_string< wchar_t > PGEntry::get_wtext(void) const;

388 18 set_accept_enabled 0 4 493 27 PGEntry::set_accept_enabled 0 1 151 322
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::set_accept_enabled
//       Access: Published
//  Description: Sets whether the input may be accepted--use to 
//               disable submission by the user
////////////////////////////////////////////////////////////////////
54
inline void PGEntry::set_accept_enabled(bool enabled);

389 8 is_wtext 0 4 493 17 PGEntry::is_wtext 0 1 152 462
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::is_wtext
//       Access: Published
//  Description: Returns true if any of the characters in the string
//               returned by get_wtext() are out of the range of an
//               ASCII character (and, therefore, get_wtext() should
//               be called in preference to get_text()).
////////////////////////////////////////////////////////////////////
35
bool PGEntry::is_wtext(void) const;

390 14 get_class_type 0 4 493 23 PGEntry::get_class_type 0 1 153 0
48
static TypeHandle PGEntry::get_class_type(void);

391 37 upcast_to_TypedWritableReferenceCount 0 12 495 62 PGMouseWatcherParameter::upcast_to_TypedWritableReferenceCount 0 1 156 66
upcast from PGMouseWatcherParameter to TypedWritableReferenceCount
98
TypedWritableReferenceCount *PGMouseWatcherParameter::upcast_to_TypedWritableReferenceCount(void);

392 35 downcast_to_PGMouseWatcherParameter 0 12 496 64 TypedWritableReferenceCount::downcast_to_PGMouseWatcherParameter 0 1 157 68
downcast from TypedWritableReferenceCount to PGMouseWatcherParameter
96
PGMouseWatcherParameter *TypedWritableReferenceCount::downcast_to_PGMouseWatcherParameter(void);

393 31 upcast_to_MouseWatcherParameter 0 12 495 56 PGMouseWatcherParameter::upcast_to_MouseWatcherParameter 0 1 158 60
upcast from PGMouseWatcherParameter to MouseWatcherParameter
86
MouseWatcherParameter *PGMouseWatcherParameter::upcast_to_MouseWatcherParameter(void);

394 35 downcast_to_PGMouseWatcherParameter 0 12 497 58 MouseWatcherParameter::downcast_to_PGMouseWatcherParameter 0 1 159 62
downcast from MouseWatcherParameter to PGMouseWatcherParameter
90
PGMouseWatcherParameter *MouseWatcherParameter::downcast_to_PGMouseWatcherParameter(void);

395 24 ~PGMouseWatcherParameter 0 6 495 49 PGMouseWatcherParameter::~PGMouseWatcherParameter 0 0 241
////////////////////////////////////////////////////////////////////
//     Function: PGMouseWatcherParameter::Destructor
//       Access: Public, Virtual
//  Description: 
////////////////////////////////////////////////////////////////////
64
virtual PGMouseWatcherParameter::~PGMouseWatcherParameter(void);

396 6 output 0 4 495 31 PGMouseWatcherParameter::output 0 1 154 231
////////////////////////////////////////////////////////////////////
//     Function: PGMouseWatcherParameter::output
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
57
void PGMouseWatcherParameter::output(ostream &out) const;

397 14 get_class_type 0 4 495 39 PGMouseWatcherParameter::get_class_type 0 1 155 0
64
static TypeHandle PGMouseWatcherParameter::get_class_type(void);

398 24 PGMouseWatcherBackground 0 4 498 50 PGMouseWatcherBackground::PGMouseWatcherBackground 0 1 160 234
////////////////////////////////////////////////////////////////////
//     Function: PGMouseWatcherBackground::Constructor
//       Access: Public
//  Description: 
////////////////////////////////////////////////////////////////////
57
PGMouseWatcherBackground::PGMouseWatcherBackground(void);

399 14 get_class_type 0 4 498 40 PGMouseWatcherBackground::get_class_type 0 1 161 0
65
static TypeHandle PGMouseWatcherBackground::get_class_type(void);

400 14 PGVirtualFrame 0 4 500 30 PGVirtualFrame::PGVirtualFrame 0 2 162 163 461
////////////////////////////////////////////////////////////////////
//     Function: PGVirtualFrame::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: PGVirtualFrame::Copy Constructor
//       Access: Protected
//  Description: 
////////////////////////////////////////////////////////////////////
72
PGVirtualFrame::PGVirtualFrame(basic_string< char > const &name = (""));

401 5 setup 0 4 500 21 PGVirtualFrame::setup 0 1 164 294
////////////////////////////////////////////////////////////////////
//     Function: PGVirtualFrame::setup
//       Access: Published
//  Description: Creates a PGVirtualFrame with the indicated 
//               dimensions.
////////////////////////////////////////////////////////////////////
54
void PGVirtualFrame::setup(float width, float height);

402 14 set_clip_frame 0 4 500 30 PGVirtualFrame::set_clip_frame 0 2 165 166 1676
// Filename: pgVirtualFrame.I
// Created by:  drose (17Aug05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: PGVirtualFrame::set_clip_frame
//       Access: Published
//  Description: Sets the bounding rectangle of the clip frame.
//               This is the size of the small window through which we
//               can see the virtual canvas.  Normally, this is the
//               same size as the actual frame or smaller (typically
//               it is smaller by the size of the bevel, or to make
//               room for scroll bars).
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: PGVirtualFrame::set_clip_frame
//       Access: Published
//  Description: Sets the bounding rectangle of the clip frame.
//               This is the size of the small window through which we
//               can see the virtual canvas.  Normally, this is the
//               same size as the actual frame or smaller (typically
//               it is smaller by the size of the bevel, or to make
//               room for scroll bars).
////////////////////////////////////////////////////////////////////
160
inline void PGVirtualFrame::set_clip_frame(float left, float right, float bottom, float top);
void PGVirtualFrame::set_clip_frame(LVecBase4f const &clip_frame);

403 14 get_clip_frame 0 4 500 30 PGVirtualFrame::get_clip_frame 0 1 167 404
////////////////////////////////////////////////////////////////////
//     Function: PGVirtualFrame::get_clip_frame
//       Access: Published
//  Description: Returns the bounding rectangle of the clip frame.
//               See set_clip_frame().  If has_clip_frame() is
//               false, this returns the item's actual frame.
////////////////////////////////////////////////////////////////////
68
inline LVecBase4f const &PGVirtualFrame::get_clip_frame(void) const;

404 14 has_clip_frame 0 4 500 30 PGVirtualFrame::has_clip_frame 0 1 168 405
////////////////////////////////////////////////////////////////////
//     Function: PGVirtualFrame::has_clip_frame
//       Access: Published
//  Description: Returns true if the clip frame has been set; see
//               set_clip_frame().  If it has not been set, objects in
//               the virtual frame will not be clipped.
////////////////////////////////////////////////////////////////////
55
inline bool PGVirtualFrame::has_clip_frame(void) const;

405 16 clear_clip_frame 0 4 500 32 PGVirtualFrame::clear_clip_frame 0 1 169 311
////////////////////////////////////////////////////////////////////
//     Function: PGVirtualFrame::clear_clip_frame
//       Access: Published
//  Description: Removes the clip frame from the item.  This
//               disables clipping.
////////////////////////////////////////////////////////////////////
44
void PGVirtualFrame::clear_clip_frame(void);

406 20 set_canvas_transform 0 4 500 36 PGVirtualFrame::set_canvas_transform 0 1 170 380
////////////////////////////////////////////////////////////////////
//     Function: PGVirtualFrame::set_canvas_transform
//       Access: Published
//  Description: Changes the transform of the virtual canvas.  This
//               transform is applied to all child nodes of the
//               canvas_node.
////////////////////////////////////////////////////////////////////
82
inline void PGVirtualFrame::set_canvas_transform(TransformState const *transform);

407 20 get_canvas_transform 0 4 500 36 PGVirtualFrame::get_canvas_transform 0 1 171 380
////////////////////////////////////////////////////////////////////
//     Function: PGVirtualFrame::get_canvas_transform
//       Access: Published
//  Description: Returns the transform of the virtual canvas.  This
//               transform is applied to all child nodes of the
//               canvas_node.
////////////////////////////////////////////////////////////////////
78
inline TransformState const *PGVirtualFrame::get_canvas_transform(void) const;

408 15 get_canvas_node 0 4 500 31 PGVirtualFrame::get_canvas_node 0 1 172 338
////////////////////////////////////////////////////////////////////
//     Function: PGVirtualFrame::get_canvas_node
//       Access: Published
//  Description: Returns the special node that holds all of the
//               children that appear in the virtual canvas.
////////////////////////////////////////////////////////////////////
62
inline PandaNode *PGVirtualFrame::get_canvas_node(void) const;

409 17 get_canvas_parent 0 4 500 33 PGVirtualFrame::get_canvas_parent 0 1 173 276
////////////////////////////////////////////////////////////////////
//     Function: PGVirtualFrame::get_canvas_parent
//       Access: Published
//  Description: Returns the parent node of the canvas_node.
////////////////////////////////////////////////////////////////////
64
inline PandaNode *PGVirtualFrame::get_canvas_parent(void) const;

410 14 get_class_type 0 4 500 30 PGVirtualFrame::get_class_type 0 1 174 0
55
static TypeHandle PGVirtualFrame::get_class_type(void);

411 16 upcast_to_PGItem 0 12 501 29 PGSliderBar::upcast_to_PGItem 0 1 212 33
upcast from PGSliderBar to PGItem
44
PGItem *PGSliderBar::upcast_to_PGItem(void);

412 23 downcast_to_PGSliderBar 0 12 488 31 PGItem::downcast_to_PGSliderBar 0 1 213 35
downcast from PGItem to PGSliderBar
51
PGSliderBar *PGItem::downcast_to_PGSliderBar(void);

413 24 upcast_to_PGButtonNotify 0 12 501 37 PGSliderBar::upcast_to_PGButtonNotify 0 0 41
upcast from PGSliderBar to PGButtonNotify
60
PGButtonNotify *PGSliderBar::upcast_to_PGButtonNotify(void);

414 23 downcast_to_PGSliderBar 0 12 502 39 PGButtonNotify::downcast_to_PGSliderBar 0 0 43
downcast from PGButtonNotify to PGSliderBar
59
PGSliderBar *PGButtonNotify::downcast_to_PGSliderBar(void);

415 11 PGSliderBar 0 4 501 24 PGSliderBar::PGSliderBar 0 2 175 176 455
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::Copy Constructor
//       Access: Protected
//  Description: 
////////////////////////////////////////////////////////////////////
66
PGSliderBar::PGSliderBar(basic_string< char > const &name = (""));

416 12 ~PGSliderBar 0 6 501 25 PGSliderBar::~PGSliderBar 0 0 229
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::Destructor
//       Access: Public, Virtual
//  Description: 
////////////////////////////////////////////////////////////////////
40
virtual PGSliderBar::~PGSliderBar(void);

417 16 setup_scroll_bar 0 4 501 29 PGSliderBar::setup_scroll_bar 0 1 177 797
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::setup_scroll_bar
//       Access: Published
//  Description: Creates PGSliderBar that represents a vertical or
//               horizontal scroll bar (if vertical is true or false,
//               respectively), with additional buttons for scrolling,
//               and a range of 0 .. 1.
//
//               length here is the measurement along the scroll bar,
//               and width is the measurement across the scroll bar,
//               whether it is vertical or horizontal (so for a
//               horizontal scroll bar, the length is actually the x
//               dimension, and the width is the y dimension).
////////////////////////////////////////////////////////////////////
90
void PGSliderBar::setup_scroll_bar(bool vertical, float length, float width, float bevel);

418 12 setup_slider 0 4 501 25 PGSliderBar::setup_slider 0 1 178 454
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::setup_slider
//       Access: Published
//  Description: Creates PGSliderBar that represents a slider that the
//               user can use to control an analog quantity.
//
//               This is functionally the same as a scroll bar, but it
//               has a distinctive look.
////////////////////////////////////////////////////////////////////
86
void PGSliderBar::setup_slider(bool vertical, float length, float width, float bevel);

419 8 set_axis 0 4 501 21 PGSliderBar::set_axis 0 1 179 926
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::set_axis
//       Access: Published
//  Description: Specifies the axis of the slider bar's motion.  This
//               should be only one of four vectors: (1, 0, 0), (0, 0,
//               1), (-1, 0, 0), or (0, 0, -1).
//
//               This specifies the vector in which the thumb moves
//               when it is moving from the minimum to the maximum
//               value.
//
//               The axis must be parallel to one of the screen axes,
//               and it must be normalized.  Hence, it may only be one
//               of the above four possibilities; anything else is an
//               error and will result in indeterminate behavior.
//
//               Normally, you should not try to set the axis
//               directly.
////////////////////////////////////////////////////////////////////
57
inline void PGSliderBar::set_axis(LVector3f const &axis);

420 8 get_axis 0 4 501 21 PGSliderBar::get_axis 0 1 180 299
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::get_axis
//       Access: Published
//  Description: Returns the axis of the slider bar's motion.  See
//               set_axis().
////////////////////////////////////////////////////////////////////
58
inline LVector3f const &PGSliderBar::get_axis(void) const;

421 9 set_range 0 4 501 22 PGSliderBar::set_range 0 1 181 273
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::set_range
//       Access: Published
//  Description: Sets the minimum and maxmimum value for the slider.
////////////////////////////////////////////////////////////////////
69
inline void PGSliderBar::set_range(float min_value, float max_value);

422 13 get_min_value 0 4 501 26 PGSliderBar::get_min_value 0 1 182 304
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::get_min_value
//       Access: Published
//  Description: Returns the value when the slider is all the way to
//               the left.
////////////////////////////////////////////////////////////////////
52
inline float PGSliderBar::get_min_value(void) const;

423 13 get_max_value 0 4 501 26 PGSliderBar::get_max_value 0 1 183 305
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::get_max_value
//       Access: Published
//  Description: Returns the value when the slider is all the way to
//               the right.
////////////////////////////////////////////////////////////////////
52
inline float PGSliderBar::get_max_value(void) const;

424 15 set_scroll_size 0 4 501 28 PGSliderBar::set_scroll_size 0 1 184 337
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::set_scroll_size
//       Access: Published
//  Description: Specifies the amount the slider will move when the
//               user clicks on the left or right buttons.
////////////////////////////////////////////////////////////////////
60
inline void PGSliderBar::set_scroll_size(float scroll_size);

425 15 get_scroll_size 0 4 501 28 PGSliderBar::get_scroll_size 0 1 185 276
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::get_scroll_size
//       Access: Published
//  Description: Returns the value last set by set_scroll_size().
////////////////////////////////////////////////////////////////////
54
inline float PGSliderBar::get_scroll_size(void) const;

426 13 set_page_size 0 4 501 26 PGSliderBar::set_page_size 0 1 186 516
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::set_page_size
//       Access: Published
//  Description: Specifies the amount of data contained in a single
//               page.  This indicates how much the thumb will jump
//               when the trough is directly clicked; and if
//               resize_thumb is true, it also controls the visible
//               size of the thumb button.
////////////////////////////////////////////////////////////////////
56
inline void PGSliderBar::set_page_size(float page_size);

427 13 get_page_size 0 4 501 26 PGSliderBar::get_page_size 0 1 187 272
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::get_page_size
//       Access: Published
//  Description: Returns the value last set by set_page_size().
////////////////////////////////////////////////////////////////////
52
inline float PGSliderBar::get_page_size(void) const;

428 9 set_value 0 4 501 22 PGSliderBar::set_value 0 1 188 374
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::set_value
//       Access: Published
//  Description: Sets the current value of the slider
//               programmatically.  This should range between
//               get_min_value() and get_max_value().
////////////////////////////////////////////////////////////////////
48
inline void PGSliderBar::set_value(float value);

429 9 get_value 0 4 501 22 PGSliderBar::get_value 0 1 189 262
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::get_value
//       Access: Published
//  Description: Returns the current value of the slider.
////////////////////////////////////////////////////////////////////
48
inline float PGSliderBar::get_value(void) const;

430 9 set_ratio 0 4 501 22 PGSliderBar::set_ratio 0 1 190 307
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::set_ratio
//       Access: Published
//  Description: Sets the current value of the slider, expressed in
//               the range 0 .. 1.
////////////////////////////////////////////////////////////////////
48
inline void PGSliderBar::set_ratio(float ratio);

431 9 get_ratio 0 4 501 22 PGSliderBar::get_ratio 0 1 191 310
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::get_ratio
//       Access: Published
//  Description: Returns the current value of the slider, expressed in
//               the range 0 .. 1.
////////////////////////////////////////////////////////////////////
48
inline float PGSliderBar::get_ratio(void) const;

432 14 is_button_down 0 4 501 27 PGSliderBar::is_button_down 0 1 192 440
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::is_button_down
//       Access: Published
//  Description: Returns true if the user is currently holding down
//               the mouse button to manipulate the slider.  When
//               true, calls to set_ratio() or set_value() will have
//               no effect.
////////////////////////////////////////////////////////////////////
52
inline bool PGSliderBar::is_button_down(void) const;

433 16 set_resize_thumb 0 4 501 29 PGSliderBar::set_resize_thumb 0 1 193 480
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::set_resize_thumb
//       Access: Published
//  Description: Sets the resize_thumb flag.  When this is true, the
//               thumb button's frame will be adjusted so that its
//               width visually represents the page size.  When this
//               is false, the thumb button will be left alone.
////////////////////////////////////////////////////////////////////
61
inline void PGSliderBar::set_resize_thumb(bool resize_thumb);

434 16 get_resize_thumb 0 4 501 29 PGSliderBar::get_resize_thumb 0 1 194 301
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::get_resize_thumb
//       Access: Published
//  Description: Returns the resize_thumb flag.  See
//               set_resize_thumb().
////////////////////////////////////////////////////////////////////
54
inline bool PGSliderBar::get_resize_thumb(void) const;

435 17 set_manage_pieces 0 4 501 30 PGSliderBar::set_manage_pieces 0 1 195 531
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::set_manage_pieces
//       Access: Published
//  Description: Sets the manage_pieces flag.  When this is true, the
//               sub-pieces of the slider bar--that is, the thumb, and
//               the left and right scroll buttons--are automatically
//               positioned and/or resized when the slider bar's
//               overall frame is changed.
////////////////////////////////////////////////////////////////////
63
inline void PGSliderBar::set_manage_pieces(bool manage_pieces);

436 17 get_manage_pieces 0 4 501 30 PGSliderBar::get_manage_pieces 0 1 196 304
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::get_manage_pieces
//       Access: Published
//  Description: Returns the manage_pieces flag.  See
//               set_manage_pieces().
////////////////////////////////////////////////////////////////////
55
inline bool PGSliderBar::get_manage_pieces(void) const;

437 16 set_thumb_button 0 4 501 29 PGSliderBar::set_thumb_button 0 1 197 621
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::set_thumb_button
//       Access: Published
//  Description: Sets the PGButton object that will serve as the thumb
//               for this slider.  This button visually represents the
//               position of the slider, and can be dragged left and
//               right by the user.
//
//               It is the responsibility of the caller to ensure that
//               the button object is parented to the PGSliderBar
//               node.
////////////////////////////////////////////////////////////////////
66
inline void PGSliderBar::set_thumb_button(PGButton *thumb_button);

438 18 clear_thumb_button 0 4 501 31 PGSliderBar::clear_thumb_button 0 1 198 396
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::clear_thumb_button
//       Access: Published
//  Description: Removes the thumb button object from control of the
//               frame.  It is your responsibility to actually remove
//               or hide the button itself.
////////////////////////////////////////////////////////////////////
50
inline void PGSliderBar::clear_thumb_button(void);

439 16 get_thumb_button 0 4 501 29 PGSliderBar::get_thumb_button 0 1 199 334
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::get_thumb_button
//       Access: Published
//  Description: Returns the PGButton that serves as the thumb for
//               this slider, or NULL if it is not set.
////////////////////////////////////////////////////////////////////
59
inline PGButton *PGSliderBar::get_thumb_button(void) const;

440 15 set_left_button 0 4 501 28 PGSliderBar::set_left_button 0 1 200 637
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::set_left_button
//       Access: Published
//  Description: Sets the PGButton object that will serve as the left
//               scroll button for this slider.  This button is
//               optional; if present, the user can click on it to
//               move scroll_size units at a time to the left.
//
//               It is the responsibility of the caller to ensure that
//               the button object is parented to the PGSliderBar
//               node.
////////////////////////////////////////////////////////////////////
64
inline void PGSliderBar::set_left_button(PGButton *left_button);

441 17 clear_left_button 0 4 501 30 PGSliderBar::clear_left_button 0 1 201 394
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::clear_left_button
//       Access: Published
//  Description: Removes the left button object from control of the
//               frame.  It is your responsibility to actually remove
//               or hide the button itself.
////////////////////////////////////////////////////////////////////
49
inline void PGSliderBar::clear_left_button(void);

442 15 get_left_button 0 4 501 28 PGSliderBar::get_left_button 0 1 202 371
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::get_left_button
//       Access: Published
//  Description: Returns the PGButton that serves as the left scroll
//               button for this slider, if any, or NULL if it is not
//               set.
////////////////////////////////////////////////////////////////////
58
inline PGButton *PGSliderBar::get_left_button(void) const;

443 16 set_right_button 0 4 501 29 PGSliderBar::set_right_button 0 1 203 640
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::set_right_button
//       Access: Published
//  Description: Sets the PGButton object that will serve as the right
//               scroll button for this slider.  This button is
//               optional; if present, the user can click on it to
//               move scroll_size units at a time to the right.
//
//               It is the responsibility of the caller to ensure that
//               the button object is parented to the PGSliderBar
//               node.
////////////////////////////////////////////////////////////////////
66
inline void PGSliderBar::set_right_button(PGButton *right_button);

444 18 clear_right_button 0 4 501 31 PGSliderBar::clear_right_button 0 1 204 396
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::clear_right_button
//       Access: Published
//  Description: Removes the right button object from control of the
//               frame.  It is your responsibility to actually remove
//               or hide the button itself.
////////////////////////////////////////////////////////////////////
50
inline void PGSliderBar::clear_right_button(void);

445 16 get_right_button 0 4 501 29 PGSliderBar::get_right_button 0 1 205 373
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::get_right_button
//       Access: Published
//  Description: Returns the PGButton that serves as the right scroll
//               button for this slider, if any, or NULL if it is not
//               set.
////////////////////////////////////////////////////////////////////
59
inline PGButton *PGSliderBar::get_right_button(void) const;

446 17 get_adjust_prefix 0 4 501 30 PGSliderBar::get_adjust_prefix 0 1 206 428
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::get_adjust_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the adjust
//               event for all PGSliderBars.  The adjust event is the
//               concatenation of this string followed by get_id().
////////////////////////////////////////////////////////////////////
72
static inline basic_string< char > PGSliderBar::get_adjust_prefix(void);

447 16 get_adjust_event 0 4 501 29 PGSliderBar::get_adjust_event 0 1 207 376
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::get_adjust_event
//       Access: Published
//  Description: Returns the event name that will be thrown when the
//               slider bar value is adjusted by the user or
//               programmatically.
////////////////////////////////////////////////////////////////////
70
inline basic_string< char > PGSliderBar::get_adjust_event(void) const;

448 10 set_active 0 6 501 23 PGSliderBar::set_active 0 1 208 524
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::set_active
//       Access: Published, Virtual
//  Description: Sets whether the PGItem is active for mouse watching.
//               This is not necessarily related to the
//               active/inactive appearance of the item, which is
//               controlled by set_state(), but it does affect whether
//               it responds to mouse events.
////////////////////////////////////////////////////////////////////
50
virtual void PGSliderBar::set_active(bool active);

449 8 remanage 0 4 501 21 PGSliderBar::remanage 0 1 209 372
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::remanage
//       Access: Published
//  Description: Manages the position and size of the scroll bars and
//               the thumb.  Normally this should not need to be
//               called directly.
////////////////////////////////////////////////////////////////////
33
void PGSliderBar::remanage(void);

450 9 recompute 0 4 501 22 PGSliderBar::recompute 0 1 210 338
////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::recompute
//       Access: Published
//  Description: Recomputes the position and size of the thumb.
//               Normally this should not need to be called directly.
////////////////////////////////////////////////////////////////////
34
void PGSliderBar::recompute(void);

451 14 get_class_type 0 4 501 27 PGSliderBar::get_class_type 0 1 211 0
52
static TypeHandle PGSliderBar::get_class_type(void);

452 24 upcast_to_PGVirtualFrame 0 12 503 39 PGScrollFrame::upcast_to_PGVirtualFrame 0 1 235 43
upcast from PGScrollFrame to PGVirtualFrame
62
PGVirtualFrame *PGScrollFrame::upcast_to_PGVirtualFrame(void);

453 25 downcast_to_PGScrollFrame 0 12 500 41 PGVirtualFrame::downcast_to_PGScrollFrame 0 1 236 45
downcast from PGVirtualFrame to PGScrollFrame
63
PGScrollFrame *PGVirtualFrame::downcast_to_PGScrollFrame(void);

454 27 upcast_to_PGSliderBarNotify 0 12 503 42 PGScrollFrame::upcast_to_PGSliderBarNotify 0 0 46
upcast from PGScrollFrame to PGSliderBarNotify
68
PGSliderBarNotify *PGScrollFrame::upcast_to_PGSliderBarNotify(void);

455 25 downcast_to_PGScrollFrame 0 12 504 44 PGSliderBarNotify::downcast_to_PGScrollFrame 0 0 48
downcast from PGSliderBarNotify to PGScrollFrame
66
PGScrollFrame *PGSliderBarNotify::downcast_to_PGScrollFrame(void);

456 13 PGScrollFrame 0 4 503 28 PGScrollFrame::PGScrollFrame 0 2 214 215 459
////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::Copy Constructor
//       Access: Protected
//  Description: 
////////////////////////////////////////////////////////////////////
70
PGScrollFrame::PGScrollFrame(basic_string< char > const &name = (""));

457 14 ~PGScrollFrame 0 6 503 29 PGScrollFrame::~PGScrollFrame 0 0 231
////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::Destructor
//       Access: Public, Virtual
//  Description: 
////////////////////////////////////////////////////////////////////
44
virtual PGScrollFrame::~PGScrollFrame(void);

458 5 setup 0 4 503 20 PGScrollFrame::setup 0 1 216 325
////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::setup
//       Access: Published
//  Description: Creates a PGScrollFrame with the indicated 
//               dimensions, and the indicated virtual frame.
////////////////////////////////////////////////////////////////////
136
void PGScrollFrame::setup(float width, float height, float left, float right, float bottom, float top, float slider_width, float bevel);

459 17 set_virtual_frame 0 4 503 32 PGScrollFrame::set_virtual_frame 0 2 217 218 1321
// Filename: pgScrollFrame.I
// Created by:  drose (17Aug05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::set_virtual_frame
//       Access: Published
//  Description: Sets the bounding rectangle of the virtual frame.
//               This is the size of the large, virtual canvas which
//               we can see only a portion of at any given time.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::set_virtual_frame
//       Access: Published
//  Description: Sets the bounding rectangle of the virtual frame.
//               This is the size of the large, virtual canvas which
//               we can see only a portion of at any given time.
////////////////////////////////////////////////////////////////////
174
inline void PGScrollFrame::set_virtual_frame(float left, float right, float bottom, float top);
inline void PGScrollFrame::set_virtual_frame(LVecBase4f const &virtual_frame);

460 17 get_virtual_frame 0 4 503 32 PGScrollFrame::get_virtual_frame 0 1 219 413
////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::get_virtual_frame
//       Access: Published
//  Description: Returns the bounding rectangle of the virtual frame.
//               See set_virtual_frame().  If has_virtual_frame() is
//               false, this returns the item's clip frame.
////////////////////////////////////////////////////////////////////
70
inline LVecBase4f const &PGScrollFrame::get_virtual_frame(void) const;

461 17 has_virtual_frame 0 4 503 32 PGScrollFrame::has_virtual_frame 0 1 220 405
////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::has_virtual_frame
//       Access: Published
//  Description: Returns true if the virtual frame has a bounding
//               rectangle; see set_virtual_frame().  Most
//               PGScrollFrame objects will have a virtual frame.
////////////////////////////////////////////////////////////////////
57
inline bool PGScrollFrame::has_virtual_frame(void) const;

462 19 clear_virtual_frame 0 4 503 34 PGScrollFrame::clear_virtual_frame 0 1 221 441
////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::clear_virtual_frame
//       Access: Published
//  Description: Removes the virtual frame from the item.  This
//               effectively sets the virtual frame to the same size
//               as the clip frame.  Scrolling will no longer be
//               possible.
////////////////////////////////////////////////////////////////////
53
inline void PGScrollFrame::clear_virtual_frame(void);

463 17 set_manage_pieces 0 4 503 32 PGScrollFrame::set_manage_pieces 0 1 222 614
////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::set_manage_pieces
//       Access: Published
//  Description: Sets the manage_pieces flag.  When this is true, the
//               sub-pieces of the scroll frame--that is, the two
//               scroll bars--are automatically positioned and/or
//               resized when the scroll frame's overall frame is
//               changed.  They are also automatically resized to fill
//               in the gap when one or the other is hidden.
////////////////////////////////////////////////////////////////////
65
inline void PGScrollFrame::set_manage_pieces(bool manage_pieces);

464 17 get_manage_pieces 0 4 503 32 PGScrollFrame::get_manage_pieces 0 1 223 306
////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::get_manage_pieces
//       Access: Published
//  Description: Returns the manage_pieces flag.  See
//               set_manage_pieces().
////////////////////////////////////////////////////////////////////
57
inline bool PGScrollFrame::get_manage_pieces(void) const;

465 13 set_auto_hide 0 4 503 28 PGScrollFrame::set_auto_hide 0 1 224 652
////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::set_auto_hide
//       Access: Published
//  Description: Sets the auto_hide flag.  When this is true, the
//               two scroll bars are automatically hidden if they are
//               not needed (that is, if the virtual frame would fit
//               within the clip frame without them), and they are
//               automatically shown when they are needed.
//
//               Setting this flag true forces the manage_pieces flag
//               to also be set true.
////////////////////////////////////////////////////////////////////
57
inline void PGScrollFrame::set_auto_hide(bool auto_hide);

466 13 get_auto_hide 0 4 503 28 PGScrollFrame::get_auto_hide 0 1 225 294
////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::get_auto_hide
//       Access: Published
//  Description: Returns the auto_hide flag.  See
//               set_auto_hide().
////////////////////////////////////////////////////////////////////
53
inline bool PGScrollFrame::get_auto_hide(void) const;

467 21 set_horizontal_slider 0 4 503 36 PGScrollFrame::set_horizontal_slider 0 1 226 479
////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::set_horizontal_slider
//       Access: Published
//  Description: Sets the PGSliderBar object that will serve as the
//               horizontal scroll bar for this frame.  It is your
//               responsibility to parent this slider bar to the frame
//               and move it to the appropriate place.
////////////////////////////////////////////////////////////////////
81
inline void PGScrollFrame::set_horizontal_slider(PGSliderBar *horizontal_slider);

468 23 clear_horizontal_slider 0 4 503 38 PGScrollFrame::clear_horizontal_slider 0 1 227 405
////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::clear_horizontal_slider
//       Access: Published
//  Description: Removes the horizontal scroll bar from control of the
//               frame.  It is your responsibility to actually remove
//               or hide the object itself.
////////////////////////////////////////////////////////////////////
57
inline void PGScrollFrame::clear_horizontal_slider(void);

469 21 get_horizontal_slider 0 4 503 36 PGScrollFrame::get_horizontal_slider 0 1 228 384
////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::get_horizontal_slider
//       Access: Published
//  Description: Returns the PGSliderBar that serves as the horizontal
//               scroll bar for this frame, if any, or NULL if it is
//               not set.
////////////////////////////////////////////////////////////////////
69
inline PGSliderBar *PGScrollFrame::get_horizontal_slider(void) const;

470 19 set_vertical_slider 0 4 503 34 PGScrollFrame::set_vertical_slider 0 1 229 475
////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::set_vertical_slider
//       Access: Published
//  Description: Sets the PGSliderBar object that will serve as the
//               vertical scroll bar for this frame.  It is your
//               responsibility to parent this slider bar to the frame
//               and move it to the appropriate place.
////////////////////////////////////////////////////////////////////
77
inline void PGScrollFrame::set_vertical_slider(PGSliderBar *vertical_slider);

471 21 clear_vertical_slider 0 4 503 36 PGScrollFrame::clear_vertical_slider 0 1 230 401
////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::clear_vertical_slider
//       Access: Published
//  Description: Removes the vertical scroll bar from control of the
//               frame.  It is your responsibility to actually remove
//               or hide the object itself.
////////////////////////////////////////////////////////////////////
55
inline void PGScrollFrame::clear_vertical_slider(void);

472 19 get_vertical_slider 0 4 503 34 PGScrollFrame::get_vertical_slider 0 1 231 380
////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::get_vertical_slider
//       Access: Published
//  Description: Returns the PGSliderBar that serves as the vertical
//               scroll bar for this frame, if any, or NULL if it is
//               not set.
////////////////////////////////////////////////////////////////////
67
inline PGSliderBar *PGScrollFrame::get_vertical_slider(void) const;

473 8 remanage 0 4 503 23 PGScrollFrame::remanage 0 1 232 342
////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::remanage
//       Access: Published
//  Description: Manages the position and size of the scroll bars.
//               Normally this should not need to be called directly.
////////////////////////////////////////////////////////////////////
35
void PGScrollFrame::remanage(void);

474 9 recompute 0 4 503 24 PGScrollFrame::recompute 0 1 233 335
////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::recompute
//       Access: Published
//  Description: Forces the PGScrollFrame to recompute itself right
//               now.  Normally this should not be required.
////////////////////////////////////////////////////////////////////
43
inline void PGScrollFrame::recompute(void);

475 14 get_class_type 0 4 503 29 PGScrollFrame::get_class_type 0 1 234 0
54
static TypeHandle PGScrollFrame::get_class_type(void);

476 9 PGWaitBar 0 4 505 20 PGWaitBar::PGWaitBar 0 2 237 238 451
////////////////////////////////////////////////////////////////////
//     Function: PGWaitBar::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: PGWaitBar::Copy Constructor
//       Access: Protected
//  Description: 
////////////////////////////////////////////////////////////////////
62
PGWaitBar::PGWaitBar(basic_string< char > const &name = (""));

477 5 setup 0 4 505 16 PGWaitBar::setup 0 1 239 317
////////////////////////////////////////////////////////////////////
//     Function: PGWaitBar::setup
//       Access: Published
//  Description: Creates a PGWaitBar with the indicated dimensions,
//               with the indicated maximum range.
////////////////////////////////////////////////////////////////////
62
void PGWaitBar::setup(float width, float height, float range);

478 9 set_range 0 4 505 20 PGWaitBar::set_range 0 1 240 756
// Filename: pgWaitBar.I
// Created by:  drose (14Mar02)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: PGWaitBar::set_range
//       Access: Published
//  Description: Sets the value at which the WaitBar indicates 100%.
////////////////////////////////////////////////////////////////////
46
inline void PGWaitBar::set_range(float range);

479 9 get_range 0 4 505 20 PGWaitBar::get_range 0 1 241 274
////////////////////////////////////////////////////////////////////
//     Function: PGWaitBar::get_range
//       Access: Published
//  Description: Returns the value at which the WaitBar indicates 100%.
////////////////////////////////////////////////////////////////////
46
inline float PGWaitBar::get_range(void) const;

480 9 set_value 0 4 505 20 PGWaitBar::set_value 0 1 242 317
////////////////////////////////////////////////////////////////////
//     Function: PGWaitBar::set_value
//       Access: Published
//  Description: Sets the current value of the bar.  This should range
//               between 0 and get_range().
////////////////////////////////////////////////////////////////////
46
inline void PGWaitBar::set_value(float value);

481 9 get_value 0 4 505 20 PGWaitBar::get_value 0 1 243 257
////////////////////////////////////////////////////////////////////
//     Function: PGWaitBar::get_value
//       Access: Published
//  Description: Returns the current value of the bar.
////////////////////////////////////////////////////////////////////
46
inline float PGWaitBar::get_value(void) const;

482 11 get_percent 0 4 505 22 PGWaitBar::get_percent 0 1 244 254
////////////////////////////////////////////////////////////////////
//     Function: PGWaitBar::get_percent
//       Access: Published
//  Description: Returns the percentage complete.
////////////////////////////////////////////////////////////////////
48
inline float PGWaitBar::get_percent(void) const;

483 13 set_bar_style 0 4 505 24 PGWaitBar::set_bar_style 0 1 245 334
////////////////////////////////////////////////////////////////////
//     Function: PGWaitBar::set_bar_style
//       Access: Published
//  Description: Sets the kind of frame that is drawn on top of the
//               WaitBar to represent the amount completed.
////////////////////////////////////////////////////////////////////
64
inline void PGWaitBar::set_bar_style(PGFrameStyle const &style);

484 13 get_bar_style 0 4 505 24 PGWaitBar::get_bar_style 0 1 246 337
////////////////////////////////////////////////////////////////////
//     Function: PGWaitBar::get_bar_style
//       Access: Published
//  Description: Returns the kind of frame that is drawn on top of the
//               WaitBar to represent the amount completed.
////////////////////////////////////////////////////////////////////
57
inline PGFrameStyle PGWaitBar::get_bar_style(void) const;

485 14 get_class_type 0 4 505 25 PGWaitBar::get_class_type 0 1 247 0
50
static TypeHandle PGWaitBar::get_class_type(void);

247
1 14 Dtool_Q2_kfplg 0 7 2 506 250 14 Dtool_Q2_kfplg 713 // Filename: pgFrameStyle.I
// Created by:  drose (03Jul01)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 0 
2 14 Dtool_Q2_knhUl 0 7 2 506 250 14 Dtool_Q2_knhUl 230 ////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::Copy Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 1 4 copy 1 507  
3 14 Dtool_Q2_knTPY 0 6 3 506 0 14 Dtool_Q2_knTPY 238 ////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::Copy Assignment Operator
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 this 3 506  4 copy 1 507  
4 14 Dtool_Q2_kI8_1 0 4 6 509 0 14 Dtool_Q2_kI8_1 251 ////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::set_type
//       Access: Published
//  Description: Sets the basic type of frame.
//////////////////////////////////////////////////////////////////// 2 4 this 3 506  4 type 1 487  
5 14 Dtool_Q2_keRTB 0 6 7 487 0 14 Dtool_Q2_keRTB 254 ////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::get_type
//       Access: Published
//  Description: Returns the basic type of frame.
//////////////////////////////////////////////////////////////////// 1 4 this 3 507  
6 14 Dtool_Q2_krDgP 0 4 8 509 0 14 Dtool_Q2_krDgP 260 ////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::set_color
//       Access: Published
//  Description: Sets the dominant color of the frame.
//////////////////////////////////////////////////////////////////// 2 4 this 3 506  5 color 1 510  
7 14 Dtool_Q2_kKqux 0 4 8 509 0 14 Dtool_Q2_kKqux 260 ////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::set_color
//       Access: Published
//  Description: Sets the dominant color of the frame.
//////////////////////////////////////////////////////////////////// 5 4 this 3 506  1 r 1 513  1 g 1 513  1 b 1 513  1 a 1 513  
8 14 Dtool_Q2_karWM 0 7 9 514 0 14 Dtool_Q2_karWM 263 ////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::set_color
//       Access: Published
//  Description: Returns the dominant color of the frame.
//////////////////////////////////////////////////////////////////// 1 4 this 3 507  
9 14 Dtool_Q2_kiaIb 0 4 10 509 0 14 Dtool_Q2_kiaIb 298 ////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::set_texture
//       Access: Published
//  Description: Specifies a texture that should be applied to the
//               frame.
//////////////////////////////////////////////////////////////////// 2 4 this 3 506  7 texture 1 515  
10 14 Dtool_Q2_kJRv2 0 6 11 517 0 14 Dtool_Q2_kJRv2 298 ////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::has_texture
//       Access: Published
//  Description: Returns true if a texture has been applied to the
//               frame.
//////////////////////////////////////////////////////////////////// 1 4 this 3 507  
11 14 Dtool_Q2_kWoMM 0 7 12 515 0 14 Dtool_Q2_kWoMM 337 ////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::get_texture
//       Access: Published
//  Description: Returns the texture that has been applied to the
//               frame, or NULL if no texture has been applied.
//////////////////////////////////////////////////////////////////// 1 4 this 3 507  
12 14 Dtool_Q2_kqcTv 0 4 13 509 0 14 Dtool_Q2_kqcTv 262 ////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::clear_texture
//       Access: Published
//  Description: Removes the texture from the frame.
//////////////////////////////////////////////////////////////////// 1 4 this 3 506  
13 14 Dtool_Q2_kIq9R 0 4 14 509 0 14 Dtool_Q2_kIq9R 456 ////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::set_width
//       Access: Published
//  Description: Sets the width parameter, which has meaning only for
//               certain frame types.  For instance, this is the width
//               of the bevel for T_bevel_in or T_bevel_out.  The
//               units are in screen units.
//////////////////////////////////////////////////////////////////// 2 4 this 3 506  5 width 1 518  
14 14 Dtool_Q2_khZn4 0 4 14 509 0 14 Dtool_Q2_khZn4 456 ////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::set_width
//       Access: Published
//  Description: Sets the width parameter, which has meaning only for
//               certain frame types.  For instance, this is the width
//               of the bevel for T_bevel_in or T_bevel_out.  The
//               units are in screen units.
//////////////////////////////////////////////////////////////////// 3 4 this 3 506  1 x 1 513  1 y 1 513  
15 14 Dtool_Q2_kP9TS 0 6 15 518 0 14 Dtool_Q2_kP9TS 458 ////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::get_width
//       Access: Published
//  Description: Returns the width parameter, which has meaning only
//               for certain frame types.  For instance, this is the
//               width of the bevel for T_bevel_in or T_bevel_out.
//               The units are in screen units.
//////////////////////////////////////////////////////////////////// 1 4 this 3 507  
16 14 Dtool_Q2_kNlE_ 0 4 16 509 0 14 Dtool_Q2_kNlE_ 449 ////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::set_uv_width
//       Access: Published
//  Description: Sets the uv_width parameter, which indicates the
//               amount of the texture that is consumed by the inner
//               bevel--the width in texture space of the amount
//               indicated by set_width.
//////////////////////////////////////////////////////////////////// 2 4 this 3 506  8 uv_width 1 518  
17 14 Dtool_Q2_kCLCu 0 4 16 509 0 14 Dtool_Q2_kCLCu 449 ////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::set_uv_width
//       Access: Published
//  Description: Sets the uv_width parameter, which indicates the
//               amount of the texture that is consumed by the inner
//               bevel--the width in texture space of the amount
//               indicated by set_width.
//////////////////////////////////////////////////////////////////// 3 4 this 3 506  1 u 1 513  1 v 1 513  
18 14 Dtool_Q2_kf5aT 0 6 17 518 0 14 Dtool_Q2_kf5aT 245 ////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::get_uv_width
//       Access: Published
//  Description: See set_uv_width().
//////////////////////////////////////////////////////////////////// 1 4 this 3 507  
19 14 Dtool_Q2_kiysx 0 4 18 509 0 14 Dtool_Q2_kiysx 520 ////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::set_visible_scale
//       Access: Published
//  Description: Sets a scale factor on the visible representation of
//               the frame, in the X and Y directions.  If this scale
//               factor is other than 1, it will affect the size of
//               the visible frame representation within the actual
//               frame border.
//////////////////////////////////////////////////////////////////// 2 4 this 3 506  13 visible_scale 1 518  
20 14 Dtool_Q2_kJonR 0 4 18 509 0 14 Dtool_Q2_kJonR 520 ////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::set_visible_scale
//       Access: Published
//  Description: Sets a scale factor on the visible representation of
//               the frame, in the X and Y directions.  If this scale
//               factor is other than 1, it will affect the size of
//               the visible frame representation within the actual
//               frame border.
//////////////////////////////////////////////////////////////////// 3 4 this 3 506  1 x 1 513  1 y 1 513  
21 14 Dtool_Q2_kIBbc 0 6 19 518 0 14 Dtool_Q2_kIBbc 525 ////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::get_visible_scale
//       Access: Published
//  Description: Returns the scale factor on the visible
//               representation of the frame, in the X and Y
//               directions.  If this scale factor is other than 1, it
//               will affect the size of the visible frame
//               representation within the actual frame border.
//////////////////////////////////////////////////////////////////// 1 4 this 3 507  
22 14 Dtool_Q2_k4e3t 0 7 20 514 0 14 Dtool_Q2_k4e3t 487 ////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::get_internal_frame
//       Access: Published
//  Description: Computes the size of the internal frame, given the
//               indicated external frame, appropriate for this kind
//               of frame style.  This simply subtracts the border
//               width for those frame styles that include a border.
//////////////////////////////////////////////////////////////////// 2 4 this 3 507  5 frame 1 510  
23 14 Dtool_Q2_kp6gR 0 4 21 509 0 14 Dtool_Q2_kp6gR 220 ////////////////////////////////////////////////////////////////////
//     Function: PGFrameStyle::output
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 this 3 507  3 out 1 521  
24 14 Dtool_Q2_kuWRQ 0 7 24 524 0 14 Dtool_Q2_kuWRQ 219 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 1 4 name 1 523  
25 14 Dtool_Q2_kXab2 0 4 25 509 0 14 Dtool_Q2_kXab2 694 // Filename: pgItem.I
// Created by:  drose (13Mar02)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: PGItem::set_name
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 524  4 name 1 523  
26 14 Dtool_Q2_kfDEN 0 4 26 509 0 14 Dtool_Q2_kfDEN 537 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::set_frame
//       Access: Published
//  Description: Sets the bounding rectangle of the item, in local
//               coordinates.  This is the region on screen within
//               which the mouse will be considered to be within the
//               item.  Normally, it should correspond to the bounding
//               rectangle of the visible geometry of the item.
//////////////////////////////////////////////////////////////////// 2 4 this 3 524  5 frame 1 510  
27 14 Dtool_Q2_kblkh 0 4 26 509 0 14 Dtool_Q2_kblkh 537 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::set_frame
//       Access: Published
//  Description: Sets the bounding rectangle of the item, in local
//               coordinates.  This is the region on screen within
//               which the mouse will be considered to be within the
//               item.  Normally, it should correspond to the bounding
//               rectangle of the visible geometry of the item.
//////////////////////////////////////////////////////////////////// 5 4 this 3 524  4 left 1 513  5 right 1 513  6 bottom 1 513  3 top 1 513  
28 14 Dtool_Q2_kfpB8 0 6 27 510 0 14 Dtool_Q2_kfpB8 371 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_frame
//       Access: Published
//  Description: Returns the bounding rectangle of the item.  See
//               set_frame().  It is an error to call this if
//               has_frame() returns false.
//////////////////////////////////////////////////////////////////// 1 4 this 3 525  
29 14 Dtool_Q2_kYZs9 0 6 28 517 0 14 Dtool_Q2_kYZs9 301 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::has_frame
//       Access: Published
//  Description: Returns true if the item has a bounding rectangle;
//               see set_frame().
//////////////////////////////////////////////////////////////////// 1 4 this 3 525  
30 14 Dtool_Q2_kTDLq 0 4 29 509 0 14 Dtool_Q2_kTDLq 385 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::clear_frame
//       Access: Published
//  Description: Removes the bounding rectangle from the item.  It
//               will no longer be possible to position the mouse
//               within the item; see set_frame().
//////////////////////////////////////////////////////////////////// 1 4 this 3 524  
31 14 Dtool_Q2_k6vne 0 4 30 509 0 14 Dtool_Q2_k6vne 428 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::set_state
//       Access: Published
//  Description: Sets the "state" of this particular PGItem.  
//
//               The PGItem node will render as if it were the
//               subgraph assigned to the corresponding index via
//               set_state_def().
//////////////////////////////////////////////////////////////////// 2 4 this 3 524  5 state 1 527  
32 14 Dtool_Q2_k19g7 0 6 31 527 0 14 Dtool_Q2_k19g7 298 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_state
//       Access: Published
//  Description: Returns the "state" of this particular PGItem.  See
//               set_state().
//////////////////////////////////////////////////////////////////// 1 4 this 3 525  
33 14 Dtool_Q2_krA9v 0 4 32 509 0 14 Dtool_Q2_krA9v 519 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::set_active
//       Access: Published, Virtual
//  Description: Sets whether the PGItem is active for mouse watching.
//               This is not necessarily related to the
//               active/inactive appearance of the item, which is
//               controlled by set_state(), but it does affect whether
//               it responds to mouse events.
//////////////////////////////////////////////////////////////////// 2 4 this 3 524  6 active 1 517  
34 14 Dtool_Q2_kGMel 0 6 33 517 0 14 Dtool_Q2_kGMel 318 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_active
//       Access: Published
//  Description: Returns whether the PGItem is currently active for
//               mouse events.  See set_active().
//////////////////////////////////////////////////////////////////// 1 4 this 3 525  
35 14 Dtool_Q2_kXfx_ 0 4 34 509 0 14 Dtool_Q2_kXfx_ 717 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::set_focus
//       Access: Published, Virtual
//  Description: Sets whether the PGItem currently has keyboard focus.
//               This simply means that the item may respond to
//               keyboard events as well as to mouse events; precisely
//               what this means is up to the individual item.  
//
//               Only one PGItem in the world is allowed to have focus
//               at any given time.  Setting the focus on any other
//               item automatically disables the focus from the
//               previous item.
//////////////////////////////////////////////////////////////////// 2 4 this 3 524  5 focus 1 517  
36 14 Dtool_Q2_kPdFX 0 6 35 517 0 14 Dtool_Q2_kPdFX 319 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_focus
//       Access: Published
//  Description: Returns whether the PGItem currently has focus for
//               keyboard events.  See set_focus().
//////////////////////////////////////////////////////////////////// 1 4 this 3 525  
37 14 Dtool_Q2_kz__5 0 4 36 509 0 14 Dtool_Q2_kz__5 554 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::set_background_focus
//       Access: Published
//  Description: Sets the background_focus flag for this item.  When
//               background_focus is enabled, the item will receive
//               keypress events even if it is not in focus; in fact,
//               even if it is not onscreen.  Unlike normal focus,
//               many items may have background_focus simultaneously.
//////////////////////////////////////////////////////////////////// 2 4 this 3 524  5 focus 1 517  
38 14 Dtool_Q2_k6AEP 0 6 37 517 0 14 Dtool_Q2_k6AEP 328 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_background_focus
//       Access: Published
//  Description: Returns whether background_focus is currently
//               enabled.  See set_background_focus().
//////////////////////////////////////////////////////////////////// 1 4 this 3 525  
39 14 Dtool_Q2_kQIma 0 4 38 509 0 14 Dtool_Q2_kQIma 396 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::set_suppress_flags
//       Access: Published
//  Description: This is just an interface to set the suppress flags
//               on the underlying MouseWatcherRegion.  See
//               MouseWatcherRegion::set_suppress_flags().
//////////////////////////////////////////////////////////////////// 2 4 this 3 524  14 suppress_flags 1 527  
40 14 Dtool_Q2_ksd1r 0 6 39 527 0 14 Dtool_Q2_ksd1r 396 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_suppress_flags
//       Access: Published
//  Description: This is just an interface to get the suppress flags
//               on the underlying MouseWatcherRegion.  See
//               MouseWatcherRegion::get_suppress_flags().
//////////////////////////////////////////////////////////////////// 1 4 this 3 525  
41 14 Dtool_Q2_k_Z0S 0 6 40 527 0 14 Dtool_Q2_k_Z0S 619 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_num_state_defs
//       Access: Published
//  Description: Returns one more than the highest-numbered state def
//               that was ever assigned to the PGItem.  The complete
//               set of state defs assigned may then be retrieved by
//               indexing from 0 to (get_num_state_defs() - 1).
//
//               This is only an upper limit on the actual number of
//               state defs, since there may be holes in the list.
//////////////////////////////////////////////////////////////////// 1 4 this 3 525  
42 14 Dtool_Q2_kDziL 0 4 41 509 0 14 Dtool_Q2_kDziL 381 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::clear_state_def
//       Access: Published
//  Description: Resets the NodePath assigned to the indicated state
//               to its initial default, with only a frame
//               representation if appropriate.
//////////////////////////////////////////////////////////////////// 2 4 this 3 524  5 state 1 527  
43 14 Dtool_Q2_k526N 0 6 42 517 0 14 Dtool_Q2_k526N 404 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::has_state_def
//       Access: Published
//  Description: Returns true if get_state_def() has ever been called
//               for the indicated state (thus defining a render
//               subgraph for this state index), false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 525  5 state 1 527  
44 14 Dtool_Q2_k_yvN 0 6 43 528 0 14 Dtool_Q2_k_yvN 468 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_state_def
//       Access: Published
//  Description: Returns the Node that is the root of the subgraph
//               that will be drawn when the PGItem is in the
//               indicated state.  The first time this is called for a
//               particular state index, it may create the Node.
//////////////////////////////////////////////////////////////////// 2 4 this 3 524  5 state 1 527  
45 14 Dtool_Q2_kQ1k9 0 7 44 528 0 14 Dtool_Q2_kQ1k9 340 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::instance_to_state_def
//       Access: Published
//  Description: Parents an instance of the bottom node of the
//               indicated NodePath to the indicated state index.
//////////////////////////////////////////////////////////////////// 3 4 this 3 524  5 state 1 527  4 path 1 530  
46 14 Dtool_Q2_k3KSW 0 7 45 506 250 14 Dtool_Q2_k3KSW 335 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_frame_style
//       Access: Published
//  Description: Returns the kind of frame that will be drawn behind
//               the item when it is in the indicated state.
//////////////////////////////////////////////////////////////////// 2 4 this 3 524  5 state 1 527  
47 14 Dtool_Q2_kOzMg 0 4 46 509 0 14 Dtool_Q2_kOzMg 335 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::set_frame_style
//       Access: Published
//  Description: Changes the kind of frame that will be drawn behind
//               the item when it is in the indicated state.
//////////////////////////////////////////////////////////////////// 3 4 this 3 524  5 state 1 527  5 style 1 507  
48 14 Dtool_Q2_kVj1_ 0 6 47 523 0 14 Dtool_Q2_kVj1_ 426 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_id
//       Access: Published
//  Description: Returns the unique ID assigned to this PGItem.  This
//               will be assigned to the region created with the
//               MouseWatcher, and will thus be used to generate event
//               names.
//////////////////////////////////////////////////////////////////// 1 4 this 3 525  
49 14 Dtool_Q2_kDlim 0 4 48 509 0 14 Dtool_Q2_kDlim 654 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::set_id
//       Access: Published
//  Description: Set the unique ID assigned to this PGItem.  It is the
//               user's responsibility to ensure that this ID is
//               unique.
//
//               Normally, this should not need to be called, as the
//               PGItem will assign itself an ID when it is created,
//               but this function allows the user to decide to
//               redefine the ID to be something possibly more
//               meaningful.
//////////////////////////////////////////////////////////////////// 2 4 this 3 524  2 id 1 523  
50 14 Dtool_Q2_kjBNc 0 6 49 523 0 14 Dtool_Q2_kjBNc 415 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_enter_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the enter
//               event for all PGItems.  The enter event is the
//               concatenation of this string followed by get_id().
//////////////////////////////////////////////////////////////////// 0 
51 14 Dtool_Q2_kKWYV 0 6 50 523 0 14 Dtool_Q2_kKWYV 412 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_exit_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the exit
//               event for all PGItems.  The exit event is the
//               concatenation of this string followed by get_id().
//////////////////////////////////////////////////////////////////// 0 
52 14 Dtool_Q2_km_4t 0 6 51 523 0 14 Dtool_Q2_km_4t 418 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_within_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the within
//               event for all PGItems.  The within event is the
//               concatenation of this string followed by get_id().
//////////////////////////////////////////////////////////////////// 0 
53 14 Dtool_Q2_ke6SQ 0 6 52 523 0 14 Dtool_Q2_ke6SQ 421 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_without_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the without
//               event for all PGItems.  The without event is the
//               concatenation of this string followed by get_id().
//////////////////////////////////////////////////////////////////// 0 
54 14 Dtool_Q2_kocSU 0 6 53 523 0 14 Dtool_Q2_kocSU 527 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_focus_in_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the focus_in
//               event for all PGItems.  The focus_in event is the
//               concatenation of this string followed by get_id().
//
//               Unlike most item events, this event is thrown with no
//               parameters.
//////////////////////////////////////////////////////////////////// 0 
55 14 Dtool_Q2_kAosI 0 6 54 523 0 14 Dtool_Q2_kAosI 530 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_focus_out_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the focus_out
//               event for all PGItems.  The focus_out event is the
//               concatenation of this string followed by get_id().
//
//               Unlike most item events, this event is thrown with no
//               parameters.
//////////////////////////////////////////////////////////////////// 0 
56 14 Dtool_Q2_kKHW8 0 6 55 523 0 14 Dtool_Q2_kKHW8 472 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_press_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the press
//               event for all PGItems.  The press event is the
//               concatenation of this string followed by a button
//               name, followed by a hyphen and get_id().
//////////////////////////////////////////////////////////////////// 0 
57 14 Dtool_Q2_kF9Hb 0 6 56 523 0 14 Dtool_Q2_kF9Hb 475 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_repeat_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the repeat
//               event for all PGItems.  The repeat event is the
//               concatenation of this string followed by a button
//               name, followed by a hyphen and get_id().
//////////////////////////////////////////////////////////////////// 0 
58 14 Dtool_Q2_klGfV 0 6 57 523 0 14 Dtool_Q2_klGfV 478 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_release_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the release
//               event for all PGItems.  The release event is the
//               concatenation of this string followed by a button
//               name, followed by a hyphen and get_id().
//////////////////////////////////////////////////////////////////// 0 
59 14 Dtool_Q2_kjmbk 0 6 58 523 0 14 Dtool_Q2_kjmbk 457 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_keystroke_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the
//               keystroke event for all PGItems.  The keystroke event
//               is the concatenation of this string followed by a
//               hyphen and get_id().
//////////////////////////////////////////////////////////////////// 0 
60 14 Dtool_Q2_kWeD9 0 6 59 523 0 14 Dtool_Q2_kWeD9 382 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_enter_event
//       Access: Published
//  Description: Returns the event name that will be thrown when the
//               item is active and the mouse enters its frame, but
//               not any nested frames.
//////////////////////////////////////////////////////////////////// 1 4 this 3 525  
61 14 Dtool_Q2_kt5Yg 0 6 60 523 0 14 Dtool_Q2_kt5Yg 379 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_exit_event
//       Access: Published
//  Description: Returns the event name that will be thrown when the
//               item is active and the mouse exits its frame, or
//               enters a nested frame.
//////////////////////////////////////////////////////////////////// 1 4 this 3 525  
62 14 Dtool_Q2_kjAdJ 0 6 61 523 0 14 Dtool_Q2_kjAdJ 545 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_within_event
//       Access: Published
//  Description: Returns the event name that will be thrown when the
//               item is active and the mouse moves within the
//               boundaries of the frame.  This is different from the
//               enter_event in that the mouse is considered within
//               the frame even if it is also within a nested frame.
//////////////////////////////////////////////////////////////////// 1 4 this 3 525  
63 14 Dtool_Q2_kXN7D 0 6 62 523 0 14 Dtool_Q2_kXN7D 574 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_without_event
//       Access: Published
//  Description: Returns the event name that will be thrown when the
//               item is active and the mouse moves completely outside
//               the boundaries of the frame.  This is different from
//               the exit_event in that the mouse is considered
//               within the frame even if it is also within a nested
//               frame.
//////////////////////////////////////////////////////////////////// 1 4 this 3 525  
64 14 Dtool_Q2_k9R_I 0 6 63 523 0 14 Dtool_Q2_k9R_I 324 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_focus_in_event
//       Access: Published
//  Description: Returns the event name that will be thrown when the
//               item gets the keyboard focus.
//////////////////////////////////////////////////////////////////// 1 4 this 3 525  
65 14 Dtool_Q2_kdwwe 0 6 64 523 0 14 Dtool_Q2_kdwwe 326 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_focus_out_event
//       Access: Published
//  Description: Returns the event name that will be thrown when the
//               item loses the keyboard focus.
//////////////////////////////////////////////////////////////////// 1 4 this 3 525  
66 14 Dtool_Q2_kKP2p 0 6 65 523 0 14 Dtool_Q2_kKP2p 433 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_press_event
//       Access: Published
//  Description: Returns the event name that will be thrown when the
//               item is active and the indicated mouse or keyboard
//               button is depressed while the mouse is within the
//               frame.
//////////////////////////////////////////////////////////////////// 2 4 this 3 525  6 button 1 532  
67 14 Dtool_Q2_kncVN 0 6 66 523 0 14 Dtool_Q2_kncVN 447 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_repeat_event
//       Access: Published
//  Description: Returns the event name that will be thrown when the
//               item is active and the indicated mouse or keyboard
//               button is continuously held down while the mouse is
//               within the frame.
//////////////////////////////////////////////////////////////////// 2 4 this 3 525  6 button 1 532  
68 14 Dtool_Q2_ks5_d 0 6 67 523 0 14 Dtool_Q2_ks5_d 442 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_release_event
//       Access: Published
//  Description: Returns the event name that will be thrown when the
//               item is active and the indicated mouse or keyboard
//               button, formerly clicked down is within the frame, is
//               released.
//////////////////////////////////////////////////////////////////// 2 4 this 3 525  6 button 1 532  
69 14 Dtool_Q2_kuXe6 0 6 68 523 0 14 Dtool_Q2_kuXe6 346 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_keystroke_event
//       Access: Published
//  Description: Returns the event name that will be thrown when the
//               item is active and any key is pressed by the user.
//////////////////////////////////////////////////////////////////// 1 4 this 3 525  
70 14 Dtool_Q2_kRwfE 0 7 69 536 0 14 Dtool_Q2_kRwfE 284 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_frame_inv_xform
//       Access: Published, Static
//  Description: Returns the inverse of the frame transform matrix
//////////////////////////////////////////////////////////////////// 1 4 this 3 525  
71 14 Dtool_Q2_knEhS 0 4 70 509 0 14 Dtool_Q2_knEhS 305 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::set_sound
//       Access: Published
//  Description: Sets the sound that will be played whenever the
//               indicated event occurs.
//////////////////////////////////////////////////////////////////// 3 4 this 3 524  5 event 1 523  5 sound 1 537  
72 14 Dtool_Q2_kNJW1 0 4 71 509 0 14 Dtool_Q2_kNJW1 290 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::clear_sound
//       Access: Published
//  Description: Removes the sound associated with the indicated
//               event.
//////////////////////////////////////////////////////////////////// 2 4 this 3 524  5 event 1 523  
73 14 Dtool_Q2_khCA4 0 7 72 537 0 14 Dtool_Q2_khCA4 329 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_sound
//       Access: Published
//  Description: Returns the sound associated with the indicated
//               event, or NULL if there is no associated sound.
//////////////////////////////////////////////////////////////////// 2 4 this 3 525  5 event 1 523  
74 14 Dtool_Q2_ksdq5 0 6 73 517 0 14 Dtool_Q2_ksdq5 323 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::has_sound
//       Access: Published
//  Description: Returns true if there is a sound associated with the
//               indicated event, or false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 525  5 event 1 523  
75 14 Dtool_Q2_kLv2y 0 7 74 540 0 14 Dtool_Q2_kLv2y 427 // HAVE_AUDIO
////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_text_node
//       Access: Published, Static
//  Description: Returns the TextNode object that will be used by all
//               PGItems to generate default labels given a string.
//               This can be loaded with the default font, etc.
//////////////////////////////////////////////////////////////////// 0 
76 14 Dtool_Q2_ksbIh 0 4 75 509 0 14 Dtool_Q2_ksbIh 413 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::set_text_node
//       Access: Published, Static
//  Description: Changes the TextNode object that will be used by all
//               PGItems to generate default labels given a string.
//               This can be loaded with the default font, etc.
//////////////////////////////////////////////////////////////////// 1 4 node 1 540  
77 14 Dtool_Q2_kYwJY 0 7 76 524 0 14 Dtool_Q2_kYwJY 486 ////////////////////////////////////////////////////////////////////
//     Function: PGItem::get_focus_item
//       Access: Published, Static
//  Description: Returns the one PGItem in the world that currently
//               has keyboard focus, if any, or NULL if no item has
//               keyboard focus.  Use PGItem::set_focus() to activate
//               or deactivate keyboard focus on a particular item.
//////////////////////////////////////////////////////////////////// 0 
78 14 Dtool_Q2_kHSTl 0 7 77 542 0 14 Dtool_Q2_kHSTl 0 0 
79 14 Dtool_Q2_kXygN 0 7 79 543 0 14 Dtool_Q2_kXygN 221 ////////////////////////////////////////////////////////////////////
//     Function: PGButton::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 1 4 name 1 523  
80 14 Dtool_Q2_kpw8O 0 4 81 509 0 14 Dtool_Q2_kpw8O 302 ////////////////////////////////////////////////////////////////////
//     Function: PGButton::setup
//       Access: Published
//  Description: Sets up the button using the indicated NodePath as
//               arbitrary geometry.
//////////////////////////////////////////////////////////////////// 2 4 this 3 543  5 ready 1 530  
81 14 Dtool_Q2_kBoE3 0 4 81 509 0 14 Dtool_Q2_kBoE3 302 ////////////////////////////////////////////////////////////////////
//     Function: PGButton::setup
//       Access: Published
//  Description: Sets up the button using the indicated NodePath as
//               arbitrary geometry.
//////////////////////////////////////////////////////////////////// 3 4 this 3 543  5 ready 1 530  9 depressed 1 530  
82 14 Dtool_Q2_k8enX 0 4 81 509 0 14 Dtool_Q2_k8enX 302 ////////////////////////////////////////////////////////////////////
//     Function: PGButton::setup
//       Access: Published
//  Description: Sets up the button using the indicated NodePath as
//               arbitrary geometry.
//////////////////////////////////////////////////////////////////// 4 4 this 3 543  5 ready 1 530  9 depressed 1 530  8 rollover 1 530  
83 14 Dtool_Q2_kNB5Z 0 4 81 509 0 14 Dtool_Q2_kNB5Z 302 ////////////////////////////////////////////////////////////////////
//     Function: PGButton::setup
//       Access: Published
//  Description: Sets up the button using the indicated NodePath as
//               arbitrary geometry.
//////////////////////////////////////////////////////////////////// 5 4 this 3 543  5 ready 1 530  9 depressed 1 530  8 rollover 1 530  8 inactive 1 530  
84 14 Dtool_Q2_k402k 0 4 81 509 0 14 Dtool_Q2_k402k 525 ////////////////////////////////////////////////////////////////////
//     Function: PGButton::setup
//       Access: Published
//  Description: Sets up the button as a default text button using the
//               indicated label string.  The TextNode defined by
//               PGItem::get_text_node() will be used to create the
//               label geometry.  This automatically sets up the frame
//               according to the size of the text.
//////////////////////////////////////////////////////////////////// 3 4 this 3 543  5 label 1 523  5 bevel 1 513  
85 14 Dtool_Q2_kYvE_ 0 4 81 509 0 14 Dtool_Q2_kYvE_ 525 ////////////////////////////////////////////////////////////////////
//     Function: PGButton::setup
//       Access: Published
//  Description: Sets up the button as a default text button using the
//               indicated label string.  The TextNode defined by
//               PGItem::get_text_node() will be used to create the
//               label geometry.  This automatically sets up the frame
//               according to the size of the text.
//////////////////////////////////////////////////////////////////// 2 4 this 3 543  5 label 1 523  
86 14 Dtool_Q2_kGBUK 0 6 82 517 0 14 Dtool_Q2_kGBUK 484 ////////////////////////////////////////////////////////////////////
//     Function: PGButton::add_click_button
//       Access: Published
//  Description: Adds the indicated button to the set of buttons that
//               can effectively "click" the PGButton.  Normally, this
//               is just MouseButton::one().  Returns true if the
//               button was added, or false if it was already there.
//////////////////////////////////////////////////////////////////// 2 4 this 3 543  6 button 1 532  
87 14 Dtool_Q2_k7S68 0 6 83 517 0 14 Dtool_Q2_k7S68 512 ////////////////////////////////////////////////////////////////////
//     Function: PGButton::remove_click_button
//       Access: Published
//  Description: Removes the indicated button from the set of buttons
//               that can effectively "click" the PGButton.  Normally,
//               this is just MouseButton::one().  Returns true if the
//               button was removed, or false if it was not in the
//               set.
//////////////////////////////////////////////////////////////////// 2 4 this 3 543  6 button 1 532  
88 14 Dtool_Q2_kYiLX 0 6 84 517 0 14 Dtool_Q2_kYiLX 407 ////////////////////////////////////////////////////////////////////
//     Function: PGButton::has_click_button
//       Access: Published
//  Description: Returns true if the indicated button is on the set of
//               buttons that can effectively "click" the PGButton.
//               Normally, this is just MouseButton::one().
//////////////////////////////////////////////////////////////////// 2 4 this 3 543  6 button 1 532  
89 14 Dtool_Q2_kxDul 0 6 85 517 0 14 Dtool_Q2_kxDul 340 ////////////////////////////////////////////////////////////////////
//     Function: PGButton::is_button_down
//       Access: Published
//  Description: Returns true if the user is currently holding the
//               mouse button down on the button, false otherwise.
//////////////////////////////////////////////////////////////////// 1 4 this 3 543  
90 14 Dtool_Q2_kh0Du 0 6 86 523 0 14 Dtool_Q2_kh0Du 419 ////////////////////////////////////////////////////////////////////
//     Function: PGButton::get_click_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the click
//               event for all PGButtons.  The click event is the
//               concatenation of this string followed by get_id().
//////////////////////////////////////////////////////////////////// 0 
91 14 Dtool_Q2_kZ0l2 0 6 87 523 0 14 Dtool_Q2_kZ0l2 321 ////////////////////////////////////////////////////////////////////
//     Function: PGButton::get_click_event
//       Access: Published
//  Description: Returns the event name that will be thrown when the
//               button is clicked normally.
//////////////////////////////////////////////////////////////////// 2 4 this 3 544  6 button 1 532  
92 14 Dtool_Q2_kj_dU 0 7 88 542 0 14 Dtool_Q2_kj_dU 0 0 
93 14 Dtool_Q2_k0dnl 0 7 90 546 0 14 Dtool_Q2_k0dnl 218 ////////////////////////////////////////////////////////////////////
//     Function: PGTop::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 1 4 name 1 523  
94 14 Dtool_Q2_k7YJ9 0 4 91 509 0 14 Dtool_Q2_k7YJ9 388 ////////////////////////////////////////////////////////////////////
//     Function: PGTop::set_mouse_watcher
//       Access: Published
//  Description: Sets the MouseWatcher pointer that the PGTop object
//               registers its PG items with.  This must be set before
//               the PG items are active.
//////////////////////////////////////////////////////////////////// 2 4 this 3 546  7 watcher 1 547  
95 14 Dtool_Q2_klICk 0 7 92 547 0 14 Dtool_Q2_klICk 391 ////////////////////////////////////////////////////////////////////
//     Function: PGTop::get_mouse_watcher
//       Access: Published
//  Description: Returns the MouseWatcher pointer that the PGTop object
//               registers its PG items with, or NULL if the
//               MouseWatcher has not yet been set.
//////////////////////////////////////////////////////////////////// 1 4 this 3 549  
96 14 Dtool_Q2_kNgvX 0 7 93 552 0 14 Dtool_Q2_kNgvX 388 ////////////////////////////////////////////////////////////////////
//     Function: PGTop::get_group
//       Access: Published
//  Description: Returns the MouseWatcherGroup pointer that the PGTop
//               object registers its PG items with, or NULL if the
//               MouseWatcher has not yet been set.
//////////////////////////////////////////////////////////////////// 1 4 this 3 549  
97 14 Dtool_Q2_kiqSM 0 4 94 509 0 14 Dtool_Q2_kiqSM 1044 ////////////////////////////////////////////////////////////////////
//     Function: PGTop::set_start_sort
//       Access: Published
//  Description: Specifies the sort index that is assigned during the
//               traversal to the first PGItem that is discovered
//               during traversal.  Subsequent PGItems will be
//               assigned consecutively higher sort indexes.
//
//               This number is used by the MouseWatcher system to
//               rank the clickable mouse regions in the same order in
//               which the items are rendered, so that items on top
//               will receive mouse priority.
//
//               Normally, it makes the most sense to leave this
//               initial value at its default value of 0, unless you
//               need the PGItems to have a particular sort value with
//               respect to some other objects in the scene
//               (particularly with a second PGTop node).
//////////////////////////////////////////////////////////////////// 2 4 this 3 546  10 start_sort 1 527  
98 14 Dtool_Q2_kyCvK 0 6 95 527 0 14 Dtool_Q2_kyCvK 395 ////////////////////////////////////////////////////////////////////
//     Function: PGTop::get_start_sort
//       Access: Published
//  Description: Returns the sort index that is assigned during the
//               traversal to the first PGItem that is discovered
//               during traversal.  See set_start_sort().
//////////////////////////////////////////////////////////////////// 1 4 this 3 549  
99 14 Dtool_Q2_kZr4x 0 7 96 542 0 14 Dtool_Q2_kZr4x 0 0 
100 14 Dtool_Q2_koxCL 0 7 98 553 0 14 Dtool_Q2_koxCL 220 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 1 4 name 1 523  
101 14 Dtool_Q2_kiwtL 0 4 100 509 0 14 Dtool_Q2_kiwtL 538 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::setup
//       Access: Published
//  Description: Sets up the entry for normal use.  The width is the
//               maximum width of characters that will be typed, and
//               num_lines is the integer number of lines of text of
//               the entry.  Both of these together determine the size
//               of the entry, based on the TextNode in effect.
//////////////////////////////////////////////////////////////////// 3 4 this 3 553  5 width 1 513  9 num_lines 1 527  
102 14 Dtool_Q2_k9rmO 0 4 101 509 0 14 Dtool_Q2_k9rmO 304 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::setup_minimal
//       Access: Published
//  Description: Sets up the entry without creating any frame or other
//               decoration.
//////////////////////////////////////////////////////////////////// 3 4 this 3 553  5 width 1 513  9 num_lines 1 527  
103 14 Dtool_Q2_kAMDl 0 6 102 517 0 14 Dtool_Q2_kAMDl 1113 // Filename: pgEntry.I
// Created by:  drose (13Mar02)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: PGEntry::set_text
//       Access: Published
//  Description: Changes the text currently displayed within the
//               entry.  This uses the Unicode encoding currently
//               specified for the "focus" TextNode; therefore, the
//               TextNode must exist before calling set_text().
//
//               The return value is true if all the text is accepted,
//               or false if some was truncated (see set_max_width(),
//               etc.).
//////////////////////////////////////////////////////////////////// 2 4 this 3 553  4 text 1 523  
104 14 Dtool_Q2_kVD0S 0 6 103 523 0 14 Dtool_Q2_kVD0S 531 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_plain_text
//       Access: Published
//  Description: Returns the text currently displayed within the
//               entry, without any embedded properties characters.
//
//               This uses the Unicode encoding currently specified
//               for the "focus" TextNode; therefore, the TextNode
//               must exist before calling get_text().
//////////////////////////////////////////////////////////////////// 1 4 this 3 554  
105 14 Dtool_Q2_k_QSc 0 6 104 523 0 14 Dtool_Q2_k_QSc 462 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_text
//       Access: Published
//  Description: Returns the text currently displayed within the
//               entry.  This uses the Unicode encoding currently
//               specified for the "focus" TextNode; therefore, the
//               TextNode must exist before calling get_text().
//////////////////////////////////////////////////////////////////// 1 4 this 3 554  
106 14 Dtool_Q2_kqFeb 0 6 105 527 0 14 Dtool_Q2_kqFeb 699 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_num_characters
//       Access: Published
//  Description: Returns the number of characters of text in the
//               entry.  This is the actual number of visible
//               characters, not counting implicit newlines due to
//               wordwrapping, or formatted characters for text
//               properties changes.  If there is an embedded
//               TextGraphic object, it counts as one character.
//
//               This is also the length of the string returned by
//               get_plain_text().
//////////////////////////////////////////////////////////////////// 1 4 this 3 554  
107 14 Dtool_Q2_k74Re 0 6 106 556 0 14 Dtool_Q2_k74Re 404 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_character
//       Access: Published
//  Description: Returns the character at the indicated position in
//               the entry.  If the object at this position is a
//               graphic object instead of a character, returns 0.
//////////////////////////////////////////////////////////////////// 2 4 this 3 554  1 n 1 527  
108 14 Dtool_Q2_khLZi 0 6 107 557 0 14 Dtool_Q2_khLZi 444 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_graphic
//       Access: Published
//  Description: Returns the graphic object at the indicated position
//               in the pre-wordwrapped string.  If the object at this
//               position is a character instead of a graphic object,
//               returns NULL.
//////////////////////////////////////////////////////////////////// 2 4 this 3 554  1 n 1 527  
109 14 Dtool_Q2_kejuP 0 6 108 560 0 14 Dtool_Q2_kejuP 365 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_properties
//       Access: Published
//  Description: Returns the TextProperties in effect for the object
//               at the indicated position in the pre-wordwrapped
//               string.
//////////////////////////////////////////////////////////////////// 2 4 this 3 554  1 n 1 527  
110 14 Dtool_Q2_klsp8 0 4 109 509 0 14 Dtool_Q2_klsp8 469 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::set_cursor_position
//       Access: Published
//  Description: Sets the current position of the cursor.  This is the
//               position within the text at which the next letter
//               typed by the user will be inserted; normally it is
//               the same as the length of the text.
//////////////////////////////////////////////////////////////////// 2 4 this 3 553  8 position 1 527  
111 14 Dtool_Q2_k1AtR 0 6 110 527 0 14 Dtool_Q2_k1AtR 271 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_cursor_position
//       Access: Published
//  Description: Returns the current position of the cursor.
//////////////////////////////////////////////////////////////////// 1 4 this 3 554  
112 14 Dtool_Q2_kI2lh 0 6 111 513 0 14 Dtool_Q2_kI2lh 262 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_cursor_X
//       Access: Published
//  Description: Returns the node position x of the cursor
//////////////////////////////////////////////////////////////////// 1 4 this 3 554  
113 14 Dtool_Q2_kYQ4h 0 6 112 513 0 14 Dtool_Q2_kYQ4h 262 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_cursor_y
//       Access: Published
//  Description: Returns the node position y of the cursor
//////////////////////////////////////////////////////////////////// 1 4 this 3 554  
114 14 Dtool_Q2_knPHw 0 4 113 509 0 14 Dtool_Q2_knPHw 507 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::set_max_chars
//       Access: Published
//  Description: Sets the maximum number of characters that may be
//               typed into the entry.  This is a limit on the number
//               of characters, as opposed to the width of the entry;
//               see also set_max_width().
//
//               If this is 0, there is no limit.
//////////////////////////////////////////////////////////////////// 2 4 this 3 553  9 max_chars 1 527  
115 14 Dtool_Q2_k_r6z 0 6 114 527 0 14 Dtool_Q2_k_r6z 387 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_max_chars
//       Access: Published
//  Description: Returns the current maximum number of characters that
//               may be typed into the entry, or 0 if there is no
//               limit.  See set_max_chars().
//////////////////////////////////////////////////////////////////// 1 4 this 3 554  
116 14 Dtool_Q2_kKWva 0 4 115 509 0 14 Dtool_Q2_kKWva 790 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::set_max_width
//       Access: Published
//  Description: Sets the maximum width of all characters that may be
//               typed into the entry.  This is a limit on the width
//               of the formatted text, not a fixed limit on the
//               number of characters; also set_max_chars().
//
//               If this is 0, there is no limit.
//
//               If _num_lines is more than 1, rather than being a
//               fixed width on the whole entry, this becomes instead
//               the wordwrap width (and the width limit on the entry
//               is essentially _max_width * _num_lines).
//////////////////////////////////////////////////////////////////// 2 4 this 3 553  9 max_width 1 513  
117 14 Dtool_Q2_kXxhk 0 6 116 513 0 14 Dtool_Q2_kXxhk 390 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_max_width
//       Access: Published
//  Description: Returns the current maximum width of the characters
//               that may be typed into the entry, or 0 if there is no
//               limit.  See set_max_width().
//////////////////////////////////////////////////////////////////// 1 4 this 3 554  
118 14 Dtool_Q2_kTDLT 0 4 117 509 0 14 Dtool_Q2_kTDLT 411 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::set_num_lines
//       Access: Published
//  Description: Sets the number of lines of text the PGEntry will
//               use.  This only has meaning if _max_width is not 0;
//               _max_width indicates the wordwrap width of each line.
//////////////////////////////////////////////////////////////////// 2 4 this 3 553  9 num_lines 1 527  
119 14 Dtool_Q2_kzX9W 0 6 118 527 0 14 Dtool_Q2_kzX9W 342 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_num_lines
//       Access: Published
//  Description: Returns the number of lines of text the PGEntry will
//               use, if _max_width is not 0.  See set_num_lines().
//////////////////////////////////////////////////////////////////// 1 4 this 3 554  
120 14 Dtool_Q2_knROV 0 4 119 509 0 14 Dtool_Q2_knROV 431 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::set_blink_rate
//       Access: Published
//  Description: Sets the number of times per second the cursor will
//               blink while the entry has keyboard focus.
//
//               If this is 0, the cursor does not blink, but is held
//               steady.
//////////////////////////////////////////////////////////////////// 2 4 this 3 553  10 blink_rate 1 513  
121 14 Dtool_Q2_kKf8v 0 6 120 513 0 14 Dtool_Q2_kKf8v 337 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_blink_rate
//       Access: Published
//  Description: Returns the number of times per second the cursor
//               will blink, or 0 if the cursor is not to blink.
//////////////////////////////////////////////////////////////////// 1 4 this 3 554  
122 14 Dtool_Q2_klf6N 0 7 121 528 0 14 Dtool_Q2_klf6N 375 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_cursor_def
//       Access: Published
//  Description: Returns the Node that will be rendered to represent
//               the cursor.  You can attach suitable cursor geometry
//               to this node.
//////////////////////////////////////////////////////////////////// 1 4 this 3 553  
123 14 Dtool_Q2_kLvwG 0 4 122 509 0 14 Dtool_Q2_kLvwG 336 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::clear_cursor_def
//       Access: Published
//  Description: Removes all the children from the cursor_def node, in
//               preparation for adding a new definition.
//////////////////////////////////////////////////////////////////// 1 4 this 3 553  
124 14 Dtool_Q2_kkpvF 0 4 123 509 0 14 Dtool_Q2_kkpvF 394 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::set_cursor_keys_active
//       Access: Published
//  Description: Sets whether the arrow keys (and home/end) control
//               movement of the cursor.  If true, they are active; if
//               false, they are ignored.
//////////////////////////////////////////////////////////////////// 2 4 this 3 553  4 flag 1 517  
125 14 Dtool_Q2_kWRyA 0 6 124 517 0 14 Dtool_Q2_kWRyA 378 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_cursor_keys_active
//       Access: Published
//  Description: Returns whether the arrow keys are currently set to
//               control movement of the cursor; see
//               set_cursor_keys_active().
//////////////////////////////////////////////////////////////////// 1 4 this 3 554  
126 14 Dtool_Q2_kQRdS 0 4 125 509 0 14 Dtool_Q2_kQRdS 759 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::set_obscure_mode
//       Access: Published
//  Description: Specifies whether obscure mode should be enabled.  In
//               obscure mode, a string of asterisks is displayed
//               instead of the literal text, e.g. for entering
//               passwords.
//
//               In obscure mode, the width of the text is computed
//               based on the width of the string of asterisks, not on
//               the width of the actual text.  This has implications
//               on the maximum length of text that may be entered if
//               max_width is in effect.
//////////////////////////////////////////////////////////////////// 2 4 this 3 553  4 flag 1 517  
127 14 Dtool_Q2_kCY2e 0 6 126 517 0 14 Dtool_Q2_kCY2e 309 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_obscure_mode
//       Access: Published
//  Description: Specifies whether obscure mode is enabled.  See
//               set_obscure_mode().
//////////////////////////////////////////////////////////////////// 1 4 this 3 554  
128 14 Dtool_Q2_kUwlA 0 4 127 509 0 14 Dtool_Q2_kUwlA 489 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::set_overflow_mode
//       Access: Published
//  Description: Specifies whether overflow mode should be enabled.
//               In overflow mode, text can overflow the boundaries
//               of the Entry element horizontally.
//
//               Overflow mode only works when the number of lines
//               is 1.
//////////////////////////////////////////////////////////////////// 2 4 this 3 553  4 flag 1 517  
129 14 Dtool_Q2_khlEu 0 6 128 517 0 14 Dtool_Q2_khlEu 312 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_overflow_mode
//       Access: Published
//  Description: Specifies whether overflow mode is enabled.  See
//               set_overflow_mode().
//////////////////////////////////////////////////////////////////// 1 4 this 3 554  
130 14 Dtool_Q2_kuuvU 0 4 129 509 0 14 Dtool_Q2_kuuvU 984 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::set_candidate_active
//       Access: Published
//  Description: Specifies the name of the TextProperties structure
//               added to the TextPropertiesManager that will be used
//               to render candidate strings from the IME, used for
//               typing characters in east Asian languages.  Each
//               candidate string represents one possible way to
//               interpret the sequence of keys the user has just
//               entered; it should not be considered typed yet, but
//               it is important for the user to be able to see what
//               he is considering entering.
//
//               This particular method sets the properties for the
//               subset of the current candidate string that the user
//               can actively scroll through.
//////////////////////////////////////////////////////////////////// 2 4 this 3 553  16 candidate_active 1 523  
131 14 Dtool_Q2_kfCwe 0 6 130 523 0 14 Dtool_Q2_kfCwe 256 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_candidate_active
//       Access: Published
//  Description: See set_candidate_active().
//////////////////////////////////////////////////////////////////// 1 4 this 3 554  
132 14 Dtool_Q2_kwfZx 0 4 131 509 0 14 Dtool_Q2_kwfZx 992 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::set_candidate_inactive
//       Access: Published
//  Description: Specifies the name of the TextProperties structure
//               added to the TextPropertiesManager that will be used
//               to render candidate strings from the IME, used for
//               typing characters in east Asian languages.  Each
//               candidate string represents one possible way to
//               interpret the sequence of keys the user has just
//               entered; it should not be considered typed yet, but
//               it is important for the user to be able to see what
//               he is considering entering.
//
//               This particular method sets the properties for the
//               subset of the current candidate string that the user
//               is not actively scrolling through.
//////////////////////////////////////////////////////////////////// 2 4 this 3 553  18 candidate_inactive 1 523  
133 14 Dtool_Q2_kmgOn 0 6 132 523 0 14 Dtool_Q2_kmgOn 260 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_candidate_inactive
//       Access: Published
//  Description: See set_candidate_inactive().
//////////////////////////////////////////////////////////////////// 1 4 this 3 554  
134 14 Dtool_Q2_kMxrH 0 4 133 509 0 14 Dtool_Q2_kMxrH 500 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::set_text_def
//       Access: Published
//  Description: Changes the TextNode that will be used to render the
//               text within the entry when the entry is in the
//               indicated state.  The default if nothing is specified
//               is the same TextNode returned by
//               PGItem::get_text_node().
//////////////////////////////////////////////////////////////////// 3 4 this 3 553  5 state 1 527  4 node 1 540  
135 14 Dtool_Q2_kGmBt 0 7 134 540 0 14 Dtool_Q2_kGmBt 392 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_text_def
//       Access: Published
//  Description: Returns the TextNode that will be used to render the
//               text within the entry when the entry is in the
//               indicated state.  See set_text_def().
//////////////////////////////////////////////////////////////////// 2 4 this 3 554  5 state 1 527  
136 14 Dtool_Q2_kRNBk 0 6 135 523 0 14 Dtool_Q2_kRNBk 421 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_accept_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the accept
//               event for all PGEntries.  The accept event is the
//               concatenation of this string followed by get_id().
//////////////////////////////////////////////////////////////////// 0 
137 14 Dtool_Q2_k4qA3 0 6 136 523 0 14 Dtool_Q2_k4qA3 429 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_accept_failed_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the accept
//               failed event for all PGEntries.  This event is the
//               concatenation of this string followed by get_id().
//////////////////////////////////////////////////////////////////// 0 
138 14 Dtool_Q2_kOCNR 0 6 137 523 0 14 Dtool_Q2_kOCNR 427 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_overflow_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the overflow
//               event for all PGEntries.  The overflow event is the
//               concatenation of this string followed by get_id().
//////////////////////////////////////////////////////////////////// 0 
139 14 Dtool_Q2_kPQ4_ 0 6 138 523 0 14 Dtool_Q2_kPQ4_ 415 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_type_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the type
//               event for all PGEntries.  The type event is the
//               concatenation of this string followed by get_id().
//////////////////////////////////////////////////////////////////// 0 
140 14 Dtool_Q2_kG7IQ 0 6 139 523 0 14 Dtool_Q2_kG7IQ 418 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_erase_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the erase
//               event for all PGEntries.  The erase event is the
//               concatenation of this string followed by get_id().
//////////////////////////////////////////////////////////////////// 0 
141 14 Dtool_Q2_kFsJo 0 6 140 523 0 14 Dtool_Q2_kFsJo 425 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_cursormove_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the cursor
//               event for all PGEntries.  The cursor event is the
//               concatenation of this string followed by get_id().
//////////////////////////////////////////////////////////////////// 0 
142 14 Dtool_Q2_kwkhs 0 6 141 523 0 14 Dtool_Q2_kwkhs 321 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_accept_event
//       Access: Published
//  Description: Returns the event name that will be thrown when the
//               entry is accepted normally.
//////////////////////////////////////////////////////////////////// 2 4 this 3 554  6 button 1 532  
143 14 Dtool_Q2_k8ups 0 6 142 523 0 14 Dtool_Q2_k8ups 329 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_accept_failed_event
//       Access: Published
//  Description: Returns the event name that will be thrown when the
//               entry cannot accept an input
//////////////////////////////////////////////////////////////////// 2 4 this 3 554  6 button 1 532  
144 14 Dtool_Q2_kBqQn 0 6 143 523 0 14 Dtool_Q2_kBqQn 459 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_overflow_event
//       Access: Published
//  Description: Returns the event name that will be thrown when too
//               much text is attempted to be entered into the
//               PGEntry, exceeding either the limit set via
//               set_max_chars() or via set_max_width().
//////////////////////////////////////////////////////////////////// 1 4 this 3 554  
145 14 Dtool_Q2_kFeug 0 6 144 523 0 14 Dtool_Q2_kFeug 328 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_type_event
//       Access: Published
//  Description: Returns the event name that will be thrown whenever
//               the user extends the text by typing.
//////////////////////////////////////////////////////////////////// 1 4 this 3 554  
146 14 Dtool_Q2_kIEsr 0 6 145 523 0 14 Dtool_Q2_kIEsr 332 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_erase_event
//       Access: Published
//  Description: Returns the event name that will be thrown whenever
//               the user erases characters in the text.
//////////////////////////////////////////////////////////////////// 1 4 this 3 554  
147 14 Dtool_Q2_kfUWf 0 6 146 523 0 14 Dtool_Q2_kfUWf 314 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_cursormove_event
//       Access: Published
//  Description: Returns the event name that will be thrown whenever
//               the cursor moves
//////////////////////////////////////////////////////////////////// 1 4 this 3 554  
148 14 Dtool_Q2_kNKPW 0 6 147 517 0 14 Dtool_Q2_kNKPW 457 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::set_wtext
//       Access: Published
//  Description: Changes the text currently displayed within the
//               entry.
//
//               The return value is true if all the text is accepted,
//               or false if some was truncated (see set_max_width(),
//               etc.).
//////////////////////////////////////////////////////////////////// 2 4 this 3 553  5 wtext 1 523  
149 14 Dtool_Q2_kwwRz 0 6 148 523 0 14 Dtool_Q2_kwwRz 339 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_plain_wtext
//       Access: Published
//  Description: Returns the text currently displayed within the
//               entry, without any embedded properties characters.
//////////////////////////////////////////////////////////////////// 1 4 this 3 554  
150 14 Dtool_Q2_kt4yw 0 6 149 523 0 14 Dtool_Q2_kt4yw 289 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::get_wtext
//       Access: Published
//  Description: Returns the text currently displayed within the
//               entry.
//////////////////////////////////////////////////////////////////// 1 4 this 3 554  
151 14 Dtool_Q2_kVyl8 0 4 150 509 0 14 Dtool_Q2_kVyl8 322 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::set_accept_enabled
//       Access: Published
//  Description: Sets whether the input may be accepted--use to 
//               disable submission by the user
//////////////////////////////////////////////////////////////////// 2 4 this 3 553  7 enabled 1 517  
152 14 Dtool_Q2_ksKvs 0 6 151 517 0 14 Dtool_Q2_ksKvs 462 ////////////////////////////////////////////////////////////////////
//     Function: PGEntry::is_wtext
//       Access: Published
//  Description: Returns true if any of the characters in the string
//               returned by get_wtext() are out of the range of an
//               ASCII character (and, therefore, get_wtext() should
//               be called in preference to get_text()).
//////////////////////////////////////////////////////////////////// 1 4 this 3 554  
153 14 Dtool_Q2_kChug 0 7 152 542 0 14 Dtool_Q2_kChug 0 0 
154 14 Dtool_Q2_kY5i_ 0 4 161 509 0 14 Dtool_Q2_kY5i_ 231 ////////////////////////////////////////////////////////////////////
//     Function: PGMouseWatcherParameter::output
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 this 3 563  3 out 1 521  
155 14 Dtool_Q2_k63gq 0 7 162 542 0 14 Dtool_Q2_k63gq 0 0 
156 14 Dtool_Q2_kqr10 0 7 155 566 0 14 Dtool_Q2_kqr10 0 1 4 this 3 565  
157 14 Dtool_Q2_kSVWG 0 7 156 565 395 14 Dtool_Q2_kSVWG 0 1 4 this 3 566  
158 14 Dtool_Q2_kjvJV 0 6 158 567 0 14 Dtool_Q2_kjvJV 0 1 4 this 3 565  
159 14 Dtool_Q2_kmaZS 0 7 159 565 395 14 Dtool_Q2_kmaZS 0 1 4 this 3 567  
160 14 Dtool_Q2_kJf8U 0 7 165 568 0 14 Dtool_Q2_kJf8U 234 ////////////////////////////////////////////////////////////////////
//     Function: PGMouseWatcherBackground::Constructor
//       Access: Public
//  Description: 
//////////////////////////////////////////////////////////////////// 0 
161 14 Dtool_Q2_kGLoU 0 7 166 542 0 14 Dtool_Q2_kGLoU 0 0 
162 14 Dtool_Q2_k23dT 0 7 168 569 0 14 Dtool_Q2_k23dT 227 ////////////////////////////////////////////////////////////////////
//     Function: PGVirtualFrame::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 1 4 name 1 523  
163 14 Dtool_Q2_kNqZy 0 7 168 569 0 14 Dtool_Q2_kNqZy 227 ////////////////////////////////////////////////////////////////////
//     Function: PGVirtualFrame::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 0 
164 14 Dtool_Q2_kdY29 0 4 169 509 0 14 Dtool_Q2_kdY29 294 ////////////////////////////////////////////////////////////////////
//     Function: PGVirtualFrame::setup
//       Access: Published
//  Description: Creates a PGVirtualFrame with the indicated 
//               dimensions.
//////////////////////////////////////////////////////////////////// 3 4 this 3 569  5 width 1 513  6 height 1 513  
165 14 Dtool_Q2_kPlzz 0 4 170 509 0 14 Dtool_Q2_kPlzz 592 ////////////////////////////////////////////////////////////////////
//     Function: PGVirtualFrame::set_clip_frame
//       Access: Published
//  Description: Sets the bounding rectangle of the clip frame.
//               This is the size of the small window through which we
//               can see the virtual canvas.  Normally, this is the
//               same size as the actual frame or smaller (typically
//               it is smaller by the size of the bevel, or to make
//               room for scroll bars).
//////////////////////////////////////////////////////////////////// 2 4 this 3 569  10 clip_frame 1 510  
166 14 Dtool_Q2_kAba8 0 4 170 509 0 14 Dtool_Q2_kAba8 1082 // Filename: pgVirtualFrame.I
// Created by:  drose (17Aug05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: PGVirtualFrame::set_clip_frame
//       Access: Published
//  Description: Sets the bounding rectangle of the clip frame.
//               This is the size of the small window through which we
//               can see the virtual canvas.  Normally, this is the
//               same size as the actual frame or smaller (typically
//               it is smaller by the size of the bevel, or to make
//               room for scroll bars).
//////////////////////////////////////////////////////////////////// 5 4 this 3 569  4 left 1 513  5 right 1 513  6 bottom 1 513  3 top 1 513  
167 14 Dtool_Q2_krDQS 0 6 171 510 0 14 Dtool_Q2_krDQS 404 ////////////////////////////////////////////////////////////////////
//     Function: PGVirtualFrame::get_clip_frame
//       Access: Published
//  Description: Returns the bounding rectangle of the clip frame.
//               See set_clip_frame().  If has_clip_frame() is
//               false, this returns the item's actual frame.
//////////////////////////////////////////////////////////////////// 1 4 this 3 570  
168 14 Dtool_Q2_kz_Qf 0 6 172 517 0 14 Dtool_Q2_kz_Qf 405 ////////////////////////////////////////////////////////////////////
//     Function: PGVirtualFrame::has_clip_frame
//       Access: Published
//  Description: Returns true if the clip frame has been set; see
//               set_clip_frame().  If it has not been set, objects in
//               the virtual frame will not be clipped.
//////////////////////////////////////////////////////////////////// 1 4 this 3 570  
169 14 Dtool_Q2_k5UoB 0 4 173 509 0 14 Dtool_Q2_k5UoB 311 ////////////////////////////////////////////////////////////////////
//     Function: PGVirtualFrame::clear_clip_frame
//       Access: Published
//  Description: Removes the clip frame from the item.  This
//               disables clipping.
//////////////////////////////////////////////////////////////////// 1 4 this 3 569  
170 14 Dtool_Q2_kB6v7 0 4 174 509 0 14 Dtool_Q2_kB6v7 380 ////////////////////////////////////////////////////////////////////
//     Function: PGVirtualFrame::set_canvas_transform
//       Access: Published
//  Description: Changes the transform of the virtual canvas.  This
//               transform is applied to all child nodes of the
//               canvas_node.
//////////////////////////////////////////////////////////////////// 2 4 this 3 569  9 transform 1 572  
171 14 Dtool_Q2_kEO4Y 0 7 175 572 0 14 Dtool_Q2_kEO4Y 380 ////////////////////////////////////////////////////////////////////
//     Function: PGVirtualFrame::get_canvas_transform
//       Access: Published
//  Description: Returns the transform of the virtual canvas.  This
//               transform is applied to all child nodes of the
//               canvas_node.
//////////////////////////////////////////////////////////////////// 1 4 this 3 570  
172 14 Dtool_Q2_khyWA 0 7 176 575 0 14 Dtool_Q2_khyWA 338 ////////////////////////////////////////////////////////////////////
//     Function: PGVirtualFrame::get_canvas_node
//       Access: Published
//  Description: Returns the special node that holds all of the
//               children that appear in the virtual canvas.
//////////////////////////////////////////////////////////////////// 1 4 this 3 570  
173 14 Dtool_Q2_kUjEl 0 7 177 575 0 14 Dtool_Q2_kUjEl 276 ////////////////////////////////////////////////////////////////////
//     Function: PGVirtualFrame::get_canvas_parent
//       Access: Published
//  Description: Returns the parent node of the canvas_node.
//////////////////////////////////////////////////////////////////// 1 4 this 3 570  
174 14 Dtool_Q2_kwQKj 0 7 178 542 0 14 Dtool_Q2_kwQKj 0 0 
175 14 Dtool_Q2_kOw_Q 0 7 185 576 416 14 Dtool_Q2_kOw_Q 224 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 1 4 name 1 523  
176 14 Dtool_Q2_kKJhH 0 7 185 576 416 14 Dtool_Q2_kKJhH 224 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 0 
177 14 Dtool_Q2_kha_O 0 4 187 509 0 14 Dtool_Q2_kha_O 797 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::setup_scroll_bar
//       Access: Published
//  Description: Creates PGSliderBar that represents a vertical or
//               horizontal scroll bar (if vertical is true or false,
//               respectively), with additional buttons for scrolling,
//               and a range of 0 .. 1.
//
//               length here is the measurement along the scroll bar,
//               and width is the measurement across the scroll bar,
//               whether it is vertical or horizontal (so for a
//               horizontal scroll bar, the length is actually the x
//               dimension, and the width is the y dimension).
//////////////////////////////////////////////////////////////////// 5 4 this 3 576  8 vertical 1 517  6 length 1 513  5 width 1 513  5 bevel 1 513  
178 14 Dtool_Q2_kBgSu 0 4 188 509 0 14 Dtool_Q2_kBgSu 454 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::setup_slider
//       Access: Published
//  Description: Creates PGSliderBar that represents a slider that the
//               user can use to control an analog quantity.
//
//               This is functionally the same as a scroll bar, but it
//               has a distinctive look.
//////////////////////////////////////////////////////////////////// 5 4 this 3 576  8 vertical 1 517  6 length 1 513  5 width 1 513  5 bevel 1 513  
179 14 Dtool_Q2_kM86R 0 4 189 509 0 14 Dtool_Q2_kM86R 926 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::set_axis
//       Access: Published
//  Description: Specifies the axis of the slider bar's motion.  This
//               should be only one of four vectors: (1, 0, 0), (0, 0,
//               1), (-1, 0, 0), or (0, 0, -1).
//
//               This specifies the vector in which the thumb moves
//               when it is moving from the minimum to the maximum
//               value.
//
//               The axis must be parallel to one of the screen axes,
//               and it must be normalized.  Hence, it may only be one
//               of the above four possibilities; anything else is an
//               error and will result in indeterminate behavior.
//
//               Normally, you should not try to set the axis
//               directly.
//////////////////////////////////////////////////////////////////// 2 4 this 3 576  4 axis 1 577  
180 14 Dtool_Q2_kiBjK 0 6 190 577 0 14 Dtool_Q2_kiBjK 299 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::get_axis
//       Access: Published
//  Description: Returns the axis of the slider bar's motion.  See
//               set_axis().
//////////////////////////////////////////////////////////////////// 1 4 this 3 580  
181 14 Dtool_Q2_k6a9Q 0 4 191 509 0 14 Dtool_Q2_k6a9Q 273 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::set_range
//       Access: Published
//  Description: Sets the minimum and maxmimum value for the slider.
//////////////////////////////////////////////////////////////////// 3 4 this 3 576  9 min_value 1 513  9 max_value 1 513  
182 14 Dtool_Q2_keMf3 0 6 192 513 0 14 Dtool_Q2_keMf3 304 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::get_min_value
//       Access: Published
//  Description: Returns the value when the slider is all the way to
//               the left.
//////////////////////////////////////////////////////////////////// 1 4 this 3 580  
183 14 Dtool_Q2_kCsl_ 0 6 193 513 0 14 Dtool_Q2_kCsl_ 305 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::get_max_value
//       Access: Published
//  Description: Returns the value when the slider is all the way to
//               the right.
//////////////////////////////////////////////////////////////////// 1 4 this 3 580  
184 14 Dtool_Q2_kTVKa 0 4 194 509 0 14 Dtool_Q2_kTVKa 337 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::set_scroll_size
//       Access: Published
//  Description: Specifies the amount the slider will move when the
//               user clicks on the left or right buttons.
//////////////////////////////////////////////////////////////////// 2 4 this 3 576  11 scroll_size 1 513  
185 14 Dtool_Q2_kuytl 0 6 195 513 0 14 Dtool_Q2_kuytl 276 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::get_scroll_size
//       Access: Published
//  Description: Returns the value last set by set_scroll_size().
//////////////////////////////////////////////////////////////////// 1 4 this 3 580  
186 14 Dtool_Q2_kLrt6 0 4 196 509 0 14 Dtool_Q2_kLrt6 516 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::set_page_size
//       Access: Published
//  Description: Specifies the amount of data contained in a single
//               page.  This indicates how much the thumb will jump
//               when the trough is directly clicked; and if
//               resize_thumb is true, it also controls the visible
//               size of the thumb button.
//////////////////////////////////////////////////////////////////// 2 4 this 3 576  9 page_size 1 513  
187 14 Dtool_Q2_kd7Uj 0 6 197 513 0 14 Dtool_Q2_kd7Uj 272 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::get_page_size
//       Access: Published
//  Description: Returns the value last set by set_page_size().
//////////////////////////////////////////////////////////////////// 1 4 this 3 580  
188 14 Dtool_Q2_kmiFz 0 4 198 509 0 14 Dtool_Q2_kmiFz 374 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::set_value
//       Access: Published
//  Description: Sets the current value of the slider
//               programmatically.  This should range between
//               get_min_value() and get_max_value().
//////////////////////////////////////////////////////////////////// 2 4 this 3 576  5 value 1 513  
189 14 Dtool_Q2_kEO6y 0 6 199 513 0 14 Dtool_Q2_kEO6y 262 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::get_value
//       Access: Published
//  Description: Returns the current value of the slider.
//////////////////////////////////////////////////////////////////// 1 4 this 3 580  
190 14 Dtool_Q2_ka2Og 0 4 200 509 0 14 Dtool_Q2_ka2Og 307 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::set_ratio
//       Access: Published
//  Description: Sets the current value of the slider, expressed in
//               the range 0 .. 1.
//////////////////////////////////////////////////////////////////// 2 4 this 3 576  5 ratio 1 513  
191 14 Dtool_Q2_koTFg 0 6 201 513 0 14 Dtool_Q2_koTFg 310 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::get_ratio
//       Access: Published
//  Description: Returns the current value of the slider, expressed in
//               the range 0 .. 1.
//////////////////////////////////////////////////////////////////// 1 4 this 3 580  
192 14 Dtool_Q2_kpgjZ 0 6 202 517 0 14 Dtool_Q2_kpgjZ 440 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::is_button_down
//       Access: Published
//  Description: Returns true if the user is currently holding down
//               the mouse button to manipulate the slider.  When
//               true, calls to set_ratio() or set_value() will have
//               no effect.
//////////////////////////////////////////////////////////////////// 1 4 this 3 580  
193 14 Dtool_Q2_kjShu 0 4 203 509 0 14 Dtool_Q2_kjShu 480 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::set_resize_thumb
//       Access: Published
//  Description: Sets the resize_thumb flag.  When this is true, the
//               thumb button's frame will be adjusted so that its
//               width visually represents the page size.  When this
//               is false, the thumb button will be left alone.
//////////////////////////////////////////////////////////////////// 2 4 this 3 576  12 resize_thumb 1 517  
194 14 Dtool_Q2_kBiRH 0 6 204 517 0 14 Dtool_Q2_kBiRH 301 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::get_resize_thumb
//       Access: Published
//  Description: Returns the resize_thumb flag.  See
//               set_resize_thumb().
//////////////////////////////////////////////////////////////////// 1 4 this 3 580  
195 14 Dtool_Q2_kChUu 0 4 205 509 0 14 Dtool_Q2_kChUu 531 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::set_manage_pieces
//       Access: Published
//  Description: Sets the manage_pieces flag.  When this is true, the
//               sub-pieces of the slider bar--that is, the thumb, and
//               the left and right scroll buttons--are automatically
//               positioned and/or resized when the slider bar's
//               overall frame is changed.
//////////////////////////////////////////////////////////////////// 2 4 this 3 576  13 manage_pieces 1 517  
196 14 Dtool_Q2_kPeLd 0 6 206 517 0 14 Dtool_Q2_kPeLd 304 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::get_manage_pieces
//       Access: Published
//  Description: Returns the manage_pieces flag.  See
//               set_manage_pieces().
//////////////////////////////////////////////////////////////////// 1 4 this 3 580  
197 14 Dtool_Q2_kdKp3 0 4 207 509 0 14 Dtool_Q2_kdKp3 621 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::set_thumb_button
//       Access: Published
//  Description: Sets the PGButton object that will serve as the thumb
//               for this slider.  This button visually represents the
//               position of the slider, and can be dragged left and
//               right by the user.
//
//               It is the responsibility of the caller to ensure that
//               the button object is parented to the PGSliderBar
//               node.
//////////////////////////////////////////////////////////////////// 2 4 this 3 576  12 thumb_button 1 543  
198 14 Dtool_Q2_kFdHp 0 4 208 509 0 14 Dtool_Q2_kFdHp 396 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::clear_thumb_button
//       Access: Published
//  Description: Removes the thumb button object from control of the
//               frame.  It is your responsibility to actually remove
//               or hide the button itself.
//////////////////////////////////////////////////////////////////// 1 4 this 3 576  
199 14 Dtool_Q2_k5cko 0 7 209 543 0 14 Dtool_Q2_k5cko 334 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::get_thumb_button
//       Access: Published
//  Description: Returns the PGButton that serves as the thumb for
//               this slider, or NULL if it is not set.
//////////////////////////////////////////////////////////////////// 1 4 this 3 580  
200 14 Dtool_Q2_kDxPf 0 4 210 509 0 14 Dtool_Q2_kDxPf 637 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::set_left_button
//       Access: Published
//  Description: Sets the PGButton object that will serve as the left
//               scroll button for this slider.  This button is
//               optional; if present, the user can click on it to
//               move scroll_size units at a time to the left.
//
//               It is the responsibility of the caller to ensure that
//               the button object is parented to the PGSliderBar
//               node.
//////////////////////////////////////////////////////////////////// 2 4 this 3 576  11 left_button 1 543  
201 14 Dtool_Q2_k1ipM 0 4 211 509 0 14 Dtool_Q2_k1ipM 394 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::clear_left_button
//       Access: Published
//  Description: Removes the left button object from control of the
//               frame.  It is your responsibility to actually remove
//               or hide the button itself.
//////////////////////////////////////////////////////////////////// 1 4 this 3 576  
202 14 Dtool_Q2_k3LGY 0 7 212 543 0 14 Dtool_Q2_k3LGY 371 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::get_left_button
//       Access: Published
//  Description: Returns the PGButton that serves as the left scroll
//               button for this slider, if any, or NULL if it is not
//               set.
//////////////////////////////////////////////////////////////////// 1 4 this 3 580  
203 14 Dtool_Q2_kiqT0 0 4 213 509 0 14 Dtool_Q2_kiqT0 640 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::set_right_button
//       Access: Published
//  Description: Sets the PGButton object that will serve as the right
//               scroll button for this slider.  This button is
//               optional; if present, the user can click on it to
//               move scroll_size units at a time to the right.
//
//               It is the responsibility of the caller to ensure that
//               the button object is parented to the PGSliderBar
//               node.
//////////////////////////////////////////////////////////////////// 2 4 this 3 576  12 right_button 1 543  
204 14 Dtool_Q2_kMNgC 0 4 214 509 0 14 Dtool_Q2_kMNgC 396 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::clear_right_button
//       Access: Published
//  Description: Removes the right button object from control of the
//               frame.  It is your responsibility to actually remove
//               or hide the button itself.
//////////////////////////////////////////////////////////////////// 1 4 this 3 576  
205 14 Dtool_Q2_kM5Pl 0 7 215 543 0 14 Dtool_Q2_kM5Pl 373 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::get_right_button
//       Access: Published
//  Description: Returns the PGButton that serves as the right scroll
//               button for this slider, if any, or NULL if it is not
//               set.
//////////////////////////////////////////////////////////////////// 1 4 this 3 580  
206 14 Dtool_Q2_k363P 0 6 216 523 0 14 Dtool_Q2_k363P 428 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::get_adjust_prefix
//       Access: Published, Static
//  Description: Returns the prefix that is used to define the adjust
//               event for all PGSliderBars.  The adjust event is the
//               concatenation of this string followed by get_id().
//////////////////////////////////////////////////////////////////// 0 
207 14 Dtool_Q2_kZSEH 0 6 217 523 0 14 Dtool_Q2_kZSEH 376 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::get_adjust_event
//       Access: Published
//  Description: Returns the event name that will be thrown when the
//               slider bar value is adjusted by the user or
//               programmatically.
//////////////////////////////////////////////////////////////////// 1 4 this 3 580  
208 14 Dtool_Q2_kt4tr 0 4 218 509 0 14 Dtool_Q2_kt4tr 524 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::set_active
//       Access: Published, Virtual
//  Description: Sets whether the PGItem is active for mouse watching.
//               This is not necessarily related to the
//               active/inactive appearance of the item, which is
//               controlled by set_state(), but it does affect whether
//               it responds to mouse events.
//////////////////////////////////////////////////////////////////// 2 4 this 3 576  6 active 1 517  
209 14 Dtool_Q2_kGi50 0 4 219 509 0 14 Dtool_Q2_kGi50 372 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::remanage
//       Access: Published
//  Description: Manages the position and size of the scroll bars and
//               the thumb.  Normally this should not need to be
//               called directly.
//////////////////////////////////////////////////////////////////// 1 4 this 3 576  
210 14 Dtool_Q2_kFoWi 0 4 220 509 0 14 Dtool_Q2_kFoWi 338 ////////////////////////////////////////////////////////////////////
//     Function: PGSliderBar::recompute
//       Access: Published
//  Description: Recomputes the position and size of the thumb.
//               Normally this should not need to be called directly.
//////////////////////////////////////////////////////////////////// 1 4 this 3 576  
211 14 Dtool_Q2_k7cbW 0 7 221 542 0 14 Dtool_Q2_k7cbW 0 0 
212 14 Dtool_Q2_kLrhQ 0 7 180 524 0 14 Dtool_Q2_kLrhQ 0 1 4 this 3 576  
213 14 Dtool_Q2_k7_aQ 0 7 181 576 416 14 Dtool_Q2_k7_aQ 0 1 4 this 3 524  
214 14 Dtool_Q2_knq81 0 7 228 582 457 14 Dtool_Q2_knq81 226 ////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 1 4 name 1 523  
215 14 Dtool_Q2_ktOZ5 0 7 228 582 457 14 Dtool_Q2_ktOZ5 226 ////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 0 
216 14 Dtool_Q2_kLvlF 0 4 230 509 0 14 Dtool_Q2_kLvlF 325 ////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::setup
//       Access: Published
//  Description: Creates a PGScrollFrame with the indicated 
//               dimensions, and the indicated virtual frame.
//////////////////////////////////////////////////////////////////// 9 4 this 3 582  5 width 1 513  6 height 1 513  4 left 1 513  5 right 1 513  6 bottom 1 513  3 top 1 513  12 slider_width 1 513  5 bevel 1 513  
217 14 Dtool_Q2_kz1Uo 0 4 231 509 0 14 Dtool_Q2_kz1Uo 415 ////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::set_virtual_frame
//       Access: Published
//  Description: Sets the bounding rectangle of the virtual frame.
//               This is the size of the large, virtual canvas which
//               we can see only a portion of at any given time.
//////////////////////////////////////////////////////////////////// 2 4 this 3 582  13 virtual_frame 1 510  
218 14 Dtool_Q2_kmjjM 0 4 231 509 0 14 Dtool_Q2_kmjjM 904 // Filename: pgScrollFrame.I
// Created by:  drose (17Aug05)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::set_virtual_frame
//       Access: Published
//  Description: Sets the bounding rectangle of the virtual frame.
//               This is the size of the large, virtual canvas which
//               we can see only a portion of at any given time.
//////////////////////////////////////////////////////////////////// 5 4 this 3 582  4 left 1 513  5 right 1 513  6 bottom 1 513  3 top 1 513  
219 14 Dtool_Q2_kz_HG 0 6 232 510 0 14 Dtool_Q2_kz_HG 413 ////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::get_virtual_frame
//       Access: Published
//  Description: Returns the bounding rectangle of the virtual frame.
//               See set_virtual_frame().  If has_virtual_frame() is
//               false, this returns the item's clip frame.
//////////////////////////////////////////////////////////////////// 1 4 this 3 583  
220 14 Dtool_Q2_kWAhW 0 6 233 517 0 14 Dtool_Q2_kWAhW 405 ////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::has_virtual_frame
//       Access: Published
//  Description: Returns true if the virtual frame has a bounding
//               rectangle; see set_virtual_frame().  Most
//               PGScrollFrame objects will have a virtual frame.
//////////////////////////////////////////////////////////////////// 1 4 this 3 583  
221 14 Dtool_Q2_k7tSu 0 4 234 509 0 14 Dtool_Q2_k7tSu 441 ////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::clear_virtual_frame
//       Access: Published
//  Description: Removes the virtual frame from the item.  This
//               effectively sets the virtual frame to the same size
//               as the clip frame.  Scrolling will no longer be
//               possible.
//////////////////////////////////////////////////////////////////// 1 4 this 3 582  
222 14 Dtool_Q2_kJBOr 0 4 235 509 0 14 Dtool_Q2_kJBOr 614 ////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::set_manage_pieces
//       Access: Published
//  Description: Sets the manage_pieces flag.  When this is true, the
//               sub-pieces of the scroll frame--that is, the two
//               scroll bars--are automatically positioned and/or
//               resized when the scroll frame's overall frame is
//               changed.  They are also automatically resized to fill
//               in the gap when one or the other is hidden.
//////////////////////////////////////////////////////////////////// 2 4 this 3 582  13 manage_pieces 1 517  
223 14 Dtool_Q2_kukAM 0 6 236 517 0 14 Dtool_Q2_kukAM 306 ////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::get_manage_pieces
//       Access: Published
//  Description: Returns the manage_pieces flag.  See
//               set_manage_pieces().
//////////////////////////////////////////////////////////////////// 1 4 this 3 583  
224 14 Dtool_Q2_kaZQS 0 4 237 509 0 14 Dtool_Q2_kaZQS 652 ////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::set_auto_hide
//       Access: Published
//  Description: Sets the auto_hide flag.  When this is true, the
//               two scroll bars are automatically hidden if they are
//               not needed (that is, if the virtual frame would fit
//               within the clip frame without them), and they are
//               automatically shown when they are needed.
//
//               Setting this flag true forces the manage_pieces flag
//               to also be set true.
//////////////////////////////////////////////////////////////////// 2 4 this 3 582  9 auto_hide 1 517  
225 14 Dtool_Q2_kaze6 0 6 238 517 0 14 Dtool_Q2_kaze6 294 ////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::get_auto_hide
//       Access: Published
//  Description: Returns the auto_hide flag.  See
//               set_auto_hide().
//////////////////////////////////////////////////////////////////// 1 4 this 3 583  
226 14 Dtool_Q2_kXGGG 0 4 239 509 0 14 Dtool_Q2_kXGGG 479 ////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::set_horizontal_slider
//       Access: Published
//  Description: Sets the PGSliderBar object that will serve as the
//               horizontal scroll bar for this frame.  It is your
//               responsibility to parent this slider bar to the frame
//               and move it to the appropriate place.
//////////////////////////////////////////////////////////////////// 2 4 this 3 582  17 horizontal_slider 1 576  
227 14 Dtool_Q2_koFmy 0 4 240 509 0 14 Dtool_Q2_koFmy 405 ////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::clear_horizontal_slider
//       Access: Published
//  Description: Removes the horizontal scroll bar from control of the
//               frame.  It is your responsibility to actually remove
//               or hide the object itself.
//////////////////////////////////////////////////////////////////// 1 4 this 3 582  
228 14 Dtool_Q2_k_mYS 0 7 241 576 416 14 Dtool_Q2_k_mYS 384 ////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::get_horizontal_slider
//       Access: Published
//  Description: Returns the PGSliderBar that serves as the horizontal
//               scroll bar for this frame, if any, or NULL if it is
//               not set.
//////////////////////////////////////////////////////////////////// 1 4 this 3 583  
229 14 Dtool_Q2_kceOb 0 4 242 509 0 14 Dtool_Q2_kceOb 475 ////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::set_vertical_slider
//       Access: Published
//  Description: Sets the PGSliderBar object that will serve as the
//               vertical scroll bar for this frame.  It is your
//               responsibility to parent this slider bar to the frame
//               and move it to the appropriate place.
//////////////////////////////////////////////////////////////////// 2 4 this 3 582  15 vertical_slider 1 576  
230 14 Dtool_Q2_kVE8o 0 4 243 509 0 14 Dtool_Q2_kVE8o 401 ////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::clear_vertical_slider
//       Access: Published
//  Description: Removes the vertical scroll bar from control of the
//               frame.  It is your responsibility to actually remove
//               or hide the object itself.
//////////////////////////////////////////////////////////////////// 1 4 this 3 582  
231 14 Dtool_Q2_kTwGd 0 7 244 576 416 14 Dtool_Q2_kTwGd 380 ////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::get_vertical_slider
//       Access: Published
//  Description: Returns the PGSliderBar that serves as the vertical
//               scroll bar for this frame, if any, or NULL if it is
//               not set.
//////////////////////////////////////////////////////////////////// 1 4 this 3 583  
232 14 Dtool_Q2_keLeF 0 4 245 509 0 14 Dtool_Q2_keLeF 342 ////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::remanage
//       Access: Published
//  Description: Manages the position and size of the scroll bars.
//               Normally this should not need to be called directly.
//////////////////////////////////////////////////////////////////// 1 4 this 3 582  
233 14 Dtool_Q2_kOXJ4 0 4 246 509 0 14 Dtool_Q2_kOXJ4 335 ////////////////////////////////////////////////////////////////////
//     Function: PGScrollFrame::recompute
//       Access: Published
//  Description: Forces the PGScrollFrame to recompute itself right
//               now.  Normally this should not be required.
//////////////////////////////////////////////////////////////////// 1 4 this 3 582  
234 14 Dtool_Q2_koXd4 0 7 247 542 0 14 Dtool_Q2_koXd4 0 0 
235 14 Dtool_Q2_kt2Mz 0 7 223 569 0 14 Dtool_Q2_kt2Mz 0 1 4 this 3 582  
236 14 Dtool_Q2_kJsB_ 0 7 224 582 457 14 Dtool_Q2_kJsB_ 0 1 4 this 3 569  
237 14 Dtool_Q2_k3gol 0 7 249 585 0 14 Dtool_Q2_k3gol 222 ////////////////////////////////////////////////////////////////////
//     Function: PGWaitBar::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 1 4 name 1 523  
238 14 Dtool_Q2_kBDaN 0 7 249 585 0 14 Dtool_Q2_kBDaN 222 ////////////////////////////////////////////////////////////////////
//     Function: PGWaitBar::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 0 
239 14 Dtool_Q2_keliW 0 4 250 509 0 14 Dtool_Q2_keliW 317 ////////////////////////////////////////////////////////////////////
//     Function: PGWaitBar::setup
//       Access: Published
//  Description: Creates a PGWaitBar with the indicated dimensions,
//               with the indicated maximum range.
//////////////////////////////////////////////////////////////////// 4 4 this 3 585  5 width 1 513  6 height 1 513  5 range 1 513  
240 14 Dtool_Q2_kqD51 0 4 251 509 0 14 Dtool_Q2_kqD51 756 // Filename: pgWaitBar.I
// Created by:  drose (14Mar02)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: PGWaitBar::set_range
//       Access: Published
//  Description: Sets the value at which the WaitBar indicates 100%.
//////////////////////////////////////////////////////////////////// 2 4 this 3 585  5 range 1 513  
241 14 Dtool_Q2_k0i4i 0 6 252 513 0 14 Dtool_Q2_k0i4i 274 ////////////////////////////////////////////////////////////////////
//     Function: PGWaitBar::get_range
//       Access: Published
//  Description: Returns the value at which the WaitBar indicates 100%.
//////////////////////////////////////////////////////////////////// 1 4 this 3 586  
242 14 Dtool_Q2_kMBDg 0 4 253 509 0 14 Dtool_Q2_kMBDg 317 ////////////////////////////////////////////////////////////////////
//     Function: PGWaitBar::set_value
//       Access: Published
//  Description: Sets the current value of the bar.  This should range
//               between 0 and get_range().
//////////////////////////////////////////////////////////////////// 2 4 this 3 585  5 value 1 513  
243 14 Dtool_Q2_kTfCN 0 6 254 513 0 14 Dtool_Q2_kTfCN 257 ////////////////////////////////////////////////////////////////////
//     Function: PGWaitBar::get_value
//       Access: Published
//  Description: Returns the current value of the bar.
//////////////////////////////////////////////////////////////////// 1 4 this 3 586  
244 14 Dtool_Q2_knaCx 0 6 255 513 0 14 Dtool_Q2_knaCx 254 ////////////////////////////////////////////////////////////////////
//     Function: PGWaitBar::get_percent
//       Access: Published
//  Description: Returns the percentage complete.
//////////////////////////////////////////////////////////////////// 1 4 this 3 586  
245 14 Dtool_Q2_ksJct 0 4 256 509 0 14 Dtool_Q2_ksJct 334 ////////////////////////////////////////////////////////////////////
//     Function: PGWaitBar::set_bar_style
//       Access: Published
//  Description: Sets the kind of frame that is drawn on top of the
//               WaitBar to represent the amount completed.
//////////////////////////////////////////////////////////////////// 2 4 this 3 585  5 style 1 507  
246 14 Dtool_Q2_kAw4C 0 7 257 506 250 14 Dtool_Q2_kAw4C 337 ////////////////////////////////////////////////////////////////////
//     Function: PGWaitBar::get_bar_style
//       Access: Published
//  Description: Returns the kind of frame that is drawn on top of the
//               WaitBar to represent the amount completed.
//////////////////////////////////////////////////////////////////// 1 4 this 3 586  
247 14 Dtool_Q2_kqfJI 0 7 258 542 0 14 Dtool_Q2_kqfJI 0 0 
103
486 12 PGFrameStyle 0 26625 12 PGFrameStyle 12 PGFrameStyle 0 0 0 1 248 250 0 17 249 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 0 0 0 0 1 487 185
////////////////////////////////////////////////////////////////////
//       Class : PGFrameStyle
// Description : 
////////////////////////////////////////////////////////////////////

487 4 Type 0 794624 18 PGFrameStyle::Type 18 PGFrameStyle::Type 486 0 0 0 0 0 0 0 0 0 7 6 T_none 20 PGFrameStyle::T_none 0 6 T_flat 20 PGFrameStyle::T_flat 1 11 T_bevel_out 25 PGFrameStyle::T_bevel_out 2 10 T_bevel_in 24 PGFrameStyle::T_bevel_in 3 8 T_groove 22 PGFrameStyle::T_groove 4 7 T_ridge 21 PGFrameStyle::T_ridge 5 16 T_texture_border 30 PGFrameStyle::T_texture_border 6 0 0

488 6 PGItem 0 75777 6 PGItem 6 PGItem 0 0 0 1 267 0 0 53 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 1 589 0 1 0 489 0 0 0 0 705
////////////////////////////////////////////////////////////////////
//       Class : PGItem
// Description : This is the base class for all the various kinds of
//               gui widget objects.
//
//               It is a Node which corresponds to a rectangular
//               region on the screen, and it may have any number of
//               "state" subgraphs, one of which is rendered at any
//               given time according to its current state.
//
//               The PGItem node must be parented to the scene graph
//               somewhere beneath a PGTop node in order for this
//               behavior to work.
////////////////////////////////////////////////////////////////////

489 9 PandaNode 0 2049 9 PandaNode 9 PandaNode 0 0 0 0 0 0 0 0 0 0 0 0 374
////////////////////////////////////////////////////////////////////
//       Class : PandaNode
// Description : A basic node of the scene graph or data graph.  This
//               is the base class of all specialized nodes, and also
//               serves as a generic node with no special properties.
////////////////////////////////////////////////////////////////////

490 8 PGButton 0 75777 8 PGButton 8 PGButton 0 0 0 1 321 0 0 8 322 323 324 325 326 327 328 329 0 0 1 0 488 0 0 0 1 491 394
////////////////////////////////////////////////////////////////////
//       Class : PGButton
// Description : This is a particular kind of PGItem that is
//               specialized to behave like a normal button object.
//               It keeps track of its own state, and handles mouse
//               events sensibly.
////////////////////////////////////////////////////////////////////

491 5 State 0 794624 15 PGButton::State 15 PGButton::State 490 0 0 0 0 0 0 0 0 0 4 7 S_ready 17 PGButton::S_ready 0 11 S_depressed 21 PGButton::S_depressed 1 10 S_rollover 20 PGButton::S_rollover 2 10 S_inactive 20 PGButton::S_inactive 3 0 0

492 5 PGTop 0 75777 5 PGTop 5 PGTop 0 0 0 1 330 0 0 6 331 332 333 334 335 336 0 0 1 0 489 0 0 0 0 779
////////////////////////////////////////////////////////////////////
//       Class : PGTop
// Description : The "top" node of the new Panda GUI system.  This
//               node must be parented to the 2-d scene graph, and all
//               PG objects should be parented to this node or
//               somewhere below it.  PG objects not parented within
//               this hierarchy will not be clickable.
//
//               This node begins the special traversal of the PG
//               objects that registers each node within the
//               MouseWatcher and forces everything to render in a
//               depth-first, left-to-right order, appropriate for 2-d
//               objects.
////////////////////////////////////////////////////////////////////

493 7 PGEntry 0 75777 7 PGEntry 7 PGEntry 0 0 0 1 337 0 0 53 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 0 0 1 0 488 0 0 0 1 494 791
////////////////////////////////////////////////////////////////////
//       Class : PGEntry
// Description : This is a particular kind of PGItem that handles
//               simple one-line or short multi-line text entries, of
//               the sort where the user can type any string.
//
//               A PGEntry does all of its internal manipulation on a
//               wide string, so it can store the full Unicode
//               character set.  The interface can support either the
//               wide string getters and setters, or the normal 8-bit
//               string getters and setters, which use whatever
//               encoding method is specified by the associated
//               TextNode.
////////////////////////////////////////////////////////////////////

494 5 State 0 794624 14 PGEntry::State 14 PGEntry::State 493 0 0 0 0 0 0 0 0 0 3 7 S_focus 16 PGEntry::S_focus 0 10 S_no_focus 19 PGEntry::S_no_focus 1 10 S_inactive 19 PGEntry::S_inactive 2 0 0

495 23 PGMouseWatcherParameter 0 26625 23 PGMouseWatcherParameter 23 PGMouseWatcherParameter 0 0 0 0 395 0 2 396 397 0 0 2 3 496 391 392 3 497 393 394 0 0 470
////////////////////////////////////////////////////////////////////
//       Class : PGMouseWatcherParameter
// Description : This specialization on MouseWatcherParameter allows
//               us to tag on additional elements to events for the
//               gui system, and also inherits from
//               TypedWritableReferenceCount so we can attach this thing to an
//               event.
////////////////////////////////////////////////////////////////////

496 27 TypedWritableReferenceCount 0 2049 27 TypedWritableReferenceCount 27 TypedWritableReferenceCount 0 0 0 0 0 0 0 0 0 0 0 0 722
////////////////////////////////////////////////////////////////////
//       Class : TypedWritableReferenceCount
// Description : A base class for things which need to inherit from
//               both TypedWritable and from ReferenceCount.  It's
//               convenient to define this intermediate base class
//               instead of multiply inheriting from the two classes
//               each time they are needed, so that we can sensibly
//               pass around pointers to things which are both
//               TypedWritables and ReferenceCounters.
//               
//               See also TypedObject for detailed instructions.
////////////////////////////////////////////////////////////////////

497 21 MouseWatcherParameter 0 2049 21 MouseWatcherParameter 21 MouseWatcherParameter 0 0 0 0 0 0 0 0 0 0 0 0 353
////////////////////////////////////////////////////////////////////
//       Class : MouseWatcherParameter
// Description : This is sent along as a parameter to most events
//               generated for a region to indicate the mouse and
//               button state for the event.
////////////////////////////////////////////////////////////////////

498 24 PGMouseWatcherBackground 0 75777 24 PGMouseWatcherBackground 24 PGMouseWatcherBackground 0 0 0 1 398 0 0 1 399 0 0 1 0 499 0 0 0 0 440
////////////////////////////////////////////////////////////////////
//       Class : PGMouseWatcherBackground
// Description : This is a special kind of MouseWatcherRegion that
//               doesn't have a rectangle and is never active, but
//               just quietly listens for keypresses and sends them to
//               all the PGItems with background focus.
////////////////////////////////////////////////////////////////////

499 18 MouseWatcherRegion 0 2049 18 MouseWatcherRegion 18 MouseWatcherRegion 0 0 0 0 0 0 0 0 0 0 0 0 295
////////////////////////////////////////////////////////////////////
//       Class : MouseWatcherRegion
// Description : This is the class that defines a rectangular region
//               on the screen for the MouseWatcher.
////////////////////////////////////////////////////////////////////

500 14 PGVirtualFrame 0 75777 14 PGVirtualFrame 14 PGVirtualFrame 0 0 0 1 400 0 0 10 401 402 403 404 405 406 407 408 409 410 0 0 1 0 488 0 0 0 0 1370
////////////////////////////////////////////////////////////////////
//       Class : PGVirtualFrame
// Description : This represents a frame that is rendered as a window
//               onto another (possibly much larger) canvas.  You can
//               only see the portion of the canvas that is below the
//               window at any given time.
//
//               This works simply by automatically defining a scissor
//               effect to be applied to a special child node, called
//               the canvas_node, of the PGVirtualFrame node.  Every
//               object that is parented to the canvas_node will be
//               clipped by the scissor effect.  Also, you can modify
//               the canvas_transform through convenience methods
//               here, which actually modifies the transform on the
//               canvas_node.
//
//               The net effect is that the virtual canvas is
//               arbitrarily large, and we can peek at it through the
//               scissor region, and scroll through different parts of
//               it by modifying the canvas_transform.
//
//               See PGScrollFrame for a specialization of this class
//               that handles the traditional scrolling canvas, with
//               scroll bars.
////////////////////////////////////////////////////////////////////

501 11 PGSliderBar 0 26625 11 PGSliderBar 11 PGSliderBar 0 0 0 1 415 416 0 35 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 0 0 2 3 488 411 412 3 502 413 414 0 0 479
////////////////////////////////////////////////////////////////////
//       Class : PGSliderBar
// Description : This is a particular kind of PGItem that draws a
//               little bar with a slider that moves from left to 
//               right indicating a value between the ranges.
//
//               This is used as an implementation for both
//               DirectSlider and for DirectScrollBar.
////////////////////////////////////////////////////////////////////

502 14 PGButtonNotify 0 1050625 14 PGButtonNotify 14 PGButtonNotify 0 0 0 0 0 0 0 0 0 0 0 0 339
////////////////////////////////////////////////////////////////////
//       Class : PGButtonNotify
// Description : Objects that inherit from this class can receive
//               notify messages when a slider bar moves or otherwise
//               is reconfigured.
////////////////////////////////////////////////////////////////////

503 13 PGScrollFrame 0 26625 13 PGScrollFrame 13 PGScrollFrame 0 0 0 1 456 457 0 18 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 0 0 2 3 500 452 453 3 504 454 455 0 0 891
////////////////////////////////////////////////////////////////////
//       Class : PGScrollFrame
// Description : This is a special kind of frame that pretends to be
//               much larger than it actually is.  You can scroll
//               through the frame, as if you're looking through a
//               window at the larger frame beneath.  All children of
//               this frame node are scrolled and clipped as if they
//               were children of the larger, virtual frame.
//
//               This is implemented as a specialization of
//               PGVirtualFrame, which handles the meat of the virtual
//               canvas.  This class adds automatic support for scroll
//               bars, and restricts the virtual transform to
//               translate only (no scale or rotate).
////////////////////////////////////////////////////////////////////

504 17 PGSliderBarNotify 0 1050625 17 PGSliderBarNotify 17 PGSliderBarNotify 0 0 0 0 0 0 0 0 0 0 0 0 342
////////////////////////////////////////////////////////////////////
//       Class : PGSliderBarNotify
// Description : Objects that inherit from this class can receive
//               notify messages when a slider bar moves or otherwise
//               is reconfigured.
////////////////////////////////////////////////////////////////////

505 9 PGWaitBar 0 75777 9 PGWaitBar 9 PGWaitBar 0 0 0 1 476 0 0 9 477 478 479 480 481 482 483 484 485 0 0 1 0 488 0 0 0 0 411
////////////////////////////////////////////////////////////////////
//       Class : PGWaitBar
// Description : This is a particular kind of PGItem that draws a
//               little bar that fills from left to right to indicate
//               a slow process gradually completing, like a
//               traditional "wait, loading" bar.
////////////////////////////////////////////////////////////////////

506 14 PGFrameStyle * 0 8576 14 PGFrameStyle * 14 PGFrameStyle * 0 0 486 0 0 0 0 0 0 0 0 0 0

507 20 PGFrameStyle const * 0 8576 20 PGFrameStyle const * 20 PGFrameStyle const * 0 0 508 0 0 0 0 0 0 0 0 0 0

508 18 PGFrameStyle const 0 8832 18 PGFrameStyle const 18 PGFrameStyle const 0 0 486 0 0 0 0 0 0 0 0 0 0

509 4 void 0 8194 4 void 4 void 0 6 0 0 0 0 0 0 0 0 0 0 0

510 18 LVecBase4f const * 0 8576 18 LVecBase4f const * 18 LVecBase4f const * 0 0 511 0 0 0 0 0 0 0 0 0 0

511 16 LVecBase4f const 0 8832 16 LVecBase4f const 16 LVecBase4f const 0 0 512 0 0 0 0 0 0 0 0 0 0

512 10 LVecBase4f 0 2048 10 LVecBase4f 10 LVecBase4f 0 0 0 0 0 0 0 0 0 0 0 0 265
////////////////////////////////////////////////////////////////////
//       Class : LVecBase4
// Description : This is the base class for all three-component
//               vectors and points.
////////////////////////////////////////////////////////////////////

513 5 float 0 8194 5 float 5 float 0 2 0 0 0 0 0 0 0 0 0 0 0

514 12 LVecBase4f * 0 8576 12 LVecBase4f * 12 LVecBase4f * 0 0 512 0 0 0 0 0 0 0 0 0 0

515 9 Texture * 0 8576 9 Texture * 9 Texture * 0 0 516 0 0 0 0 0 0 0 0 0 0

516 7 Texture 0 2048 7 Texture 7 Texture 0 0 0 0 0 0 0 0 0 0 0 0 1051
////////////////////////////////////////////////////////////////////
//       Class : Texture
// Description : Represents a texture object, which is typically a
//               single 2-d image but may also represent a 1-d or 3-d
//               texture image, or the six 2-d faces of a cube map
//               texture.
//
//               A texture's image data might be stored in system RAM
//               (see get_ram_image()) or its image may be represented
//               in texture memory on one or more
//               GraphicsStateGuardians (see prepare()), or both.  The
//               typical usage pattern is that a texture is loaded
//               from an image file on disk, which copies its image
//               data into system RAM; then the first time the texture
//               is rendered its image data is copied to texture
//               memory (actually, to the graphics API), and the
//               system RAM image is automatically freed.
////////////////////////////////////////////////////////////////////

517 4 bool 0 8194 4 bool 4 bool 0 4 0 0 0 0 0 0 0 0 0 0 0

518 18 LVecBase2f const * 0 8576 18 LVecBase2f const * 18 LVecBase2f const * 0 0 519 0 0 0 0 0 0 0 0 0 0

519 16 LVecBase2f const 0 8832 16 LVecBase2f const 16 LVecBase2f const 0 0 520 0 0 0 0 0 0 0 0 0 0

520 10 LVecBase2f 0 2048 10 LVecBase2f 10 LVecBase2f 0 0 0 0 0 0 0 0 0 0 0 0 752
// Filename: lvecBase2_src.h
// Created by:  drose (08Mar00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//       Class : LVecBase2
// Description : This is the base class for all two-component
//               vectors and points.
////////////////////////////////////////////////////////////////////

521 9 ostream * 0 8576 9 ostream * 9 ostream * 0 0 522 0 0 0 0 0 0 0 0 0 0

522 7 ostream 0 2048 7 ostream 7 ostream 0 0 0 0 0 0 0 0 0 0 0 0 0

523 13 atomic string 0 2 13 atomic string 13 atomic string 0 7 0 0 0 0 0 0 0 0 0 0 0

524 8 PGItem * 0 8576 8 PGItem * 8 PGItem * 0 0 488 0 0 0 0 0 0 0 0 0 0

525 14 PGItem const * 0 8576 14 PGItem const * 14 PGItem const * 0 0 526 0 0 0 0 0 0 0 0 0 0

526 12 PGItem const 0 8832 12 PGItem const 12 PGItem const 0 0 488 0 0 0 0 0 0 0 0 0 0

527 3 int 0 8194 3 int 3 int 0 1 0 0 0 0 0 0 0 0 0 0 0

528 10 NodePath * 0 8576 10 NodePath * 10 NodePath * 0 0 529 0 0 0 0 0 0 0 0 0 0

529 8 NodePath 0 2048 8 NodePath 8 NodePath 0 0 0 0 0 0 0 2 590 591 0 0 0 0 4938
//
// A NodePath is the fundamental unit of high-level interaction with
// the scene graph.  It encapsulates the complete path down to a node
// from some other node, usually the root of the scene graph.  This is
// used to resolve ambiguities associated with instancing.
//
// NodePath also contains a number of handy high-level methods for
// common scene-graph manipulations, such as reparenting, and common
// state changes, such as repositioning.
//
// There are also a number of NodePath methods for finding nodes deep
// within the tree by name or by type.  These take a path string,
// which at its simplest consists of a series of node names separated
// by slashes, like a directory pathname.
//
// Each component of the path string may optionally consist of one of
// the following special names, instead of a node name:
//
//   *          -- matches exactly one node, with any name.
//   **         -- matches any sequence of zero or more nodes.
//   +typename  -- matches any node that is or derives from the given type.
//   -typename  -- matches any node that is the given type exactly.
//   =tag       -- matches any node that has the indicated tag.
//   =tag=value -- matches any node whose tag matches the indicated value.
//
// Furthermore, a node name may itself contain standard filename
// globbing characters, like *, ?, and [a-z], that will be accepted as
// a partial match.  (In fact, the '*' special name may be seen as
// just a special case of this.)  The globbing characters may not be
// used with the typename matches or with tag matches, but they may
// be used to match a tag's value in the =tag=value syntax.
//
// The special characters "@@", appearing at the beginning of a node
// name, indicate a stashed node.  Normally, stashed nodes are not
// returned by a find (but see the special flags, below), but a
// stashed node may be found if it is explicitly named with its
// leading @@ characters.  By extension, "@@*" may be used to identify
// any stashed node.
//
// Examples:
//
// "room//graph" will look for a node named "graph", which is a child
// of an unnamed node, which is a child of a node named "room", which
// is a child of the starting path.
//
// "**/red*" will look for any node anywhere in the tree (below the
// starting path) with a name that begins with "red".
//
// "**/+PartBundleNode/**/head" will look for a node named "head",
// somewhere below a PartBundleNode anywhere in the tree.
//
//
// The search is always potentially ambiguous, even if the special
// wildcard operators are not used, because there may be multiple
// nodes in the tree with the same name.  In general, in the case of
// an ambiguity, the shortest path is preferred; when a method (such
// as extend_by) must choose only only one of several possible paths,
// it will choose the shortest available; on the other hand, when a
// method (such as find_all_matches) is to return all of the matching
// paths, it will sort them so that the shortest paths appear first in
// the output.
//
//
// Special flags.  The entire string may optionally be followed by the
// ";" character, followed by one or more of the following special
// control flags, with no intervening spaces or punctuation:
//
//    -h    Do not return hidden nodes.
//    +h    Do return hidden nodes.
//    -s    Do not return stashed nodes unless explicitly referenced with @@.
//    +s    Return stashed nodes even without any explicit @@ characters.
//    -i    Node name comparisons are not case insensitive: case must match
//          exactly.
//    +i    Node name comparisons are case insensitive: case is not important.
//          This affects matches against the node name only; node type
//          and tag strings are always case sensitive.
//
// The default flags are +h-s-i.
//
////////////////////////////////////////////////////////////////////
//       Class : NodePath
// Description : NodePath is the fundamental system for disambiguating
//               instances, and also provides a higher-level interface
//               for manipulating the scene graph.
//
//               A NodePath is a list of connected nodes from the root
//               of the graph to any sub-node.  Each NodePath
//               therefore uniquely describes one instance of a node.
//
//               NodePaths themselves are lightweight objects that may
//               easily be copied and passed by value.  Their data is
//               stored as a series of NodePathComponents that are
//               stored on the nodes.  Holding a NodePath will keep a
//               reference count to all the nodes in the path.
//               However, if any node in the path is removed or
//               reparented (perhaps through a different NodePath),
//               the NodePath will automatically be updated to reflect
//               the changes.
////////////////////////////////////////////////////////////////////

530 16 NodePath const * 0 8576 16 NodePath const * 16 NodePath const * 0 0 531 0 0 0 0 0 0 0 0 0 0

531 14 NodePath const 0 8832 14 NodePath const 14 NodePath const 0 0 529 0 0 0 0 0 0 0 0 0 0

532 20 ButtonHandle const * 0 8576 20 ButtonHandle const * 20 ButtonHandle const * 0 0 533 0 0 0 0 0 0 0 0 0 0

533 18 ButtonHandle const 0 8832 18 ButtonHandle const 18 ButtonHandle const 0 0 534 0 0 0 0 0 0 0 0 0 0

534 12 ButtonHandle 0 2048 12 ButtonHandle 12 ButtonHandle 0 0 0 0 0 0 0 0 0 0 0 0 364
////////////////////////////////////////////////////////////////////
//       Class : ButtonHandle
// Description : A ButtonHandle represents a single button from any
//               device, including keyboard buttons and mouse buttons
//               (but see KeyboardButton and MouseButton).
////////////////////////////////////////////////////////////////////

535 9 LMatrix4f 0 2048 9 LMatrix4f 9 LMatrix4f 0 0 0 0 0 0 0 3 592 593 594 0 0 0 0 215
////////////////////////////////////////////////////////////////////
//       Class : LMatrix4
// Description : This is a 4-by-4 transform matrix.
////////////////////////////////////////////////////////////////////

536 11 LMatrix4f * 0 8576 11 LMatrix4f * 11 LMatrix4f * 0 0 535 0 0 0 0 0 0 0 0 0 0

537 12 AudioSound * 0 8576 12 AudioSound * 12 AudioSound * 0 0 538 0 0 0 0 0 0 0 0 0 0

538 10 AudioSound 0 2048 10 AudioSound 10 AudioSound 0 0 0 0 0 0 0 0 0 0 0 0 0

539 8 TextNode 0 2048 8 TextNode 8 TextNode 0 0 0 0 0 0 0 0 0 0 0 0 1336
////////////////////////////////////////////////////////////////////
//       Class : TextNode
// Description : The primary interface to this module.  This class
//               does basic text assembly; given a string of text and
//               a TextFont object, it creates a piece of geometry
//               that may be placed in the 3-d or 2-d world to
//               represent the indicated text.
//
//               The TextNode may be used in one of two ways.
//               Naively, it may simply be parented directly into the
//               scene graph and rendered as if it were a GeomNode; in
//               this mode, the actual polygon geometry that renders
//               the text is not directly visible or accessible, but
//               remains hidden within the TextNode.
//
//               The second way TextNode may be used is as a text
//               generator.  To use it in this way, do not parent the
//               TextNode to the scene graph; instead, set the
//               properties of the text and call generate() to return
//               an ordinary node, containing ordinary geometry, which
//               you may use however you like.  Each time you call
//               generate() a new node is returned.
////////////////////////////////////////////////////////////////////

540 10 TextNode * 0 8576 10 TextNode * 10 TextNode * 0 0 539 0 0 0 0 0 0 0 0 0 0

541 10 TypeHandle 0 2048 10 TypeHandle 10 TypeHandle 0 0 0 0 0 0 0 0 0 0 0 0 1098
////////////////////////////////////////////////////////////////////
//       Class : TypeHandle
// Description : TypeHandle is the identifier used to differentiate
//               C++ class types.  Any C++ classes that inherit from
//               some base class, and must be differentiated at run
//               time, should store a static TypeHandle object that
//               can be queried through a static member function
//               named get_class_type().  Most of the time, it is also
//               desirable to inherit from TypedObject, which provides
//               some virtual functions to return the TypeHandle for a
//               particular instance.
//
//               At its essence, a TypeHandle is simply a unique
//               identifier that is assigned by the TypeRegistry.  The
//               TypeRegistry stores a tree of TypeHandles, so that
//               ancestry of a particular type may be queried, and the
//               type name may be retrieved for run-time display.
////////////////////////////////////////////////////////////////////

542 12 TypeHandle * 0 8576 12 TypeHandle * 12 TypeHandle * 0 0 541 0 0 0 0 0 0 0 0 0 0

543 10 PGButton * 0 8576 10 PGButton * 10 PGButton * 0 0 490 0 0 0 0 0 0 0 0 0 0

544 16 PGButton const * 0 8576 16 PGButton const * 16 PGButton const * 0 0 545 0 0 0 0 0 0 0 0 0 0

545 14 PGButton const 0 8832 14 PGButton const 14 PGButton const 0 0 490 0 0 0 0 0 0 0 0 0 0

546 7 PGTop * 0 8576 7 PGTop * 7 PGTop * 0 0 492 0 0 0 0 0 0 0 0 0 0

547 14 MouseWatcher * 0 8576 14 MouseWatcher * 14 MouseWatcher * 0 0 548 0 0 0 0 0 0 0 0 0 0

548 12 MouseWatcher 0 2048 12 MouseWatcher 12 MouseWatcher 0 0 0 0 0 0 0 1 595 0 0 0 0 1626
////////////////////////////////////////////////////////////////////
//       Class : MouseWatcher
// Description : This TFormer maintains a list of rectangular regions
//               on the screen that are considered special mouse
//               regions; typically these will be click buttons.  When
//               the mouse passes in or out of one of these regions,
//               or when a button is clicked while the mouse is in one
//               of these regions, an event is thrown.
//
//               Mouse events may also be suppressed from the rest of
//               the datagraph in these special regions.
//
//               This class can also implement a software mouse
//               pointer by automatically generating a transform to
//               apply to a piece of geometry placed under the 2-d
//               scene graph.  It will move the geometry around
//               according to the mouse's known position.
//
//               Finally, this class can keep a record of the mouse
//               trail.  This is useful if you want to know, not just
//               where the mouse is, but the exact sequence of movements
//               it took to get there.  This information is mainly useful
//               for gesture-recognition code.  To use trail logging,
//               you need to enable the generation of pointer events
//               in the GraphicsWindowInputDevice and set the trail 
//               log duration in the MouseWatcher. Otherwise, the
//               trail log will be empty.
////////////////////////////////////////////////////////////////////

549 13 PGTop const * 0 8576 13 PGTop const * 13 PGTop const * 0 0 550 0 0 0 0 0 0 0 0 0 0

550 11 PGTop const 0 8832 11 PGTop const 11 PGTop const 0 0 492 0 0 0 0 0 0 0 0 0 0

551 17 MouseWatcherGroup 0 2048 17 MouseWatcherGroup 17 MouseWatcherGroup 0 0 0 0 0 0 0 1 596 0 0 0 0 290
////////////////////////////////////////////////////////////////////
//       Class : MouseWatcherGroup
// Description : This represents a collection of MouseWatcherRegions
//               that may be managed as a group.
////////////////////////////////////////////////////////////////////

552 19 MouseWatcherGroup * 0 8576 19 MouseWatcherGroup * 19 MouseWatcherGroup * 0 0 551 0 0 0 0 0 0 0 0 0 0

553 9 PGEntry * 0 8576 9 PGEntry * 9 PGEntry * 0 0 493 0 0 0 0 0 0 0 0 0 0

554 15 PGEntry const * 0 8576 15 PGEntry const * 15 PGEntry const * 0 0 555 0 0 0 0 0 0 0 0 0 0

555 13 PGEntry const 0 8832 13 PGEntry const 13 PGEntry const 0 0 493 0 0 0 0 0 0 0 0 0 0

556 7 wchar_t 0 8194 7 wchar_t 7 wchar_t 0 1 0 0 0 0 0 0 0 0 0 0 0

557 19 TextGraphic const * 0 8576 19 TextGraphic const * 19 TextGraphic const * 0 0 558 0 0 0 0 0 0 0 0 0 0

558 17 TextGraphic const 0 8832 17 TextGraphic const 17 TextGraphic const 0 0 559 0 0 0 0 0 0 0 0 0 0

559 11 TextGraphic 0 2048 11 TextGraphic 11 TextGraphic 0 0 0 0 0 0 0 0 0 0 0 0 1140
////////////////////////////////////////////////////////////////////
//       Class : TextGraphic
// Description : This defines a special model that has been
//               constructed for the purposes of embedding an
//               arbitrary graphic image within a text paragraph.
//
//               It can be any arbitrary model, though it should be
//               built along the same scale as the text, and it should
//               probably be at least mostly two-dimensional.
//               Typically, this means it should be constructed in the
//               X-Z plane, and it should have a maximum vertical (Z)
//               height of 1.0.
//
//               The frame specifies an arbitrary bounding volume in
//               the form (left, right, bottom, top).  This indicates
//               the amount of space that will be reserved within the
//               paragraph.  The actual model is not actually required
//               to fit within this rectangle, but if it does not, it
//               may visually overlap with nearby text.
////////////////////////////////////////////////////////////////////

560 22 TextProperties const * 0 8576 22 TextProperties const * 22 TextProperties const * 0 0 561 0 0 0 0 0 0 0 0 0 0

561 20 TextProperties const 0 8832 20 TextProperties const 20 TextProperties const 0 0 562 0 0 0 0 0 0 0 0 0 0

562 14 TextProperties 0 2048 14 TextProperties 14 TextProperties 0 0 0 0 0 0 0 0 0 0 0 0 1219
////////////////////////////////////////////////////////////////////
//       Class : TextProperties
// Description : This defines the set of visual properties that may be
//               assigned to the individual characters of the text.
//               (Properties which affect the overall block of text
//               can only be specified on the TextNode directly).
//
//               Typically, there is just one set of properties on a
//               given block of text, which is set directly on the
//               TextNode (TextNode inherits from TextProperties).
//               That makes all of the text within a particular block
//               have the same appearance.
//
//               This separate class exists in order to implement
//               multiple different kinds of text appearing within one
//               block.  The text string itself may reference a
//               TextProperties structure by name using the \1 and \2
//               tokens embedded within the string; each nested
//               TextProperties structure modifies the appearance of
//               subsequent text within the block.
////////////////////////////////////////////////////////////////////

563 31 PGMouseWatcherParameter const * 0 8576 31 PGMouseWatcherParameter const * 31 PGMouseWatcherParameter const * 0 0 564 0 0 0 0 0 0 0 0 0 0

564 29 PGMouseWatcherParameter const 0 8832 29 PGMouseWatcherParameter const 29 PGMouseWatcherParameter const 0 0 495 0 0 0 0 0 0 0 0 0 0

565 25 PGMouseWatcherParameter * 0 8576 25 PGMouseWatcherParameter * 25 PGMouseWatcherParameter * 0 0 495 0 0 0 0 0 0 0 0 0 0

566 29 TypedWritableReferenceCount * 0 8576 29 TypedWritableReferenceCount * 29 TypedWritableReferenceCount * 0 0 496 0 0 0 0 0 0 0 0 0 0

567 23 MouseWatcherParameter * 0 8576 23 MouseWatcherParameter * 23 MouseWatcherParameter * 0 0 497 0 0 0 0 0 0 0 0 0 0

568 26 PGMouseWatcherBackground * 0 8576 26 PGMouseWatcherBackground * 26 PGMouseWatcherBackground * 0 0 498 0 0 0 0 0 0 0 0 0 0

569 16 PGVirtualFrame * 0 8576 16 PGVirtualFrame * 16 PGVirtualFrame * 0 0 500 0 0 0 0 0 0 0 0 0 0

570 22 PGVirtualFrame const * 0 8576 22 PGVirtualFrame const * 22 PGVirtualFrame const * 0 0 571 0 0 0 0 0 0 0 0 0 0

571 20 PGVirtualFrame const 0 8832 20 PGVirtualFrame const 20 PGVirtualFrame const 0 0 500 0 0 0 0 0 0 0 0 0 0

572 22 TransformState const * 0 8576 22 TransformState const * 22 TransformState const * 0 0 573 0 0 0 0 0 0 0 0 0 0

573 20 TransformState const 0 8832 20 TransformState const 20 TransformState const 0 0 574 0 0 0 0 0 0 0 0 0 0

574 14 TransformState 0 2048 14 TransformState 14 TransformState 0 0 0 0 0 0 0 0 0 0 0 0 1138
////////////////////////////////////////////////////////////////////
//       Class : TransformState
// Description : Indicates a coordinate-system transform on vertices.
//               TransformStates are the primary means for storing
//               transformations on the scene graph.
//
//               Transforms may be specified in one of two ways:
//               componentwise, with a pos-hpr-scale, or with an
//               arbitrary transform matrix.  If you specify a
//               transform componentwise, it will remember its
//               original components.
//
//               TransformState objects are managed very much like
//               RenderState objects.  They are immutable and
//               reference-counted automatically.
//
//               You should not attempt to create or modify a
//               TransformState object directly.  Instead, call one of
//               the make() functions to create one for you.  And
//               instead of modifying a TransformState object, create a
//               new one.
////////////////////////////////////////////////////////////////////

575 11 PandaNode * 0 8576 11 PandaNode * 11 PandaNode * 0 0 489 0 0 0 0 0 0 0 0 0 0

576 13 PGSliderBar * 0 8576 13 PGSliderBar * 13 PGSliderBar * 0 0 501 0 0 0 0 0 0 0 0 0 0

577 17 LVector3f const * 0 8576 17 LVector3f const * 17 LVector3f const * 0 0 578 0 0 0 0 0 0 0 0 0 0

578 15 LVector3f const 0 8832 15 LVector3f const 15 LVector3f const 0 0 579 0 0 0 0 0 0 0 0 0 0

579 9 LVector3f 0 2048 9 LVector3f 9 LVector3f 0 0 0 0 0 0 0 0 0 0 0 0 1086
// Filename: lvector3_src.h
// Created by:  drose (24Sep99)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//       Class : LVector3
// Description : This is a three-component vector distance (as opposed
//               to a three-component point, which represents a
//               particular point in space).  Some of the methods are
//               slightly different between LPoint3 and LVector3; in
//               particular, subtraction of two points yields a
//               vector, while addition of a vector and a point yields
//               a point.
////////////////////////////////////////////////////////////////////

580 19 PGSliderBar const * 0 8576 19 PGSliderBar const * 19 PGSliderBar const * 0 0 581 0 0 0 0 0 0 0 0 0 0

581 17 PGSliderBar const 0 8832 17 PGSliderBar const 17 PGSliderBar const 0 0 501 0 0 0 0 0 0 0 0 0 0

582 15 PGScrollFrame * 0 8576 15 PGScrollFrame * 15 PGScrollFrame * 0 0 503 0 0 0 0 0 0 0 0 0 0

583 21 PGScrollFrame const * 0 8576 21 PGScrollFrame const * 21 PGScrollFrame const * 0 0 584 0 0 0 0 0 0 0 0 0 0

584 19 PGScrollFrame const 0 8832 19 PGScrollFrame const 19 PGScrollFrame const 0 0 503 0 0 0 0 0 0 0 0 0 0

585 11 PGWaitBar * 0 8576 11 PGWaitBar * 11 PGWaitBar * 0 0 505 0 0 0 0 0 0 0 0 0 0

586 17 PGWaitBar const * 0 8576 17 PGWaitBar const * 17 PGWaitBar const * 0 0 587 0 0 0 0 0 0 0 0 0 0

587 15 PGWaitBar const 0 8832 15 PGWaitBar const 15 PGWaitBar const 0 0 505 0 0 0 0 0 0 0 0 0 0

588 6 string 0 2048 20 basic_string< char > 20 basic_string< char > 0 0 0 0 0 0 0 0 0 0 0 0 0

0
0
8
589 0 0 22 14 get_state_defs 18 get_num_state_defs 13 get_state_def 
590 0 0 326 9 get_nodes 13 get_num_nodes 8 get_node 
591 0 0 326 13 get_ancestors 13 get_num_nodes 12 get_ancestor 
592 0 0 357 8 get_rows 4 size 7 get_row 
593 0 0 357 8 get_cols 4 size 7 get_col 
594 0 0 357 9 get_row3s 4 size 8 get_row3 
595 0 0 396 10 get_groups 14 get_num_groups 9 get_group 
596 0 0 400 11 get_regions 15 get_num_regions 10 get_region 
