Commit f5720474 authored by Yannick Verdie's avatar Yannick Verdie

QT new functions:

 - add CV_RADIOBOX with exclusive mode
parent 2c923c7e
......@@ -95,7 +95,7 @@ CVAPI(int) cvStartLoop(int (*pt2Func)(int argc, char *argv[]), int argc, char* a
CVAPI(void) cvStopLoop();
typedef void (CV_CDECL *CvButtonCallback)(int state, void* userdata);
enum {CV_PUSH_BUTTON = 0, CV_CHECKBOX = 1};
enum {CV_PUSH_BUTTON = 0, CV_CHECKBOX = 1, CV_RADIOBOX = 2};
CVAPI(int) cvCreateButton( const char* button_name CV_DEFAULT(NULL),CvButtonCallback on_change CV_DEFAULT(NULL), void* userdata CV_DEFAULT(NULL) , int button_type CV_DEFAULT(CV_PUSH_BUTTON), bool initial_button_state CV_DEFAULT(0));
//----------------------
......
......@@ -1033,6 +1033,8 @@ CvButtonbar::CvButtonbar(QWidget* arg, QString arg2)
name_bar = arg2;
setObjectName(name_bar);
group_button = new QButtonGroup;
/*
label = new QLabel;
setLabel();
......@@ -1047,6 +1049,7 @@ CvButtonbar::~CvButtonbar()
while ((child = takeAt(0)) != 0)
delete child;
delete group_button;
}
void CvButtonbar::setLabel()
......@@ -1072,6 +1075,13 @@ void CvButtonbar::addButton( QString name, CvButtonCallback call, void* userdata
//CvCheckButton*
button = (QAbstractButton*) new CvCheckBox(this, button_name,call, userdata, initial_button_state);
if (button_type == CV_RADIOBOX)
{
//CvCheckButton*
button = (QAbstractButton*) new CvRadioButton(this, button_name,call, userdata, initial_button_state);
group_button->addButton(button);
}
if (button)
{
QObject::connect( button, SIGNAL( clicked() ),button, SLOT( callCallBack() ));
......@@ -1117,7 +1127,22 @@ void CvCheckBox::callCallBack()
callback(this->isChecked(),userdata);
}
CvRadioButton::CvRadioButton(CvButtonbar* arg1, QString arg2, CvButtonCallback arg3, void* arg4, bool initial_button_state)
{
myparent = arg1;
button_name = arg2;
callback = arg3;
userdata=arg4;
setObjectName(button_name);
setChecked(initial_button_state);
setText(button_name);
}
void CvRadioButton::callCallBack()
{
callback(this->isChecked(),userdata);
}
......
......@@ -76,6 +76,8 @@
#include <QAction>
#include <QPushButton>
#include <QCheckBox>
#include <QRadioButton>
#include <QButtonGroup>
#include <QMenu>
//start private enum
......@@ -159,6 +161,7 @@ private:
void setLabel();
QPointer<QLabel> label;
QPointer<QButtonGroup> group_button;
};
......@@ -196,6 +199,23 @@ private slots:
void callCallBack();
};
class CvRadioButton : public QRadioButton
{
Q_OBJECT
public:
CvRadioButton(CvButtonbar* par, QString button_name, CvButtonCallback call, void* userdata, bool initial_button_state);
private:
CvButtonbar* myparent;
QString button_name ;
CvButtonCallback callback;
void* userdata;
private slots:
void callCallBack();
};
class CvTrackbar : public CvBar
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment