9 void Dialog::add_button(Button &button, int code)
12 connect_button(button, code);
15 void Dialog::add_button(unique_ptr<Button> button, int code)
19 connect_button(b, code);
22 Button &Dialog::add_button(const string &text, int code)
24 Button &b = add_new<Button>(text);
25 connect_button(b, code);
29 void Dialog::set_modal(bool m)
35 signal_grab_pointer.emit();
38 signal_ungrab_pointer.emit();
41 void Dialog::connect_button(Button &button, int code)
43 button.signal_clicked.connect(sigc::bind(sigc::mem_fun(this, &Dialog::response), code));
46 void Dialog::response(int code)
49 signal_response.emit(code);
54 Dialog::Loader::Loader(Dialog &d, WidgetMap &wm):
55 DerivedObjectLoader<Dialog, Panel::Loader>(d, wm)
57 add("action_button", &Loader::action_button);
60 void Dialog::Loader::action_button(const string &n, int c)
62 unique_ptr<Button> btn = make_unique<Button>();
64 Widget *wdg = btn.get();
65 obj.add_button(move(btn), c);
66 last_widget = wdg_map[n] = wdg;