Collection of tools useful for audio production
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
1.5KB

  1. /*
  2. * Patchbay Canvas engine using QGraphicsView/Scene
  3. * Copyright (C) 2010-2012 Filipe Coelho <falktx@falktx.com>
  4. *
  5. * This program is free software; you can redistribute it and/or modify
  6. * it under the terms of the GNU General Public License as published by
  7. * the Free Software Foundation; either version 2 of the License, or
  8. * any later version.
  9. *
  10. * This program is distributed in the hope that it will be useful,
  11. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. * GNU General Public License for more details.
  14. *
  15. * For a full copy of the GNU General Public License see the COPYING file
  16. */
  17. #ifndef CANVASBEZIERLINEMOV_H
  18. #define CANVASBEZIERLINEMOV_H
  19. #include <QtGui/QGraphicsPathItem>
  20. #include "abstractcanvasline.h"
  21. class QPainter;
  22. START_NAMESPACE_PATCHCANVAS
  23. class CanvasBezierLineMov :
  24. public AbstractCanvasLineMov,
  25. public QGraphicsPathItem
  26. {
  27. public:
  28. CanvasBezierLineMov(PortMode port_mode, PortType port_type, QGraphicsItem* parent);
  29. virtual void deleteFromScene();
  30. virtual void updateLinePos(QPointF scenePos);
  31. virtual int type() const;
  32. // QGraphicsItem generic calls
  33. virtual void setZValue(qreal z)
  34. {
  35. QGraphicsPathItem::setZValue(z);
  36. }
  37. private:
  38. PortMode m_port_mode;
  39. PortType m_port_type;
  40. int p_itemX;
  41. int p_itemY;
  42. int p_width;
  43. virtual void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget);
  44. };
  45. END_NAMESPACE_PATCHCANVAS
  46. #endif // CANVASBEZIERLINEMOV_H