/**************************************************************************** ** ** Copyright (C) 2016 Ivan Vizir ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtWinExtras module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 3 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL3 included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 3 requirements ** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 2.0 or (at your option) the GNU General ** Public license version 3 or any later version approved by the KDE Free ** Qt Foundation. The licenses are as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 ** included in the packaging of this file. Please review the following ** information to ensure the GNU General Public License requirements will ** be met: https://www.gnu.org/licenses/gpl-2.0.html and ** https://www.gnu.org/licenses/gpl-3.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #include "qwinthumbnailtoolbutton.h" #include "qwinthumbnailtoolbutton_p.h" QT_BEGIN_NAMESPACE /*! \class QWinThumbnailToolButton \inmodule QtWinExtras \since 5.2 \brief The QWinThumbnailToolButton class represents a button in a thumbnail toolbar. Buttons in a QWinThumbnailToolBar are instances of QWinThumbnailToolButton. It provides a set of properties for specifying the attributes of a thumbnail toolbar button. It also provides a signal that is emitted whenever the button is \l{clicked()}{clicked}, and a slot to perform \l{click()}{clicks} programmatically. \sa QWinThumbnailToolBar */ /*! \fn void QWinThumbnailToolButton::clicked() This signal is emitted when the button is clicked. */ /*! \internal \fn void QWinThumbnailToolButton::changed() */ /*! Constructs a QWinThumbnailToolButton with the specified \a parent. */ QWinThumbnailToolButton::QWinThumbnailToolButton(QObject *parent) : QObject(parent), d_ptr(new QWinThumbnailToolButtonPrivate) { } /*! Destroys the QWinThumbnailToolButton. */ QWinThumbnailToolButton::~QWinThumbnailToolButton() = default; /*! \property QWinThumbnailToolButton::toolTip \brief the tooltip of the button */ void QWinThumbnailToolButton::setToolTip(const QString &toolTip) { Q_D(QWinThumbnailToolButton); if (d->toolTip != toolTip) { d->toolTip = toolTip; emit changed(); } } QString QWinThumbnailToolButton::toolTip() const { Q_D(const QWinThumbnailToolButton); return d->toolTip; } /*! \property QWinThumbnailToolButton::icon \brief the icon of the button */ void QWinThumbnailToolButton::setIcon(const QIcon &icon) { Q_D(QWinThumbnailToolButton); if (d->icon.cacheKey() != icon.cacheKey()) { d->icon = icon; emit changed(); } } QIcon QWinThumbnailToolButton::icon() const { Q_D(const QWinThumbnailToolButton); return d->icon; } /*! \property QWinThumbnailToolButton::enabled \brief whether the button is enabled The default value is \c true. A disabled button does not react to user interaction, and is also visually disabled. \sa interactive */ void QWinThumbnailToolButton::setEnabled(bool enabled) { Q_D(QWinThumbnailToolButton); if (d->enabled != enabled) { d->enabled = enabled; emit changed(); } } bool QWinThumbnailToolButton::isEnabled() const { Q_D(const QWinThumbnailToolButton); return d->enabled; } /*! \property QWinThumbnailToolButton::interactive \brief whether the button is interactive The default value is \c true. A non-interactive button does not react to user interaction, but is still visually enabled. A typical use case for non- interactive buttons are notification icons. \sa enabled */ void QWinThumbnailToolButton::setInteractive(bool interactive) { Q_D(QWinThumbnailToolButton); if (d->interactive != interactive) { d->interactive = interactive; emit changed(); } } bool QWinThumbnailToolButton::isInteractive() const { Q_D(const QWinThumbnailToolButton); return d->interactive; } /*! \property QWinThumbnailToolButton::visible \brief whether the button is visible The default value is \c true. */ void QWinThumbnailToolButton::setVisible(bool visible) { Q_D(QWinThumbnailToolButton); if (d->visible != visible) { d->visible = visible; emit changed(); } } bool QWinThumbnailToolButton::isVisible() const { Q_D(const QWinThumbnailToolButton); return d->visible; } /*! \property QWinThumbnailToolButton::dismissOnClick \brief whether the window thumbnail is dismissed after a button click The default value is \c false. */ void QWinThumbnailToolButton::setDismissOnClick(bool dismiss) { Q_D(QWinThumbnailToolButton); if (d->dismiss != dismiss) { d->dismiss = dismiss; emit changed(); } } bool QWinThumbnailToolButton::dismissOnClick() const { Q_D(const QWinThumbnailToolButton); return d->dismiss; } /*! \property QWinThumbnailToolButton::flat \brief whether the button is flat The default value is \c false. A flat button does not draw a background nor a frame - only an icon. */ void QWinThumbnailToolButton::setFlat(bool flat) { Q_D(QWinThumbnailToolButton); if (d->flat != flat) { d->flat = flat; emit changed(); } } bool QWinThumbnailToolButton::isFlat() const { Q_D(const QWinThumbnailToolButton); return d->flat; } /*! Performs a click. The clicked() signal is emitted as appropriate. This function does nothing if the button is \l{enabled}{disabled} or \l{interactive}{non-interactive}. */ void QWinThumbnailToolButton::click() { Q_D(QWinThumbnailToolButton); if (d->enabled && d->interactive) emit clicked(); } QT_END_NAMESPACE