mw-mapselector.cc
branchgui
changeset 95 628c0b383d2f
parent 94 adfdc2f70548
     1.1 --- a/mw-mapselector.cc	Tue Nov 29 19:31:58 2005 +0000
     1.2 +++ b/mw-mapselector.cc	Wed Nov 30 13:24:23 2005 +0000
     1.3 @@ -1,10 +1,19 @@
     1.4  #include "map_win.h"
     1.5  
     1.6 -MapWin::MapSelector::MapSelector(std::vector<std::string> ml, int identifier, bool edge):id(identifier),itisedge(edge),default_state(true),set_new_map(false)
     1.7 +MapWin::MapSelector::MapSelector(std::vector<std::string> ml, std::string act, int identifier, bool edge):id(identifier),itisedge(edge),set_new_map(false)
     1.8  {
     1.9    update_list(ml);
    1.10  
    1.11 -  cbt.set_active(0);
    1.12 +  if(act=="")
    1.13 +    {
    1.14 +      cbt.set_active(0);
    1.15 +      default_state=true;
    1.16 +    }
    1.17 +  else
    1.18 +    {
    1.19 +      cbt.set_active_text((Glib::ustring)act);
    1.20 +      default_state=false;
    1.21 +    }
    1.22  
    1.23    //binding signal to the actual entry
    1.24    cbt.signal_changed().connect
    1.25 @@ -55,6 +64,7 @@
    1.26  
    1.27  void MapWin::MapSelector::update_list( std::vector< std::string > ml )
    1.28  {
    1.29 +  int prev_act=cbt.get_active_row_number();
    1.30    cbt.clear();
    1.31    std::vector< std::string >::iterator emsi=ml.begin();
    1.32    for(;emsi!=ml.end();emsi++)
    1.33 @@ -62,6 +72,10 @@
    1.34        cbt.append_text(*emsi);
    1.35      }
    1.36    cbt.prepend_text("Default values");
    1.37 +  if(prev_act!=-1)
    1.38 +    {
    1.39 +      cbt.set_active(prev_act);
    1.40 +    }
    1.41  }
    1.42  
    1.43  void MapWin::MapSelector::comboChanged()
    1.44 @@ -77,7 +91,6 @@
    1.45      }
    1.46    else if((!default_state)&&(cbt.get_active_row_number()==0))
    1.47      {
    1.48 -      signal_cbt.emit("");
    1.49        reset();
    1.50      }
    1.51  }
    1.52 @@ -85,6 +98,7 @@
    1.53  void MapWin::MapSelector::reset()
    1.54  {
    1.55    default_state=true;
    1.56 +
    1.57    cbt.set_active(0);
    1.58  
    1.59    signal_cbt.emit("");