Salome HOME
updated copyright message
[modules/gui.git] / src / LightApp / LightApp_Selection.h
1 // Copyright (C) 2007-2023  CEA, EDF, OPEN CASCADE
2 //
3 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License, or (at your option) any later version.
10 //
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 // Lesser General Public License for more details.
15 //
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 //
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22
23 //  LightApp_Selection
24 //  File   : LightApp_Selection.h
25 //  Author : Alexander SOLOVYOV
26
27 #ifndef LIGHTAPP_SELECTION_HeaderFile
28 #define LIGHTAPP_SELECTION_HeaderFile
29
30 #include "LightApp.h"
31 #include <QtxPopupMgr.h>
32
33 class LightApp_SelectionMgr;
34 class LightApp_DataOwner;
35 class LightApp_Study;
36 class SUIT_ViewWindow;
37
38 /*!
39   \class LightApp_Selection 
40   Custom selection class, allowing to build popup with rules on the base
41   of owners selected in all selectors (popup client has more priority).
42   It is able to return values of standard object properties
43   (isVisible,isComponent,canBeDisplayed,isReference, etc)
44 */
45 class LIGHTAPP_EXPORT LightApp_Selection : public QtxPopupSelection
46 {
47 protected:
48   typedef enum { OI_Entry, OI_Reference, OI_RefEntry, OI_User } ObjectInformation;
49
50 public:
51   LightApp_Selection();
52   virtual ~LightApp_Selection();
53
54   virtual void                    init( const QString&, LightApp_SelectionMgr* );
55   virtual bool                    processOwner( const LightApp_DataOwner* );
56
57   virtual int                     count() const;
58   virtual QVariant                parameter( const QString& ) const;
59   virtual QVariant                parameter( const int, const QString& ) const;
60   void                            setModuleName( const QString );
61
62 protected:
63   //  virtual QVariant                contextParameter( const QString& ) const;
64   //  virtual QVariant                objectParameter( const int, const QString& ) const;
65
66   QString                         entry( const int ) const;
67   bool                            isReference( const int ) const;
68
69   /*!Gets study.*/
70   LightApp_Study*                 study() const { return myStudy; }
71   QString                         activeViewType() const;
72   SUIT_ViewWindow*                activeVW() const;
73   virtual QString                 referencedToEntry( const QString& ) const;
74
75   QVariant                        objectInfo( const int, const int ) const;
76   void                            setObjectInfo( const int, const int, const QVariant& );
77
78 private:
79   typedef QMap<int, QVariant>     ObjectInfo;
80   typedef QVector<ObjectInfo>     ObjectInfoVector;
81   /*
82   typedef QMap<QString, QVariant> ParameterMap;
83   typedef QVector<ParameterMap>   ObjectParamVector;
84   */
85 private:
86   LightApp_Study*                 myStudy;
87   QString                         myContext;
88  
89   ObjectInfoVector                myObjects;
90   /*
91   ParameterMap                    myContextParams;
92   ObjectParamVector               myObjectsParams;
93   */
94 };
95
96 #endif