25 #include <gui_utils/interface_chooser_dialog.h>
28 #include <core/exception.h>
29 #include <core/exceptions/software.h>
30 #include <blackboard/blackboard.h>
31 #include <interface/interface_info.h>
41 const char*
const InterfaceChooserDialog::DEFAULT_TITLE =
"Select Interfaces";
50 InterfaceChooserDialog::Record::Record()
84 InterfaceChooserDialog::create(
87 const char* type_pattern,
88 const char* id_pattern,
89 const Glib::ustring& title)
92 d->
init(blackboard, type_pattern, id_pattern);
104 InterfaceChooserDialog::InterfaceChooserDialog(Gtk::Window& parent,
105 const Glib::ustring& title)
106 : Gtk::Dialog(title, parent, true),
129 const char *type_pattern,
130 const char *id_pattern)
134 set_default_size(360, 240);
139 __scrollwin.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
142 Gtk::Box *vbox = get_vbox();
143 vbox->pack_start(__scrollwin);
146 add_button(Gtk::Stock::CANCEL, 0);
147 add_button(Gtk::Stock::OK, 1);
149 set_default_response(1);
151 __treeview.signal_row_activated().connect(sigc::bind(sigc::hide<0>(sigc::hide<0>(sigc::mem_fun(*
this, &InterfaceChooserDialog::response))), 1));
156 for (InterfaceInfoList::iterator i = infl->begin(); i != infl->end(); ++i) {
157 Gtk::TreeModel::Row row = *
__model->append();
182 this_nonconst->__record =
new Record();
237 const Glib::RefPtr<Gtk::TreeSelection> treesel =
__treeview.get_selection();
238 const Gtk::TreeModel::iterator iter = treesel->get_selected();
240 const Gtk::TreeModel::Row row = *iter;
244 throw Exception(
"No interface selected");
271 Glib::ustring message = *(e.
begin());
272 Gtk::MessageDialog md(__parent, message,
false,
273 Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK,
275 md.set_title(
"Opening Interface failed");