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