dtkwidget/include/widgets/dimagebutton.h

92 lines
2.8 KiB
C++

// SPDX-FileCopyrightText: 2015 - 2022 UnionTech Software Technology Co., Ltd.
//
// SPDX-License-Identifier: LGPL-3.0-or-later
#ifndef DIMAGEBUTTON_H
#define DIMAGEBUTTON_H
#include <QObject>
#include <QWidget>
#include <QLabel>
#include <QPixmap>
#include <dtkwidget_global.h>
#include <DObject>
DWIDGET_BEGIN_NAMESPACE
class DImageButtonPrivate;
class LIBDTKWIDGETSHARED_EXPORT D_DECL_DEPRECATED_X("Use DIconButton") DImageButton : public QLabel, public DTK_CORE_NAMESPACE::DObject
{
Q_OBJECT
Q_PROPERTY(QString normalPic READ getNormalPic WRITE setNormalPic DESIGNABLE true)
Q_PROPERTY(QString hoverPic READ getHoverPic WRITE setHoverPic DESIGNABLE true)
Q_PROPERTY(QString pressPic READ getPressPic WRITE setPressPic DESIGNABLE true)
Q_PROPERTY(QString checkedPic READ getCheckedPic WRITE setCheckedPic DESIGNABLE true)
Q_PROPERTY(QString disabledPic READ getDisabledPic WRITE setDisabledPic DESIGNABLE true)
Q_PROPERTY(bool checked READ isChecked WRITE setChecked NOTIFY checkedChanged)
Q_PROPERTY(bool checkable READ isCheckable WRITE setCheckable)
public:
DImageButton(QWidget *parent = 0);
DImageButton(const QString &normalPic, const QString &hoverPic,
const QString &pressPic, QWidget *parent = 0);
DImageButton(const QString &normalPic, const QString &hoverPic,
const QString &pressPic, const QString &checkedPic, QWidget *parent = 0);
~DImageButton();
void setEnabled(bool enabled);
void setDisabled(bool disabled);
void setChecked(bool flag);
void setCheckable(bool flag);
bool isChecked() const;
bool isCheckable() const;
void setNormalPic(const QString &normalPic);
void setHoverPic(const QString &hoverPic);
void setPressPic(const QString &pressPic);
void setCheckedPic(const QString &checkedPic);
void setDisabledPic(const QString &disabledPic);
const QString getNormalPic() const;
const QString getHoverPic() const;
const QString getPressPic() const;
const QString getCheckedPic() const;
const QString getDisabledPic() const;
enum State {
Normal,
Hover,
Press,
Checked,
Disabled
};
void setState(State state);
State getState() const;
Q_SIGNALS:
void clicked();
void checkedChanged(bool checked);
void stateChanged();
protected:
DImageButton(DImageButtonPrivate &q, QWidget *parent);
void enterEvent(QEvent *event) Q_DECL_OVERRIDE;
void leaveEvent(QEvent *event) Q_DECL_OVERRIDE;
void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
void mouseMoveEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(DImageButton)
D_DECLARE_PRIVATE(DImageButton)
};
DWIDGET_END_NAMESPACE
#endif // DIMAGEBUTTON_H