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_WidgetStack: public Qt5_W_Widget { 15 public: Qt5_W_WidgetStack(GWEN_WIDGET * w)16 Qt5_W_WidgetStack(GWEN_WIDGET *w):Qt5_W_Widget(w) { 17 } 18 19 20 ~Qt5_W_WidgetStack()21 ~Qt5_W_WidgetStack() { 22 } 23 24 25 setup()26 virtual int setup() { 27 QWidget *qw; 28 uint32_t flags; 29 GWEN_WIDGET *wParent; 30 QSizePolicy::Policy hpolicy=QSizePolicy::Minimum; 31 QSizePolicy::Policy vpolicy=QSizePolicy::Minimum; 32 33 flags=GWEN_Widget_GetFlags(_widget); 34 wParent=GWEN_Widget_Tree_GetParent(_widget); 35 36 qw=new QStackedWidget(); 37 38 /* handle flags */ 39 if (flags & GWEN_WIDGET_FLAGS_FILLX) 40 hpolicy=QSizePolicy::Expanding; 41 if (flags & GWEN_WIDGET_FLAGS_FILLY) 42 vpolicy=QSizePolicy::Expanding; 43 qw->setSizePolicy(hpolicy, vpolicy); 44 45 GWEN_Widget_SetImplData(_widget, QT5_DIALOG_WIDGET_REAL, (void*) qw); 46 47 if (wParent) 48 GWEN_Widget_AddChildGuiWidget(wParent, _widget); 49 return 0; 50 } 51 52 53 setIntProperty(GWEN_DIALOG_PROPERTY prop,int index,int value,int doSignal)54 int setIntProperty(GWEN_DIALOG_PROPERTY prop, 55 int index, 56 int value, 57 int doSignal) { 58 QStackedWidget *qw; 59 60 qw=(QStackedWidget*) GWEN_Widget_GetImplData(_widget, QT5_DIALOG_WIDGET_REAL); 61 assert(qw); 62 63 switch(prop) { 64 case GWEN_DialogProperty_Value: 65 qw->setCurrentIndex(value); 66 return 0; 67 68 default: 69 return Qt5_W_Widget::setIntProperty(prop, index, value, doSignal); 70 } 71 }; 72 73 74 getIntProperty(GWEN_DIALOG_PROPERTY prop,int index,int defaultValue)75 int getIntProperty(GWEN_DIALOG_PROPERTY prop, 76 int index, 77 int defaultValue) { 78 QStackedWidget *qw; 79 80 qw=(QStackedWidget*) GWEN_Widget_GetImplData(_widget, QT5_DIALOG_WIDGET_REAL); 81 assert(qw); 82 83 switch(prop) { 84 case GWEN_DialogProperty_Value: 85 return qw->currentIndex(); 86 87 default: 88 return Qt5_W_Widget::getIntProperty(prop, index, defaultValue); 89 } 90 }; 91 92 addChildGuiWidget(GWEN_WIDGET * wChild)93 int addChildGuiWidget(GWEN_WIDGET *wChild) { 94 QStackedWidget *qw; 95 QWidget *qChild; 96 97 qw=(QStackedWidget*) GWEN_Widget_GetImplData(_widget, QT5_DIALOG_WIDGET_REAL); 98 assert(qw); 99 100 qChild=getQWidget(wChild); 101 assert(qChild); 102 103 qw->addWidget(qChild); 104 105 return 0; 106 }; 107 108 109 }; 110 111 112 113 114 115 116 117