SoWx  0.1.0
Coin3D GUI toolkit binding
Loading...
Searching...
No Matches
SoWxFullViewer.h
1#ifndef SOWX_FULLVIEWER_H
2#define SOWX_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/Wx/viewers/SoWxViewer.h>
39
40class SoWxPopupMenu;
41
42// *************************************************************************
43
44class SOWX_DLL_API SoWxFullViewer : public SoWxViewer {
45 SOWX_OBJECT_ABSTRACT_HEADER(SoWxFullViewer, SoWxViewer);
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 wxWindow* getAppPushButtonParent(void) const;
62 void addAppPushButton(wxWindow* newButton);
63 void insertAppPushButton(wxWindow* newButton, int index);
64 void removeAppPushButton(wxWindow* oldButton);
65 int findAppPushButton(wxWindow* oldButton) const;
66 int lengthAppPushButton(void) const;
67
68 wxWindow* getRenderAreaWidget(void) const;
69
70 virtual void setViewing(SbBool on);
71
72 virtual void setComponentCursor(const SoWxCursor & cursor);
73
74protected:
75 SoWxFullViewer(wxWindow* 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 wxWindow* buildWidget(wxWindow* parent);
86
87 virtual void buildDecoration(wxWindow* parent);
88 virtual wxWindow* buildLeftTrim(wxWindow* parent);
89 virtual wxWindow* buildBottomTrim(wxWindow* parent);
90 virtual wxWindow* buildRightTrim(wxWindow* parent);
91 wxWindow* buildAppButtons(wxWindow* parent);
92 wxWindow* buildViewerButtons(wxWindow* parent);
93 virtual void createViewerButtons(wxWindow* 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 wxWindow* getLeftWheelLabelWidget(void) const;
119 void setBottomWheelString(const char * const name);
120 wxWindow* getBottomWheelLabelWidget(void) const;
121 void setRightWheelString(const char * const name);
122 const char * getRightWheelString() const;
123 wxWindow* getRightWheelLabelWidget(void) const;
124
125 virtual SbBool processSoEvent(const SoEvent * const event);
126
127protected:
128 wxWindow* leftWheel;
129 wxWindow* rightWheel;
130 wxWindow* bottomWheel;
131
132 wxWindow* leftDecoration;
135
136 wxWindow* leftWheelLabel;
139
143
147
148 SoWxPopupMenu * 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 SoWxFullViewerP * pimpl;
156
157 friend class SoGuiFullViewerP;
158 friend class SoWxFullViewerP;
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 // ! SOWX_FULLVIEWER_H
virtual void setComponentCursor(const SoWxCursor &cursor)
Definition SoWxComponent.cpp:228
The SoWxCursor class is used to set cursors for GUI components.
Definition SoWxCursor.h:41
The SoWxFullViewer class adds some user interface components to the viewer canvas.
Definition SoWxFullViewer.h:44
SoWxPopupMenu * prefmenu
Definition SoWxFullViewer.h:148
wxWindow * leftWheelLabel
Definition SoWxFullViewer.h:136
wxWindow * bottomWheelLabel
Definition SoWxFullViewer.h:144
wxWindow * leftWheel
Definition SoWxFullViewer.h:128
float bottomWheelVal
Definition SoWxFullViewer.h:146
wxWindow * bottomDecoration
Definition SoWxFullViewer.h:134
wxWindow * rightWheel
Definition SoWxFullViewer.h:129
wxWindow * bottomWheel
Definition SoWxFullViewer.h:130
wxWindow * rightDecoration
Definition SoWxFullViewer.h:133
float leftWheelVal
Definition SoWxFullViewer.h:138
char * bottomWheelStr
Definition SoWxFullViewer.h:145
float rightWheelVal
Definition SoWxFullViewer.h:142
wxWindow * leftDecoration
Definition SoWxFullViewer.h:132
wxWindow * rightWheelLabel
Definition SoWxFullViewer.h:140
char * rightWheelStr
Definition SoWxFullViewer.h:141
BuildFlag
Definition SoWxFullViewer.h:48
char * leftWheelStr
Definition SoWxFullViewer.h:137
The SoWxViewer class is the top level base viewer class.
Definition SoWxViewer.h:90
virtual SbBool processSoEvent(const SoEvent *const event)
Definition SoWxViewer.cpp:3666
virtual void setViewing(SbBool enable)
Definition SoWxViewer.cpp:2149
virtual void sizeChanged(const SbVec2s &size)
Definition SoWxViewer.cpp:3657