1 /*************************************************************************** 2 begin : Mon Feb 15 2010 3 copyright : (C) 2010 by Martin Preuss 4 email : martin@libchipcard.de 5 6 *************************************************************************** 7 * Please see toplevel file COPYING for license details * 8 ***************************************************************************/ 9 10 11 #include <gwen-gui-cpp/cppwidget.hpp> 12 13 14 class Qt5_W_GroupBox: public Qt5_W_Widget { 15 public: Qt5_W_GroupBox(GWEN_WIDGET * w)16 Qt5_W_GroupBox(GWEN_WIDGET *w):Qt5_W_Widget(w) { 17 } 18 19 20 ~Qt5_W_GroupBox()21 ~Qt5_W_GroupBox() { 22 } 23 24 25 setup()26 virtual int setup() { 27 QWidget *qw; 28 uint32_t flags; 29 GWEN_WIDGET *wParent; 30 QLayout *qLayout; 31 QSizePolicy::Policy hpolicy=QSizePolicy::Minimum; 32 QSizePolicy::Policy vpolicy=QSizePolicy::Minimum; 33 const char *s; 34 QString text; 35 36 flags=GWEN_Widget_GetFlags(_widget); 37 wParent=GWEN_Widget_Tree_GetParent(_widget); 38 s=GWEN_Widget_GetText(_widget, 0); 39 if (s) 40 text=QString::fromUtf8(s); 41 42 qw=new QGroupBox(text); 43 qLayout=new QVBoxLayout(qw); 44 45 /* handle flags */ 46 if (flags & GWEN_WIDGET_FLAGS_FILLX) 47 hpolicy=QSizePolicy::Expanding; 48 if (flags & GWEN_WIDGET_FLAGS_FILLY) 49 vpolicy=QSizePolicy::Expanding; 50 qw->setSizePolicy(hpolicy, vpolicy); 51 52 53 GWEN_Widget_SetImplData(_widget, QT5_DIALOG_WIDGET_REAL, (void*) qw); 54 GWEN_Widget_SetImplData(_widget, QT5_DIALOG_WIDGET_LAYOUT, (void*) qLayout); 55 56 if (wParent) 57 GWEN_Widget_AddChildGuiWidget(wParent, _widget); 58 return 0; 59 } 60 61 62 addChildGuiWidget(GWEN_WIDGET * wChild)63 int addChildGuiWidget(GWEN_WIDGET *wChild) { 64 QWidget *qw; 65 QBoxLayout *qLayout; 66 QWidget *qChild; 67 68 qw=(QWidget*) GWEN_Widget_GetImplData(_widget, QT5_DIALOG_WIDGET_REAL); 69 assert(qw); 70 71 qLayout=(QBoxLayout*) GWEN_Widget_GetImplData(_widget, QT5_DIALOG_WIDGET_LAYOUT); 72 assert(qLayout); 73 74 qChild=getQWidget(wChild); 75 assert(qChild); 76 77 qChild->setParent(qw); 78 qLayout->addWidget(qChild); 79 80 return 0; 81 } 82 83 }; 84 85 86 87 88 89 90 91