1 #include "enter_datum_angle_window.hpp"
2 #include "widgets/spin_button_angle.hpp"
3 #include "imp/imp_interface.hpp"
4 #include "util/gtk_util.hpp"
5 
6 namespace horizon {
7 
8 
EnterDatumAngleWindow(Gtk::Window * parent,class ImpInterface * intf,const std::string & label,uint16_t def)9 EnterDatumAngleWindow::EnterDatumAngleWindow(Gtk::Window *parent, class ImpInterface *intf, const std::string &label,
10                                              uint16_t def)
11     : ToolWindow(parent, intf)
12 {
13     set_title("Enter angle");
14 
15     auto box = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_VERTICAL, 4));
16     box->property_margin() = 6;
17     auto la = Gtk::manage(new Gtk::Label(label));
18     la->set_halign(Gtk::ALIGN_START);
19     box->pack_start(*la, false, false, 0);
20 
21     sp = Gtk::manage(new SpinButtonAngle());
22     sp->set_value(def);
23     spinbutton_connect_activate(sp, [this] { emit_event(ToolDataWindow::Event::OK); });
24     sp->signal_value_changed().connect([this] {
25         auto data = std::make_unique<ToolDataEnterDatumAngleWindow>();
26         data->event = ToolDataWindow::Event::UPDATE;
27         data->value = get_value();
28         interface->tool_update_data(std::move(data));
29     });
30     box->pack_start(*sp, false, false, 0);
31     box->show_all();
32     add(*box);
33 }
34 
get_value()35 uint16_t EnterDatumAngleWindow::get_value()
36 {
37     return sp->get_value_as_int();
38 }
39 
40 } // namespace horizon
41