w_vlayout.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_VLayout: public Qt4_W_Widget {
00015 public:
00016   Qt4_W_VLayout(GWEN_WIDGET *w):Qt4_W_Widget(w) {
00017   }
00018 
00019 
00020 
00021   ~Qt4_W_VLayout() {
00022   }
00023 
00024 
00025 
00026   virtual int setup() {
00027     QWidget *qw;
00028     uint32_t flags;
00029     GWEN_WIDGET *wParent;
00030     QLayout *qLayout;
00031     QSizePolicy::Policy hpolicy=QSizePolicy::Minimum;
00032     QSizePolicy::Policy vpolicy=QSizePolicy::Minimum;
00033 
00034     flags=GWEN_Widget_GetFlags(_widget);
00035     wParent=GWEN_Widget_Tree_GetParent(_widget);
00036 
00037     qw=new QWidget();
00038     qLayout=new QVBoxLayout(qw);
00039 
00040     /* handle flags */
00041     if (flags & GWEN_WIDGET_FLAGS_FILLX)
00042       hpolicy=QSizePolicy::Expanding;
00043     if (flags & GWEN_WIDGET_FLAGS_FILLY)
00044       vpolicy=QSizePolicy::Expanding;
00045     qw->setSizePolicy(hpolicy, vpolicy);
00046 
00047 
00048     GWEN_Widget_SetImplData(_widget, QT4_DIALOG_WIDGET_REAL, (void*) qw);
00049     GWEN_Widget_SetImplData(_widget, QT4_DIALOG_WIDGET_LAYOUT, (void*) qLayout);
00050 
00051     if (wParent)
00052       GWEN_Widget_AddChildGuiWidget(wParent, _widget);
00053     return 0;
00054   }
00055 
00056 
00057 
00058   int addChildGuiWidget(GWEN_WIDGET *wChild) {
00059     QWidget *qw;
00060     QBoxLayout *qLayout;
00061     QWidget *qChild;
00062 
00063     qw=(QWidget*) GWEN_Widget_GetImplData(_widget, QT4_DIALOG_WIDGET_REAL);
00064     assert(qw);
00065 
00066     qLayout=(QBoxLayout*) GWEN_Widget_GetImplData(_widget, QT4_DIALOG_WIDGET_LAYOUT);
00067     assert(qLayout);
00068 
00069     qChild=getQWidget(wChild);
00070     assert(qChild);
00071 
00072     qChild->setParent(qw);
00073     qLayout->addWidget(qChild);
00074 
00075     return 0;
00076   };
00077 
00078 };
00079 
00080 
00081 
00082 
00083 
00084 
00085