Index: Makefile.am
===================================================================
--- Makefile.am	(revision 106)
+++ Makefile.am	(revision 112)
@@ -28,5 +28,6 @@
 	map_win.cc \
 	map_win.h \
-	mw-mapselector.cc \
+	mapselector.cc \
+	mapselector.h \
 	nbtab.h \
 	nbtab.cc \
Index: map_win.h
===================================================================
--- map_win.h	(revision 96)
+++ map_win.h	(revision 112)
@@ -8,4 +8,5 @@
 #include <all_include.h>
 #include <nbtab.h>
+#include <mapselector.h>
 #include <libgnomecanvasmm.h>
 #include <libgnomecanvasmm/polygon.h>
@@ -16,53 +17,4 @@
 class MapWin : public Gtk::Window
 {
-
-  class MapSelector : public Gtk::HBox
-  {
-  protected:
-    sigc::signal<void, std::string> signal_cbt;
-    sigc::signal<void, bool> signal_newmapwin;
-
-    int id;
-
-    bool itisedge;
-
-    bool default_state;
-
-    bool set_new_map;
-
-    Gtk::ComboBoxText cbt;
-
-    Gtk::Button * newbut, * defbut;
-
-    Gtk::HBox hbox;
-
-    Gtk::Label * label;
-
-  public:
-
-    MapSelector(std::vector<std::string>, std::string, int, bool);
-
-    sigc::signal<void, std::string> signal_cbt_ch();
-    sigc::signal<void, bool> signal_newmapwin_needed();
-
-    void update_list( std::vector<std::string> );
-
-    ///If a radiobutton is clicked, this function determines
-    ///which button was that and after that calls the
-    ///appropriate function of the \ref GraphDisplayerCanvas
-    ///to change the visible values of that attribute.
-    virtual void comboChanged();
-
-    virtual void new_but_pressed();
-
-    virtual void reset();
-
-    Glib::ustring get_active_text();
-    void set_active_text(Glib::ustring);
-    void append_text(Glib::ustring);
-  };
-
-
-
 protected:
   NoteBookTab & mytab;
Index: mapselector.cc
===================================================================
--- mapselector.cc	(revision 112)
+++ mapselector.cc	(revision 112)
@@ -0,0 +1,136 @@
+#include "mapselector.h"
+
+MapSelector::MapSelector(std::vector<std::string> ml, std::string act, int identifier, bool edge):id(identifier),itisedge(edge),set_new_map(false)
+{
+  update_list(ml);
+
+  if(act=="")
+    {
+      cbt.set_active(0);
+      default_state=true;
+    }
+  else
+    {
+      cbt.set_active_text((Glib::ustring)act);
+      default_state=false;
+    }
+
+  //binding signal to the actual entry
+  cbt.signal_changed().connect
+    (
+     sigc::mem_fun((*this), &MapSelector::comboChanged),
+     false
+     );
+  
+  if(itisedge)
+    {
+      label=new Gtk::Label(edge_property_strings[id]);
+    }
+  else
+    {
+      label=new Gtk::Label(node_property_strings[id]);
+    }
+
+  label->set_width_chars(longest_property_string_length);
+
+  defbut=new Gtk::Button();
+  defbut->set_label("Reset");
+
+  defbut->signal_pressed().connect
+    (
+     sigc::mem_fun(*this, &MapSelector::reset)
+     );
+
+  newbut=new Gtk::Button(Gtk::Stock::NEW);
+
+  newbut->signal_pressed().connect
+    (
+     sigc::mem_fun(*this, &MapSelector::new_but_pressed)
+     );
+
+  add(*label);
+
+  add(cbt);
+
+  add(*defbut);
+  add(*newbut);
+}
+
+void MapSelector::new_but_pressed()
+{
+  set_new_map=true;
+  signal_newmapwin.emit(itisedge);
+}
+
+void MapSelector::update_list( std::vector< std::string > ml )
+{
+  int prev_act=cbt.get_active_row_number();
+  cbt.clear();
+  std::vector< std::string >::iterator emsi=ml.begin();
+  for(;emsi!=ml.end();emsi++)
+    {
+      cbt.append_text(*emsi);
+    }
+  cbt.prepend_text("Default values");
+  if(prev_act!=-1)
+    {
+      cbt.set_active(prev_act);
+    }
+}
+
+void MapSelector::comboChanged()
+{
+  if(cbt.get_active_row_number()!=0)
+    {
+      default_state=false;
+      Glib::ustring mapname = cbt.get_active_text();
+      if(!(mapname.empty())) //We seem to get 2 signals, one when the text is empty.
+	{
+	  signal_cbt.emit(mapname);
+	}
+    }
+  else if((!default_state)&&(cbt.get_active_row_number()==0))
+    {
+      reset();
+    }
+}
+
+void MapSelector::reset()
+{
+  default_state=true;
+
+  cbt.set_active(0);
+
+  signal_cbt.emit("");
+}
+
+
+Glib::ustring MapSelector::get_active_text()
+{
+  return cbt.get_active_text();
+}
+
+void MapSelector::set_active_text(Glib::ustring text)
+{
+  cbt.set_active_text(text);
+}
+
+void MapSelector::append_text(Glib::ustring text)
+{
+  cbt.append_text(text);
+  if(set_new_map)
+    {
+      set_active_text(text);
+      set_new_map=false;
+    }
+}
+
+sigc::signal<void, std::string> MapSelector::signal_cbt_ch()
+{
+  return signal_cbt;
+}
+
+sigc::signal<void, bool> MapSelector::signal_newmapwin_needed()
+{
+  return signal_newmapwin;
+}
Index: -mapselector.cc
===================================================================
--- mw-mapselector.cc	(revision 95)
+++ 	(revision )
@@ -1,136 +1,0 @@
-#include "map_win.h"
-
-MapWin::MapSelector::MapSelector(std::vector<std::string> ml, std::string act, int identifier, bool edge):id(identifier),itisedge(edge),set_new_map(false)
-{
-  update_list(ml);
-
-  if(act=="")
-    {
-      cbt.set_active(0);
-      default_state=true;
-    }
-  else
-    {
-      cbt.set_active_text((Glib::ustring)act);
-      default_state=false;
-    }
-
-  //binding signal to the actual entry
-  cbt.signal_changed().connect
-    (
-     sigc::mem_fun((*this), &MapWin::MapSelector::comboChanged),
-     false
-     );
-  
-  if(itisedge)
-    {
-      label=new Gtk::Label(edge_property_strings[id]);
-    }
-  else
-    {
-      label=new Gtk::Label(node_property_strings[id]);
-    }
-
-  label->set_width_chars(longest_property_string_length);
-
-  defbut=new Gtk::Button();
-  defbut->set_label("Reset");
-
-  defbut->signal_pressed().connect
-    (
-     sigc::mem_fun(*this, &MapWin::MapSelector::reset)
-     );
-
-  newbut=new Gtk::Button(Gtk::Stock::NEW);
-
-  newbut->signal_pressed().connect
-    (
-     sigc::mem_fun(*this, &MapWin::MapSelector::new_but_pressed)
-     );
-
-  add(*label);
-
-  add(cbt);
-
-  add(*defbut);
-  add(*newbut);
-}
-
-void MapWin::MapSelector::new_but_pressed()
-{
-  set_new_map=true;
-  signal_newmapwin.emit(itisedge);
-}
-
-void MapWin::MapSelector::update_list( std::vector< std::string > ml )
-{
-  int prev_act=cbt.get_active_row_number();
-  cbt.clear();
-  std::vector< std::string >::iterator emsi=ml.begin();
-  for(;emsi!=ml.end();emsi++)
-    {
-      cbt.append_text(*emsi);
-    }
-  cbt.prepend_text("Default values");
-  if(prev_act!=-1)
-    {
-      cbt.set_active(prev_act);
-    }
-}
-
-void MapWin::MapSelector::comboChanged()
-{
-  if(cbt.get_active_row_number()!=0)
-    {
-      default_state=false;
-      Glib::ustring mapname = cbt.get_active_text();
-      if(!(mapname.empty())) //We seem to get 2 signals, one when the text is empty.
-	{
-	  signal_cbt.emit(mapname);
-	}
-    }
-  else if((!default_state)&&(cbt.get_active_row_number()==0))
-    {
-      reset();
-    }
-}
-
-void MapWin::MapSelector::reset()
-{
-  default_state=true;
-
-  cbt.set_active(0);
-
-  signal_cbt.emit("");
-}
-
-
-Glib::ustring MapWin::MapSelector::get_active_text()
-{
-  return cbt.get_active_text();
-}
-
-void MapWin::MapSelector::set_active_text(Glib::ustring text)
-{
-  cbt.set_active_text(text);
-}
-
-void MapWin::MapSelector::append_text(Glib::ustring text)
-{
-  cbt.append_text(text);
-  if(set_new_map)
-    {
-      set_active_text(text);
-      set_new_map=false;
-    }
-}
-
-sigc::signal<void, std::string> MapWin::MapSelector::signal_cbt_ch()
-{
-  return signal_cbt;
-}
-
-sigc::signal<void, bool> MapWin::MapSelector::signal_newmapwin_needed()
-{
-  return signal_newmapwin;
-}
