#include #include bool EditWin::close_if_escape_is_pressed(GdkEventKey* e) { if(e->keyval==GDK_Escape) { hide(); } return true; } EditWin::EditWin(const std::string& title, GraphDisplayerCanvas & grdispc):gdc(grdispc),table(2, 2, true) { set_title(title); set_default_size(200, 50); signal_key_press_event().connect(sigc::mem_fun(*this, &EditWin::close_if_escape_is_pressed)); //New node button button=new Gtk::Button("New Node"); button->signal_clicked().connect ( sigc::bind ( sigc::mem_fun(*this, &EditWin::makeEditorialToolChanged), 1 ) ); table.attach(*button,0,1,0,1); //New edge button button=new Gtk::Button("New Edge"); button->signal_clicked().connect ( sigc::bind ( sigc::mem_fun(*this, &EditWin::makeEditorialToolChanged), 2 ) ); table.attach(*button,1,2,0,1); //Move button button=new Gtk::Button("Move"); button->signal_clicked().connect ( sigc::bind ( sigc::mem_fun(*this, &EditWin::makeEditorialToolChanged), 0 ) ); table.attach(*button,0,1,1,2); add(table); show_all_children(); } void EditWin::makeEditorialToolChanged(int newtool) { gdc.changeEditorialTool(newtool); }