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