Coin Logo http://www.coin3d.org/
http://www.kongsberg.com/kogt/

SoQtFullViewer.h
1 #ifndef SOQT_FULLVIEWER_H
2 #define SOQT_FULLVIEWER_H
3 
4 // src/Inventor/Qt/viewers/SoQtFullViewer.h. Generated from SoGuiFullViewer.h.in by configure.
5 
6 /**************************************************************************\
7  * Copyright (c) Kongsberg Oil & Gas Technologies AS
8  * All rights reserved.
9  *
10  * Redistribution and use in source and binary forms, with or without
11  * modification, are permitted provided that the following conditions are
12  * met:
13  *
14  * Redistributions of source code must retain the above copyright notice,
15  * this list of conditions and the following disclaimer.
16  *
17  * Redistributions in binary form must reproduce the above copyright
18  * notice, this list of conditions and the following disclaimer in the
19  * documentation and/or other materials provided with the distribution.
20  *
21  * Neither the name of the copyright holder nor the names of its
22  * contributors may be used to endorse or promote products derived from
23  * this software without specific prior written permission.
24  *
25  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
26  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
27  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
28  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
29  * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
30  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
31  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
32  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
33  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
34  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
35  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36 \**************************************************************************/
37 
38 #include <Inventor/Qt/viewers/SoQtViewer.h>
39 
40 class SoQtPopupMenu;
41 
42 // *************************************************************************
43 
44 class SOQT_DLL_API SoQtFullViewer : public SoQtViewer {
45  SOQT_OBJECT_ABSTRACT_HEADER(SoQtFullViewer, SoQtViewer);
46 
47 public:
48  enum BuildFlag {
49  BUILD_NONE = 0x00,
50  BUILD_DECORATION = 0x01,
51  BUILD_POPUP = 0x02,
52  BUILD_ALL = (BUILD_DECORATION | BUILD_POPUP)
53  };
54 
55  void setDecoration(const SbBool on);
56  SbBool isDecoration(void) const;
57 
58  void setPopupMenuEnabled(const SbBool on);
59  SbBool isPopupMenuEnabled(void) const;
60 
61  QWidget * getAppPushButtonParent(void) const;
62  void addAppPushButton(QWidget * newButton);
63  void insertAppPushButton(QWidget * newButton, int index);
64  void removeAppPushButton(QWidget * oldButton);
65  int findAppPushButton(QWidget * oldButton) const;
66  int lengthAppPushButton(void) const;
67 
68  QWidget * getRenderAreaWidget(void) const;
69 
70  virtual void setViewing(SbBool on);
71 
72  virtual void setComponentCursor(const SoQtCursor & cursor);
73 
74 protected:
75  SoQtFullViewer(QWidget * parent,
76  const char * name,
77  SbBool embed,
78  BuildFlag flag,
79  Type type,
80  SbBool build);
81  ~SoQtFullViewer();
82 
83  virtual void sizeChanged(const SbVec2s & size);
84 
85  QWidget * buildWidget(QWidget * parent);
86 
87  virtual void buildDecoration(QWidget * parent);
88  virtual QWidget * buildLeftTrim(QWidget * parent);
89  virtual QWidget * buildBottomTrim(QWidget * parent);
90  virtual QWidget * buildRightTrim(QWidget * parent);
91  QWidget * buildAppButtons(QWidget * parent);
92  QWidget * buildViewerButtons(QWidget * parent);
93  virtual void createViewerButtons(QWidget * parent, SbPList * buttonlist);
94 
95  virtual void buildPopupMenu(void);
96  virtual void setPopupMenuString(const char * title);
97  virtual void openPopupMenu(const SbVec2s position);
98 
99  virtual void leftWheelStart(void);
100  virtual void leftWheelMotion(float);
101  virtual void leftWheelFinish(void);
102  float getLeftWheelValue(void) const;
103  void setLeftWheelValue(const float value);
104 
105  virtual void bottomWheelStart(void);
106  virtual void bottomWheelMotion(float);
107  virtual void bottomWheelFinish(void);
108  float getBottomWheelValue(void) const;
109  void setBottomWheelValue(const float value);
110 
111  virtual void rightWheelStart(void);
112  virtual void rightWheelMotion(float);
113  virtual void rightWheelFinish(void);
114  float getRightWheelValue(void) const;
115  void setRightWheelValue(const float value);
116 
117  void setLeftWheelString(const char * const name);
118  QWidget * getLeftWheelLabelWidget(void) const;
119  void setBottomWheelString(const char * const name);
120  QWidget * getBottomWheelLabelWidget(void) const;
121  void setRightWheelString(const char * const name);
122  const char * getRightWheelString() const;
123  QWidget * getRightWheelLabelWidget(void) const;
124 
125  virtual SbBool processSoEvent(const SoEvent * const event);
126 
127 protected:
128  QWidget * leftWheel;
129  QWidget * rightWheel;
130  QWidget * bottomWheel;
131 
132  QWidget * leftDecoration;
133  QWidget * rightDecoration;
134  QWidget * bottomDecoration;
135 
136  QWidget * leftWheelLabel;
137  char * leftWheelStr;
139 
140  QWidget * rightWheelLabel;
143 
144  QWidget * bottomWheelLabel;
147 
148  SoQtPopupMenu * prefmenu;
149 
150 private:
151  // Private class for implementation hiding. The idiom we're using is
152  // a variant of what is known as the "Cheshire Cat", and is also
153  // described as the "Bridge" pattern in «Design Patterns» by Gamma
154  // et al (aka The Gang Of Four).
155  class SoQtFullViewerP * pimpl;
156 
157  friend class SoGuiFullViewerP;
158  friend class SoQtFullViewerP;
159 
160 
161 
162 // FIXME: get rid of non-templatized code. 20020108 mortene.
163 
164 #ifdef __COIN_SOXT__ // FIXME: get rid of non-templatized code. 20020108 mortene.
165 protected:
166  Widget buildFunctionsSubmenu(Widget popup);
167  Widget buildDrawStyleSubmenu(Widget popup);
168 
169  char * popupTitle;
170  SbBool popupEnabled;
171  SbPList * viewerButtonWidgets;
172 #endif // __COIN_SOXT__
173 };
174 
175 // *************************************************************************
176 
177 #endif // ! SOQT_FULLVIEWER_H
virtual SbBool processSoEvent(const SoEvent *const event)
Definition: SoQtViewer.cpp:3654
float leftWheelVal
Definition: SoQtFullViewer.h:138
QWidget * leftDecoration
Definition: SoQtFullViewer.h:132
BuildFlag
Definition: SoQtFullViewer.h:48
The SoQtViewer class is the top level base viewer class.This is an abstract class, which adds the following features to it's SoQtRenderArea superclass: convenient methods for camera handling, an automatic headlight configuration.
Definition: SoQtViewer.h:90
float bottomWheelVal
Definition: SoQtFullViewer.h:146
float rightWheelVal
Definition: SoQtFullViewer.h:142
QWidget * leftWheelLabel
Definition: SoQtFullViewer.h:136
QWidget * bottomWheelLabel
Definition: SoQtFullViewer.h:144
Type
Definition: SoQtViewer.h:94
QWidget * bottomDecoration
Definition: SoQtFullViewer.h:134
QWidget * bottomWheel
Definition: SoQtFullViewer.h:130
QWidget * rightDecoration
Definition: SoQtFullViewer.h:133
virtual void sizeChanged(const SbVec2s &size)
Definition: SoQtViewer.cpp:3645
virtual void setViewing(SbBool enable)
Definition: SoQtViewer.cpp:2141
SoQtPopupMenu * prefmenu
Definition: SoQtFullViewer.h:148
QWidget * rightWheel
Definition: SoQtFullViewer.h:129
char * leftWheelStr
Definition: SoQtFullViewer.h:137
char * rightWheelStr
Definition: SoQtFullViewer.h:141
QWidget * leftWheel
Definition: SoQtFullViewer.h:128
char * bottomWheelStr
Definition: SoQtFullViewer.h:145
The SoQtCursor class is used to set cursors for GUI components.The class provides both a set of pre-d...
Definition: SoQtCursor.h:41
virtual void setComponentCursor(const SoQtCursor &cursor)
Definition: SoQtComponent.cpp:971
QWidget * rightWheelLabel
Definition: SoQtFullViewer.h:140
The SoQtFullViewer class adds some user interface components to the viewer canvas.The SoQtFullViewer is an abstract viewer class which extends it's superclass (the basic SoQtViewer class) with two major user interface additions:
Definition: SoQtFullViewer.h:44

Copyright © by Kongsberg Oil & Gas Technologies. All rights reserved.

Generated on Sat May 6 2017 19:04:47 for SoQt by Doxygen 1.8.6.