map_win.cc
author ladanyi
Fri, 14 Apr 2006 18:31:16 +0000
branchgui
changeset 133 b289ba51506f
parent 121 637c12cbd64c
child 146 afd1d8bfcccd
permissions -rw-r--r--
some reorganization
ladanyi@53
     1
#include "map_win.h"
ladanyi@6
     2
#include <set>
ladanyi@6
     3
hegyi@30
     4
bool MapWin::closeIfEscapeIsPressed(GdkEventKey* e)
ladanyi@6
     5
{
hegyi@8
     6
  if(e->keyval==GDK_Escape)
hegyi@8
     7
  {
hegyi@96
     8
    mytab.closeMapWin();
hegyi@95
     9
    //    hide();
hegyi@8
    10
  }
hegyi@8
    11
  return true;
hegyi@8
    12
}
ladanyi@6
    13
hegyi@96
    14
MapWin::MapWin(const std::string& title, std::vector<std::string> eml, std::vector<std::string> nml, NoteBookTab & mw):mytab(mw)
hegyi@8
    15
{
hegyi@8
    16
  set_title(title);
hegyi@8
    17
  set_default_size(200, 50);
ladanyi@6
    18
hegyi@30
    19
  signal_key_press_event().connect(sigc::mem_fun(*this, &MapWin::closeIfEscapeIsPressed));
ladanyi@6
    20
hegyi@81
    21
  e_combo_array=new MapSelector * [EDGE_PROPERTY_NUM];
hegyi@8
    22
hegyi@81
    23
  table=new Gtk::Table(EDGE_PROPERTY_NUM, 1, false);
hegyi@28
    24
hegyi@28
    25
  for(int i=0;i<EDGE_PROPERTY_NUM;i++)
ladanyi@6
    26
  {
hegyi@114
    27
    e_combo_array[i]=new MapSelector(eml, mytab.getActiveEdgeMap(i), edge_property_strings[i], true);
hegyi@8
    28
hegyi@81
    29
    (*table).attach((*(e_combo_array[i])),0,1,i,i+1,Gtk::SHRINK,Gtk::SHRINK,10,3);
hegyi@94
    30
hegyi@94
    31
    e_combo_array[i]->signal_cbt_ch().connect(sigc::bind(sigc::mem_fun(*this, &MapWin::edgeMapChanged), i));
hegyi@121
    32
    e_combo_array[i]->signal_newmapwin_needed().connect(sigc::mem_fun(*this, &MapWin::newMapWinNeeded));
ladanyi@6
    33
  }
ladanyi@6
    34
hegyi@28
    35
  vbox.pack_start(*(new Gtk::Label("Edge properties")));
hegyi@8
    36
hegyi@28
    37
  vbox.pack_start(*table);
hegyi@28
    38
hegyi@28
    39
  vbox.pack_start(*(new Gtk::HSeparator));
hegyi@28
    40
hegyi@81
    41
  n_combo_array=new MapSelector * [NODE_PROPERTY_NUM];
hegyi@28
    42
hegyi@81
    43
  table=new Gtk::Table(NODE_PROPERTY_NUM, 1, false);
hegyi@28
    44
hegyi@28
    45
  for(int i=0;i<NODE_PROPERTY_NUM;i++)
hegyi@28
    46
  {
hegyi@114
    47
    n_combo_array[i]=new MapSelector(nml, mytab.getActiveNodeMap(i), node_property_strings[i], false);
hegyi@28
    48
hegyi@81
    49
    (*table).attach((*(n_combo_array[i])),0,1,i,i+1,Gtk::SHRINK,Gtk::SHRINK,10,3);
hegyi@94
    50
hegyi@94
    51
    n_combo_array[i]->signal_cbt_ch().connect(sigc::bind(sigc::mem_fun(*this, &MapWin::nodeMapChanged), i));
hegyi@121
    52
    n_combo_array[i]->signal_newmapwin_needed().connect(sigc::mem_fun(*this, &MapWin::newMapWinNeeded));
hegyi@28
    53
  }
hegyi@28
    54
hegyi@28
    55
  add(vbox);
hegyi@28
    56
hegyi@28
    57
  vbox.pack_start(*(new Gtk::Label("Node properties")));
hegyi@28
    58
hegyi@28
    59
  vbox.pack_start(*table);
ladanyi@6
    60
ladanyi@6
    61
  show_all_children();
ladanyi@6
    62
ladanyi@6
    63
}
ladanyi@6
    64
hegyi@94
    65
void MapWin::nodeMapChanged(std::string mapname, int prop)
hegyi@94
    66
{
hegyi@96
    67
  mytab.propertyChange(false, prop, mapname);
hegyi@94
    68
}
hegyi@94
    69
hegyi@94
    70
void MapWin::edgeMapChanged(std::string mapname, int prop)
hegyi@94
    71
{
hegyi@96
    72
  mytab.propertyChange(true, prop, mapname);
hegyi@94
    73
}
hegyi@94
    74
hegyi@121
    75
void MapWin::newMapWinNeeded(bool itisedge)
hegyi@94
    76
{
hegyi@121
    77
  mytab.popupNewMapWin(itisedge);
hegyi@94
    78
}
hegyi@94
    79
hegyi@94
    80
void MapWin::update(std::vector<std::string> eml, std::vector<std::string> nml)
ladanyi@53
    81
{
ladanyi@53
    82
  for(int i=0;i<EDGE_PROPERTY_NUM;i++)
ladanyi@53
    83
  {
hegyi@94
    84
    e_combo_array[i]->update_list(eml);
hegyi@81
    85
  }
ladanyi@53
    86
ladanyi@53
    87
  for(int i=0;i<NODE_PROPERTY_NUM;i++)
ladanyi@53
    88
  {
hegyi@94
    89
    n_combo_array[i]->update_list(nml);
ladanyi@53
    90
  }
ladanyi@53
    91
}
ladanyi@53
    92
hegyi@40
    93
void MapWin::registerNewEdgeMap(std::string newmapname)
hegyi@38
    94
{
hegyi@40
    95
  for(int i=0;i<EDGE_PROPERTY_NUM;i++)
hegyi@40
    96
  {
hegyi@40
    97
    //filling in combo box with choices
hegyi@81
    98
    e_combo_array[i]->append_text((Glib::ustring)newmapname);
hegyi@40
    99
  }
hegyi@38
   100
}
hegyi@38
   101
hegyi@40
   102
void MapWin::registerNewNodeMap(std::string newmapname)
hegyi@38
   103
{
hegyi@41
   104
  for(int i=0;i<NODE_PROPERTY_NUM;i++)
hegyi@40
   105
  {
hegyi@40
   106
    //filling in combo box with choices
hegyi@82
   107
    n_combo_array[i]->append_text((Glib::ustring)newmapname);
hegyi@40
   108
  }
hegyi@38
   109
}
hegyi@95
   110
hegyi@95
   111
bool MapWin::on_delete_event(GdkEventAny * event)
hegyi@95
   112
{
hegyi@95
   113
  event=event;
hegyi@96
   114
  mytab.closeMapWin();
hegyi@95
   115
  return true;
hegyi@95
   116
}