Developer Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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 * $Revision$ *
45 * $LastChangedBy$ *
46 * $Date$ *
47 * *
48 \*===========================================================================*/
49 
50 //=============================================================================
51 //
52 // Types
53 //
54 //=============================================================================
55 
62 #ifndef QT_WIDGET_OBJECT_HH
63 #define QT_WIDGET_OBJECT_HH
64 
65 
66 
67 //== INCLUDES =================================================================
68 
70 #include <QWidget>
71 
72 #include "QtWidgetTypes.hh"
73 
74 //== TYPEDEFS =================================================================
75 
76 // //== CLASS DEFINITION =========================================================
77 
79 
80  friend class TypeQtWidgetPlugin;
81 
82  public:
85 
90  QtWidgetObject(const QtWidgetObject& _object);
91 
93  virtual ~QtWidgetObject();
94 
96  virtual void cleanup();
97 
101  BaseObject* copy();
102 
103 
104  protected:
106  virtual void init(QWidget* _widget);
107 
108  //===========================================================================
111  //===========================================================================
112  public:
113 
115  void setName( QString _name );
116 
119  //===========================================================================
122  //===========================================================================
123  public:
124 
125  QWidget* widget()const{return widgetNode_->widget();}
126 
127  void setWidget(QWidget* _widget){widgetNode_->setWidget(_widget);}
128 
131  //===========================================================================
134  //===========================================================================
135 
136  public:
138  ACG::SceneGraph::QtWidgetNode* qtWidgetNode();
139 
140  virtual bool hasNode(BaseNode* _node);
141 
142  private:
144 
147  //===========================================================================
150  //===========================================================================
151  public:
153  QString getObjectinfo();
154 
158  //===========================================================================
161  //===========================================================================
162  public:
164  bool picked( uint _node_idx );
165 
167  void enablePicking( bool _enable );
168 
170  bool pickingEnabled();
171 
173  void mouseEvent(QMouseEvent* _event){widgetNode_->mouseEvent(_event);}
174 
177  public:
178 
180  virtual void visible(bool _visible);
181 
183  virtual bool visible();
184 
186  virtual void show();
187 
189  virtual void hide();
190 
191 
192  //===========================================================================
199  //===========================================================================
200 
201  protected:
209  void update(UpdateType _type = UPDATE_ALL );
210 
213 };
214 
215 //=============================================================================
216 #endif // QT_WIDGET_OBJECT_HH defined
217 //=============================================================================
218 
virtual QString getObjectinfo()
Get all Info for the Object as a string.
Definition: BaseObject.cc:255
Update type class.
Definition: UpdateType.hh:70
const UpdateType UPDATE_ALL(UpdateTypeSet(1))
Identifier for all updates.
virtual void setName(QString _name)
path to the file from which the object is loaded ( defaults to "." )
virtual bool pickingEnabled()
void mouseEvent(QMouseEvent *_event)
send a special Mouse event to the widget
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 cleanup()
virtual bool hasNode(BaseNode *_node)
Check if the given node is owned by this object.
QtWidgetNode * widgetNode_
Get the scenegraph Node.
virtual void enablePicking(bool _enable)
virtual void update(UpdateType _type=UPDATE_ALL)
This function is called to update the object.
#define DLLEXPORT
virtual BaseObject * copy()
Returns a full copy of the object.
Definition: BaseObject.cc:780
virtual bool visible()
return visiblity
virtual bool picked(uint _node_idx)
detect if the node has been picked