Salome HOME
copyrights in HYDRO files are updated
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_PrsPolyline.cxx
1 // Copyright (C) 2007-2015  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, 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 #include "HYDROGUI_PrsPolyline.h"
24
25 #include <QPen>
26
27 //=======================================================================
28 // name    : HYDROGUI_PrsPolyline
29 // Purpose : Constructor
30 //=======================================================================
31 HYDROGUI_PrsPolyline::HYDROGUI_PrsPolyline( const Handle(HYDROData_Entity)& theObject )
32 : HYDROGUI_Prs( theObject ),
33   myPolylineItem( 0 )
34 {
35 }
36
37 //=======================================================================
38 // name    : HYDROGUI_PrsPolyline
39 // Purpose : Destructor
40 //=======================================================================
41 HYDROGUI_PrsPolyline::~HYDROGUI_PrsPolyline()
42 {
43 }
44
45 //================================================================
46 // Function : setPath
47 // Purpose  : 
48 //================================================================
49 void HYDROGUI_PrsPolyline::setPath( const QPainterPath& thePath )
50 {
51   myPath = thePath;
52 }
53
54 //================================================================
55 // Function : getPath
56 // Purpose  : 
57 //================================================================
58 QPainterPath HYDROGUI_PrsPolyline::getPath() const
59 {
60   return myPath;
61 }
62
63 //================================================================
64 // Function : boundingRect
65 // Purpose  : 
66 //================================================================
67 QRectF HYDROGUI_PrsPolyline::boundingRect() const
68 {
69   return myPolylineItem->boundingRect();
70 }
71
72 //================================================================
73 // Function : compute
74 // Purpose  : 
75 //================================================================
76 void HYDROGUI_PrsPolyline::compute()
77 {
78   if( !myPolylineItem )
79   {
80     myPolylineItem = new QGraphicsPathItem( this );
81     addToGroup( myPolylineItem );
82   }
83   myPolylineItem->setPath( myPath );
84 }
85
86 //================================================================
87 // Function : checkHighlight
88 // Purpose  : 
89 //================================================================
90 bool HYDROGUI_PrsPolyline::checkHighlight( double theX, double theY, QCursor& theCursor ) const
91 {
92   // to do
93   return false;
94 }
95
96 //================================================================
97 // Function : select
98 // Purpose  : 
99 //================================================================
100 bool HYDROGUI_PrsPolyline::select( double theX, double theY, const QRectF& theRect )
101 {
102   return GraphicsView_Object::select( theX, theY, theRect );
103 }
104
105 //================================================================
106 // Function : unselect
107 // Purpose  : 
108 //================================================================
109 void HYDROGUI_PrsPolyline::unselect()
110 {
111   GraphicsView_Object::unselect();
112
113   // ouv: tmp
114   QPen aPen = myPolylineItem->pen();
115   aPen.setColor( Qt::black );
116   aPen.setWidth( 1 );
117   myPolylineItem->setPen( aPen );
118 }
119
120 //================================================================
121 // Function : setSelected
122 // Purpose  : 
123 //================================================================
124 void HYDROGUI_PrsPolyline::setSelected( bool theState )
125 {
126   GraphicsView_Object::setSelected( theState );
127
128   // ouv: tmp
129   QPen aPen = myPolylineItem->pen();
130   aPen.setColor( theState ? Qt::red : Qt::black );
131   aPen.setWidth( theState ? 2 : 1 );
132   myPolylineItem->setPen( aPen );
133 }