00001 #ifndef QBBOX_H 00002 #define QBBOX_H 00003 00004 #include "QbWidget.h" 00005 #include "QbLabel.h" 00006 00007 class QbBox : public QbWidget { 00008 SO_NODE_HEADER(QbBox); 00009 typedef QbWidget inherited; 00010 public: 00011 static void initClass(void); 00012 QbBox(void); 00013 00014 virtual void addChild(SoNode *node); 00015 SoChildList * getWidgets(void) const; 00016 QbWidget * getWidget(int index) const; 00017 int getNumWidgets(void) const; 00018 00019 enum Arrangement { 00020 HORIZONTAL = QbUtility::LEFT, 00021 VERTICAL = QbUtility::TOP }; 00022 SoSFEnum arrangement; 00023 00024 enum Alignment { 00025 TOP = 0, LEFT = 0, 00026 BOTTOM = 1, RIGHT = 1, 00027 MIDDLE = 2, CENTER = 2}; 00028 SoSFEnum alignment; 00029 00030 SoSFFloat margin; 00031 SoSFFloat border; 00032 SoSFString caption; 00033 SoSFFloat captionSize; 00034 00035 virtual void notify(SoNotList * list); 00036 00037 protected: 00038 virtual void setWidgetController(QbWidgetController *controller); 00039 ~QbBox(void); 00040 private: 00041 void setBounds(); 00042 QbLabel * label; 00043 SoGroup * frame; 00044 bool hasCaption(); 00045 void setUpFrame(); 00046 static const char * QbBox::defaultFrame[]; 00047 static const char * QbBox::defaultFrameNoCaption[]; 00048 }; 00049 00050 #endif