File indexing completed on 2025-02-02 04:11:33
0001 /* 0002 * SPDX-FileCopyrightText: 2019-2023 Mattia Basaglia <dev@dragon.best> 0003 * 0004 * SPDX-License-Identifier: GPL-3.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include <memory> 0010 #include <QWidget> 0011 #include "model/animation/keyframe_transition.hpp" 0012 0013 namespace glaxnimate::gui { 0014 0015 class KeyframeTransitionWidget : public QWidget 0016 { 0017 Q_OBJECT 0018 0019 public: 0020 KeyframeTransitionWidget(QWidget* parent = nullptr); 0021 ~KeyframeTransitionWidget(); 0022 0023 void set_target(model::KeyframeTransition* kft); 0024 model::KeyframeTransition* target() const; 0025 0026 QSize sizeHint() const override; 0027 0028 void set_y_margin(double margin); 0029 0030 protected: 0031 void paintEvent(QPaintEvent * event) override; 0032 void mouseMoveEvent(QMouseEvent * event) override; 0033 void mousePressEvent(QMouseEvent * event) override; 0034 void mouseReleaseEvent(QMouseEvent * event) override; 0035 void focusInEvent(QFocusEvent * event) override; 0036 void focusOutEvent(QFocusEvent * event) override; 0037 void leaveEvent(QEvent * event) override; 0038 0039 Q_SIGNALS: 0040 void before_changed(model::KeyframeTransition::Descriptive v); 0041 void after_changed(model::KeyframeTransition::Descriptive v); 0042 0043 private: 0044 class Private; 0045 std::unique_ptr<Private> d; 0046 }; 0047 0048 } // namespace glaxnimate::gui