Horizon
tool_move.hpp
1 #pragma once
2 #include "core.hpp"
3 #include "tool_helper_merge.hpp"
4 #include "tool_helper_move.hpp"
5 
6 namespace horizon {
7 
8 class ToolMove : public ToolHelperMove, public ToolHelperMerge {
9 public:
10  ToolMove(Core *c, ToolID tid);
11  ToolResponse begin(const ToolArgs &args) override;
12  ToolResponse update(const ToolArgs &args) override;
13  bool can_begin() override;
14  bool is_specific() override
15  {
16  return true;
17  }
18 
19 private:
20  Coordi last;
21  Coordi origin;
22  Coordi selection_center;
23  void update_selection_center();
24  void expand_selection();
25  void update_tip();
26  enum class Mode { X, Y, ARB };
27  Mode mode = Mode::ARB;
28  Coordi get_coord(const Coordi &c);
29  void do_move(const Coordi &c);
30 };
31 } // namespace horizon
Definition: tool_helper_merge.hpp:5
This is what a Tool receives when the user did something.
Definition: core.hpp:108
ToolResponse update(const ToolArgs &args) override
Gets called whenever the user generated some sort of input.
Definition: tool_move.cpp:243
ToolResponse begin(const ToolArgs &args) override
Gets called right after the constructor has finished.
Definition: tool_move.cpp:159
bool is_specific() override
Definition: tool_move.hpp:14
bool can_begin() override
Definition: tool_move.cpp:189
Definition: tool_helper_move.hpp:5
Where Tools and and documents meet.
Definition: core.hpp:249
To signal back to the core what the Tool did, a Tool returns a ToolResponse.
Definition: core.hpp:126
Definition: block.cpp:7
Definition: tool_move.hpp:8