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_TOGGLE_BUTTON_DATA_H
00025 #define _PO_XT_TOGGLE_BUTTON_DATA_H
00026
00027 #ifndef _WIN32
00028 #include <X11/Intrinsic.h>
00029 #include <Xm/ToggleB.h>
00030 #else
00031 class SoCallbackList;
00032 class PoButton;
00033 #endif
00034 #include <Inventor/dialog/PoXtElementData.h>
00035
00036 #include <Inventor/SbString.h>
00037
00038 class PoXtLabelData;
00039 class SoDEPRECATED PoXtToggleButtonData : public PoXtElementData
00053 {
00054
00055 public:
00056
00060 enum State
00061 {
00062 ON,
00063 OFF
00064 } ;
00065
00069 PoXtToggleButtonData(const SbString& label = "",
00070 State state = OFF,
00071 const SbString& onString = "",
00072 const SbString& offString = "");
00073
00077 virtual ~PoXtToggleButtonData();
00078
00084 SoNONUNICODE void setLabel(const char * label);
00085
00089 void setLabel(const SbString& label);
00090
00094 SbString getLabel() const;
00095
00101 SoNONUNICODE void setString(State state, const char * str);
00102
00106 void setString( State state, const SbString& str );
00107
00111 SbString getString(State state) const;
00112
00116 void setState(State state);
00117
00121 State getState() const;
00122
00126 virtual TypeXtElement getType() const;
00127
00131 virtual PoXtElementData * copy() const;
00132
00133
00134
00135 #ifndef _WIN32
00136 private:
00137
00138 virtual SoWidget buildWidget(SoWidget parent);
00139 virtual void addCallback(SoCallbackListCB * function, void * data);
00140 virtual void removeCallback(SoCallbackListCB * function, void * data);
00141
00142
00143 virtual void updateValues(const PoXtElementData * xtElement);
00144
00145
00146
00147 virtual int getRealMinWidgetWidth() const;
00148
00149 virtual void setMinWidgetWidth(int value);
00150
00151 private:
00152 PoXtToggleButtonData(const PoXtToggleButtonData & toggle);
00153
00154
00155 private:
00156 void attachLabelWidget();
00157 static void handleCallback(SoWidget button,
00158 PoXtToggleButtonData *userData,
00159 XmToggleButtonCallbackStruct *data);
00160
00161 SbString _stringOn, _stringOff;
00162 State _state;
00163 PoXtLabelData * _label;
00164
00165 SoWidget _labelWidget, _toggleWidget;
00166 SoCallbackList * _toggleCallback;
00167 #else
00168 private:
00169 virtual void buildWidget (SoWidget parent, int verticalOffset);
00170
00171 virtual void updateValues (const PoXtElementData *);
00172
00173 virtual void addCallback (SoCallbackListCB * f, void * data);
00174 virtual void removeCallback (SoCallbackListCB * f, void * data);
00175
00176
00177 void setSize (int value, int verticalOffset);
00178 int getSize () const;
00179
00180 private:
00181 PoXtToggleButtonData (const PoXtToggleButtonData & button);
00182
00183 private:
00184 static void handleCallback (void * button, void * theToggle);
00185 static void changedStateCallback (void * button, void * theToggle);
00186
00187 PoXtLabelData * _label;
00188 PoButton * _button;
00189 int _buttonOffset;
00190
00191 SbString* _stateStrings;
00192 State _state;
00193
00194 SoCallbackList *_toggleCallback;
00195 #endif
00196 };
00197
00198 #endif //_PO_XT_TOGGLE_BUTTON_DATA_H
00199
00200