File indexing completed on 2024-05-12 16:01:29

0001 /*
0002  *  kis_control_frame.h - part of Krita
0003  *
0004  *  SPDX-FileCopyrightText: 1999 Matthias Elter <elter@kde.org>
0005  *  SPDX-FileCopyrightText: 2003 Patrick Julien <freak@codepimps.org>
0006  *  SPDX-FileCopyrightText: 2004 Sven Langkamp <sven.langkamp@gmail.com>
0007  *  SPDX-FileCopyrightText: 2003-2008 Boudewijn Rempt <boud@valdyas.org>
0008  *
0009  *  SPDX-License-Identifier: GPL-2.0-or-later
0010  */
0011 #ifndef __kis_control_frame_h__
0012 #define __kis_control_frame_h__
0013 
0014 #include <QMenu>
0015 #include <QObject>
0016 
0017 #include <KoPattern.h>
0018 #include <KoAbstractGradient.h>
0019 #include <KoCheckerBoardPainter.h>
0020 
0021 class QWidget;
0022 class QTabWidget;
0023 
0024 class KisGradientChooser;
0025 class KisPatternChooser;
0026 class KisPaintopBox;
0027 class KisViewManager;
0028 class KisIconWidget;
0029 class KoDualColorButton;
0030 
0031 /**
0032  *   Control Frame - status display with access to
0033  *   color selector, gradient, patterns, and paintop presets
0034  */
0035 class KisControlFrame : public QObject
0036 {
0037     Q_OBJECT
0038 
0039 public:
0040 
0041     KisControlFrame(KisViewManager *view, QWidget *parent = 0, const char *name = 0);
0042     ~KisControlFrame() override {}
0043     void setup(QWidget *parent);
0044 
0045     KisPaintopBox* paintopBox() {
0046         return m_paintopBox;
0047     }
0048 
0049 private Q_SLOTS:
0050 
0051     void slotSetPattern(KoPatternSP pattern);
0052     void slotSetGradient(KoAbstractGradientSP gradient);
0053     void slotUpdateDisplayRenderer();
0054 
0055 private:
0056 
0057     void createPatternsChooser(KisViewManager * view);
0058     void createGradientsChooser(KisViewManager * view);
0059 
0060 private:
0061 
0062     KisViewManager *m_viewManager {nullptr};
0063 
0064     QTabWidget *m_gradientTab {nullptr};
0065     QTabWidget *m_patternsTab {nullptr};
0066 
0067     KisIconWidget *m_patternWidget {nullptr};
0068     KisIconWidget *m_gradientWidget {nullptr};
0069 
0070     QWidget *m_patternChooserPopup {nullptr};
0071     QWidget *m_gradientChooserPopup {nullptr};
0072 
0073     KisGradientChooser *m_gradientChooser {nullptr};
0074     KisPatternChooser *m_patternChooser {nullptr};
0075 
0076     KisPaintopBox *m_paintopBox {nullptr};
0077 
0078     KoDualColorButton *m_dual {nullptr};
0079     KoCheckerBoardPainter m_checkersPainter;
0080 
0081 };
0082 
0083 #endif
0084