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