SoWin  1.6.2
Coin3D GUI toolkit binding
Loading...
Searching...
No Matches
SoWinFullViewer.h
1#ifndef SOWIN_FULLVIEWER_H
2#define SOWIN_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/Win/viewers/SoWinViewer.h>
39
40class SoWinPopupMenu;
41
42// *************************************************************************
43
44class SOWIN_DLL_API SoWinFullViewer : public SoWinViewer {
45 SOWIN_OBJECT_ABSTRACT_HEADER(SoWinFullViewer, SoWinViewer);
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 HWND getAppPushButtonParent(void) const;
62 void addAppPushButton(HWND newButton);
63 void insertAppPushButton(HWND newButton, int index);
64 void removeAppPushButton(HWND oldButton);
65 int findAppPushButton(HWND oldButton) const;
66 int lengthAppPushButton(void) const;
67
68 HWND getRenderAreaWidget(void) const;
69
70 virtual void setViewing(SbBool on);
71
72 virtual void setComponentCursor(const SoWinCursor & cursor);
73
74protected:
75 SoWinFullViewer(HWND 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 HWND buildWidget(HWND parent);
86
87 virtual void buildDecoration(HWND parent);
88 virtual HWND buildLeftTrim(HWND parent);
89 virtual HWND buildBottomTrim(HWND parent);
90 virtual HWND buildRightTrim(HWND parent);
91 HWND buildAppButtons(HWND parent);
92 HWND buildViewerButtons(HWND parent);
93 virtual void createViewerButtons(HWND 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 HWND getLeftWheelLabelWidget(void) const;
119 void setBottomWheelString(const char * const name);
120 HWND getBottomWheelLabelWidget(void) const;
121 void setRightWheelString(const char * const name);
122 const char * getRightWheelString() const;
123 HWND getRightWheelLabelWidget(void) const;
124
125 virtual SbBool processSoEvent(const SoEvent * const event);
126
127protected:
131
135
139
143
147
148 SoWinPopupMenu * 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 SoWinFullViewerP * pimpl;
156
157 friend class SoGuiFullViewerP;
158 friend class SoWinFullViewerP;
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
169 char * popupTitle;
170 SbBool popupEnabled;
171 SbPList * viewerButtonWidgets;
172#endif // __COIN_SOXT__
173};
174
175// *************************************************************************
176
177#endif // ! SOWIN_FULLVIEWER_H
virtual void setComponentCursor(const SoWinCursor &cursor)
Definition SoWinComponent.cpp:735
The SoWinCursor class is used to set cursors for GUI components.
Definition SoWinCursor.h:41
The SoWinFullViewer class adds some user interface components to the viewer canvas.
Definition SoWinFullViewer.h:44
HWND bottomWheel
Definition SoWinFullViewer.h:130
HWND leftDecoration
Definition SoWinFullViewer.h:132
SoWinPopupMenu * prefmenu
Definition SoWinFullViewer.h:148
char * rightWheelStr
Definition SoWinFullViewer.h:141
virtual HWND buildBottomTrim(HWND parent)
HWND rightDecoration
Definition SoWinFullViewer.h:133
HWND buildAppButtons(HWND parent)
float bottomWheelVal
Definition SoWinFullViewer.h:146
HWND bottomWheelLabel
Definition SoWinFullViewer.h:144
char * leftWheelStr
Definition SoWinFullViewer.h:137
float leftWheelVal
Definition SoWinFullViewer.h:138
HWND rightWheelLabel
Definition SoWinFullViewer.h:140
virtual void createViewerButtons(HWND parent, SbPList *buttonlist)
char * bottomWheelStr
Definition SoWinFullViewer.h:145
virtual HWND buildLeftTrim(HWND parent)
float rightWheelVal
Definition SoWinFullViewer.h:142
HWND bottomDecoration
Definition SoWinFullViewer.h:134
BuildFlag
Definition SoWinFullViewer.h:48
virtual HWND buildRightTrim(HWND parent)
HWND rightWheel
Definition SoWinFullViewer.h:129
HWND leftWheel
Definition SoWinFullViewer.h:128
HWND leftWheelLabel
Definition SoWinFullViewer.h:136
The SoWinViewer class is the top level base viewer class.
Definition SoWinViewer.h:90
virtual SbBool processSoEvent(const SoEvent *const event)
Definition SoWinViewer.cpp:3666
virtual void sizeChanged(const SbVec2s &size)
Definition SoWinViewer.cpp:3657
virtual void setViewing(SbBool enable)
Definition SoWinViewer.cpp:2149