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