hegyi@10: #include hegyi@10: #include hegyi@10: hegyi@30: bool EditWin::closeIfEscapeIsPressed(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@30: signal_key_press_event().connect(sigc::mem_fun(*this, &EditWin::closeIfEscapeIsPressed)); hegyi@10: hegyi@12: //buttons array alpar@15: 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@13: //New edge button hegyi@13: buttons[ERASER]=new Gtk::RadioButton("Erase Item"); hegyi@13: buttons[ERASER]->set_mode(false); hegyi@13: buttons[ERASER]->set_group(group); hegyi@13: buttons[ERASER]->signal_clicked().connect hegyi@13: ( hegyi@13: sigc::bind hegyi@13: ( hegyi@13: sigc::mem_fun(*this, &EditWin::makeEditorialToolChanged), hegyi@13: 3 hegyi@13: ) hegyi@13: ); hegyi@13: table.attach(*buttons[ERASER],1,2,1,2); hegyi@13: 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: }