gwenhywfar
4.3.1
|
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_Dialog: public Qt4_W_Widget { 00015 public: 00016 Qt4_W_Dialog(GWEN_WIDGET *w):Qt4_W_Widget(w) { 00017 } 00018 00019 00020 00021 ~Qt4_W_Dialog() { 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 QT4_DialogBox(dynamic_cast<QT4_GuiDialog*>(getDialog()), QApplication::activeModalWidget()); 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=(QT4_DialogBox*) 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 int setCharProperty(GWEN_DIALOG_PROPERTY prop, 00081 int index, 00082 const char *value, 00083 int doSignal) { 00084 QWidget *qw; 00085 00086 qw=(QWidget*) GWEN_Widget_GetImplData(_widget, QT4_DIALOG_WIDGET_REAL); 00087 assert(qw); 00088 00089 switch(prop) { 00090 case GWEN_DialogProperty_Title: 00091 qw->setWindowTitle(value); 00092 return 0; 00093 default: 00094 break; 00095 } 00096 00097 DBG_WARN(GWEN_LOGDOMAIN, 00098 "Function is not appropriate for this type of widget (%s)", 00099 GWEN_Widget_Type_toString(GWEN_Widget_GetType(_widget))); 00100 return GWEN_ERROR_INVALID; 00101 }; 00102 00103 00104 00105 const char *getCharProperty(GWEN_DIALOG_PROPERTY prop, 00106 int index, 00107 const char *defaultValue) { 00108 QWidget *qw; 00109 QString str; 00110 00111 qw=(QWidget*) GWEN_Widget_GetImplData(_widget, QT4_DIALOG_WIDGET_REAL); 00112 assert(qw); 00113 00114 switch(prop) { 00115 case GWEN_DialogProperty_Title: 00116 str=qw->windowTitle(); 00117 if (str.isEmpty()) 00118 return defaultValue; 00119 else { 00120 GWEN_Widget_SetText(_widget, QT4_DIALOG_STRING_TITLE, str.toUtf8()); 00121 return GWEN_Widget_GetText(_widget, QT4_DIALOG_STRING_TITLE); 00122 } 00123 break; 00124 00125 default: 00126 break; 00127 } 00128 00129 DBG_WARN(GWEN_LOGDOMAIN, 00130 "Function is not appropriate for this type of widget (%s)", 00131 GWEN_Widget_Type_toString(GWEN_Widget_GetType(_widget))); 00132 return defaultValue; 00133 }; 00134 00135 }; 00136 00137 00138 00139 00140 00141 00142