#include "button.h"
#include "container.h"
#include "toolkit.h"
UIWIDGET ui_button(UiObject *obj,
char *label, ui_callback f,
void *data) {
QString str = QString::fromUtf8(label);
QPushButton *button = new QPushButton(str);
if(f) {
UiEventWrapper *event = new UiEventWrapper(obj, f, data);
button->connect(button,
SIGNAL(clicked()), event,
SLOT(slot()));
}
UiContainer *ct = uic_get_current_container(obj);
ct->add(button, false);
return button;
}
UIWIDGET ui_radiobutton(UiObject *obj,
char *label, UiInteger *rgroup) {
QString str = QString::fromUtf8(label);
QRadioButton *button = new QRadioButton(str);
button->setAutoExclusive(false);
if(rgroup) {
QButtonGroup *buttonGroup = (QButtonGroup*)rgroup->obj;
if(!buttonGroup) {
buttonGroup = new QButtonGroup();
rgroup->obj = buttonGroup;
button->setChecked(true);
}
buttonGroup->addButton(button, buttonGroup->buttons().size());
rgroup->get = ui_radiobutton_get;
rgroup->set = ui_radiobutton_set;
}
UiContainer *ct = uic_get_current_container(obj);
ct->add(button, false);
return button;
}
int ui_radiobutton_get(UiInteger *value) {
QButtonGroup *buttonGroup = (QButtonGroup*)value->obj;
value->value = buttonGroup->checkedId();
return value->value;
}
void ui_radiobutton_set(UiInteger *value,
int i) {
QButtonGroup *buttonGroup = (QButtonGroup*)value->obj;
QAbstractButton *button = buttonGroup->button(i);
if(button) {
button->setChecked(true);
value->value = i;
}
}