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_DIALOG_CHOICE_
00024 #define _SO_DIALOG_CHOICE_
00025
00026 #include <DialogViz/dialog/SoDialogComponent.h>
00027 #include <Inventor/fields/SoMFString.h>
00028
00029 class SoDialogChoiceAuditor;
00030
00046 class SoDialogChoice : public SoDialogComponent
00047 {
00048 SO_DG_HEADER(SoDialogChoice);
00049
00050 public:
00051
00055 SoMFString items;
00056
00060 SoSFInt32 selectedItem;
00061
00065 void addAuditor(SoDialogChoiceAuditor* auditor);
00066
00070 void removeAuditor(SoDialogChoiceAuditor* auditor);
00071
00075 void addItem(SbString newItem);
00076
00080 void insertItem(int index, SbString newItem);
00081
00085 void removeItem(int index);
00086
00087
00088 private:
00089 virtual SoWidget getLabelWidget();
00090 static void initClass();
00091 static void exitClass();
00092 virtual void updateFromSensor(SoSensor* sensor);
00093 virtual void buildWidget(SoWidget parent, SbVec2i32 &rSize, SbVec2i32 & pos, SbBool isActive2d);
00094 virtual void destroyWidget();
00095
00096 void applyDlgCptAuditor();
00097
00098 private:
00099 int m_numItems;
00100
00101 SoDialogChoice();
00102 virtual ~SoDialogChoice();
00103
00104
00105 virtual void changeEnable() {};
00106 virtual void changeWidgetEnable(SbBool ) {};
00107 virtual void changeItems() {};
00108 virtual void changeLabel();
00109 virtual void changeLabelAlignment() {};
00110 virtual void changeLabelVisibility() {};
00111 virtual void changeSelectedItem() {};
00112 void fixItemsNumber();
00113
00114
00115 FIELD_SENSOR(items);
00116 FIELD_SENSOR(selectedItem);
00117
00119
00120 private:
00121
00122 private:
00123 SoText3 *choiceLabel;
00124 SoTranslation* choiceLabelTranslation;
00125 int m_initItem;
00126 int m_prevNumItems;
00127 int m_prevSelectedItem;
00128 SbBool m_needUpdate;
00129
00130 virtual void change3DSelectedItem() {};
00131 virtual void change3DItems() {};
00132
00134
00135 };
00136
00137 #endif // _SO_DIALOG_CHOICE_
00138
00139
00140