Developer Documentation
Loading...
Searching...
No Matches
QtWidgetObject.hh
Go to the documentation of this file.
1/*===========================================================================*\
2* *
3* OpenFlipper *
4 * Copyright (c) 2001-2015, RWTH-Aachen University *
5 * Department of Computer Graphics and Multimedia *
6 * All rights reserved. *
7 * www.openflipper.org *
8 * *
9 *---------------------------------------------------------------------------*
10 * This file is part of OpenFlipper. *
11 *---------------------------------------------------------------------------*
12 * *
13 * Redistribution and use in source and binary forms, with or without *
14 * modification, are permitted provided that the following conditions *
15 * are met: *
16 * *
17 * 1. Redistributions of source code must retain the above copyright notice, *
18 * this list of conditions and the following disclaimer. *
19 * *
20 * 2. Redistributions in binary form must reproduce the above copyright *
21 * notice, this list of conditions and the following disclaimer in the *
22 * documentation and/or other materials provided with the distribution. *
23 * *
24 * 3. Neither the name of the copyright holder nor the names of its *
25 * contributors may be used to endorse or promote products derived from *
26 * this software without specific prior written permission. *
27 * *
28 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *
29 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED *
30 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
31 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER *
32 * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, *
33 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, *
34 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR *
35 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
36 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING *
37 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
38 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
39* *
40\*===========================================================================*/
41
42
43
44//=============================================================================
45//
46// Types
47//
48//=============================================================================
49
56#ifndef QT_WIDGET_OBJECT_HH
57#define QT_WIDGET_OBJECT_HH
58
59
60
61//== INCLUDES =================================================================
62
65
66#include <QWidget>
67
68#include "QtWidgetTypes.hh"
69
70//== TYPEDEFS =================================================================
71
72// //== CLASS DEFINITION =========================================================
73
74class OBJECTTYPEDLLEXPORT QtWidgetObject : public BaseObjectData {
75
76 friend class TypeQtWidgetPlugin;
77
78 public:
81
86 QtWidgetObject(const QtWidgetObject& _object);
87
89 virtual ~QtWidgetObject();
90
92 virtual void cleanup();
93
98
99
100 protected:
102 virtual void init(QWidget* _widget);
103
104 //===========================================================================
107 //===========================================================================
108 public:
109
111 void setName( QString _name );
112
115 //===========================================================================
118 //===========================================================================
119 public:
120
121 QWidget* widget()const{return widgetNode_->widget();}
122
123 void setWidget(QWidget* _widget){widgetNode_->setWidget(_widget);}
124
127 //===========================================================================
130 //===========================================================================
131
132 public:
134 ACG::SceneGraph::QtWidgetNode* qtWidgetNode();
135
136 virtual bool hasNode(BaseNode* _node);
137
138 private:
140
143 //===========================================================================
146 //===========================================================================
147 public:
149 QString getObjectinfo();
150
154 //===========================================================================
157 //===========================================================================
158 public:
160 bool picked( uint _node_idx );
161
163 void enablePicking( bool _enable );
164
166 bool pickingEnabled();
167
169 void mouseEvent(QMouseEvent* _event){widgetNode_->mouseEvent(_event);}
170
173 public:
174
176 virtual void visible(bool _visible);
177
179 virtual bool visible();
180
182 virtual void show();
183
185 virtual void hide();
186
187
188 //===========================================================================
195 //===========================================================================
196
197 protected:
205 void update(UpdateType _type = UPDATE_ALL );
206
209};
210
211//=============================================================================
212#endif // QT_WIDGET_OBJECT_HH defined
213//=============================================================================
214
void mouseEvent(GLState &_state, QMouseEvent *_event) override
Handle mouse event (some interaction, e.g. modeling)
virtual void enablePicking(bool _enable)
virtual bool pickingEnabled()
virtual void show()
Sets the whole Scenegraph subtree of this node to visible.
virtual void hide()
Sets the whole Scenegraph subtree of this node to invisible.
virtual void setName(QString _name) override
path to the file from which the object is loaded ( defaults to "." )
virtual void update(UpdateType _type=UPDATE_ALL) override
This function is called to update the object.
virtual void cleanup() override
virtual bool hasNode(BaseNode *_node)
Check if the given node is owned by this object.
virtual bool visible() override
return visiblity
virtual bool picked(uint _node_idx)
detect if the node has been picked
virtual QString getObjectinfo()
Get all Info for the Object as a string.
virtual BaseObject * copy()
Returns a full copy of the object.
QtWidgetNode * widgetNode_
Get the scenegraph Node.
void mouseEvent(QMouseEvent *_event)
send a special Mouse event to the widget
Update type class.
Definition UpdateType.hh:59
const UpdateType UPDATE_ALL(UpdateTypeSet(1))
Identifier for all updates.