Files
qad/touch_widgets/touchbuttframe.h
Бычков Андрей ba8bc27298 1
git-svn-id: svn://db.shs.com.ru/libs@1 a8b55f48-bf90-11e4-a774-851b48703e85
2015-02-28 21:28:53 +00:00

114 lines
5.2 KiB
C++

#ifndef TOUCHBUTTFRAME_H
#define TOUCHBUTTFRAME_H
#include <QtGui/QFrame>
#include <QBoxLayout>
#include <QDebug>
#include "touchbutton.h"
class TouchButtFrame: public QFrame
{
Q_OBJECT
Q_PROPERTY(QColor colorYes READ colorYes WRITE setColorYes)
Q_PROPERTY(QColor colorNo READ colorNo WRITE setColorNo)
Q_PROPERTY(QColor colorGray READ colorGray WRITE setColorGray)
Q_PROPERTY(QColor colorDown READ colorDown WRITE setColorDown)
Q_PROPERTY(QStringList buttons READ buttons WRITE setButtons)
Q_PROPERTY(int currentButton READ currentButton WRITE setCurrentButton)
Q_PROPERTY(Qt::Orientation orientation READ orientation WRITE setOrientation)
Q_PROPERTY(int clickID READ clickID WRITE setClickID)
Q_PROPERTY(int setID READ setID WRITE setSetID)
public:
TouchButtFrame(QWidget * parent = 0, Qt::Orientation orientation = Qt::Horizontal);
int clickID() const {return id_click;}
int setID() const {return id_set;}
void setButtons(const QStringList & captions);
QStringList buttons();
TouchButton * button(int index);
int buttonsCount() const {return lay->count();}
int currentButton();
Qt::Orientation orientation() const {if (lay->direction() == 0) return Qt::Horizontal; else return Qt::Vertical;}
QColor colorYes() const {return colg;}
QColor colorNo() const {return colr;}
QColor colorGray() const {return colw;}
QColor colorDown() const {return colp;}
void setCurrentButton(int index);
void setColorYes(QColor col) {colg = col; resetColors();}
void setColorNo(QColor col) {colr = col; resetColors();}
void setColorGray(QColor col) {colw = col; resetColors();}
void setColorDown(QColor col) {colp = col; resetColors();}
void setOrientation(Qt::Orientation orientation) {if (orientation == Qt::Horizontal) lay->setDirection(QBoxLayout::LeftToRight); else lay->setDirection(QBoxLayout::TopToBottom);}
private:
void resetColors();
void deleteButtons();
void addButton(const QString & caption);
int id_click, id_set;
QColor colr, colg, colw, colp;
QBoxLayout * lay;
//int count;
private slots:
void butt_click(int index) {emit clicked(index); emit clickedID(id_click, index);}
void butt_toggle(int index, bool checked) {emit toggled(index, checked); emit toggledID(id_click, index, checked);}
public slots:
void enable() {setEnabled(true);}
void disable() {setAllButtonsGray(); setEnabled(false);}
void setClickID(int id) {id_click = id;}
void setSetID(int id) {id_set = id;}
void setButtonChecked(int index) {if (button(index) != 0) button(index)->setChecked(true);}
void setButtonUnchecked(int index) {if (button(index) != 0) button(index)->setChecked(false);}
void setButtonState(int index, TouchButton::State state) {if (button(index) != 0) button(index)->setState(state);}
void setButtonYes(int index) {if (button(index) != 0) button(index)->setStateYes();}
void setButtonNo(int index) {if (button(index) != 0) button(index)->setStateNo();}
void setButtonGray(int index) {if (button(index) != 0) button(index)->setStateGray();}
void setAllButtonsState(TouchButton::State state) {for (int i = 0; i < buttonsCount(); ++i) button(i)->setState(state);}
void setAllButtonsYes() {for (int i = 0; i < buttonsCount(); ++i) button(i)->setStateYes();}
void setAllButtonsNo() {for (int i = 0; i < buttonsCount(); ++i) button(i)->setStateNo();}
void setAllButtonsGray() {for (int i = 0; i < buttonsCount(); ++i) button(i)->setStateGray();}
void hideButton(int index) {if (button(index) != 0) button(index)->hide();}
void showButton(int index) {if (button(index) != 0) button(index)->show();}
void enableButton(int index) {if (button(index) != 0) button(index)->enable();}
void disableButton(int index) {if (button(index) != 0) button(index)->disable();}
void enableID(int set_id) {if (set_id == id_set) enable();}
void disableID(int set_id) {if (set_id == id_set) disable();}
void setButtonCheckedID(int set_id, int index) {if (set_id == id_set) setButtonChecked(index);}
void setButtonUncheckedID(int set_id, int index) {if (set_id == id_set) setButtonUnchecked(index);}
void setButtonStateID(int set_id, int index, TouchButton::State state) {if (set_id == id_set) setButtonState(index, state);}
void setButtonYesID(int set_id, int index) {if (set_id == id_set) setButtonYes(index);}
void setButtonNoID(int set_id, int index) {if (set_id == id_set) setButtonNo(index);}
void setButtonGrayID(int set_id, int index) {if (set_id == id_set) setButtonGray(index);}
void setAllButtonsStateID(int set_id, TouchButton::State state) {if (set_id == id_set) setAllButtonsState(state);}
void setAllButtonsYesID(int set_id) {if (set_id == id_set) setAllButtonsYes();}
void setAllButtonsNoID(int set_id) {if (set_id == id_set) setAllButtonsNo();}
void setAllButtonsGrayID(int set_id) {if (set_id == id_set) setAllButtonsGray();}
void hideButtonID(int set_id, int index) {if (set_id == id_set) hideButton(index);}
void showButtonID(int set_id, int index) {if (set_id == id_set) showButton(index);}
void enableButtonID(int set_id, int index) {if (set_id == id_set) enableButton(index);}
void disableButtonID(int set_id, int index) {if (set_id == id_set) disableButton(index);}
signals:
void clicked(int index);
void toggled(int index, bool checked);
void clickedID(int id, int index);
void toggledID(int id, int index, bool checked);
};
#endif // TOUCHBUTTFRAME_H