calamares/src/modules/partition/gui/PrettyRadioButton.h

62 lines
1.8 KiB
C
Raw Normal View History

/* === This file is part of Calamares - <https://github.com/calamares> ===
*
* Copyright 2014, Teo Mrnjavac <teo@kde.org>
*
* Calamares is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Calamares is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Calamares. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef PRETTYRADIOBUTTON_H
#define PRETTYRADIOBUTTON_H
#include <QRadioButton>
class ClickableLabel;
class QComboBox;
class QGridLayout;
/** @brief A radio button with fancy label next to it.
*
* The radio button itself can be retrieved with buttonWidget(),
* and the whole behaves a lot like a label. Extra options can be
* added to the display (options are hidden when the button is
* not selected) with addOptionsComboBox().
*/
class PrettyRadioButton : public QWidget
{
2015-11-05 18:27:51 +01:00
Q_OBJECT
public:
2015-11-05 18:27:51 +01:00
explicit PrettyRadioButton( QWidget* parent = nullptr );
virtual ~PrettyRadioButton() {}
2015-11-05 18:27:51 +01:00
virtual void setText( const QString& text );
2015-11-05 18:27:51 +01:00
virtual void setIconSize( const QSize& size );
2015-11-05 18:27:51 +01:00
virtual void setIcon( const QIcon& icon );
2015-11-05 18:27:51 +01:00
virtual QSize iconSize() const;
2015-11-05 18:27:51 +01:00
virtual QRadioButton* buttonWidget() const;
/** @brief Add an options drop-down to this button. */
void addOptionsComboBox( const QString& label, QComboBox* );
2015-11-05 18:27:51 +01:00
protected:
ClickableLabel* m_label;
QRadioButton* m_radio;
QGridLayout* m_mainLayout;
};
#endif // PRETTYRADIOBUTTON_H