map_win.cc
branchgui
changeset 94 adfdc2f70548
parent 90 e9f8f44f12a3
child 95 628c0b383d2f
equal deleted inserted replaced
18:421a2fa32530 19:3f7ec32ad8f5
     8     hide();
     8     hide();
     9   }
     9   }
    10   return true;
    10   return true;
    11 }
    11 }
    12 
    12 
    13 MapWin::MapWin(const std::string& title, MapStorage & mapst, GraphDisplayerCanvas & grdispc):gdc(grdispc),ms(mapst)
    13 MapWin::MapWin(const std::string& title, std::vector<std::string> eml, std::vector<std::string> nml, MainWin & mw):mainwin(mw)
    14 {
    14 {
    15   set_title(title);
    15   set_title(title);
    16   set_default_size(200, 50);
    16   set_default_size(200, 50);
    17 
    17 
    18   signal_key_press_event().connect(sigc::mem_fun(*this, &MapWin::closeIfEscapeIsPressed));
    18   signal_key_press_event().connect(sigc::mem_fun(*this, &MapWin::closeIfEscapeIsPressed));
    21 
    21 
    22   table=new Gtk::Table(EDGE_PROPERTY_NUM, 1, false);
    22   table=new Gtk::Table(EDGE_PROPERTY_NUM, 1, false);
    23 
    23 
    24   for(int i=0;i<EDGE_PROPERTY_NUM;i++)
    24   for(int i=0;i<EDGE_PROPERTY_NUM;i++)
    25   {
    25   {
    26     e_combo_array[i]=new MapSelector(gdc, ms, i, true);
    26     e_combo_array[i]=new MapSelector(eml, i, true);
    27 
    27 
    28     (*table).attach((*(e_combo_array[i])),0,1,i,i+1,Gtk::SHRINK,Gtk::SHRINK,10,3);
    28     (*table).attach((*(e_combo_array[i])),0,1,i,i+1,Gtk::SHRINK,Gtk::SHRINK,10,3);
       
    29 
       
    30     e_combo_array[i]->signal_cbt_ch().connect(sigc::bind(sigc::mem_fun(*this, &MapWin::edgeMapChanged), i));
       
    31     e_combo_array[i]->signal_newmapwin_needed().connect(sigc::bind(sigc::mem_fun(*this, &MapWin::newMapWinNeeded), i));
    29   }
    32   }
    30 
    33 
    31   vbox.pack_start(*(new Gtk::Label("Edge properties")));
    34   vbox.pack_start(*(new Gtk::Label("Edge properties")));
    32 
    35 
    33   vbox.pack_start(*table);
    36   vbox.pack_start(*table);
    38 
    41 
    39   table=new Gtk::Table(NODE_PROPERTY_NUM, 1, false);
    42   table=new Gtk::Table(NODE_PROPERTY_NUM, 1, false);
    40 
    43 
    41   for(int i=0;i<NODE_PROPERTY_NUM;i++)
    44   for(int i=0;i<NODE_PROPERTY_NUM;i++)
    42   {
    45   {
    43     n_combo_array[i]=new MapSelector(gdc, ms, i, false);
    46     n_combo_array[i]=new MapSelector(nml, i, false);
    44 
    47 
    45     (*table).attach((*(n_combo_array[i])),0,1,i,i+1,Gtk::SHRINK,Gtk::SHRINK,10,3);
    48     (*table).attach((*(n_combo_array[i])),0,1,i,i+1,Gtk::SHRINK,Gtk::SHRINK,10,3);
       
    49 
       
    50     n_combo_array[i]->signal_cbt_ch().connect(sigc::bind(sigc::mem_fun(*this, &MapWin::nodeMapChanged), i));
       
    51     n_combo_array[i]->signal_newmapwin_needed().connect(sigc::bind(sigc::mem_fun(*this, &MapWin::newMapWinNeeded), i));
    46   }
    52   }
    47 
    53 
    48   add(vbox);
    54   add(vbox);
    49 
    55 
    50   vbox.pack_start(*(new Gtk::Label("Node properties")));
    56   vbox.pack_start(*(new Gtk::Label("Node properties")));
    53 
    59 
    54   show_all_children();
    60   show_all_children();
    55 
    61 
    56 }
    62 }
    57 
    63 
    58 void MapWin::update()
    64 void MapWin::nodeMapChanged(std::string mapname, int prop)
       
    65 {
       
    66   mainwin.propertyChange(false, prop, mapname);
       
    67 }
       
    68 
       
    69 void MapWin::edgeMapChanged(std::string mapname, int prop)
       
    70 {
       
    71   mainwin.propertyChange(true, prop, mapname);
       
    72 }
       
    73 
       
    74 void MapWin::newMapWinNeeded(bool itisedge, int prop)
       
    75 {
       
    76   mainwin.popupNewMapWin(itisedge, prop);
       
    77 }
       
    78 
       
    79 void MapWin::update(std::vector<std::string> eml, std::vector<std::string> nml)
    59 {
    80 {
    60   for(int i=0;i<EDGE_PROPERTY_NUM;i++)
    81   for(int i=0;i<EDGE_PROPERTY_NUM;i++)
    61   {
    82   {
    62     e_combo_array[i]->update_list();
    83     e_combo_array[i]->update_list(eml);
    63   }
    84   }
    64 
    85 
    65   for(int i=0;i<NODE_PROPERTY_NUM;i++)
    86   for(int i=0;i<NODE_PROPERTY_NUM;i++)
    66   {
    87   {
    67     n_combo_array[i]->update_list();
    88     n_combo_array[i]->update_list(nml);
    68   }
    89   }
    69 }
       
    70 
       
    71 
       
    72 void MapWin::updateNode(Node node)
       
    73 {
       
    74   for(int i=0;i<NODE_PROPERTY_NUM;i++)
       
    75     {
       
    76       n_combo_array[i]->update(node);
       
    77     }
       
    78 }
       
    79 
       
    80 void MapWin::updateEdge(Edge edge)
       
    81 {
       
    82   for(int i=0;i<EDGE_PROPERTY_NUM;i++)
       
    83     {
       
    84       e_combo_array[i]->update(edge);
       
    85     }
       
    86 }
    90 }
    87 
    91 
    88 void MapWin::registerNewEdgeMap(std::string newmapname)
    92 void MapWin::registerNewEdgeMap(std::string newmapname)
    89 {
    93 {
    90   for(int i=0;i<EDGE_PROPERTY_NUM;i++)
    94   for(int i=0;i<EDGE_PROPERTY_NUM;i++)