00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef VIEWPORT_H
00023 #define VIEWPORT_H
00024
00025 #include <QGraphicsView>
00026 #include <QGraphicsItem>
00027 #include "ContextItem.h"
00028
00029 class ViewItem;
00030 class ContextItem;
00031 class Import;
00032 class Track;
00033 class HoldCursor;
00034 class QGraphicsTextItem;
00035
00036 class ViewPort : public QGraphicsView
00037 {
00038 Q_OBJECT
00039
00040 public :
00041 ViewPort(QWidget* parent);
00042 ViewPort(QGraphicsScene* scene, QWidget* parent);
00043 ~ViewPort();
00044
00045
00046 virtual void get_pointed_context_items(QList<ContextItem* > &list) = 0;
00047
00048
00049 void set_holdcursor(const QString& cursorName);
00050 void set_holdcursor_text(const QString& text);
00051 void set_holdcursor_pos(QPoint pos);
00052 void set_current_mode(int mode);
00053
00054 void reset_cursor();
00055 void set_jogging(bool jog);
00056
00057 int get_current_mode() const {return m_mode;}
00058
00059
00060 protected:
00061 virtual bool event(QEvent *event);
00062 virtual void leaveEvent ( QEvent * event );
00063 virtual void enterEvent ( QEvent * );
00064 virtual void paintEvent( QPaintEvent* e);
00065 virtual void mouseMoveEvent(QMouseEvent* e);
00066 virtual void mousePressEvent ( QMouseEvent * e );
00067 virtual void mouseReleaseEvent ( QMouseEvent * e );
00068 virtual void mouseDoubleClickEvent ( QMouseEvent * e );
00069 virtual void wheelEvent ( QWheelEvent* e );
00070 virtual void keyPressEvent ( QKeyEvent* e);
00071 virtual void keyReleaseEvent ( QKeyEvent* e);
00072 void tabletEvent ( QTabletEvent * event );
00073
00074 private:
00075 int m_mode;
00076 bool m_holdCursorActive;
00077 HoldCursor* m_holdcursor;
00078 QPoint m_oldMousePos;
00079 QPointF lastMouseMoveScenePoint;
00080
00081
00082 friend class Interface;
00083 };
00084
00085
00086 class HoldCursor : public ContextItem, public QGraphicsItem
00087 {
00088 Q_OBJECT
00089 public:
00090 HoldCursor(ViewPort* vp);
00091 ~HoldCursor();
00092
00093 void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
00094
00095 void set_text(const QString& text);
00096 void set_type(const QString& type);
00097 void set_pos(QPoint pos);
00098 void reset();
00099
00100 QRectF boundingRect() const;
00101
00102 private:
00103 ViewPort* m_vp;
00104 QGraphicsTextItem* m_textItem;
00105 QPoint m_pos;
00106 QPixmap m_pixmap;
00107 QString m_text;
00108
00109 };
00110
00111
00112 #endif
00113
00114