File indexing completed on 2024-05-12 07:41:25

0001 /*
0002     File                 : GuiTools.h
0003     Project              : LabPlot
0004     Description          :  contains several static functions which are used on frequently throughout the kde frontend.
0005     --------------------------------------------------------------------
0006     SPDX-FileCopyrightText: 2011 Alexander Semke <alexander.semke*web.de  (use @ for *)>
0007     SPDX-License-Identifier: GPL-2.0-or-later
0008 */
0009 
0010 #ifndef GUITOOLS_H
0011 #define GUITOOLS_H
0012 
0013 #include <QPen>
0014 
0015 class QComboBox;
0016 class QColor;
0017 class QLineEdit;
0018 class QMenu;
0019 class QActionGroup;
0020 class QAction;
0021 
0022 class GuiTools {
0023 public:
0024     static bool isDarkMode();
0025 
0026     static void updateBrushStyles(QComboBox*, const QColor&);
0027     static void updatePenStyles(QComboBox*, const QColor&);
0028     static void updatePenStyles(QMenu*, QActionGroup*, const QColor&);
0029     static void selectPenStyleAction(QActionGroup*, Qt::PenStyle);
0030     static Qt::PenStyle penStyleFromAction(QActionGroup*, QAction*);
0031     static void addSymbolStyles(QComboBox*);
0032 
0033     static void fillColorMenu(QMenu*, QActionGroup*);
0034     static void selectColorAction(QActionGroup*, const QColor&);
0035     static QColor& colorFromAction(QActionGroup*, QAction*);
0036 
0037     static void highlight(QWidget*, bool);
0038 
0039     static QString openImageFile(const QString&);
0040     static QImage importPDFFile(const QString&);
0041     static QImage imageFromPDFData(const QByteArray&, double zoomFactor = 1.);
0042 };
0043 
0044 #endif // GUITOOLS_H