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_ScrollArea: public Qt5_W_Widget { 15 public: Qt5_W_ScrollArea(GWEN_WIDGET * w)16 Qt5_W_ScrollArea(GWEN_WIDGET *w):Qt5_W_Widget(w) { 17 } 18 19 20 ~Qt5_W_ScrollArea()21 ~Qt5_W_ScrollArea() { 22 } 23 24 25 setup()26 virtual int setup() { 27 QScrollArea *qw; 28 QWidget *qChild; 29 uint32_t flags; 30 GWEN_WIDGET *wParent; 31 QSizePolicy::Policy hpolicy=QSizePolicy::Minimum; 32 QSizePolicy::Policy vpolicy=QSizePolicy::Minimum; 33 QLayout *qLayout; 34 35 flags=GWEN_Widget_GetFlags(_widget); 36 wParent=GWEN_Widget_Tree_GetParent(_widget); 37 38 qw=new QScrollArea(); 39 40 qChild=new QWidget(); 41 qChild->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); 42 qw->setWidget(qChild); 43 qLayout=new QVBoxLayout(qChild); 44 45 qw->setWidgetResizable(true); 46 47 /* handle flags */ 48 if (flags & GWEN_WIDGET_FLAGS_FILLX) 49 hpolicy=QSizePolicy::Expanding; 50 if (flags & GWEN_WIDGET_FLAGS_FILLY) 51 vpolicy=QSizePolicy::Expanding; 52 qw->setSizePolicy(hpolicy, vpolicy); 53 54 GWEN_Widget_SetImplData(_widget, QT5_DIALOG_WIDGET_REAL, (void*) qw); 55 GWEN_Widget_SetImplData(_widget, QT5_DIALOG_WIDGET_LAYOUT, (void*) qLayout); 56 57 if (wParent) 58 GWEN_Widget_AddChildGuiWidget(wParent, _widget); 59 return 0; 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