1 #pragma once 2 #include <gtkmm.h> 3 #include <array> 4 #include <set> 5 #include "util/uuid.hpp" 6 #include "tool_window.hpp" 7 8 namespace horizon { 9 10 class RenumberPadsWindow : public ToolWindow { 11 public: 12 RenumberPadsWindow(Gtk::Window *parent, class ImpInterface *intf, class Package &pkg, const std::set<UUID> &pads); 13 14 const std::vector<class Pad *> &get_pads_sorted(); 15 void renumber(); 16 17 private: 18 class Package &pkg; 19 std::set<class Pad *> pads; 20 21 bool circular = false; 22 bool x_first = true; 23 bool down = true; 24 bool right = true; 25 enum class Origin { TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, BOTTOM_RIGHT }; 26 bool clockwise = false; 27 Origin circular_origin = Origin::TOP_LEFT; 28 29 Gtk::Entry *entry_prefix = nullptr; 30 Gtk::SpinButton *sp_start = nullptr; 31 Gtk::SpinButton *sp_step = nullptr; 32 std::set<Gtk::Widget *> widgets_circular; 33 std::set<Gtk::Widget *> widgets_axis; 34 35 36 std::vector<Pad *> pads_sorted; 37 }; 38 } // namespace horizon 39