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