MapSelector has become a standalone class. gui
authorhegyi
Fri, 06 Jan 2006 14:36:46 +0000
branchgui
changeset 1123689cb170d3e
parent 111 ab3107255754
child 113 7c2e71835de7
MapSelector has become a standalone class.
Makefile.am
map_win.h
mapselector.cc
mw-mapselector.cc
     1.1 --- a/Makefile.am	Fri Jan 06 13:58:49 2006 +0000
     1.2 +++ b/Makefile.am	Fri Jan 06 14:36:46 2006 +0000
     1.3 @@ -27,7 +27,8 @@
     1.4  	mapstorage.h \
     1.5  	map_win.cc \
     1.6  	map_win.h \
     1.7 -	mw-mapselector.cc \
     1.8 +	mapselector.cc \
     1.9 +	mapselector.h \
    1.10  	nbtab.h \
    1.11  	nbtab.cc \
    1.12  	new_map_win.cc \
     2.1 --- a/map_win.h	Fri Jan 06 13:58:49 2006 +0000
     2.2 +++ b/map_win.h	Fri Jan 06 14:36:46 2006 +0000
     2.3 @@ -7,6 +7,7 @@
     2.4  
     2.5  #include <all_include.h>
     2.6  #include <nbtab.h>
     2.7 +#include <mapselector.h>
     2.8  #include <libgnomecanvasmm.h>
     2.9  #include <libgnomecanvasmm/polygon.h>
    2.10  
    2.11 @@ -15,55 +16,6 @@
    2.12  ///assigned to maps.
    2.13  class MapWin : public Gtk::Window
    2.14  {
    2.15 -
    2.16 -  class MapSelector : public Gtk::HBox
    2.17 -  {
    2.18 -  protected:
    2.19 -    sigc::signal<void, std::string> signal_cbt;
    2.20 -    sigc::signal<void, bool> signal_newmapwin;
    2.21 -
    2.22 -    int id;
    2.23 -
    2.24 -    bool itisedge;
    2.25 -
    2.26 -    bool default_state;
    2.27 -
    2.28 -    bool set_new_map;
    2.29 -
    2.30 -    Gtk::ComboBoxText cbt;
    2.31 -
    2.32 -    Gtk::Button * newbut, * defbut;
    2.33 -
    2.34 -    Gtk::HBox hbox;
    2.35 -
    2.36 -    Gtk::Label * label;
    2.37 -
    2.38 -  public:
    2.39 -
    2.40 -    MapSelector(std::vector<std::string>, std::string, int, bool);
    2.41 -
    2.42 -    sigc::signal<void, std::string> signal_cbt_ch();
    2.43 -    sigc::signal<void, bool> signal_newmapwin_needed();
    2.44 -
    2.45 -    void update_list( std::vector<std::string> );
    2.46 -
    2.47 -    ///If a radiobutton is clicked, this function determines
    2.48 -    ///which button was that and after that calls the
    2.49 -    ///appropriate function of the \ref GraphDisplayerCanvas
    2.50 -    ///to change the visible values of that attribute.
    2.51 -    virtual void comboChanged();
    2.52 -
    2.53 -    virtual void new_but_pressed();
    2.54 -
    2.55 -    virtual void reset();
    2.56 -
    2.57 -    Glib::ustring get_active_text();
    2.58 -    void set_active_text(Glib::ustring);
    2.59 -    void append_text(Glib::ustring);
    2.60 -  };
    2.61 -
    2.62 -
    2.63 -
    2.64  protected:
    2.65    NoteBookTab & mytab;
    2.66  
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/mapselector.cc	Fri Jan 06 14:36:46 2006 +0000
     3.3 @@ -0,0 +1,136 @@
     3.4 +#include "mapselector.h"
     3.5 +
     3.6 +MapSelector::MapSelector(std::vector<std::string> ml, std::string act, int identifier, bool edge):id(identifier),itisedge(edge),set_new_map(false)
     3.7 +{
     3.8 +  update_list(ml);
     3.9 +
    3.10 +  if(act=="")
    3.11 +    {
    3.12 +      cbt.set_active(0);
    3.13 +      default_state=true;
    3.14 +    }
    3.15 +  else
    3.16 +    {
    3.17 +      cbt.set_active_text((Glib::ustring)act);
    3.18 +      default_state=false;
    3.19 +    }
    3.20 +
    3.21 +  //binding signal to the actual entry
    3.22 +  cbt.signal_changed().connect
    3.23 +    (
    3.24 +     sigc::mem_fun((*this), &MapSelector::comboChanged),
    3.25 +     false
    3.26 +     );
    3.27 +  
    3.28 +  if(itisedge)
    3.29 +    {
    3.30 +      label=new Gtk::Label(edge_property_strings[id]);
    3.31 +    }
    3.32 +  else
    3.33 +    {
    3.34 +      label=new Gtk::Label(node_property_strings[id]);
    3.35 +    }
    3.36 +
    3.37 +  label->set_width_chars(longest_property_string_length);
    3.38 +
    3.39 +  defbut=new Gtk::Button();
    3.40 +  defbut->set_label("Reset");
    3.41 +
    3.42 +  defbut->signal_pressed().connect
    3.43 +    (
    3.44 +     sigc::mem_fun(*this, &MapSelector::reset)
    3.45 +     );
    3.46 +
    3.47 +  newbut=new Gtk::Button(Gtk::Stock::NEW);
    3.48 +
    3.49 +  newbut->signal_pressed().connect
    3.50 +    (
    3.51 +     sigc::mem_fun(*this, &MapSelector::new_but_pressed)
    3.52 +     );
    3.53 +
    3.54 +  add(*label);
    3.55 +
    3.56 +  add(cbt);
    3.57 +
    3.58 +  add(*defbut);
    3.59 +  add(*newbut);
    3.60 +}
    3.61 +
    3.62 +void MapSelector::new_but_pressed()
    3.63 +{
    3.64 +  set_new_map=true;
    3.65 +  signal_newmapwin.emit(itisedge);
    3.66 +}
    3.67 +
    3.68 +void MapSelector::update_list( std::vector< std::string > ml )
    3.69 +{
    3.70 +  int prev_act=cbt.get_active_row_number();
    3.71 +  cbt.clear();
    3.72 +  std::vector< std::string >::iterator emsi=ml.begin();
    3.73 +  for(;emsi!=ml.end();emsi++)
    3.74 +    {
    3.75 +      cbt.append_text(*emsi);
    3.76 +    }
    3.77 +  cbt.prepend_text("Default values");
    3.78 +  if(prev_act!=-1)
    3.79 +    {
    3.80 +      cbt.set_active(prev_act);
    3.81 +    }
    3.82 +}
    3.83 +
    3.84 +void MapSelector::comboChanged()
    3.85 +{
    3.86 +  if(cbt.get_active_row_number()!=0)
    3.87 +    {
    3.88 +      default_state=false;
    3.89 +      Glib::ustring mapname = cbt.get_active_text();
    3.90 +      if(!(mapname.empty())) //We seem to get 2 signals, one when the text is empty.
    3.91 +	{
    3.92 +	  signal_cbt.emit(mapname);
    3.93 +	}
    3.94 +    }
    3.95 +  else if((!default_state)&&(cbt.get_active_row_number()==0))
    3.96 +    {
    3.97 +      reset();
    3.98 +    }
    3.99 +}
   3.100 +
   3.101 +void MapSelector::reset()
   3.102 +{
   3.103 +  default_state=true;
   3.104 +
   3.105 +  cbt.set_active(0);
   3.106 +
   3.107 +  signal_cbt.emit("");
   3.108 +}
   3.109 +
   3.110 +
   3.111 +Glib::ustring MapSelector::get_active_text()
   3.112 +{
   3.113 +  return cbt.get_active_text();
   3.114 +}
   3.115 +
   3.116 +void MapSelector::set_active_text(Glib::ustring text)
   3.117 +{
   3.118 +  cbt.set_active_text(text);
   3.119 +}
   3.120 +
   3.121 +void MapSelector::append_text(Glib::ustring text)
   3.122 +{
   3.123 +  cbt.append_text(text);
   3.124 +  if(set_new_map)
   3.125 +    {
   3.126 +      set_active_text(text);
   3.127 +      set_new_map=false;
   3.128 +    }
   3.129 +}
   3.130 +
   3.131 +sigc::signal<void, std::string> MapSelector::signal_cbt_ch()
   3.132 +{
   3.133 +  return signal_cbt;
   3.134 +}
   3.135 +
   3.136 +sigc::signal<void, bool> MapSelector::signal_newmapwin_needed()
   3.137 +{
   3.138 +  return signal_newmapwin;
   3.139 +}
     4.1 --- a/mw-mapselector.cc	Fri Jan 06 13:58:49 2006 +0000
     4.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.3 @@ -1,136 +0,0 @@
     4.4 -#include "map_win.h"
     4.5 -
     4.6 -MapWin::MapSelector::MapSelector(std::vector<std::string> ml, std::string act, int identifier, bool edge):id(identifier),itisedge(edge),set_new_map(false)
     4.7 -{
     4.8 -  update_list(ml);
     4.9 -
    4.10 -  if(act=="")
    4.11 -    {
    4.12 -      cbt.set_active(0);
    4.13 -      default_state=true;
    4.14 -    }
    4.15 -  else
    4.16 -    {
    4.17 -      cbt.set_active_text((Glib::ustring)act);
    4.18 -      default_state=false;
    4.19 -    }
    4.20 -
    4.21 -  //binding signal to the actual entry
    4.22 -  cbt.signal_changed().connect
    4.23 -    (
    4.24 -     sigc::mem_fun((*this), &MapWin::MapSelector::comboChanged),
    4.25 -     false
    4.26 -     );
    4.27 -  
    4.28 -  if(itisedge)
    4.29 -    {
    4.30 -      label=new Gtk::Label(edge_property_strings[id]);
    4.31 -    }
    4.32 -  else
    4.33 -    {
    4.34 -      label=new Gtk::Label(node_property_strings[id]);
    4.35 -    }
    4.36 -
    4.37 -  label->set_width_chars(longest_property_string_length);
    4.38 -
    4.39 -  defbut=new Gtk::Button();
    4.40 -  defbut->set_label("Reset");
    4.41 -
    4.42 -  defbut->signal_pressed().connect
    4.43 -    (
    4.44 -     sigc::mem_fun(*this, &MapWin::MapSelector::reset)
    4.45 -     );
    4.46 -
    4.47 -  newbut=new Gtk::Button(Gtk::Stock::NEW);
    4.48 -
    4.49 -  newbut->signal_pressed().connect
    4.50 -    (
    4.51 -     sigc::mem_fun(*this, &MapWin::MapSelector::new_but_pressed)
    4.52 -     );
    4.53 -
    4.54 -  add(*label);
    4.55 -
    4.56 -  add(cbt);
    4.57 -
    4.58 -  add(*defbut);
    4.59 -  add(*newbut);
    4.60 -}
    4.61 -
    4.62 -void MapWin::MapSelector::new_but_pressed()
    4.63 -{
    4.64 -  set_new_map=true;
    4.65 -  signal_newmapwin.emit(itisedge);
    4.66 -}
    4.67 -
    4.68 -void MapWin::MapSelector::update_list( std::vector< std::string > ml )
    4.69 -{
    4.70 -  int prev_act=cbt.get_active_row_number();
    4.71 -  cbt.clear();
    4.72 -  std::vector< std::string >::iterator emsi=ml.begin();
    4.73 -  for(;emsi!=ml.end();emsi++)
    4.74 -    {
    4.75 -      cbt.append_text(*emsi);
    4.76 -    }
    4.77 -  cbt.prepend_text("Default values");
    4.78 -  if(prev_act!=-1)
    4.79 -    {
    4.80 -      cbt.set_active(prev_act);
    4.81 -    }
    4.82 -}
    4.83 -
    4.84 -void MapWin::MapSelector::comboChanged()
    4.85 -{
    4.86 -  if(cbt.get_active_row_number()!=0)
    4.87 -    {
    4.88 -      default_state=false;
    4.89 -      Glib::ustring mapname = cbt.get_active_text();
    4.90 -      if(!(mapname.empty())) //We seem to get 2 signals, one when the text is empty.
    4.91 -	{
    4.92 -	  signal_cbt.emit(mapname);
    4.93 -	}
    4.94 -    }
    4.95 -  else if((!default_state)&&(cbt.get_active_row_number()==0))
    4.96 -    {
    4.97 -      reset();
    4.98 -    }
    4.99 -}
   4.100 -
   4.101 -void MapWin::MapSelector::reset()
   4.102 -{
   4.103 -  default_state=true;
   4.104 -
   4.105 -  cbt.set_active(0);
   4.106 -
   4.107 -  signal_cbt.emit("");
   4.108 -}
   4.109 -
   4.110 -
   4.111 -Glib::ustring MapWin::MapSelector::get_active_text()
   4.112 -{
   4.113 -  return cbt.get_active_text();
   4.114 -}
   4.115 -
   4.116 -void MapWin::MapSelector::set_active_text(Glib::ustring text)
   4.117 -{
   4.118 -  cbt.set_active_text(text);
   4.119 -}
   4.120 -
   4.121 -void MapWin::MapSelector::append_text(Glib::ustring text)
   4.122 -{
   4.123 -  cbt.append_text(text);
   4.124 -  if(set_new_map)
   4.125 -    {
   4.126 -      set_active_text(text);
   4.127 -      set_new_map=false;
   4.128 -    }
   4.129 -}
   4.130 -
   4.131 -sigc::signal<void, std::string> MapWin::MapSelector::signal_cbt_ch()
   4.132 -{
   4.133 -  return signal_cbt;
   4.134 -}
   4.135 -
   4.136 -sigc::signal<void, bool> MapWin::MapSelector::signal_newmapwin_needed()
   4.137 -{
   4.138 -  return signal_newmapwin;
   4.139 -}