# pragma once
# include <QtWidgets>
class Toggle : public QAbstractButton {
Q_OBJECT
Q_PROPERTY ( int offset_circle READ offset_circle WRITE set_offset_circle CONSTANT )
public :
Toggle ( QWidget * parent = nullptr ) ;
void togglePosition ( ) ;
bool on ;
int animation_duration = 150 ;
int immediateOffset = 0 ;
int offset_circle ( ) const {
return _x_circle ;
}
void set_offset_circle ( int o ) {
_x_circle = o ;
update ( ) ;
}
bool getEnabled ( ) ;
void setEnabled ( bool value ) ;
protected :
void paintEvent ( QPaintEvent * ) override ;
void mouseReleaseEvent ( QMouseEvent * ) override ;
void enterEvent ( QEvent * ) override ;
private :
QColor circleColor ;
QColor green ;
bool enabled = true ;
int _x_circle , _y_circle ;
int _height , _radius ;
int _height_rect , _y_rect ;
QPropertyAnimation * _anim = nullptr ;
signals :
void stateChanged ( bool new_state ) ;
} ;