Logo Search packages:      
Sourcecode: kdenlive version File versions  Download package


                          trackpanelcliprollfunction  -  description
    begin                : Wed Aug 25 2004
    copyright            : (C) 2004 by Jason Wood
    email                : jasonwood@blueyonder.co.uk

 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *

#include "qcursor.h"

#include "kdenlive.h"
#include "snaptogrid.h"
#include "trackpanelfunction.h"
#include "krollcommand.h"

class QMouseEvent;
class DocTrackBase;
class KdenliveDoc;

namespace Gui {
    class KdenliveApp;
    class KTimeLine;
    class KMMTimeLine;

Abstract Base Class for track panel functionality decorators. This and it's
derived classes allow different behaviours to be added to panels as required.

@author Jason Wood
00042 */ class TrackPanelClipRollFunction:public TrackPanelFunction
  Q_OBJECT public:
    TrackPanelClipRollFunction(Gui::KdenliveApp * app,
      Gui::KTimeLine * timeline, KdenliveDoc * document);

    virtual ~ TrackPanelClipRollFunction();

      Returns true if the specified position should cause this function to activate,
      otherwise returns false.
    virtual bool mouseApplies(Gui::KTrackPanel * panel,
      QMouseEvent * event) const;

      Returns a relevant mouse cursor for the given mouse position
    virtual QCursor getMouseCursor(Gui::KTrackPanel * panel,
      QMouseEvent * event);

      A mouse button has been pressed. Returns true if we want to handle this event
    virtual bool mousePressed(Gui::KTrackPanel * panel,
      QMouseEvent * event);

      /** Processes Mouse double click.*/
    virtual bool mouseDoubleClicked(Gui::KTrackPanel * panel, QMouseEvent * event);

      Mouse Release Events in the track view area. Returns true if we have finished
      an operation now.
    virtual bool mouseReleased(Gui::KTrackPanel * panel,
      QMouseEvent * event);

      Processes Mouse Move events in the track view area. Returns true if we are
      continuing with the drag.*/
    virtual bool mouseMoved(Gui::KTrackPanel * panel, QMouseEvent * event);
    double getMinimumDrag() const;
     signals:                 // Signals
      Emitted when an operation moves the clip crop start.
    void signalClipCropStartChanged(DocClipRef *);
      Emitted when an operation moves the clip crop end.
    void signalClipCropEndChanged(DocClipRef *);
    enum ResizeState { None, Start, End };
    static const uint s_resizeTolerance;
     Gui::KdenliveApp * m_app;
     Gui::KTimeLine * m_timeline;
    KdenliveDoc *m_document;
    DocClipRef *m_clipUnderMouse;
    DocClipRef *m_clipBeforeMouse;
    DocClipRef *m_clipAfterMouse;
    ResizeState m_resizeState;
      /** This command holds the roll edit information during a resize operation */
00105      Command::KRollCommand * m_rollCommand;
    SnapToGrid m_snapToGrid;

    //const double minimumDrag;
      /** Returns true if the x,y position is over a clip (and therefore, the roll function applies) */
    //bool mouseApplies(const QPoint &pos) const;



Generated by  Doxygen 1.6.0   Back to index