mirror of https://github.com/AxioDL/amuse.git
67 lines
1.6 KiB
C++
67 lines
1.6 KiB
C++
#ifndef AMUSE_CURVE_EDITOR_HPP
|
|
#define AMUSE_CURVE_EDITOR_HPP
|
|
|
|
#include "EditorWidget.hpp"
|
|
#include <QFrame>
|
|
#include <QLabel>
|
|
#include <QStaticText>
|
|
#include <QLineEdit>
|
|
#include <QPushButton>
|
|
#include <QJSEngine>
|
|
|
|
class CurveEditor;
|
|
|
|
class CurveView : public QWidget
|
|
{
|
|
Q_OBJECT
|
|
friend class CurveControls;
|
|
amuse::ObjToken<ProjectModel::CurveNode> m_node;
|
|
QFont m_gridFont;
|
|
QStaticText m_percentTexts[11];
|
|
QStaticText m_percentTextsCenter[11];
|
|
CurveEditor* getEditor() const;
|
|
public:
|
|
explicit CurveView(QWidget* parent = Q_NULLPTR);
|
|
void loadData(ProjectModel::CurveNode* node);
|
|
void unloadData();
|
|
ProjectModel::INode* currentNode() const;
|
|
|
|
void paintEvent(QPaintEvent* ev);
|
|
void mousePressEvent(QMouseEvent* ev);
|
|
void mouseMoveEvent(QMouseEvent* ev);
|
|
};
|
|
|
|
class CurveControls : public QFrame
|
|
{
|
|
Q_OBJECT
|
|
friend class CurveView;
|
|
QLineEdit* m_lineEdit;
|
|
QLabel* m_errLabel;
|
|
QPushButton* m_setExpr;
|
|
QJSEngine m_engine;
|
|
CurveEditor* getEditor() const;
|
|
public:
|
|
explicit CurveControls(QWidget* parent = Q_NULLPTR);
|
|
void loadData();
|
|
void unloadData();
|
|
void resizeEvent(QResizeEvent* ev);
|
|
public slots:
|
|
void exprCommit();
|
|
};
|
|
|
|
class CurveEditor : public EditorWidget
|
|
{
|
|
Q_OBJECT
|
|
friend class CurveView;
|
|
friend class CurveControls;
|
|
CurveView* m_curveView;
|
|
CurveControls* m_controls;
|
|
public:
|
|
explicit CurveEditor(QWidget* parent = Q_NULLPTR);
|
|
bool loadData(ProjectModel::CurveNode* node);
|
|
void unloadData();
|
|
ProjectModel::INode* currentNode() const;
|
|
};
|
|
|
|
#endif //AMUSE_CURVE_EDITOR_HPP
|