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
00075 class SoMenuCheckBox : public SoMenuItem
00076 {
00077 SO_DG_HEADER(SoMenuCheckBox);
00078
00079 public:
00080
00085 SoSFBool state;
00086
00091 SoSFString onString;
00092
00096 SoSFString accelerator;
00097
00101 SoMenuCheckBox();
00102
00106 void addAuditor(SoMenuCheckBoxAuditor* auditor);
00107
00111 void removeAuditor(SoMenuCheckBoxAuditor* auditor);
00112
00113
00114 private:
00115 virtual void buildMenu(void* parent, SbBool isActive2d, int index = -1);
00116 static void initClass();
00117 static void exitClass();
00118 virtual void menuEvent(void* parent, int itemId);
00119 virtual void updateFromSensor(SoSensor* sensor);
00120 virtual void destroyNoDeleteMenuItem();
00121 void applyDlgCptAuditor();
00122
00123 private:
00124 void* m_checkBoxMenuWin;
00125
00126 virtual ~SoMenuCheckBox();
00127 virtual void changeLabel();
00128 virtual void changeEnable();
00129
00130 private:
00131 void changeState();
00132 void changeOnString();
00133 void changeAccelerator();
00134 void insertMenuItem(int index);
00135 void updateMenuItem();
00136 virtual SbVec2i32 getItemInitSize();
00137
00138 FIELD_SENSOR(state);
00139 FIELD_SENSOR(onString);
00140 FIELD_SENSOR(accelerator);
00141
00143
00144 private:
00145 static char* MenuCheckBox;
00146 static void change3DSkin();
00147 static SbBool isSkinLoaded();
00148 static void setSkinLoaded(SbBool loaded);
00149
00150 private:
00151
00152 SO_DG_CATALOG_ENTRY_HEADER( chkSep );
00153 SO_DG_CATALOG_ENTRY_HEADER( chkSwtch );
00154 SO_DG_CATALOG_ENTRY_HEADER( stateOff );
00155 SO_DG_CATALOG_ENTRY_HEADER( stateOn );
00156
00157 SoTranslation* menuCheckBoxShapeTranslation;
00158 void get3DOnStringCachedBBox(SbVec3f& min, SbVec3f& max);
00159
00160 private:
00161 SbBox3f m_onStringCachedBBox;
00162 static SbBool m_isSkinLoaded;
00163
00164 void create3DCheckBox(int index);
00165 void update3DCheckBox();
00166
00167 void change3DState();
00168 void change3DOnString();
00169
00170 static void finishCB3D( void *, SoDragger *inDragger );
00171 virtual void draggerFinishCallback3D();
00172
00174
00175 };
00176
00177 #endif // _SO_MENU_CHECK_BOX_
00178
00179
00180