SHAPER  9.12.0
ModuleBase_WidgetChoice.h
1 // Copyright (C) 2014-2023 CEA, EDF
2 //
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.
7 //
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.
12 //
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
16 //
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19 
20 #ifndef ModuleBase_WidgetChoice_H
21 #define ModuleBase_WidgetChoice_H
22 
23 #include "ModuleBase.h"
24 #include "ModuleBase_ModelWidget.h"
25 
26 class QWidget;
28 
47 class MODULEBASE_EXPORT ModuleBase_WidgetChoice : public ModuleBase_ModelWidget
48 {
49 Q_OBJECT
50  public:
54  ModuleBase_WidgetChoice(QWidget* theParent, const Config_WidgetAPI* theData);
55 
56  virtual ~ModuleBase_WidgetChoice();
57 
60  virtual bool canAcceptFocus() const { return false; };
61 
62  virtual bool focusTo();
63 
66  virtual QList<QWidget*> getControls() const;
67 
71  QString getPropertyPanelTitle(int theIndex);
72 
74  virtual void onFeatureAccepted();
75 
76 signals:
80  void itemSelected(ModuleBase_ModelWidget* theWidget, int theIndex);
81 
82 protected:
85  virtual bool storeValueCustom();
86 
87  virtual bool restoreValueCustom();
88 
89 private slots:
91  void onCurrentIndexChanged(int theIndex);
92 
93 private:
94  ModuleBase_ChoiceCtrl* myChoiceCtrl;
95 
96  // XML definition of titles
97  QStringList myButtonTitles;
98  std::string myStringListAttribute;
99 
100  bool myIsFirst;
101  int myDefValue;
102  bool myHasValue;
103 };
104 
105 #endif
Provides low-level API for WidgetFactory for reading xml definitions of widgets.
Definition: Config_WidgetAPI.h:46
A Choice control.
Definition: ModuleBase_ChoiceCtrl.h:42
An abstract custom widget class.
Definition: ModuleBase_ModelWidget.h:60
virtual QList< QWidget * > getControls() const =0
Returns list of widget controls.
virtual bool storeValueCustom()=0
Saves the internal parameters to the given feature.
virtual bool restoreValueCustom()=0
Restore value from attribute data to the widget's control.
virtual void onFeatureAccepted()
It is called when user press Ok or OkPlus buttons in the parent property panel By default this slot d...
Definition: ModuleBase_ModelWidget.h:315
virtual bool focusTo()
Set focus to the first control of the current widget.
Definition: ModuleBase_ModelWidget.cpp:267
Implementation of model widget for choice widget definition (combo box) It can be defined as followin...
Definition: ModuleBase_WidgetChoice.h:48
virtual bool canAcceptFocus() const
Defines if it is supported to set the value in this widget It returns false because this is an info w...
Definition: ModuleBase_WidgetChoice.h:60
void itemSelected(ModuleBase_ModelWidget *theWidget, int theIndex)
Segnal about selected item.