Warning, file /pim/kalarm/src/fontcolourbutton.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 * fontcolourbutton.h - pushbutton widget to select a font and colour 0003 * Program: kalarm 0004 * SPDX-FileCopyrightText: 2003-2022 David Jarvie <djarvie@kde.org> 0005 * 0006 * SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 0009 #pragma once 0010 0011 #include "lib/pushbutton.h" 0012 0013 #include <QDialog> 0014 #include <QFont> 0015 #include <QColor> 0016 0017 class FontColourChooser; 0018 0019 class FontColourButton : public PushButton 0020 { 0021 Q_OBJECT 0022 public: 0023 explicit FontColourButton(QWidget* parent = nullptr); 0024 0025 /** Set the font to use. If using the default font, 0026 * @param font Font to use. 0027 * If @p defaultFont is true, this is the font which is currently the default. 0028 * @param defaultFont true to use the default font. 0029 */ 0030 void setFont(const QFont& font, bool defaultFont); 0031 0032 void setBgColour(const QColor& c) { mBgColour = c; } 0033 void setFgColour(const QColor& c) { mFgColour = c; } 0034 bool defaultFont() const { return mDefaultFont; } 0035 QFont font() const { return mDefaultFont ? QFont() : mFont; } 0036 QColor bgColour() const { return mBgColour; } 0037 QColor fgColour() const { return mFgColour; } 0038 void setReadOnly(bool ro, bool noHighlight = false) override 0039 { mReadOnly = ro; PushButton::setReadOnly(ro, noHighlight); } 0040 bool isReadOnly() const override { return mReadOnly; } 0041 0042 Q_SIGNALS: 0043 /** Signal emitted whenever a font or colour has been selected. */ 0044 void selected(const QColor& fg, const QColor& bg); 0045 0046 protected Q_SLOTS: 0047 void slotButtonPressed(); 0048 0049 private: 0050 QColor mBgColour, mFgColour; 0051 QFont mFont; 0052 bool mDefaultFont {true}; 0053 bool mReadOnly {false}; 0054 }; 0055 0056 0057 // Font and colour selection dialog displayed by the push button 0058 class FontColourDlg : public QDialog 0059 { 0060 Q_OBJECT 0061 public: 0062 FontColourDlg(const QColor& bg, const QColor& fg, const QFont&, bool defaultFont, 0063 const QString& caption, QWidget* parent = nullptr); 0064 bool defaultFont() const { return mDefaultFont; } 0065 QFont font() const { return mFont; } 0066 QColor bgColour() const { return mBgColour; } 0067 QColor fgColour() const { return mFgColour; } 0068 void setReadOnly(bool); 0069 bool isReadOnly() const { return mReadOnly; } 0070 0071 protected Q_SLOTS: 0072 virtual void slotOk(); 0073 0074 private: 0075 FontColourChooser* mChooser; 0076 QColor mBgColour, mFgColour; 0077 QFont mFont; 0078 bool mDefaultFont; 0079 bool mReadOnly {false}; 0080 }; 0081 0082 // vim: et sw=4: