1// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: GPL-3.0-or-later
4
5#ifndef TIMELINEWIDGET_H
6#define TIMELINEWIDGET_H
7
8#include <QObject>
9#include <QWidget>
10#include <QObject>
11#include <QEvent>
12#include <QAction>
13#include <QScrollBar>
14
15namespace ReverseDebugger{
16namespace Internal {
17
18class TaskWindow;
19class TimelineWidgetPrivate;
20class TimelineWidget : public QWidget
21{
22public:
23 TimelineWidget(QWidget *parent);
24 void setData(TaskWindow* window, void* timeline, int count);
25 void setEventTid(int tid);
26 void setEventRange(int begin, int end);
27 void setEventIndexRange(int begin, int end);
28 void setFilteredCategories(const QList<QString> &categoryIds);
29
30public slots:
31 void zoomIn();
32 void zoomOut();
33 void zoomFit();
34 void valueChanged(int value);
35
36private:
37 void paintEvent(QPaintEvent *);
38 void mousePressEvent(QMouseEvent*);
39 void mouseReleaseEvent(QMouseEvent*);
40 void mouseMoveEvent(QMouseEvent*);
41 void contextMenuEvent(QContextMenuEvent*);
42 void resizeEvent(QResizeEvent *e);
43 void updateVisibleEvent(void);
44 void mouseDoubleClickEvent(QMouseEvent *event);
45 void invalidateFilter();
46
47 TimelineWidgetPrivate *const d;
48};
49
50} // namespace Internal
51} // namespace ReverseDebugger
52
53#endif // TIMELINEWIDGET_H
54