Krita Source Code Documentation
Loading...
Searching...
No Matches
KisHighlightedToolButton.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2016 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#ifndef __KIS_HIGHLIGHTED_TOOL_BUTTON_H
8#define __KIS_HIGHLIGHTED_TOOL_BUTTON_H
9
10#include <QToolButton>
11#include <QEvent>
12
13#include "kritawidgetutils_export.h"
14
15class KRITAWIDGETUTILS_EXPORT KisHighlightedToolButton : public QToolButton
16{
17public:
18 KisHighlightedToolButton(QWidget *parent = 0)
19 : QToolButton(parent)
20 {
21 }
22
23 void changeEvent(QEvent *event) override {
24 QWidget::changeEvent(event);
25 if (event->type() == QEvent::PaletteChange) {
26 updatePalette();
27 }
28 }
29
30protected:
31 void checkStateSet() override {
32 QToolButton::checkStateSet();
33 updatePalette();
34 }
35
36 void nextCheckState() override {
37 QToolButton::nextCheckState();
38 updatePalette();
39 }
40
41private:
43 QWidget *parent = this->parentWidget();
44 if (parent) {
45 QPalette p = parent->palette();
46 QColor color = p.color(this->isChecked() ? QPalette::Highlight : QPalette::Button);
47 p.setColor(QPalette::Button, color);
48 this->setPalette(p);
49 }
50 }
51};
52
53
54#endif /* __KIS_HIGHLIGHTED_BUTTON_H */
const Params2D p
KisHighlightedToolButton(QWidget *parent=0)
void changeEvent(QEvent *event) override