SoXt  1.4.1
Coin3D GUI toolkit binding
Loading...
Searching...
No Matches
SoXtFullViewer.h
1#ifndef SOXT_FULLVIEWER_H
2#define SOXT_FULLVIEWER_H
3
4//
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/Xt/viewers/SoXtViewer.h>
39
40class SoXtPopupMenu;
41
42// *************************************************************************
43
44class SOXT_DLL_API SoXtFullViewer : public SoXtViewer {
45 SOXT_OBJECT_ABSTRACT_HEADER(SoXtFullViewer, SoXtViewer);
46
47public:
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 Widget getAppPushButtonParent(void) const;
62 void addAppPushButton(Widget newButton);
63 void insertAppPushButton(Widget newButton, int index);
64 void removeAppPushButton(Widget oldButton);
65 int findAppPushButton(Widget oldButton) const;
66 int lengthAppPushButton(void) const;
67
68 Widget getRenderAreaWidget(void) const;
69
70 virtual void setViewing(SbBool on);
71
72 virtual void setComponentCursor(const SoXtCursor & cursor);
73
74protected:
75 SoXtFullViewer(Widget parent,
76 const char * name,
77 SbBool embed,
78 BuildFlag flag,
79 Type type,
80 SbBool build);
82
83 virtual void sizeChanged(const SbVec2s & size);
84
85 Widget buildWidget(Widget parent);
86
87 virtual void buildDecoration(Widget parent);
88 virtual Widget buildLeftTrim(Widget parent);
89 virtual Widget buildBottomTrim(Widget parent);
90 virtual Widget buildRightTrim(Widget parent);
91 Widget buildAppButtons(Widget parent);
92 Widget buildViewerButtons(Widget parent);
93 virtual void createViewerButtons(Widget 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 Widget getLeftWheelLabelWidget(void) const;
119 void setBottomWheelString(const char * const name);
120 Widget getBottomWheelLabelWidget(void) const;
121 void setRightWheelString(const char * const name);
122 const char * getRightWheelString() const;
123 Widget getRightWheelLabelWidget(void) const;
124
125 virtual SbBool processSoEvent(const SoEvent * const event);
126
127protected:
128 Widget leftWheel;
131
135
139
143
147
148 SoXtPopupMenu * prefmenu;
149
150private:
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 SoXtFullViewerP * pimpl;
156
157 friend class SoGuiFullViewerP;
158 friend class SoXtFullViewerP;
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.
165protected:
166 Widget buildFunctionsSubmenu(Widget popup);
167 Widget buildDrawStyleSubmenu(Widget popup);
168
172#endif // __COIN_SOXT__
173};
174
175// *************************************************************************
176
177#endif // ! SOXT_FULLVIEWER_H
virtual void setComponentCursor(const SoXtCursor &cursor)
Definition SoXtComponent.cpp:952
The SoXtCursor class is used to set cursors for GUI components.
Definition SoXtCursor.h:41
The SoXtFullViewer class adds some user interface components to the viewer canvas.
Definition SoXtFullViewer.h:44
BuildFlag
Definition SoXtFullViewer.h:48
Widget buildAppButtons(Widget parent)
Widget leftDecoration
Definition SoXtFullViewer.h:132
SbBool popupEnabled
Definition SoXtFullViewer.h:170
char * leftWheelStr
Definition SoXtFullViewer.h:137
Widget leftWheel
Definition SoXtFullViewer.h:128
SoXtPopupMenu * prefmenu
Definition SoXtFullViewer.h:148
SbPList * viewerButtonWidgets
Definition SoXtFullViewer.h:171
char * bottomWheelStr
Definition SoXtFullViewer.h:145
float leftWheelVal
Definition SoXtFullViewer.h:138
Widget bottomDecoration
Definition SoXtFullViewer.h:134
Widget bottomWheel
Definition SoXtFullViewer.h:130
Widget rightWheelLabel
Definition SoXtFullViewer.h:140
float bottomWheelVal
Definition SoXtFullViewer.h:146
char * rightWheelStr
Definition SoXtFullViewer.h:141
Widget rightDecoration
Definition SoXtFullViewer.h:133
Widget bottomWheelLabel
Definition SoXtFullViewer.h:144
float rightWheelVal
Definition SoXtFullViewer.h:142
Widget rightWheel
Definition SoXtFullViewer.h:129
Widget leftWheelLabel
Definition SoXtFullViewer.h:136
char * popupTitle
Definition SoXtFullViewer.h:169
The SoXtViewer class is the top level base viewer class.
Definition SoXtViewer.h:90
virtual void setViewing(SbBool enable)
Definition SoXtViewer.cpp:2149
virtual void sizeChanged(const SbVec2s &size)
Definition SoXtViewer.cpp:3657
virtual SbBool processSoEvent(const SoEvent *const event)
Definition SoXtViewer.cpp:3666