Olive
timelineheader.h
1 #ifndef TIMELINEHEADER_H
2 #define TIMELINEHEADER_H
3 
4 #include <QWidget>
5 #include <QFontMetrics>
6 class Viewer;
7 class QScrollBar;
8 
9 bool center_scroll_to_playhead(QScrollBar* bar, double zoom, long playhead);
10 
11 class TimelineHeader : public QWidget
12 {
13  Q_OBJECT
14 public:
15  explicit TimelineHeader(QWidget *parent = 0);
16  void set_in_point(long p);
17  void set_out_point(long p);
18 
19  Viewer* viewer;
20 
21  bool snapping;
22 
23  void show_text(bool enable);
24  double get_zoom();
25  void delete_markers();
26  void set_scrollbar_max(QScrollBar* bar, long sequence_end_frame, int offset);
27 
28 public slots:
29  void update_zoom(double z);
30  void set_scroll(int);
31  void set_visible_in(long i);
32  void show_context_menu(const QPoint &pos);
33  void resized_scroll_listener(double d);
34 
35 protected:
36  void paintEvent(QPaintEvent*);
37  void mousePressEvent(QMouseEvent*);
38  void mouseMoveEvent(QMouseEvent*);
39  void mouseReleaseEvent(QMouseEvent*);
40  void focusOutEvent(QFocusEvent*);
41 
42 private:
43  void update_parents();
44 
45  bool dragging;
46 
47  bool resizing_workarea;
48  bool resizing_workarea_in;
49  long temp_workarea_in;
50  long temp_workarea_out;
51  long sequence_end;
52 
53  double zoom;
54 
55  long in_visible;
56 
57  void set_playhead(int mouse_x);
58 
59  int get_marker_offset();
60 
61  QFontMetrics fm;
62 
63  int drag_start;
64  bool dragging_markers;
65  QVector<int> selected_markers;
66  QVector<long> selected_marker_original_times;
67 
68  long getHeaderFrameFromScreenPoint(int x);
69  int getHeaderScreenPointFromFrame(long frame);
70 
71  int scroll;
72 
73  int height_actual;
74  bool text_enabled;
75 
76 signals:
77 };
78 
79 #endif // TIMELINEHEADER_H
Definition: timelineheader.h:11
Definition: viewer.h:25