42 lines
1.1 KiB
C++
42 lines
1.1 KiB
C++
#pragma once
|
|
#include <QEvent>
|
|
#include <QFont>
|
|
#include <QPen>
|
|
#include <QWidget>
|
|
|
|
#include "../Table/scroll.h"
|
|
namespace Psc {
|
|
class Tree_Model;
|
|
class Tree_View : public QWidget {
|
|
public:
|
|
Tree_Model* model{};
|
|
int left_margin = 30, right_margin = 30, top_margin = 30, bottom_margin = 30;
|
|
QFont font;
|
|
QPen pen;
|
|
Tree_View();
|
|
QRect get_view_rect();
|
|
QPoint to_inside_pos(QPoint widget_pos);
|
|
QPoint to_widget_pos(QPoint inside_pos);
|
|
|
|
V_ScrollBar v_bar;
|
|
H_ScrollBar h_bar;
|
|
enum Drag_Type {
|
|
H_scrollBar,
|
|
V_scrollBar
|
|
} drag_type{};
|
|
bool isDragging = false;
|
|
QPoint start_pos;
|
|
QPoint save_pos;
|
|
QPoint _view_pos = {0, 0};
|
|
protected:
|
|
void paintEvent(QPaintEvent* event) override;
|
|
bool event(QEvent* event) override;
|
|
void mouse_event(QMouseEvent* event, QEvent::Type type);
|
|
void resizeEvent(QResizeEvent* event) override;
|
|
void wheelEvent(QWheelEvent* event) override;
|
|
};
|
|
|
|
Tree_View* create_Tree_View();
|
|
}
|
|
|