gwenhywfar 4.0.3

w_scrollarea.cpp

Go to the documentation of this file.
00001 /***************************************************************************
00002     begin       : Mon Feb 15 2010
00003     copyright   : (C) 2010 by Martin Preuss
00004     email       : martin@libchipcard.de
00005 
00006  ***************************************************************************
00007  *          Please see toplevel file COPYING for license details           *
00008  ***************************************************************************/
00009 
00010 
00011 #include <gwen-gui-cpp/cppwidget.hpp>
00012 
00013 
00014 class Qt4_W_ScrollArea: public Qt4_W_Widget {
00015 public:
00016   Qt4_W_ScrollArea(GWEN_WIDGET *w):Qt4_W_Widget(w) {
00017   }
00018 
00019 
00020 
00021   ~Qt4_W_ScrollArea() {
00022   }
00023 
00024 
00025 
00026   virtual int setup() {
00027     QScrollArea *qw;
00028     QWidget *qChild;
00029     uint32_t flags;
00030     GWEN_WIDGET *wParent;
00031     QSizePolicy::Policy hpolicy=QSizePolicy::Minimum;
00032     QSizePolicy::Policy vpolicy=QSizePolicy::Minimum;
00033     QLayout *qLayout;
00034 
00035     flags=GWEN_Widget_GetFlags(_widget);
00036     wParent=GWEN_Widget_Tree_GetParent(_widget);
00037 
00038     qw=new QScrollArea();
00039 
00040     qChild=new QWidget();
00041     qChild->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
00042     qw->setWidget(qChild);
00043     qLayout=new QVBoxLayout(qChild);
00044 
00045     qw->setWidgetResizable(true);
00046 
00047     /* handle flags */
00048     if (flags & GWEN_WIDGET_FLAGS_FILLX)
00049       hpolicy=QSizePolicy::Expanding;
00050     if (flags & GWEN_WIDGET_FLAGS_FILLY)
00051       vpolicy=QSizePolicy::Expanding;
00052     qw->setSizePolicy(hpolicy, vpolicy);
00053 
00054     GWEN_Widget_SetImplData(_widget, QT4_DIALOG_WIDGET_REAL, (void*) qw);
00055     GWEN_Widget_SetImplData(_widget, QT4_DIALOG_WIDGET_LAYOUT, (void*) qLayout);
00056 
00057     if (wParent)
00058       GWEN_Widget_AddChildGuiWidget(wParent, _widget);
00059     return 0;
00060   }
00061 
00062 
00063   int addChildGuiWidget(GWEN_WIDGET *wChild) {
00064     QWidget *qw;
00065     QBoxLayout *qLayout;
00066     QWidget *qChild;
00067 
00068     qw=(QWidget*) GWEN_Widget_GetImplData(_widget, QT4_DIALOG_WIDGET_REAL);
00069     assert(qw);
00070 
00071     qLayout=(QBoxLayout*) GWEN_Widget_GetImplData(_widget, QT4_DIALOG_WIDGET_LAYOUT);
00072     assert(qLayout);
00073 
00074     qChild=getQWidget(wChild);
00075     assert(qChild);
00076 
00077     qChild->setParent(qw);
00078     qLayout->addWidget(qChild);
00079 
00080     return 0;
00081   };
00082 
00083 };
00084 
00085 
00086 
00087 
00088 
00089 
00090