edit_win.cc
author hegyi
Mon, 25 Jul 2005 11:17:23 +0000
branchgui
changeset 38 9cab23d9b124
parent 15 e8c21454f125
permissions -rwxr-xr-x
Continuing adding new maps.
hegyi@10
     1
#include <edit_win.h>
hegyi@10
     2
#include <set>
hegyi@10
     3
hegyi@30
     4
bool EditWin::closeIfEscapeIsPressed(GdkEventKey* e)
hegyi@10
     5
{
hegyi@10
     6
  if(e->keyval==GDK_Escape)
hegyi@10
     7
  {
hegyi@10
     8
    hide();
hegyi@10
     9
  }
hegyi@10
    10
  return true;
hegyi@10
    11
}
hegyi@10
    12
hegyi@10
    13
EditWin::EditWin(const std::string& title, GraphDisplayerCanvas & grdispc):gdc(grdispc),table(2, 2, true)
hegyi@10
    14
{
hegyi@10
    15
  set_title(title);
hegyi@10
    16
  set_default_size(200, 50);
hegyi@12
    17
  set_keep_above(true);
hegyi@30
    18
  signal_key_press_event().connect(sigc::mem_fun(*this, &EditWin::closeIfEscapeIsPressed));
hegyi@10
    19
  
hegyi@12
    20
  //buttons array
alpar@15
    21
  buttons=new Gtk::RadioButton * [TOOL_NUM];
hegyi@12
    22
  for(int i=0;i<TOOL_NUM;i++)
hegyi@12
    23
    {
hegyi@12
    24
      buttons[i]=NULL;
hegyi@12
    25
    }
hegyi@12
    26
hegyi@12
    27
  Gtk::RadioButton::Group group;//=buttons[MOVE]->get_group();
hegyi@12
    28
hegyi@10
    29
  //New node button
hegyi@12
    30
  buttons[CREATE_NODE]=new Gtk::RadioButton("New Node");
hegyi@12
    31
  buttons[CREATE_NODE]->set_mode(false);
hegyi@12
    32
  buttons[CREATE_NODE]->set_group(group);
hegyi@12
    33
  buttons[CREATE_NODE]->signal_clicked().connect
hegyi@10
    34
    (
hegyi@10
    35
     sigc::bind
hegyi@10
    36
     (
hegyi@10
    37
      sigc::mem_fun(*this, &EditWin::makeEditorialToolChanged),
hegyi@10
    38
      1
hegyi@10
    39
      )
hegyi@10
    40
     );
hegyi@12
    41
  table.attach(*buttons[CREATE_NODE],0,1,0,1);
hegyi@10
    42
hegyi@10
    43
  //New edge button
hegyi@12
    44
  buttons[CREATE_EDGE]=new Gtk::RadioButton("New Edge");
hegyi@12
    45
  buttons[CREATE_EDGE]->set_mode(false);
hegyi@12
    46
  buttons[CREATE_EDGE]->set_group(group);
hegyi@12
    47
  buttons[CREATE_EDGE]->signal_clicked().connect
hegyi@10
    48
    (
hegyi@10
    49
     sigc::bind
hegyi@10
    50
     (
hegyi@10
    51
      sigc::mem_fun(*this, &EditWin::makeEditorialToolChanged),
hegyi@10
    52
      2
hegyi@10
    53
      )
hegyi@10
    54
     );
hegyi@12
    55
  table.attach(*buttons[CREATE_EDGE],1,2,0,1);
hegyi@10
    56
    
hegyi@10
    57
  //Move button
hegyi@12
    58
  buttons[MOVE]=new Gtk::RadioButton("Move");
hegyi@12
    59
  buttons[MOVE]->set_mode(false);
hegyi@12
    60
  buttons[MOVE]->set_group(group);
hegyi@12
    61
  buttons[MOVE]->signal_clicked().connect
hegyi@10
    62
    (
hegyi@10
    63
     sigc::bind
hegyi@10
    64
     (
hegyi@10
    65
      sigc::mem_fun(*this, &EditWin::makeEditorialToolChanged),
hegyi@10
    66
      0
hegyi@10
    67
      )
hegyi@10
    68
     );
hegyi@12
    69
  table.attach(*buttons[MOVE],0,1,1,2);
hegyi@12
    70
      
hegyi@13
    71
  //New edge button
hegyi@13
    72
  buttons[ERASER]=new Gtk::RadioButton("Erase Item");
hegyi@13
    73
  buttons[ERASER]->set_mode(false);
hegyi@13
    74
  buttons[ERASER]->set_group(group);
hegyi@13
    75
  buttons[ERASER]->signal_clicked().connect
hegyi@13
    76
    (
hegyi@13
    77
     sigc::bind
hegyi@13
    78
     (
hegyi@13
    79
      sigc::mem_fun(*this, &EditWin::makeEditorialToolChanged),
hegyi@13
    80
      3
hegyi@13
    81
      )
hegyi@13
    82
     );
hegyi@13
    83
  table.attach(*buttons[ERASER],1,2,1,2);
hegyi@13
    84
    
hegyi@10
    85
  add(table);
hegyi@10
    86
hegyi@10
    87
  show_all_children();
hegyi@10
    88
hegyi@10
    89
}
hegyi@10
    90
hegyi@10
    91
void EditWin::makeEditorialToolChanged(int newtool)
hegyi@10
    92
{
hegyi@10
    93
  gdc.changeEditorialTool(newtool);
hegyi@10
    94
}