hegyi@10: #include hegyi@10: #include hegyi@10: hegyi@10: bool EditWin::close_if_escape_is_pressed(GdkEventKey* e) hegyi@10: { hegyi@10: if(e->keyval==GDK_Escape) hegyi@10: { hegyi@10: hide(); hegyi@10: } hegyi@10: return true; hegyi@10: } hegyi@10: hegyi@10: EditWin::EditWin(const std::string& title, GraphDisplayerCanvas & grdispc):gdc(grdispc),table(2, 2, true) hegyi@10: { hegyi@10: set_title(title); hegyi@10: set_default_size(200, 50); hegyi@12: set_keep_above(true); hegyi@10: signal_key_press_event().connect(sigc::mem_fun(*this, &EditWin::close_if_escape_is_pressed)); hegyi@10: hegyi@12: //buttons array hegyi@12: buttons=new (Gtk::RadioButton *) [TOOL_NUM]; hegyi@12: for(int i=0;iget_group(); hegyi@12: hegyi@10: //New node button hegyi@12: buttons[CREATE_NODE]=new Gtk::RadioButton("New Node"); hegyi@12: buttons[CREATE_NODE]->set_mode(false); hegyi@12: buttons[CREATE_NODE]->set_group(group); hegyi@12: buttons[CREATE_NODE]->signal_clicked().connect hegyi@10: ( hegyi@10: sigc::bind hegyi@10: ( hegyi@10: sigc::mem_fun(*this, &EditWin::makeEditorialToolChanged), hegyi@10: 1 hegyi@10: ) hegyi@10: ); hegyi@12: table.attach(*buttons[CREATE_NODE],0,1,0,1); hegyi@10: hegyi@10: //New edge button hegyi@12: buttons[CREATE_EDGE]=new Gtk::RadioButton("New Edge"); hegyi@12: buttons[CREATE_EDGE]->set_mode(false); hegyi@12: buttons[CREATE_EDGE]->set_group(group); hegyi@12: buttons[CREATE_EDGE]->signal_clicked().connect hegyi@10: ( hegyi@10: sigc::bind hegyi@10: ( hegyi@10: sigc::mem_fun(*this, &EditWin::makeEditorialToolChanged), hegyi@10: 2 hegyi@10: ) hegyi@10: ); hegyi@12: table.attach(*buttons[CREATE_EDGE],1,2,0,1); hegyi@10: hegyi@10: //Move button hegyi@12: buttons[MOVE]=new Gtk::RadioButton("Move"); hegyi@12: buttons[MOVE]->set_mode(false); hegyi@12: buttons[MOVE]->set_group(group); hegyi@12: buttons[MOVE]->signal_clicked().connect hegyi@10: ( hegyi@10: sigc::bind hegyi@10: ( hegyi@10: sigc::mem_fun(*this, &EditWin::makeEditorialToolChanged), hegyi@10: 0 hegyi@10: ) hegyi@10: ); hegyi@12: table.attach(*buttons[MOVE],0,1,1,2); hegyi@12: hegyi@10: add(table); hegyi@10: hegyi@10: show_all_children(); hegyi@10: hegyi@10: } hegyi@10: hegyi@10: void EditWin::makeEditorialToolChanged(int newtool) hegyi@10: { hegyi@10: gdc.changeEditorialTool(newtool); hegyi@10: }