gwenhywfar/gui/qt4/w_pushbutton.cpp @ 776bd88c
e60cdae2 | martin | /***************************************************************************
|
|
begin : Mon Feb 15 2010
|
|||
copyright : (C) 2010 by Martin Preuss
|
|||
email : martin@libchipcard.de
|
|||
***************************************************************************
|
|||
* Please see toplevel file COPYING for license details *
|
|||
***************************************************************************/
|
|||
#include <gwen-gui-cpp/cppwidget.hpp>
|
|||
class Qt4_W_PushButton: public Qt4_W_Widget {
|
|||
public:
|
|||
Qt4_W_PushButton(GWEN_WIDGET *w):Qt4_W_Widget(w) {
|
|||
}
|
|||
~Qt4_W_PushButton() {
|
|||
}
|
|||
virtual int setup() {
|
|||
QWidget *qw;
|
|||
uint32_t flags;
|
|||
GWEN_WIDGET *wParent;
|
|||
QSizePolicy::Policy hpolicy=QSizePolicy::Minimum;
|
|||
QSizePolicy::Policy vpolicy=QSizePolicy::Minimum;
|
|||
const char *s;
|
|||
QString text;
|
|||
QT4_GuiDialog *qtDialog;
|
|||
flags=GWEN_Widget_GetFlags(_widget);
|
|||
wParent=GWEN_Widget_Tree_GetParent(_widget);
|
|||
s=GWEN_Widget_GetText(_widget, 0);
|
|||
if (s)
|
|||
text=QString::fromUtf8(s);
|
|||
qw=new QPushButton(text);
|
|||
/* handle flags */
|
|||
if (flags & GWEN_WIDGET_FLAGS_FILLX)
|
|||
hpolicy=QSizePolicy::Expanding;
|
|||
if (flags & GWEN_WIDGET_FLAGS_FILLY)
|
|||
vpolicy=QSizePolicy::Expanding;
|
|||
qw->setSizePolicy(hpolicy, vpolicy);
|
|||
GWEN_Widget_SetImplData(_widget, QT4_DIALOG_WIDGET_REAL, (void*) qw);
|
|||
qtDialog=dynamic_cast<QT4_GuiDialog*>(getDialog());
|
|||
assert(qtDialog);
|
|||
qw->connect(qw, SIGNAL(clicked(bool)),
|
|||
26b60060 | Christian Stimming | qtDialog->getMainWindow(),
|
|
SLOT(slotActivated()));
|
|||
e60cdae2 | martin | ||
if (wParent)
|
|||
GWEN_Widget_AddChildGuiWidget(wParent, _widget);
|
|||
return 0;
|
|||
}
|
|||
int setCharProperty(GWEN_DIALOG_PROPERTY prop,
|
|||
26b60060 | Christian Stimming | int index,
|
|
const char *value,
|
|||
int doSignal) {
|
|||
e60cdae2 | martin | QPushButton *qw;
|
|
QString text;
|
|||
qw=(QPushButton*) GWEN_Widget_GetImplData(_widget, QT4_DIALOG_WIDGET_REAL);
|
|||
assert(qw);
|
|||
if (value)
|
|||
text=QString::fromUtf8(value);
|
|||
switch(prop) {
|
|||
case GWEN_DialogProperty_Title:
|
|||
qw->setText(text);
|
|||
return 0;
|
|||
default:
|
|||
break;
|
|||
}
|
|||
DBG_WARN(GWEN_LOGDOMAIN,
|
|||
26b60060 | Christian Stimming | "Function is not appropriate for this type of widget (%s)",
|
|
GWEN_Widget_Type_toString(GWEN_Widget_GetType(_widget)));
|
|||
e60cdae2 | martin | return GWEN_ERROR_INVALID;
|
|
};
|
|||
const char *getCharProperty(GWEN_DIALOG_PROPERTY prop,
|
|||
26b60060 | Christian Stimming | int index,
|
|
const char *defaultValue) {
|
|||
e60cdae2 | martin | QPushButton *qw;
|
|
QString str;
|
|||
qw=(QPushButton*) GWEN_Widget_GetImplData(_widget, QT4_DIALOG_WIDGET_REAL);
|
|||
assert(qw);
|
|||
switch(prop) {
|
|||
case GWEN_DialogProperty_Title:
|
|||
str=qw->text();
|
|||
if (str.isEmpty())
|
|||
26b60060 | Christian Stimming | return defaultValue;
|
|
e60cdae2 | martin | else {
|
|
26b60060 | Christian Stimming | GWEN_Widget_SetText(_widget, QT4_DIALOG_STRING_TITLE, str.toUtf8());
|
|
return GWEN_Widget_GetText(_widget, QT4_DIALOG_STRING_TITLE);
|
|||
e60cdae2 | martin | }
|
|
break;
|
|||
default:
|
|||
break;
|
|||
}
|
|||
DBG_WARN(GWEN_LOGDOMAIN,
|
|||
26b60060 | Christian Stimming | "Function is not appropriate for this type of widget (%s)",
|
|
GWEN_Widget_Type_toString(GWEN_Widget_GetType(_widget)));
|
|||
e60cdae2 | martin | return defaultValue;
|
|
};
|
|||
};
|
|||