Horizon
footprint_generator_dual.hpp
1 #pragma once
2 #include "footprint_generator_base.hpp"
3 #include "widgets/spin_button_dim.hpp"
4 namespace horizon {
5 class FootprintGeneratorDual : public FootprintGeneratorBase {
6 public:
7  FootprintGeneratorDual(class IDocumentPackage &c);
8  bool generate() override;
9 
10 private:
11  Gtk::SpinButton *sp_count = nullptr;
12  SpinButtonDim *sp_spacing = nullptr;
13  SpinButtonDim *sp_spacing_outer = nullptr;
14  SpinButtonDim *sp_spacing_inner = nullptr;
15  SpinButtonDim *sp_pitch = nullptr;
16  SpinButtonDim *sp_pad_width = nullptr;
17  SpinButtonDim *sp_pad_height = nullptr;
18  std::deque<sigc::connection> sp_spacing_connections;
19  unsigned int pad_count = 4;
20  bool zigzag = false;
21  void update_preview();
22  enum class Mode { SPACING, SPACING_OUTER, SPACING_INNER, PAD_HEIGHT };
23  void update_spacing(Mode mode);
24 };
25 } // namespace horizon