Frapper  1.0a
KeyGraphicsItem.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 KEYGRAPHICSITEM_H
35 #define KEYGRAPHICSITEM_H
36 
37 #include "FrapperPrerequisites.h"
38 #include <QtGui/QGraphicsItem>
39 #include <QtCore/QList>
40 
41 
45 QT_BEGIN_NAMESPACE
46 class QGraphicsSceneMouseEvent;
47 QT_END_NAMESPACE
48 
49 
50 namespace Frapper {
51 
55 class SegmentGraphicsItem;
56 
60 class CurveEditorGraphicsView;
61 
62 
66 class FRAPPER_GUI_EXPORT KeyGraphicsItem : public QGraphicsItem
67 {
68 
69 public: // constructors and destructors
70 
76  KeyGraphicsItem ( CurveEditorGraphicsView *curveEditorGraphicsView, const float scale = 1.0f, const float posX = 0.0f );
77 
78 public: // functions
79 
83  void setCurveScale ( const float scale );
84 
91  void addSegment ( SegmentGraphicsItem *segmentItem );
92 
98  //inline QList<SegmentGraphicsItem *> getSegmentItems () const;
99 
100 protected: // functions
101 
105  QVariant itemChange ( GraphicsItemChange change, const QVariant &value );
106 
112  virtual QRectF boundingRect () const;
113 
117  virtual void paint ( QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget );
118 
122  virtual void mouseMoveEvent ( QGraphicsSceneMouseEvent *event );
123 
124 
125 private: // data
126 
130  QList<SegmentGraphicsItem *> m_segmentItems;
131 
135  qreal m_posX;
136 
141 
145  qreal m_size;
146 };
147 
148 } // end namespace Frapper
149 
150 #endif