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 tool tip for label. Used only for combo box.
79 void setTooltip(QString theTip);
81 /// Returns currently selected value
84 /// Returns text of currently selected value
85 QString textValue() const;
87 /// Transfer focus on itself
90 /// Returns controls for activation
91 QList<QWidget*> getControls() const;
93 /// Set list of choice
94 /// \param theChoiceList a string list of items
95 void setChoiceList(const QStringList& theChoiceList);
98 /// A signal raised on change of current value
99 void valueChanged(int theVal);
105 /// A label for cmbo box
108 /// A combo box represerntation of control
111 /// A group box for radio buttons
112 QGroupBox* myGroupBox;
114 /// A group of buttons
115 QButtonGroup* myButtons;