Horizon
tool_place_text.hpp
1 #pragma once
2 #include "core.hpp"
3 #include "tool_helper_move.hpp"
4 #include <forward_list>
5 #include <map>
6 
7 namespace horizon {
8 
9 class ToolPlaceText : public ToolHelperMove {
10 public:
11  ToolPlaceText(Core *c, ToolID tid);
12  ToolResponse begin(const ToolArgs &args) override;
13  ToolResponse update(const ToolArgs &args) override;
14  bool can_begin() override;
15 
16  class Settings : public ToolSettings {
17  public:
18  json serialize() const override;
19  void load_from_json(const json &j) override;
20  class LayerSettings {
21  public:
23  {
24  }
25  LayerSettings(const json &j);
26  uint64_t width = 0;
27  uint64_t size = 1.5_mm;
28  json serialize() const;
29  };
30  const LayerSettings &get_layer(int l) const;
31  std::map<int, LayerSettings> layers;
32  };
33 
34  const ToolSettings *get_settings_const() const override
35  {
36  return &settings;
37  }
38 
39  void apply_settings() override;
40 
41 protected:
42  ToolSettings *get_settings() override
43  {
44  return &settings;
45  }
46 
47 private:
48  Text *temp = 0;
49  std::forward_list<Text *> texts_placed;
50  Settings settings;
51 };
52 } // namespace horizon
horizon::ToolSettings
Definition: core.hpp:104
horizon::ToolPlaceText::begin
ToolResponse begin(const ToolArgs &args) override
Gets called right after the constructor has finished.
Definition: tool_place_text.cpp:71
libzip::uint64_t
zip_uint64_t uint64_t
zip_uint64_t_t typedef.
Definition: zip.hpp:108
horizon::ToolHelperMove
Definition: tool_helper_move.hpp:6
horizon::Core
Where Tools and and documents meet.
Definition: core.hpp:240
horizon::ToolPlaceText::update
ToolResponse update(const ToolArgs &args) override
Gets called whenever the user generated some sort of input.
Definition: tool_place_text.cpp:96
horizon::ToolPlaceText
Definition: tool_place_text.hpp:9
horizon::ToolPlaceText::Settings::LayerSettings
Definition: tool_place_text.hpp:20
nlohmann::basic_json
a class to store JSON values
Definition: json.hpp:161
horizon::ToolResponse
To signal back to the core what the Tool did, a Tool returns a ToolResponse.
Definition: core.hpp:52
horizon::ToolArgs
This is what a Tool receives when the user did something.
Definition: core.hpp:26
horizon::ToolPlaceText::can_begin
bool can_begin() override
Definition: tool_place_text.cpp:57
horizon::ToolPlaceText::Settings
Definition: tool_place_text.hpp:16