00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
#ifndef SOQT_FULLVIEWER_H
00025
#define SOQT_FULLVIEWER_H
00026
00027
#include <Inventor/Qt/viewers/SoQtViewer.h>
00028
00029
00030
#ifdef __COIN_SOWIN__
00031
typedef void AppPushButtonCB(HWND hwnd,
int id,
void * buttonData,
void * userData);
00032
typedef void RedrawAppPushButtonCB(LPDRAWITEMSTRUCT lpdis,
void * userData);
00033
typedef void CreateAppPushButtonCB(LPMEASUREITEMSTRUCT lpmis,
void * userData);
00034
#endif // ! __COIN_SOWIN__
00035
00036
00037
class SoQtPopupMenu;
00038
00039
00040
00041 class SOQT_DLL_API SoQtFullViewer :
public SoQtViewer {
00042 SOQT_OBJECT_ABSTRACT_HEADER(SoQtFullViewer,
SoQtViewer);
00043
00044
public:
00045 enum BuildFlag {
00046 BUILD_NONE = 0x00,
00047 BUILD_DECORATION = 0x01,
00048 BUILD_POPUP = 0x02,
00049 BUILD_ALL = (BUILD_DECORATION | BUILD_POPUP)
00050 };
00051
00052
void setDecoration(
const SbBool on);
00053 SbBool isDecoration(
void) const;
00054
00055
void setPopupMenuEnabled(const SbBool on);
00056 SbBool isPopupMenuEnabled(
void) const;
00057
00058 QWidget * getAppPushButtonParent(
void) const;
00059
void addAppPushButton(QWidget * newButton);
00060
void insertAppPushButton(QWidget * newButton,
int index);
00061
void removeAppPushButton(QWidget * oldButton);
00062
int findAppPushButton(QWidget * oldButton) const;
00063
int lengthAppPushButton(
void) const;
00064
00065 QWidget * getRenderAreaWidget(
void) const;
00066
00067 virtual
void setViewing(SbBool on);
00068
00069 virtual
void setComponentCursor(const
SoQtCursor & cursor);
00070
00071 protected:
00072 SoQtFullViewer(QWidget * parent,
00073 const
char * name,
00074 SbBool embed,
00075 BuildFlag flag,
00076 Type type,
00077 SbBool build);
00078 ~SoQtFullViewer();
00079
00080 virtual
void sizeChanged(const SbVec2s & size);
00081
00082 QWidget * buildWidget(QWidget * parent);
00083
00084 virtual
void buildDecoration(QWidget * parent);
00085 virtual QWidget * buildLeftTrim(QWidget * parent);
00086 virtual QWidget * buildBottomTrim(QWidget * parent);
00087 virtual QWidget * buildRightTrim(QWidget * parent);
00088 QWidget * buildAppButtons(QWidget * parent);
00089 QWidget * buildViewerButtons(QWidget * parent);
00090 virtual
void createViewerButtons(QWidget * parent, SbPList * buttonlist);
00091
00092 virtual
void buildPopupMenu(
void);
00093 virtual
void setPopupMenuString(const
char * title);
00094 virtual
void openPopupMenu(const SbVec2s position);
00095
00096 virtual
void leftWheelStart(
void);
00097 virtual
void leftWheelMotion(
float);
00098 virtual
void leftWheelFinish(
void);
00099
float getLeftWheelValue(
void) const;
00100
void setLeftWheelValue(const
float value);
00101
00102 virtual
void bottomWheelStart(
void);
00103 virtual
void bottomWheelMotion(
float);
00104 virtual
void bottomWheelFinish(
void);
00105
float getBottomWheelValue(
void) const;
00106
void setBottomWheelValue(const
float value);
00107
00108 virtual
void rightWheelStart(
void);
00109 virtual
void rightWheelMotion(
float);
00110 virtual
void rightWheelFinish(
void);
00111
float getRightWheelValue(
void) const;
00112
void setRightWheelValue(const
float value);
00113
00114
void setLeftWheelString(const
char * const name);
00115 QWidget * getLeftWheelLabelWidget(
void) const;
00116
void setBottomWheelString(const
char * const name);
00117 QWidget * getBottomWheelLabelWidget(
void) const;
00118
void setRightWheelString(const
char * const name);
00119 QWidget * getRightWheelLabelWidget(
void) const;
00120
00121 virtual SbBool processSoEvent(const SoEvent * const event);
00122
00123 protected:
00124 QWidget * leftDecoration;
00125 QWidget * rightDecoration;
00126 QWidget * bottomDecoration;
00127
00128 #ifndef __COIN_SOWIN__
00129 QWidget * leftWheel;
00130 QWidget * rightWheel;
00131 QWidget * bottomWheel;
00132 #endif
00133
00134 QWidget * leftWheelLabel;
00135
char * leftWheelStr;
00136
float leftWheelVal;
00137
00138 QWidget * rightWheelLabel;
00139
char * rightWheelStr;
00140
float rightWheelVal;
00141
00142 QWidget * bottomWheelLabel;
00143
char * bottomWheelStr;
00144
float bottomWheelVal;
00145
00146 SoQtPopupMenu * prefmenu;
00147
00148 private:
00149
00150
00151
00152
00153 class SoQtFullViewerP * pimpl;
00154 #ifndef DOXYGEN_SKIP_THIS
00155 friend class SoGuiFullViewerP;
00156 friend class SoQtFullViewerP;
00157 #endif
00158
00159
00160
00161
00162 #ifdef __COIN_SOXT__
00163 protected:
00164 Widget buildAppButtonsForm(Widget parent);
00165
00166 Widget buildFunctionsSubmenu(Widget popup);
00167 Widget buildDrawStyleSubmenu(Widget popup);
00168
00169
char * popupTitle;
00170 SbBool popupEnabled;
00171 SbPList * viewerButtonWidgets;
00172 #endif
00173
00174 #ifdef __COIN_SOWIN__
00175 public:
00176 static
void setDoButtonBar(SbBool enable);
00177 static SbBool isDoButtonBar(
void);
00178
00179
void addAppPushButtonCallback(AppPushButtonCB * callback,
00180
void * data = NULL);
00181
void addRedrawAppPushButtonCallback(RedrawAppPushButtonCB * callback,
00182
void * data = NULL);
00183
void addCreateAppPushButtonCallback(CreateAppPushButtonCB * callback,
00184
void * data = NULL);
00185
00186 virtual
void buildViewerButtonsEx(HWND parent,
int x,
int y,
int size);
00187
00188 virtual LRESULT onCommand(HWND window, UINT message, WPARAM wparam, LPARAM lparam);
00189 virtual LRESULT onDrawItem(HWND window, UINT message, WPARAM wparam, LPARAM lparam);
00190 virtual LRESULT onMeasureItem(HWND window, UINT message, WPARAM wparam, LPARAM lparam);
00191
00192 class SoWinThumbWheel * rightWheel;
00193 class SoWinThumbWheel * bottomWheel;
00194 class SoWinThumbWheel * leftWheel;
00195
00196 HWND viewerWidget;
00197 HWND renderAreaWidget;
00198
00199 protected:
00200 SbPList * viewerButtonList;
00201 SbPList * appButtonList;
00202 #endif
00203 };
00204
00205
00206
00207 #endif