COIN-OR::LEMON - Graph Library

Changeset 94:adfdc2f70548 in glemon-0.x for mw-mapselector.cc


Ignore:
Timestamp:
11/29/05 20:31:58 (14 years ago)
Author:
Hegyi Péter
Branch:
gui
Phase:
public
Convert:
svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk/gui@2389
Message:

Structure of GUI is now more clear-cut than before.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • mw-mapselector.cc

    r90 r94  
    11#include "map_win.h"
    22
    3 MapWin::MapSelector::MapSelector(GraphDisplayerCanvas & grdispc, MapStorage & mapst, int identifier, bool edge):gdc(grdispc),ms(mapst),id(identifier),itisedge(edge),default_state(true),set_new_map(false),node_to_update(INVALID),edge_to_update(INVALID)
     3MapWin::MapSelector::MapSelector(std::vector<std::string> ml, int identifier, bool edge):id(identifier),itisedge(edge),default_state(true),set_new_map(false)
    44{
    5   update_list();
     5  update_list(ml);
    66
    77  cbt.set_active(0);
     
    5151{
    5252  set_new_map=true;
    53   (new NewMapWin("NewMapWin", gdc, itisedge, false))->run();
     53  signal_newmapwin.emit(itisedge);
    5454}
    5555
    56 void MapWin::MapSelector::update_list()
     56void MapWin::MapSelector::update_list( std::vector< std::string > ml )
    5757{
    5858  cbt.clear();
    59   if(itisedge)
     59  std::vector< std::string >::iterator emsi=ml.begin();
     60  for(;emsi!=ml.end();emsi++)
    6061    {
    61       std::map< std::string,Graph::EdgeMap<double> * >::iterator emsi=ms.beginOfEdgeMaps();
    62       for(;emsi!=ms.endOfEdgeMaps();emsi++)
    63         {
    64           cbt.append_text(emsi->first);
    65         }
    66     }
    67   else
    68     {
    69       std::map< std::string,Graph::NodeMap<double> * >::iterator emsi=ms.beginOfNodeMaps();
    70       for(;emsi!=ms.endOfNodeMaps();emsi++)
    71         {
    72           cbt.append_text(emsi->first);
    73         }
     62      cbt.append_text(*emsi);
    7463    }
    7564  cbt.prepend_text("Default values");
     
    8473      if(!(mapname.empty())) //We seem to get 2 signals, one when the text is empty.
    8574        {
    86           if(itisedge)
    87             {
    88               if( ( (ms.edgemap_storage).find(mapname) != (ms.edgemap_storage).end() ) )
    89                 {
    90                   Edge edge=edge_to_update;
    91                   switch(id)
    92                     {
    93                     case E_WIDTH:
    94                       gdc.changeEdgeWidth(mapname, edge);
    95                       break;
    96                     case E_COLOR:
    97                       gdc.changeEdgeColor(mapname, edge);
    98                       break;
    99                     case E_TEXT:
    100                       gdc.changeEdgeText(mapname, edge);
    101                       break;
    102                     default:
    103                       std::cerr<<"Error\n";
    104                     }
    105                 }
    106             }
    107           else
    108             {
    109               if( ( (ms.nodemap_storage).find(mapname) != (ms.nodemap_storage).end() ) )
    110                 {
    111                   Node node=node_to_update;
    112                   switch(id)
    113                     {
    114                     case N_RADIUS:
    115                       gdc.changeNodeRadius(mapname, node);
    116                       break;
    117                     case N_COLOR:
    118                       gdc.changeNodeColor(mapname, node);
    119                       break;
    120                     case N_TEXT:
    121                       gdc.changeNodeText(mapname, node);
    122                       break;
    123                     default:
    124                       std::cerr<<"Error\n";
    125                     }
    126                 }
    127             }
     75          signal_cbt.emit(mapname);
    12876        }
    12977    }
    13078  else if((!default_state)&&(cbt.get_active_row_number()==0))
    13179    {
     80      signal_cbt.emit("");
    13281      reset();
    13382    }
     
    13988  cbt.set_active(0);
    14089
    141   if(itisedge)
    142     {
    143       Edge edge=edge_to_update;
    144       switch(id)
    145         {
    146         case E_WIDTH:
    147           gdc.resetEdgeWidth(edge);
    148           break;
    149         case E_COLOR:
    150           gdc.resetEdgeColor(edge);
    151           break;
    152         case E_TEXT:
    153           gdc.resetEdgeText(edge);
    154           break;
    155         default:
    156           std::cerr<<"Error\n";
    157         }
    158     }
    159   else
    160     {
    161       Node node=node_to_update;
    162       switch(id)
    163         {
    164         case N_RADIUS:
    165           gdc.resetNodeRadius(node);
    166           break;
    167         case N_COLOR:
    168           gdc.resetNodeColor(node);
    169           break;
    170         case N_TEXT:
    171           gdc.resetNodeText(node);
    172           break;
    173         default:
    174           std::cerr<<"Error\n";
    175         }
    176     }
     90  signal_cbt.emit("");
    17791}
    17892
    179 void MapWin::MapSelector::update(Node node)
    180 {
    181   node_to_update=node;
    182   if(default_state)
    183     {
    184       reset();
    185     }
    186   else
    187     {
    188       comboChanged();
    189     }
    190   node_to_update=INVALID;
    191 }
    192 
    193 void MapWin::MapSelector::update(Edge edge)
    194 {
    195   edge_to_update=edge;
    196   if(default_state)
    197     {
    198       reset();
    199     }
    200   else
    201     {
    202       comboChanged();
    203     }
    204   edge_to_update=INVALID;
    205 }
    20693
    20794Glib::ustring MapWin::MapSelector::get_active_text()
     
    224111    }
    225112}
     113
     114sigc::signal<void, std::string> MapWin::MapSelector::signal_cbt_ch()
     115{
     116  return signal_cbt;
     117}
     118
     119sigc::signal<void, bool> MapWin::MapSelector::signal_newmapwin_needed()
     120{
     121  return signal_newmapwin;
     122}
Note: See TracChangeset for help on using the changeset viewer.