1 // Copyright (C) 2014-2017 CEA/DEN, EDF R&D
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License, or (at your option) any later version.
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 // Lesser General Public License for more details.
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 // See http://www.salome-platform.org/ or
18 // email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com>
21 #ifndef ModuleBase_ChoiceCtrl_H
22 #define ModuleBase_ChoiceCtrl_H
24 #include "ModuleBase.h"
27 #include <QStringList>
37 * A Choice control. It provides a choice in several strings.
38 * It can be represented by several radiobuttons or by combo box.
39 * Radio buttons can be represented as by radiou buttons with text
40 * or by icons in toggle buttons.
42 class MODULEBASE_EXPORT ModuleBase_ChoiceCtrl: public QWidget
53 * \param theParent a parent widget
54 * \param theChoiceList a list of choice strings
55 * \param theIconsList a list of icon names for radiou buttons
56 * \param theType a type of choice representation
57 * \param theButtonsDir direction of radio buttons placement
59 ModuleBase_ChoiceCtrl(QWidget* theParent,
60 const QStringList& theChoiceList,
61 const QStringList& theIconsList,
62 ControlType theType = RadioButtons,
63 Qt::Orientation theButtonsDir = Qt::Horizontal);
65 /// Set label for the controls.
66 /// It is a label for combo box and title for group of radio buttons.
67 /// \param theText a text of the label
68 void setLabel(const QString& theText);
70 /// Set Icon for the label. Used only for combo box.
71 /// \param theIcon a name of icon
72 void setLabelIcon(const QString& theIcon);
74 /// Set value: Id of button or item of combo box.
75 /// \param theVal a value (from 0 to number of items)
76 void setValue(int theVal);
78 /// Set value: text of button or item of combo box.
79 /// \param theVal a value (one of text items)
80 void setValue(const QString& theVal);
82 /// Set tool tip for label. Used only for combo box.
83 void setTooltip(QString theTip);
85 /// Returns currently selected value
88 /// Returns text of currently selected value
89 QString textValue() const;
91 /// Transfer focus on itself
94 /// Returns controls for activation
95 QList<QWidget*> getControls() const;
97 /// Set list of choice
98 /// \param theChoiceList a string list of items
99 void setChoiceList(const QStringList& theChoiceList);
102 /// A signal raised on change of current value
103 void valueChanged(int theVal);
109 /// A label for cmbo box
112 /// A combo box represerntation of control
115 /// A group box for radio buttons
116 QGroupBox* myGroupBox;
118 /// A group of buttons
119 QButtonGroup* myButtons;