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