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_TRIGGER_BUTTON_DATA_H
00025 #define _PO_XT_TRIGGER_BUTTON_DATA_H
00026
00027 #ifndef _WIN32
00028 #include <X11/Intrinsic.h>
00029 #include <Xm/PushB.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 PoXtTriggerButtonData : public PoXtElementData
00051 {
00052
00053 public:
00054
00058 PoXtTriggerButtonData( const SbString& label = "",
00059 const SbString& buttonLabel = "" );
00060
00064 virtual ~PoXtTriggerButtonData();
00065
00071 SoNONUNICODE void setLabel(const char * label);
00072
00076 void setLabel( const SbString& label );
00077
00081 SbString getLabel() const;
00082
00088 SoNONUNICODE void setButtonLabel(const char * label);
00089
00093 void setButtonLabel(const SbString& label);
00094
00098 SbString getButtonLabel() const;
00099
00103 virtual TypeXtElement getType() const;
00104
00108 virtual PoXtElementData * copy() const;
00109
00110
00111
00112 #ifndef _WIN32
00113 private:
00114 virtual SoWidget buildWidget(SoWidget parent);
00115 virtual void addCallback(SoCallbackListCB * function, void * data);
00116 virtual void removeCallback(SoCallbackListCB * function, void * data);
00117
00118
00119 virtual void updateValues(const PoXtElementData * xtElement);
00120
00121
00122
00123 virtual int getRealMinWidgetWidth() const;
00124 virtual void setMinWidgetWidth(int value);
00125
00126 private:
00127 PoXtTriggerButtonData(const PoXtTriggerButtonData & trigger);
00128
00129 private:
00130 void attachLabelWidget();
00131 static void handleCallback(SoWidget button,
00132 PoXtTriggerButtonData * userData,
00133 XmPushButtonCallbackStruct * data);
00134 SbString _buttonLabel;
00135 PoXtLabelData * _label;
00136
00137 SoWidget _labelWidget, _buttonWidget;
00138 SoCallbackList * _triggerCallback;
00139 #else
00140 private:
00141 virtual void buildWidget (SoWidget parent, int verticalOffset);
00142 virtual void updateValues (const PoXtElementData *);
00143
00144 virtual void addCallback (SoCallbackListCB * f, void * data);
00145 virtual void removeCallback (SoCallbackListCB * f, void * data);
00146
00147
00148 void setSize (int value, int verticalOffset);
00149 int getSize () const;
00150
00151 private:
00152 PoXtTriggerButtonData (const PoXtTriggerButtonData & button);
00153
00154 private:
00155 static void handleCallback (void * button, void * theTrigger);
00156
00157 PoXtLabelData * _label;
00158 PoButton * _button;
00159 int _buttonOffset;
00160
00161 SoCallbackList *_triggerCallback;
00162 #endif
00163 };
00164
00165 #endif //_PO_XT_TRIGGER_BUTTON_DATA_H
00166
00167