OpenSceneGraph 3.6.5
Widget
Go to the documentation of this file.
1/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2008 Robert Osfield
2 *
3 * This library is open source and may be redistributed and/or modified under
4 * the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
5 * (at your option) any later version. The full license is in LICENSE file
6 * included with this distribution, and on the openscenegraph.org website.
7 *
8 * This library is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * OpenSceneGraph Public License for more details.
12*/
13
14// Code by: Jeremy Moles (cubicool) 2007-2008
15
16#ifndef OSGWIDGET_WIDGET
17#define OSGWIDGET_WIDGET
18
19#include <osg/Texture2D>
23#include <osgWidget/Types>
24
25namespace osgWidget {
26
27class Window;
28class WindowManager;
29
30// A Widget is a rectangular region that receives events about the state of various input
31// devices such as the pointer and keyboard. It is aware of it's width, height, and origin but
32// nothing else. It is the job of higher-level container objects to organize layouts and
33// the like, and to contextualize the meaning of the widgets "origin" (whether it is absolute
34// or relative).
36public:
48
49 enum Layer {
50 LAYER_TOP = 100,
55 };
56
62
68
73
74
75 Widget (const std::string& = "", point_type = 0.0f, point_type = 0.0f);
76 Widget (const Widget&, const osg::CopyOp&);
77
79
80 virtual ~Widget() {
81 }
82
83 // This method is called when the widget is added to a Window; this is useful
84 // when the widget needs to do something advanced (like a Label). The parent
85 // is passed as the first argument, although _parent should already be set.
86 virtual void parented(Window*) {
87 }
88
89 virtual void unparented(Window*) {
90 }
91
92 // This method is called when the widget's parent Window is added to a
93 // WindowManager object. The base managed method (WHICH YOU MUST REMEMBER
94 // TO CALL IN YOUR DERIVED METHODS!) sets the TexMat properly depending
95 // on what coordinate system you're using.
96 virtual void managed(WindowManager*) {
97 }
98
99 virtual void unmanaged(WindowManager*) {
100 }
101
102 // This method is called when the widget is resized or reallocated in any
103 // way. This is useful when the widget manages some internal Drawables that need
104 // to be modified in some way.
105 virtual void positioned() {
106 }
107
109 point_type = -1.0f,
110 point_type = -1.0f,
111 point_type = -1.0f,
112 point_type = -1.0f,
113 point_type = -1.0f
114 );
115
120 void setLayer (Layer l, unsigned int offset = 0);
121
122 // These are additional texture coordinate setting methods.
123 // This method will use a given origin as the LOWER_LEFT point and texture the
124 // remaining area based on some width and height values.
126
127 // These are convenience methods for setting up wrapping modes.
130
131 bool setImage (osg::Image*, bool = false, bool = false);
132
133 template<class T> bool setImage(const osg::ref_ptr<T>& image, bool f1 = false, bool f2 = false) { return setImage(image.get(), f1, f2); }
134
135
136 bool setImage (const std::string&, bool = false, bool = false);
137 bool setTexture (osg::Texture*, bool = false, bool = false);
138
145
148 point_type getX () const;
149 point_type getY () const;
150 point_type getZ () const;
153
157
159 XYCoord localXY (double, double) const;
160
161 bool isPaddingUniform() const;
162
163 bool isManaged() const {
164 return _isManaged;
165 }
166
167 bool isStyled() const {
168 return _isStyled;
169 }
170
171 void setDimensions(const Quad& q, point_type z = -1.0f) {
172 setDimensions(q[0], q[1], q[2], q[3], z);
173 }
174
175 void setX(point_type x) {
176 setDimensions(x);
177 }
178
179 void setY(point_type y) {
180 setDimensions(-1.0f, y);
181 }
182
183 // This method should be use with extreme caution.
184 void setZ(point_type z) {
185 setDimensions(-1.0f, -1.0f, -1.0f, -1.0f, z);
186 }
187
189 setDimensions(-1.0f, -1.0f, w);
190 }
191
193 setDimensions(-1.0f, -1.0f, -1.0f, h);
194 }
195
197 setDimensions(x, y);
198 }
199
200 void setOrigin(const XYCoord& xy) {
201 setOrigin(xy.x(), xy.y());
202 }
203
205 setDimensions(-1.0f, -1.0f, w, h);
206 }
207
208 void setSize(const XYCoord& xy) {
209 setSize(xy.x(), xy.y());
210 }
211
212 void setColor(const Color& col, Corner p = ALL_CORNERS) {
213 setColor(col.r(), col.g(), col.b(), col.a(), p);
214 }
215
216 void setTexCoord(const XYCoord& xy, Corner p = ALL_CORNERS) {
217 setTexCoord(xy.x(), xy.y(), p);
218 }
219
221 setTexCoordRegion(xy.x(), xy.y(), w, h);
222 }
223
225 setTexCoordRegion(x, y, wh.x(), wh.y());
226 }
227
228 void setTexCoordRegion(const XYCoord& xy, const XYCoord& wh) {
229 setTexCoordRegion(xy.x(), xy.y(), wh.x(), wh.y());
230 }
231
232 void addColor(const Color& col, Corner p = ALL_CORNERS) {
233 addColor(col.r(), col.g(), col.b(), col.a(), p);
234 }
235
236 void addOrigin(const XYCoord& xy) {
237 addOrigin(xy.x(), xy.y());
238 }
239
240 void addSize(const XYCoord& xy) {
241 addSize(xy.x(), xy.y());
242 }
243
245 _minWidth = width;
246 _minHeight = height;
247 }
248
249 void setMinimumSize(const XYCoord& xy) {
250 setMinimumSize(xy.x(), xy.y());
251 }
252
254 _padLeft = p;
255 }
256
258 _padRight = p;
259 }
260
262 _padTop = p;
263 }
264
266 _padBottom = p;
267 }
268
272
276
278 _coordMode = cm;
279 }
280
281 void setCanFill(bool f) {
282 _canFill = f;
283 }
284
285 void setCanClone(bool c) {
286 _canClone = c;
287 }
288
292
294 return _getWindowManager();
295 }
296
298 return _parent;
299 }
300
301 const Window* getParent() const {
302 return _parent;
303 }
304
305 unsigned int getIndex() const {
306 return _index;
307 }
308
310 return XYCoord(getX(), getY());
311 }
312
313 Color getImageColorAtXY(const XYCoord& xy) const {
314 return getImageColorAtXY(xy.x(), xy.y());
315 }
316
317 Color getImageColorAtPointerXY(double x, double y) const {
318 return getImageColorAtXY(localXY(x, y));
319 }
320
322 return Point(getX(), getY(), getZ());
323 }
324
325 XYCoord getSize() const {
326 return XYCoord(getWidth(), getHeight());
327 }
328
330 return Quad(getX(), getY(), getWidth(), getHeight());
331 }
332
334 return _padLeft;
335 }
336
338 return _padRight;
339 }
340
342 return _padTop;
343 }
344
346 return _padBottom;
347 }
348
350 return _halign;
351 }
352
354 return _valign;
355 }
356
358 return _coordMode;
359 }
360
361 bool canFill() const {
362 return _canFill;
363 }
364
365 bool canClone() const {
366 return _canClone;
367 }
368
369 // This casts the bool _fill variable to be used in iteratively in functions such
370 // as Window::_accumulate and whatnot.
372 return static_cast<point_type>(_canFill);
373 }
374
376 return getWidth() + getPadHorizontal();
377 }
378
380 return getHeight() + getPadVertical();
381 }
382
384 return _minWidth;
385 }
386
388 return _minHeight;
389 }
390
392 return _minWidth + getPadHorizontal();
393 }
394
396 return _minHeight + getPadVertical();
397 }
398
399 unsigned int getLayer() const {
400 return _layer;
401 }
402
403 protected:
404
405 point_type _calculateZ(unsigned int) const;
406
408 return dynamic_cast<PointArray*>(getVertexArray());
409 }
410
411 const PointArray* _verts() const {
412 return dynamic_cast<const PointArray*>(getVertexArray());
413 }
414
416 return dynamic_cast<ColorArray*>(getColorArray());
417 }
418
419 const ColorArray* _cols() const {
420 return dynamic_cast<const ColorArray*>(getColorArray());
421 }
422
424 return dynamic_cast<TexCoordArray*>(getTexCoordArray(0));
425 }
426
427 const TexCoordArray* _texs() const {
428 return dynamic_cast<const TexCoordArray*>(getTexCoordArray(0));
429 }
430
433
434 if(!ss) return 0;
435
436 return dynamic_cast<osg::Texture2D*>(
438 );
439 }
440
441 const osg::Texture* _texture() const {
442 const osg::StateSet* ss = getStateSet();
443
444 if(!ss) return 0;
445
446 return dynamic_cast<const osg::Texture2D*>(
448 );
449 }
450
452 return _getImage();
453 }
454
455 const osg::Image* _image() const {
456 return _getImage();
457 }
458
459 friend class Window;
460
461 // TODO: Because of the current class design, I don't think it's possible to
462 // have a ref_ptr here. :(
464
465 unsigned int _index;
466 unsigned int _layer;
467
468 // Padding is the value of pixels of space between whatever the widget is "contianed"
469 // in and the point at which it starts getting placed.
474
475 // The alignments are used in conjunction when the widget is NOT set to fill.
478
479 // This flag determines how sizing values are interpretted by setDimensions().
481
482 // These are the relative values, which are not stored directly in our verts
483 // array but kept around for calculation later.
485
486 // This fill flag determines whether or not the widget will resize itself to fill
487 // all available space.
489
490 // Set this to false in an implementation to prevent copying.
492
493 // This variable is only used by the Window object to determine if it's necessary
494 // to call managed().
496
497 // This variable is like _isManaged; it is used to store whether the Widget has
498 // been styled yet.
500
501 // Set these variables to be the minimum size of a Widget so that it cannot be
502 // resized any smaller than this.
505
507
510
511};
512
513typedef std::list<osg::observer_ptr<Widget> > WidgetList;
514
515// A Widget subclass that prints stuff using osg::notify(). :)
516struct NotifyWidget: public Widget {
518
519 NotifyWidget(const std::string& n = "", point_type w = 0.0f, point_type h = 0.0f):
520 Widget(n, w, h) {
522 }
523
524 NotifyWidget(const NotifyWidget& widget, const osg::CopyOp& co):
525 Widget(widget, co) {
526 }
527
528 bool focus(const WindowManager*) {
529 osg::notify(osg::NOTICE) << _name << " > focus called" << std::endl;
530
531 return false;
532 }
533
534 bool unfocus(const WindowManager*) {
535 osg::notify(osg::NOTICE) << _name << " > unfocus called" << std::endl;
536
537 return false;
538 }
539
540 bool mouseEnter(double, double, const WindowManager*) {
541 osg::notify(osg::NOTICE) << _name << " > mouseEnter called" << std::endl;
542
543 return false;
544 }
545
546 bool mouseOver(double, double, const WindowManager*) {
547 osg::notify(osg::NOTICE) << _name << " > mouseOver called" << std::endl;
548
549 return false;
550 }
551
552 bool mouseLeave(double, double, const WindowManager*) {
553 osg::notify(osg::NOTICE) << _name << " > mouseLeave called" << std::endl;
554
555 return false;
556 }
557
558 bool mouseDrag(double, double, const WindowManager*) {
559 osg::notify(osg::NOTICE) << _name << " > mouseDrag called" << std::endl;
560
561 return false;
562 }
563
564 bool mousePush(double, double, const WindowManager*) {
565 osg::notify(osg::NOTICE) << _name << " > mousePush called" << std::endl;
566
567 return false;
568 }
569
570 bool mouseRelease(double, double, const WindowManager*) {
571 osg::notify(osg::NOTICE) << _name << " > mouseRelease called" << std::endl;
572
573 return false;
574 }
575
576 bool mouseScroll(double, double, const WindowManager*) {
577 osg::notify(osg::NOTICE) << _name << " > mouseScroll called" << std::endl;
578
579 return false;
580 }
581
582 bool keyPress(int, int, const WindowManager*) {
583 osg::notify(osg::NOTICE) << _name << " > keyPress called" << std::endl;
584
585 return false;
586 }
587
588 bool keyRelease(int, int, const WindowManager*) {
589 osg::notify(osg::NOTICE) << _name << " > keyRelease called" << std::endl;
590
591 return false;
592 }
593};
594
595// A Widget that eats all events and returns true.
596struct NullWidget: public Widget {
598
599 NullWidget(const std::string& n = "", point_type w = 0.0f, point_type h = 0.0f):
600 Widget(n, w, h) {
602 }
603
604 NullWidget(const NullWidget& widget, const osg::CopyOp& co):
605 Widget(widget, co) {
606 }
607
608 bool focus(const WindowManager*) {
609 return true;
610 }
611
612 bool unfocus(const WindowManager*) {
613 return true;
614 }
615
616 bool mouseEnter(double, double, const WindowManager*) {
617 return true;
618 }
619
620 bool mouseOver(double, double, const WindowManager*) {
621 return true;
622 }
623
624 bool mouseLeave(double, double, const WindowManager*) {
625 return true;
626 }
627
628 bool mouseDrag(double, double, const WindowManager*) {
629 return true;
630 }
631
632 bool mousePush(double, double, const WindowManager*) {
633 return true;
634 }
635
636 bool mouseRelease(double, double, const WindowManager*) {
637 return true;
638 }
639
640 bool mouseScroll(double, double, const WindowManager*) {
641 return true;
642 }
643
644 bool keyPress(int, int, const WindowManager*) {
645 return true;
646 }
647
648 bool keyRelease(int, int, const WindowManager*) {
649 return true;
650 }
651};
652
653}
654
655#endif
@ NOTICE
Definition Notify:34
std::ostream & notify(void)
Definition Notify:80
The osgWidget library is a NodeKit that extends the core scene graph to support a 2D (and eventually ...
Definition Box:21
osg::Vec4Array ColorArray
Definition Types:26
osg::Vec4 Quad
Definition Types:37
Color::value_type color_type
Definition Types:34
Point::value_type point_type
Definition Types:33
osg::Vec2 XYCoord
Definition Types:36
PointArray::value_type Point
Definition Types:29
@ EVENT_ALL
Definition EventInterface:46
TexCoord::value_type texcoord_type
Definition Types:32
TexCoordArray::value_type TexCoord
Definition Types:28
osg::Vec2Array TexCoordArray
Definition Types:24
std::list< osg::observer_ptr< Widget > > WidgetList
Definition Widget:513
ColorArray::value_type Color
Definition Types:30
osg::Vec3Array PointArray
Definition Types:25
Copy Op(erator) used to control whether shallow or deep copy is used during copy construction and clo...
Definition CopyOp:41
Definition Geometry:31
Array * getVertexArray()
Definition Geometry:49
Array * getTexCoordArray(unsigned int unit)
Array * getColorArray()
Definition Geometry:62
Image class for encapsulating the storage texture image data.
Definition Image:179
osg::StateSet * getStateSet()
Return the node's StateSet.
Definition Node:382
std::string _name
Definition Object:303
Smart pointer for handling referenced counted objects.
Definition ref_ptr:32
T * get() const
Definition ref_ptr:117
@ TEXTURE
Definition StateAttribute:125
Stores a set of modes and attributes which represent a set of OpenGL state.
Definition StateSet:46
StateAttribute * getTextureAttribute(unsigned int unit, StateAttribute::Type type)
Get specified Texture related StateAttribute for specified type.
Texture pure virtual base class that encapsulates OpenGL texture functionality common to the various ...
Definition Texture:422
Encapsulates OpenGL 2D texture functionality.
Definition Texture2D:25
value_type & x()
Definition Vec2f:67
value_type & y()
Definition Vec2f:68
EventInterface()
Definition EventInterface:270
void setEventMask(unsigned int mask)
Definition EventInterface:301
StyleInterface()
Definition StyleInterface:26
point_type getMinHeight() const
Definition Widget:387
point_type getFillAsNumeric() const
Definition Widget:371
point_type getPadRight() const
Definition Widget:337
const Point & getPoint(Corner=ALL_CORNERS) const
void setTexCoordRegion(const XYCoord &xy, const XYCoord &wh)
Definition Widget:228
META_Object(osgWidget, Widget)
virtual void unparented(Window *)
Definition Widget:89
point_type _padRight
Definition Widget:471
PointArray * _verts()
Definition Widget:407
Window * _parent
Definition Widget:463
void setOrigin(const XYCoord &xy)
Definition Widget:200
void setHeight(point_type h)
Definition Widget:192
unsigned int _layer
Definition Widget:466
bool setTexture(osg::Texture *, bool=false, bool=false)
point_type _calculateZ(unsigned int) const
point_type getPadBottom() const
Definition Widget:345
point_type _minHeight
Definition Widget:504
void setSize(const XYCoord &xy)
Definition Widget:208
bool _isStyled
Definition Widget:499
void addSize(point_type, point_type)
void setTexCoord(const XYCoord &xy, Corner p=ALL_CORNERS)
Definition Widget:216
XYCoord localXY(double, double) const
point_type getHeightTotal() const
Definition Widget:379
HorizontalAlignment getAlignHorizontal() const
Definition Widget:349
HorizontalAlignment
Definition Widget:63
@ HA_LEFT
Definition Widget:65
@ HA_CENTER
Definition Widget:64
@ HA_RIGHT
Definition Widget:66
void addX(point_type)
const osg::Image * _image() const
Definition Widget:455
point_type getWidthTotal() const
Definition Widget:375
virtual void unmanaged(WindowManager *)
Definition Widget:99
void addHeight(point_type)
void setOrigin(point_type x, point_type y)
Definition Widget:196
point_type getPadLeft() const
Definition Widget:333
unsigned int getLayer() const
Definition Widget:399
void setTexCoordWrapVertical()
void setCoordinateMode(CoordinateMode cm)
Definition Widget:277
virtual ~Widget()
Definition Widget:80
Color getImageColorAtXY(const XYCoord &xy) const
Definition Widget:313
Quad getDimensions() const
Definition Widget:329
friend class Window
Definition Widget:459
bool _isManaged
Definition Widget:495
void setTexCoordRegion(point_type, point_type, point_type, point_type)
point_type _padTop
Definition Widget:472
void setY(point_type y)
Definition Widget:179
void setPadRight(point_type p)
Definition Widget:257
const Window * getParent() const
Definition Widget:301
XYCoord getOrigin() const
Definition Widget:309
void setZ(point_type z)
Definition Widget:184
Widget(const std::string &="", point_type=0.0f, point_type=0.0f)
void setColor(const Color &col, Corner p=ALL_CORNERS)
Definition Widget:212
unsigned int getIndex() const
Definition Widget:305
HorizontalAlignment _halign
Definition Widget:477
void setMinimumSize(point_type width, point_type height)
Definition Widget:244
void addWidth(point_type)
void setTexCoordWrapHorizontal()
const WindowManager * getWindowManager() const
Definition Widget:293
VerticalAlignment getAlignVertical() const
Definition Widget:353
void setAlignVertical(VerticalAlignment v)
Definition Widget:273
Layer
Definition Widget:49
@ LAYER_HIGH
Definition Widget:51
@ LAYER_LOW
Definition Widget:53
@ LAYER_BG
Definition Widget:54
@ LAYER_TOP
Definition Widget:50
@ LAYER_MIDDLE
Definition Widget:52
ColorArray * _cols()
Definition Widget:415
osg::Image * _getImage() const
void addOrigin(const XYCoord &xy)
Definition Widget:236
unsigned int _index
Definition Widget:465
bool setImage(const osg::ref_ptr< T > &image, bool f1=false, bool f2=false)
Definition Widget:133
const ColorArray * _cols() const
Definition Widget:419
static osg::ref_ptr< PointArray > _norms
Definition Widget:506
bool isStyled() const
Definition Widget:167
void setSize(point_type w, point_type h)
Definition Widget:204
bool setImage(osg::Image *, bool=false, bool=false)
void setCanClone(bool c)
Definition Widget:285
bool _canClone
Definition Widget:491
point_type getPadVertical() const
void setTexCoordRegion(point_type x, point_type y, const XYCoord &wh)
Definition Widget:224
void addColor(color_type, color_type, color_type, color_type, Corner=ALL_CORNERS)
bool isPaddingUniform() const
CoordinateMode
Definition Widget:69
@ CM_ABSOLUTE
Definition Widget:70
@ CM_RELATIVE
Definition Widget:71
VerticalAlignment
Definition Widget:57
@ VA_CENTER
Definition Widget:58
@ VA_BOTTOM
Definition Widget:60
@ VA_TOP
Definition Widget:59
void setTexCoordRegion(const XYCoord &xy, point_type w, point_type h)
Definition Widget:220
point_type getY() const
Quad _relCoords
Definition Widget:484
void setX(point_type x)
Definition Widget:175
virtual void managed(WindowManager *)
Definition Widget:96
void setPadLeft(point_type p)
Definition Widget:253
const osg::Texture * _texture() const
Definition Widget:441
CoordinateMode _coordMode
Definition Widget:480
bool _canFill
Definition Widget:488
void setPadTop(point_type p)
Definition Widget:261
Corner
Definition Widget:37
@ LL
Definition Widget:42
@ LOWER_RIGHT
Definition Widget:39
@ UR
Definition Widget:44
@ LOWER_LEFT
Definition Widget:38
@ LR
Definition Widget:43
@ ALL_CORNERS
Definition Widget:46
@ UPPER_LEFT
Definition Widget:41
@ UL
Definition Widget:45
@ UPPER_RIGHT
Definition Widget:40
point_type getWidth() const
point_type _minWidth
Definition Widget:503
void setDimensions(point_type=-1.0f, point_type=-1.0f, point_type=-1.0f, point_type=-1.0f, point_type=-1.0f)
void addOrigin(point_type, point_type)
void setAlignHorizontal(HorizontalAlignment h)
Definition Widget:269
point_type getMinWidth() const
Definition Widget:383
osg::Image * _image()
Definition Widget:451
point_type getPadTop() const
Definition Widget:341
point_type getX() const
VerticalAlignment _valign
Definition Widget:476
void setDimensions(const Quad &q, point_type z=-1.0f)
Definition Widget:171
const PointArray * _verts() const
Definition Widget:411
void setPadding(point_type)
const Color & getColor(Corner=ALL_CORNERS) const
point_type getHeight() const
void addY(point_type)
point_type _padBottom
Definition Widget:473
point_type getZ() const
WindowManager * _getWindowManager() const
point_type getPadHorizontal() const
void setTexCoord(texcoord_type, texcoord_type, Corner=ALL_CORNERS)
Color getImageColorAtPointerXY(double x, double y) const
Definition Widget:317
bool canClone() const
Definition Widget:365
const TexCoordArray * _texs() const
Definition Widget:427
point_type getMinHeightTotal() const
Definition Widget:395
void addSize(const XYCoord &xy)
Definition Widget:240
osg::Texture * _texture()
Definition Widget:431
Window * getParent()
Definition Widget:297
XYCoord getSize() const
Definition Widget:325
Point getPosition() const
Definition Widget:321
void setCanFill(bool f)
Definition Widget:281
CoordinateMode getCoordinateMode() const
Definition Widget:357
WindowManager * getWindowManager()
Definition Widget:289
void setLayer(Layer l, unsigned int offset=0)
void setPadBottom(point_type p)
Definition Widget:265
bool canFill() const
Definition Widget:361
point_type getMinWidthTotal() const
Definition Widget:391
void setMinimumSize(const XYCoord &xy)
Definition Widget:249
TexCoordArray * _texs()
Definition Widget:423
virtual void parented(Window *)
Definition Widget:86
virtual void positioned()
Definition Widget:105
bool setImage(const std::string &, bool=false, bool=false)
Color getImageColorAtXY(point_type x, point_type y) const
Widget(const Widget &, const osg::CopyOp &)
void setWidth(point_type w)
Definition Widget:188
void addColor(const Color &col, Corner p=ALL_CORNERS)
Definition Widget:232
bool isManaged() const
Definition Widget:163
void setColor(color_type, color_type, color_type, color_type, Corner=ALL_CORNERS)
point_type _padLeft
Definition Widget:470
const TexCoord & getTexCoord(Corner=ALL_CORNERS) const
bool mouseEnter(double, double, const WindowManager *)
Definition Widget:540
bool mouseLeave(double, double, const WindowManager *)
Definition Widget:552
bool mouseDrag(double, double, const WindowManager *)
Definition Widget:558
bool keyPress(int, int, const WindowManager *)
Definition Widget:582
bool focus(const WindowManager *)
Definition Widget:528
bool keyRelease(int, int, const WindowManager *)
Definition Widget:588
bool mousePush(double, double, const WindowManager *)
Definition Widget:564
NotifyWidget(const std::string &n="", point_type w=0.0f, point_type h=0.0f)
Definition Widget:519
NotifyWidget(const NotifyWidget &widget, const osg::CopyOp &co)
Definition Widget:524
bool mouseOver(double, double, const WindowManager *)
Definition Widget:546
bool mouseScroll(double, double, const WindowManager *)
Definition Widget:576
META_Object(osgWidget, NotifyWidget)
bool unfocus(const WindowManager *)
Definition Widget:534
bool mouseRelease(double, double, const WindowManager *)
Definition Widget:570
bool mouseEnter(double, double, const WindowManager *)
Definition Widget:616
bool mouseLeave(double, double, const WindowManager *)
Definition Widget:624
bool keyRelease(int, int, const WindowManager *)
Definition Widget:648
bool mouseRelease(double, double, const WindowManager *)
Definition Widget:636
bool keyPress(int, int, const WindowManager *)
Definition Widget:644
bool mouseOver(double, double, const WindowManager *)
Definition Widget:620
bool unfocus(const WindowManager *)
Definition Widget:612
NullWidget(const std::string &n="", point_type w=0.0f, point_type h=0.0f)
Definition Widget:599
bool focus(const WindowManager *)
Definition Widget:608
bool mousePush(double, double, const WindowManager *)
Definition Widget:632
NullWidget(const NullWidget &widget, const osg::CopyOp &co)
Definition Widget:604
bool mouseDrag(double, double, const WindowManager *)
Definition Widget:628
META_Object(osgWidget, NullWidget)
bool mouseScroll(double, double, const WindowManager *)
Definition Widget:640
Definition WindowManager:39
#define OSGWIDGET_EXPORT
Definition Export:42

osg logo
Generated at Wed Jul 23 2025 00:00:00 for the OpenSceneGraph by doxygen 1.14.0.