0029807: [Regression to 7.0.0] Impossible to cut cone from prism
[occt.git] / tools / VInspector / VInspector_ItemSelection.hxx
1 // Created on: 2017-06-16
2 // Created by: Natalia ERMOLAEVA
3 // Copyright (c) 2017 OPEN CASCADE SAS
4 //
5 // This file is part of Open CASCADE Technology software library.
6 //
7 // This library is free software; you can redistribute it and/or modify it under
8 // the terms of the GNU Lesser General Public License version 2.1 as published
9 // by the Free Software Foundation, with special exception defined in the file
10 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11 // distribution for complete text of the license and disclaimer of any warranty.
12 //
13 // Alternatively, this file may be used under the terms of Open CASCADE
14 // commercial license or contractual agreement. 
15
16 #ifndef VInspector_ItemSelection_H
17 #define VInspector_ItemSelection_H
18
19 #include <Standard.hxx>
20 #include <inspector/VInspector_ItemBase.hxx>
21
22 #include <SelectMgr_Selection.hxx>
23
24 class VInspector_ItemSelection;
25 typedef QExplicitlySharedDataPointer<VInspector_ItemSelection> VInspector_ItemSelectionPtr;
26
27 //! \class VInspector_ItemSelection
28 //! Item about SelectMgr_Selection.
29 //! Parent is presentable object item, children are sensitive entity items 
30 class VInspector_ItemSelection : public VInspector_ItemBase
31 {
32 public:
33
34   //! Creates an item wrapped by a shared pointer
35   static VInspector_ItemSelectionPtr CreateItem(TreeModel_ItemBasePtr theParent, const int theRow, const int theColumn)
36   { return VInspector_ItemSelectionPtr (new VInspector_ItemSelection (theParent, theRow, theColumn)); }
37
38   //! Destructor
39   virtual ~VInspector_ItemSelection() {};
40
41   //! \return current selection value
42   Standard_EXPORT Handle(SelectMgr_Selection) getSelection() const;
43
44   //! Inits the item, fills internal containers
45   Standard_EXPORT virtual void Init() Standard_OVERRIDE;
46
47   //! Resets cached values
48   Standard_EXPORT virtual void Reset() Standard_OVERRIDE;
49
50 protected:
51
52   //! Initializes the current item. It is empty because Reset() is also empty.
53   virtual void initItem() const Standard_OVERRIDE;
54
55   //! Initializes number of children
56   //! \return integer value
57   virtual int initRowCount() const Standard_OVERRIDE;
58
59   //! Returns item information for the given role. Fills internal container if it was not filled yet
60   //! \param theItemRole a value role
61   //! \return the value
62   virtual QVariant initValue (const int theItemRole) const Standard_OVERRIDE;
63
64 protected:
65
66   //! Creates a child item in the given position.
67   //! \param theRow the child row position
68   //! \param theColumn the child column position
69   //! \return the created item
70   virtual TreeModel_ItemBasePtr createChild (int theRow, int theColumn) Standard_OVERRIDE;
71
72 private:
73
74   //! Constructor
75   //! param theParent a parent item
76   VInspector_ItemSelection(TreeModel_ItemBasePtr theParent, const int theRow, const int theColumn)
77   : VInspector_ItemBase(theParent, theRow, theColumn) {}
78
79 private:
80
81   Handle(SelectMgr_Selection) mySelection; //!< the current selection
82 };
83
84 #endif