1#ifndef SOGUIFULLVIEWERP_H 2#define SOGUIFULLVIEWERP_H 3 4// @configure_input@ 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#ifndef SO@GUI@_INTERNAL 39#error this is a private header file 40#endif /* !SO@GUI@_INTERNAL */ 41 42#include <Inventor/SbString.h> 43#include <Inventor/@Gui@/viewers/So@Gui@Viewer.h> 44 45class So@Gui@FullViewer; 46 47// ************************************************************************ 48 49// This class contains private data and methods used within the 50// SoGuiFullViewer class. 51 52class SoGuiFullViewerP 53{ 54public: 55 ~SoGuiFullViewerP(); 56 57 enum So@Gui@FullViewerPopupMenuItem { 58 // FIXME: there's code in (some of) the popupmenu widgets which 59 // assumes the root id is equal to 0. Yup, lousy design. :-/ 60 // Anyway, don't change it until those cases are fixed. 61 // 20010810 mortene. 62 ROOT_MENU = 0, 63 ROOT_MENU_TITLE, 64 65 FUNCTIONS_MENU, 66 HOME_ITEM, 67 SET_HOME_ITEM, 68 VIEW_ALL_ITEM, 69 SEEK_ITEM, 70 71 DRAWSTYLES_MENU, 72 DRAWSTYLES_STILL_MENU, 73 AS_IS_ITEM, 74 HIDDEN_LINE_ITEM, 75 WIREFRAME_OVERLAY_ITEM, 76 NO_TEXTURE_ITEM, 77 LOW_RESOLUTION_ITEM, 78 WIREFRAME_ITEM, 79 POINTS_ITEM, 80 BOUNDING_BOX_ITEM, 81 82 DRAWSTYLES_ANIMATING_MENU, 83 MOVE_SAME_AS_STILL_ITEM, 84 MOVE_NO_TEXTURE_ITEM, 85 MOVE_LOW_RES_ITEM, 86 MOVE_WIREFRAME_ITEM, 87 MOVE_LOW_RES_WIREFRAME_ITEM, 88 MOVE_POINTS_ITEM, 89 MOVE_LOW_RES_POINTS_ITEM, 90 MOVE_BOUNDING_BOX_ITEM, 91 92 TRANSPARENCY_TYPE_MENU, 93 SCREEN_DOOR_TRANSPARENCY_ITEM, 94 ADD_TRANSPARENCY_ITEM, 95 DELAYED_ADD_TRANSPARENCY_ITEM, 96 SORTED_OBJECT_ADD_TRANSPARENCY_ITEM, 97 BLEND_TRANSPARENCY_ITEM, 98 DELAYED_BLEND_TRANSPARENCY_ITEM, 99 SORTED_OBJECT_BLEND_TRANSPARENCY_ITEM, 100 // These are Coin extensions. 101 SORTED_OBJECT_SORTED_TRIANGLE_ADD_TRANSPARENCY_ITEM, 102 SORTED_OBJECT_SORTED_TRIANGLE_BLEND_TRANSPARENCY_ITEM, 103 SORTED_LAYERS_BLEND_ITEM, 104 NONE_TRANSPARENCY_ITEM, 105 106 RENDER_BUFFER_TYPE_MENU, 107 SINGLE_BUFFER_ITEM, 108 DOUBLE_BUFFER_ITEM, 109 INTERACTIVE_BUFFER_ITEM, 110 111 EXAMINING_ITEM, 112 DECORATION_ITEM, 113 HEADLIGHT_ITEM, 114 FULLSCREEN_ITEM, 115 116 STEREO_MENU, 117 STEREO_OFF_ITEM, 118 STEREO_ANAGLYPH_ITEM, 119 STEREO_QUADBUFFER_ITEM, 120 STEREO_INTERLEAVED_ROWS_ITEM, 121 STEREO_INTERLEAVED_COLUMNS_ITEM 122 }; 123 124 enum So@Gui@ViewerPopupMenuRadioGroup { 125 STILL_GROUP = 1, 126 MOVE_GROUP, 127 TRANSPARENCY_GROUP, 128 BUFFER_GROUP, 129 STEREO_GROUP 130 }; 131 132 class So@Gui@PopupMenu * setupStandardPopupMenu(void); 133 void prepareMenu(class So@Gui@PopupMenu * menu); 134 void menuSelection(int menuitemid); 135 static void menuSelectionCallback(int menuitemid, void * userdata); 136 SbString popupmenutitle; 137 138 void setDrawStyleMenuActivation(So@Gui@Viewer::DrawType type, 139 So@Gui@Viewer::DrawStyle value); 140 void drawstyleActivated(int menuitemid); 141 142 static void pan(SoCamera * cam, 143 float aspectratio, const SbPlane & panplane, 144 const SbVec2f & currpos, const SbVec2f & prevpos); 145 static void zoom(SoCamera * cam, const float diffvalue); 146 147protected: 148 SoGuiFullViewerP(So@Gui@FullViewer * publ); 149 So@Gui@FullViewer * pub; 150}; 151 152// ************************************************************************ 153 154#endif // ! SOGUIFULLVIEWERP_H 155