Warning, file /graphics/glaxnimate/src/gui/tools/draw_tool.hpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

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 "draw_tool_base.hpp"
0010 #include "math/bezier/bezier.hpp"
0011 #include "model/shapes/path.hpp"
0012 
0013 
0014 namespace glaxnimate::gui::tools {
0015 
0016 
0017 class DrawTool : public DrawToolBase
0018 {
0019 public:
0020     DrawTool();
0021     ~DrawTool();
0022 
0023     QString id() const override { return "draw-bezier"; }
0024     QIcon icon() const override { return QIcon::fromTheme("draw-bezier-curves"); }
0025     QString name() const override { return i18n("Draw Bezier"); }
0026     QKeySequence key_sequence() const override { return QKeySequence(i18n("F3"), QKeySequence::PortableText); }
0027     static int static_group() noexcept { return Registry::Draw;  }
0028     int group() const noexcept override { return static_group(); }
0029 
0030     void mouse_press(const MouseEvent& event) override;
0031     void mouse_move(const MouseEvent& event) override;
0032     void mouse_release(const MouseEvent& event) override;
0033     void mouse_double_click(const MouseEvent& event) override;
0034     void paint(const PaintEvent& event) override;
0035     void key_press(const KeyEvent& event) override;
0036     void enable_event(const Event& event) override;
0037     void disable_event(const Event& event) override;
0038     void on_selected(graphics::DocumentScene * scene, model::VisualNode * node) override;
0039     void on_deselected(graphics::DocumentScene * scene, model::VisualNode * node) override;
0040     void initialize(const Event& event) override;
0041 
0042 private:
0043     class Private;
0044     std::unique_ptr<Private> d;
0045     void remove_last(SelectionManager* window);
0046 
0047     static Autoreg<DrawTool> autoreg;
0048 };
0049 
0050 } // namespace glaxnimate::gui::tools