QbButton.h

00001 #ifndef QBBUTTON_H
00002 #define QBBUTTON_H
00003 
00004 #include "QbWidget.h"
00005 
00009 class QbButton : public QbWidget {
00010   SO_NODE_ABSTRACT_HEADER(QbButton);
00011   typedef QbWidget inherited;
00012 
00013 public:
00014   static void initClass(void);
00015 
00017   QbButton(void);
00018 
00019   SoSFNode modelOff;
00020   SoSFNode modelOffDown;
00021   SoSFNode modelOffDisabled;
00022 
00023   SoSFNode modelOn;
00024   SoSFNode modelOnDown;
00025   SoSFNode modelOnDisabled;
00026 
00027   SoSFBool isToggle; // e.g. per default CheckButton is a toggle and PushButton is not
00028   SoSFBool down;
00029   SoSFBool on; // is button "on"? - only for toggles
00030   SoSFBool enabled;
00031 
00032   virtual void notify(SoNotList * list);
00033   virtual void pick(SoPickAction * action);
00034 
00035 protected:
00036   virtual void doMouseDown(const SoMouseButtonEvent::Button button);
00037   virtual void doMouseUp(const SoMouseButtonEvent::Button button);
00038   virtual void doClick();
00039   virtual void doClickCancel();
00040 
00041   enum State { OFF, OFFDOWN, OFFDISABLED, ON, ONDOWN, ONDISABLED };
00042   State state;
00043   SoSwitch * switchNode;
00044   void replaceModel(State s, SoNode *model);
00045   void switchState(State s);
00046   void setEnabled(bool e);
00047   void setOn(bool o);
00048   void setDown(bool d);
00049 
00050 private:
00051   void connectOutFields(SoNode *model);
00052 };
00053 
00054 #endif

Generated on Thu Oct 28 10:59:16 2004 for gitk by doxygen 1.3.6