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 _PO_XT_CHOICE_BUTTON_DATA_H
00025 #define _PO_XT_CHOICE_BUTTON_DATA_H
00026
00027 #ifndef _WIN32
00028 # include <X11/Intrinsic.h>
00029 #endif
00030 #include <Inventor/dialog/PoXtElementData.h>
00031
00032 class SoCallbackList;
00033 class PoXtLabelData;
00034 class ChoiceList;
00035 class PoChoice;
00036 class SoDEPRECATED PoXtChoiceButtonData : public PoXtElementData
00049 {
00050
00051 public:
00052
00053
00054
00058 PoXtChoiceButtonData(const char * label=NULL,
00059 int numItems=0,
00060 const char ** itemNames=NULL,
00061 int selectedItem=0);
00062
00066 virtual ~PoXtChoiceButtonData();
00067
00073 SoNONUNICODE void setLabel(const char * label);
00074
00078 void setLabel(const SbString& label);
00079
00083
00084 SbString getLabel() const;
00085
00089 void setItems(int numItems, const char ** itemNames);
00090
00094 const char ** getItems(int & numItems) const;
00095
00099 void setSelectedItem(int itemNumber);
00100
00104 int getSelectedItem() const;
00105
00109 virtual TypeXtElement getType() const;
00110
00114 virtual PoXtElementData * copy() const;
00115
00116
00117 private:
00118
00119 virtual void updateValues(const PoXtElementData * xtElement);
00120
00121
00122 virtual void addCallback(SoCallbackListCB * function, void * data);
00123 virtual void removeCallback(SoCallbackListCB * function, void * data);
00124
00125 #ifndef _WIN32
00126 virtual SoWidget buildWidget(SoWidget parent);
00127 virtual void setPositionElementIfResize();
00128
00129 virtual int getRealMinWidgetWidth() const;
00130
00131
00132
00133
00134 virtual void setMinWidgetWidth(int value);
00135
00136 #else
00137 virtual void buildWidget (SoWidget parent, int verticalOffset);
00138
00139 virtual void setSize (int value, int verticalOffset);
00140 virtual int getSize () const;
00141
00142 #endif
00143
00144 private:
00145 PoXtChoiceButtonData(const PoXtChoiceButtonData & choice);
00146
00147 #ifdef _WIN32
00148 virtual void redraw ();
00149 #endif
00150
00151 private:
00152
00153 char ** _choiceStr;
00154 int _nbItem;
00155 int _currentItem;
00156
00157 PoXtLabelData * _label;
00158
00159 SoCallbackList * _choiceCallback;
00160
00161 #ifndef _WIN32
00162 static void handleCallback(PoXtChoiceButtonData * userData,
00163 int * currentItemPosition);
00164 void buildChoiceWidget();
00165 void attachLabelWidget();
00166 SoWidget _labelWidget, _choiceWidget;
00167 ChoiceList * _choiceList;
00168 #else
00169 void deleteSelection ();
00170 static void handleCallback (void *, void *);
00171 PoChoice * _choice;
00172 int _height;
00173 int _choiceOffset;
00174 int _verticalOffset;
00175 int _size;
00176 #endif
00177
00178 };
00179
00180 #endif //_PO_XT_CHOICE_BUTTON_DATA_H
00181
00182