00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _SO_MENU_CHECK_BOX_
00024 #define _SO_MENU_CHECK_BOX_
00025
00026 #include <DialogViz/dialog/SoMenuItem.h>
00027
00028 class SoMenuCheckBoxAuditor;
00029
00074 class SoMenuCheckBox : public SoMenuItem
00075 {
00076 SO_DG_HEADER(SoMenuCheckBox);
00077
00078 public:
00079
00084 SoSFBool state;
00085
00090 SoSFString onString;
00091
00095 SoSFString accelerator;
00096
00100 SoMenuCheckBox();
00101
00105 void addAuditor(SoMenuCheckBoxAuditor* auditor);
00106
00110 void removeAuditor(SoMenuCheckBoxAuditor* auditor);
00111
00112
00113 private:
00114 virtual void buildMenu(void* parent, SbBool isActive2d, int index = -1);
00115 static void initClass();
00116 static void exitClass();
00117 virtual void menuEvent(void* parent, int itemId);
00118 virtual void updateFromSensor(SoSensor* sensor);
00119 virtual void destroyNoDeleteMenuItem();
00120 void applyDlgCptAuditor();
00121
00122 private:
00123 void* m_checkBoxMenuWin;
00124
00125 virtual ~SoMenuCheckBox();
00126 virtual void changeLabel();
00127 virtual void changeEnable();
00128
00129 private:
00130 void changeState();
00131 void changeOnString();
00132 void changeAccelerator();
00133 void insertMenuItem(int index);
00134 void updateMenuItem();
00135 virtual SbVec2i32 getItemInitSize();
00136
00137 FIELD_SENSOR(state);
00138 FIELD_SENSOR(onString);
00139 FIELD_SENSOR(accelerator);
00140
00142
00143 private:
00144 static char* MenuCheckBox;
00145 static void change3DSkin();
00146 static SbBool isSkinLoaded();
00147 static void setSkinLoaded(SbBool loaded);
00148
00149 private:
00150
00151 SO_DG_CATALOG_ENTRY_HEADER( chkSep );
00152 SO_DG_CATALOG_ENTRY_HEADER( chkSwtch );
00153 SO_DG_CATALOG_ENTRY_HEADER( stateOff );
00154 SO_DG_CATALOG_ENTRY_HEADER( stateOn );
00155
00156 SoTranslation* menuCheckBoxShapeTranslation;
00157 void get3DOnStringCachedBBox(SbVec3f& min, SbVec3f& max);
00158
00159 private:
00160 SbBox3f m_onStringCachedBBox;
00161 static SbBool m_isSkinLoaded;
00162
00163 void create3DCheckBox(int index);
00164 void update3DCheckBox();
00165
00166 void change3DState();
00167 void change3DOnString();
00168
00169 static void finishCB3D( void *, SoDragger *inDragger );
00170 virtual void draggerFinishCallback3D();
00171
00173
00174 };
00175
00176 #endif // _SO_MENU_CHECK_BOX_
00177
00178
00179