COIN-OR::LEMON - Graph Library

source: lemon-0.x/gui/edit_win.cc @ 1478:bc7ae573d77d

Last change on this file since 1478:bc7ae573d77d was 1478:bc7ae573d77d, checked in by Hegyi Péter, 14 years ago

Known bugs are eliminated from gui, and new ones are created by changing tool selectors to special radiobuttons, and by adding edgecreation-canceller function (right-click on any group element).

  • Property exe set to *
File size: 1.8 KB
Line 
1#include <edit_win.h>
2#include <set>
3
4bool EditWin::close_if_escape_is_pressed(GdkEventKey* e)
5{
6  if(e->keyval==GDK_Escape)
7  {
8    hide();
9  }
10  return true;
11}
12
13EditWin::EditWin(const std::string& title, GraphDisplayerCanvas & grdispc):gdc(grdispc),table(2, 2, true)
14{
15  set_title(title);
16  set_default_size(200, 50);
17  set_keep_above(true);
18  signal_key_press_event().connect(sigc::mem_fun(*this, &EditWin::close_if_escape_is_pressed));
19 
20  //buttons array
21  buttons=new (Gtk::RadioButton *) [TOOL_NUM];
22  for(int i=0;i<TOOL_NUM;i++)
23    {
24      buttons[i]=NULL;
25    }
26
27  Gtk::RadioButton::Group group;//=buttons[MOVE]->get_group();
28
29  //New node button
30  buttons[CREATE_NODE]=new Gtk::RadioButton("New Node");
31  buttons[CREATE_NODE]->set_mode(false);
32  buttons[CREATE_NODE]->set_group(group);
33  buttons[CREATE_NODE]->signal_clicked().connect
34    (
35     sigc::bind
36     (
37      sigc::mem_fun(*this, &EditWin::makeEditorialToolChanged),
38      1
39      )
40     );
41  table.attach(*buttons[CREATE_NODE],0,1,0,1);
42
43  //New edge button
44  buttons[CREATE_EDGE]=new Gtk::RadioButton("New Edge");
45  buttons[CREATE_EDGE]->set_mode(false);
46  buttons[CREATE_EDGE]->set_group(group);
47  buttons[CREATE_EDGE]->signal_clicked().connect
48    (
49     sigc::bind
50     (
51      sigc::mem_fun(*this, &EditWin::makeEditorialToolChanged),
52      2
53      )
54     );
55  table.attach(*buttons[CREATE_EDGE],1,2,0,1);
56   
57  //Move button
58  buttons[MOVE]=new Gtk::RadioButton("Move");
59  buttons[MOVE]->set_mode(false);
60  buttons[MOVE]->set_group(group);
61  buttons[MOVE]->signal_clicked().connect
62    (
63     sigc::bind
64     (
65      sigc::mem_fun(*this, &EditWin::makeEditorialToolChanged),
66      0
67      )
68     );
69  table.attach(*buttons[MOVE],0,1,1,2);
70     
71  add(table);
72
73  show_all_children();
74
75}
76
77void EditWin::makeEditorialToolChanged(int newtool)
78{
79  gdc.changeEditorialTool(newtool);
80}
Note: See TracBrowser for help on using the repository browser.