Salome HOME
Merge from BR_siman_phase1 14/02/2013
[modules/geom.git] / src / GEOMGUI / GEOMGUI_Selection.h
1 // Copyright (C) 2007-2012  CEA/DEN, EDF R&D, 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.
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 // File   : GEOMGUI_Selection.h
23 // Author : Alexander SOLOVYOV, Open CASCADE S.A.S. (alexander.solovyov@opencascade.com)
24
25 #ifndef GEOMGUI_SELECTION_H
26 #define GEOMGUI_SELECTION_H
27
28 #include "GEOM_GEOMGUI.hxx"
29
30 #include <LightApp_Selection.h>
31 #include <SALOMEDSClient.hxx>
32
33 #include <SALOMEconfig.h>
34 #include CORBA_SERVER_HEADER(GEOM_Gen)
35
36 class LightApp_SelectionMgr;
37 class LightApp_DataOwner;
38
39 class GEOMGUI_EXPORT GEOMGUI_Selection : public LightApp_Selection
40 {
41 public:
42   GEOMGUI_Selection();
43   virtual ~GEOMGUI_Selection();
44
45   virtual void          init( const QString&, LightApp_SelectionMgr* );
46   virtual bool          processOwner( const LightApp_DataOwner* );
47
48   virtual QVariant      parameter( const QString& ) const;
49   virtual QVariant      parameter( const int, const QString& ) const;
50
51   static bool           hasChildren( const _PTR(SObject)& );
52   static bool           expandable( const _PTR(SObject)& );
53   static bool           isCompoundOfVertices( GEOM::GEOM_Object_ptr );
54
55 protected:
56   //  virtual QVariant      contextParameter( const QString& ) const;
57   //  virtual QVariant      objectParameter( const int, const QString& ) const;
58
59 private:
60   bool                  isVisible( const int ) const;
61   bool                  isAutoColor( const int ) const;
62   bool                  isImported( const int ) const;
63   QString               typeName( const int ) const;
64   int                   typeId( const int ) const;
65   QString               displayMode( const int ) const;
66   QString               selectionMode() const;
67   bool                  isVectorsMode( const int ) const;
68   bool                  hasChildren( const int ) const;
69   bool                  hasConcealedChildren( const int ) const;
70   bool                  hasDisclosedChildren( const int ) const;
71   bool                  compoundOfVertices( const int ) const;
72   bool                  topLevel( const int ) const;
73   bool                  isPhysicalMaterial( const int ) const;
74
75   bool                  isComponent( const int ) const;
76   GEOM::GEOM_Object_ptr getObject( const int ) const;
77
78   bool                  hasImported() const;
79   bool                  allImported() const;
80
81   QVariant              visibleProperty( const QString&, const QString& ) const;
82
83 private:
84   typedef QVector<GEOM::GEOM_Object_var> GeomObjectVector;
85
86 private:
87   GeomObjectVector      myObjects;
88 };
89
90 #endif