Frapper  1.0a
SegmentGraphicsItem.h
Go to the documentation of this file.
1 /*
2 -----------------------------------------------------------------------------
3 This source file is part of FRAPPER
4 research.animationsinstitut.de
5 sourceforge.net/projects/frapper
6 
7 Copyright (c) 2008-2009 Filmakademie Baden-Wuerttemberg, Institute of Animation
8 
9 This program is free software; you can redistribute it and/or modify it under
10 the terms of the GNU Lesser General Public License as published by the Free Software
11 Foundation; version 2.1 of the License.
12 
13 This program is distributed in the hope that it will be useful, but WITHOUT
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15 FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
16 
17 You should have received a copy of the GNU Lesser General Public License along with
18 this program; if not, write to the Free Software Foundation, Inc., 59 Temple
19 Place - Suite 330, Boston, MA 02111-1307, USA, or go to
20 http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
21 -----------------------------------------------------------------------------
22 */
23 
33 
34 #ifndef SEGMENTGRAPHICSITEM_H
35 #define SEGMENTGRAPHICSITEM_H
36 
37 #include "FrapperPrerequisites.h"
38 #include <QtGui/QGraphicsItem>
39 
40 
41 namespace Frapper {
42 
46 class KeyGraphicsItem;
47 
48 
53 class FRAPPER_GUI_EXPORT SegmentGraphicsItem : public QGraphicsItem
54 {
55 
56 public: // constructors and destructors
57 
65  SegmentGraphicsItem ( KeyGraphicsItem *startKeyItem, KeyGraphicsItem *endKeyItem, const QColor &color = QColor(Qt::darkGray) );
66 
71 
72 public: // functions
73 
79 #ifdef __GNUC__
80  void setWidth( const float width );
81 #else
82  inline void setWidth( const float width );
83 #endif
84 
90  KeyGraphicsItem * getStartKeyItem () const;
91 
97  inline void setStartKeyItem ( KeyGraphicsItem *startKeyItem );
98 
104  KeyGraphicsItem * getEndKeyItem () const;
105 
111  inline void setEndKeyItem ( KeyGraphicsItem *endKeyItem );
112 
116 #ifdef __GNUC__
117  void adjust ();
118 #else
119  inline void adjust ();
120 #endif
121 
122 protected: // functions
123 
129  virtual QRectF boundingRect () const;
130 
138  virtual void paint ( QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget );
139 
140 private: // data
141 
146 
151 
155  QColor m_color;
156 
160  QPointF m_startPoint;
161 
165  QPointF m_endPoint;
166 
170  qreal m_width;
171 };
172 
173 } // end namespace Frapper
174 
175 #endif