chore: baseline usable version
This commit is contained in:
94
libs/qwindowkit/examples/shared/widgetframe/windowbutton.cpp
Normal file
94
libs/qwindowkit/examples/shared/widgetframe/windowbutton.cpp
Normal file
@@ -0,0 +1,94 @@
|
||||
// Copyright (C) 2023-2024 Stdware Collections (https://www.github.com/stdware)
|
||||
// Copyright (C) 2021-2023 wangwenx190 (Yuhang Zhao)
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
#include "windowbutton.h"
|
||||
#include "windowbutton_p.h"
|
||||
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtGui/QtEvents>
|
||||
|
||||
namespace QWK {
|
||||
|
||||
WindowButtonPrivate::WindowButtonPrivate() = default;
|
||||
|
||||
WindowButtonPrivate::~WindowButtonPrivate() = default;
|
||||
|
||||
void WindowButtonPrivate::init() {
|
||||
}
|
||||
|
||||
void WindowButtonPrivate::reloadIcon() {
|
||||
Q_Q(WindowButton);
|
||||
|
||||
if (!q->isEnabled() && !iconDisabled.isNull()) {
|
||||
q->setIcon(iconDisabled);
|
||||
return;
|
||||
}
|
||||
|
||||
if (q->isChecked() && !iconChecked.isNull()) {
|
||||
q->setIcon(iconChecked);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!iconNormal.isNull()) {
|
||||
q->setIcon(iconNormal);
|
||||
}
|
||||
}
|
||||
|
||||
WindowButton::WindowButton(QWidget *parent) : WindowButton(*new WindowButtonPrivate(), parent) {
|
||||
}
|
||||
|
||||
WindowButton::~WindowButton() = default;
|
||||
|
||||
QIcon WindowButton::iconNormal() const {
|
||||
Q_D(const WindowButton);
|
||||
return d->iconNormal;
|
||||
}
|
||||
|
||||
void WindowButton::setIconNormal(const QIcon &icon) {
|
||||
Q_D(WindowButton);
|
||||
d->iconNormal = icon;
|
||||
d->reloadIcon();
|
||||
}
|
||||
|
||||
QIcon WindowButton::iconChecked() const {
|
||||
Q_D(const WindowButton);
|
||||
return d->iconChecked;
|
||||
}
|
||||
|
||||
void WindowButton::setIconChecked(const QIcon &icon) {
|
||||
Q_D(WindowButton);
|
||||
d->iconChecked = icon;
|
||||
d->reloadIcon();
|
||||
}
|
||||
|
||||
QIcon WindowButton::iconDisabled() const {
|
||||
Q_D(const WindowButton);
|
||||
return d->iconDisabled;
|
||||
}
|
||||
|
||||
void WindowButton::setIconDisabled(const QIcon &icon) {
|
||||
Q_D(WindowButton);
|
||||
d->iconDisabled = icon;
|
||||
d->reloadIcon();
|
||||
}
|
||||
|
||||
void WindowButton::checkStateSet() {
|
||||
Q_D(WindowButton);
|
||||
d->reloadIcon();
|
||||
}
|
||||
|
||||
void WindowButton::mouseDoubleClickEvent(QMouseEvent *event) {
|
||||
if (event->button() == Qt::LeftButton) {
|
||||
Q_EMIT doubleClicked();
|
||||
}
|
||||
}
|
||||
|
||||
WindowButton::WindowButton(WindowButtonPrivate &d, QWidget *parent)
|
||||
: QPushButton(parent), d_ptr(&d) {
|
||||
d.q_ptr = this;
|
||||
|
||||
d.init();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user