]> git.sesse.net Git - kdenlive/blobdiff - src/keyframehelper.h
Integrate with the required MLT hooks for getting Movit to work.
[kdenlive] / src / keyframehelper.h
index c5687337a7cbac32037e16a02dc917875ec0a41b..701609bf35ab332353ff3bc5184ea2256eea7473 100644 (file)
 
 #include "timecode.h"
 
-class KeyframeHelper : public QWidget {
+class KeyframeHelper : public QWidget
+{
     Q_OBJECT
-
 public:
-    KeyframeHelper(QWidget *parent = 0);
+    explicit KeyframeHelper(QWidget *parent = 0);
     int value() const;
+    int frameLength;
 
 protected:
-    virtual void paintEvent(QPaintEvent * /*e*/);
-    virtual void wheelEvent(QWheelEvent * e);
-    virtual void mousePressEvent(QMouseEvent * event);
-    virtual void mouseMoveEvent(QMouseEvent * event);
+    void paintEvent(QPaintEvent * /*e*/);
+    void wheelEvent(QWheelEvent * e);
+    void mousePressEvent(QMouseEvent * event);
+    void mouseMoveEvent(QMouseEvent * event);
+    void mouseReleaseEvent(QMouseEvent * event);
+    void mouseDoubleClickEvent(QMouseEvent * event);
+    void leaveEvent( QEvent * event );
 
 private:
     Mlt::Geometry *m_geom;
-    int m_length;
     int m_position;
     double m_scale;
-
+    bool m_movingKeyframe;
+    Mlt::GeometryItem m_movingItem;
+    QList <Mlt::GeometryItem *> m_extraMovingItems;
+    QPoint m_dragStart;
+    int m_lineHeight;
+    bool m_drag;
+    int m_hoverKeyframe;
+    QColor m_selected;
+    QColor m_keyframe;
+    QColor m_keyframebg;
+    QList <Mlt::Geometry *>m_extraGeometries;
+    int m_seekPosition;
+        
 public slots:
     void setKeyGeometry(Mlt::Geometry *geom, const int length);
+    void addGeometry(Mlt::Geometry *geom);
     void setValue(const int pos);
 
 signals:
-    void positionChanged(int);
+    void requestSeek(int);
+    void keyframeMoved(int);
+    void addKeyframe(int);
+    void removeKeyframe(int);
 };
 
 #endif