[Lemon-commits] [lemon_svn] hegyi: r2970 - glemon/trunk

Lemon SVN svn at lemon.cs.elte.hu
Mon Nov 6 21:51:32 CET 2006


Author: hegyi
Date: Mon Oct  2 20:52:00 2006
New Revision: 2970

Modified:
   glemon/trunk/graph_displayer_canvas-edge.cc
   glemon/trunk/graph_displayer_canvas-node.cc
   glemon/trunk/graph_displayer_canvas-zoom.cc
   glemon/trunk/graph_displayer_canvas.cc
   glemon/trunk/graph_displayer_canvas.h
   glemon/trunk/main_win.cc
   glemon/trunk/main_win.h
   glemon/trunk/nbtab.cc
   glemon/trunk/nbtab.h

Log:
View settings also for edges.

Modified: glemon/trunk/graph_displayer_canvas-edge.cc
==============================================================================
--- glemon/trunk/graph_displayer_canvas-edge.cc	(original)
+++ glemon/trunk/graph_displayer_canvas-edge.cc	Mon Oct  2 20:52:00 2006
@@ -1,6 +1,7 @@
 #include "graph_displayer_canvas.h"
 #include <cmath>
 
+const int minimum_edge_width=2;
 
 int GraphDisplayerCanvas::resetEdgeWidth (Edge edge)
 {
@@ -24,6 +25,11 @@
 	    {
 	      w=(int)(MIN_EDGE_WIDTH+(v-min)/(max-min)*(MAX_EDGE_WIDTH-MIN_EDGE_WIDTH));
 	    }
+	  if(zoomtrack)
+	    {
+	      double actual_ppu=get_pixels_per_unit();
+	      w=(int)(w/actual_ppu*fixed_zoom_factor);
+	    }
 	  edgesmap[i]->setLineWidth(w);
 	}
     }
@@ -54,13 +60,29 @@
 	{
 	  double v=fabs((*actual_map)[i]);
 	  int w;
-	  if(min==max)
+	  if(autoscale)
 	    {
-	      w=(int)(edge_property_defaults[E_WIDTH]);
+	      if(min==max)
+		{
+		  w=(int)(edge_property_defaults[E_WIDTH]);
+		}
+	      else
+		{
+		  w=(int)(minimum_edge_width+(v-min)/(max-min)*(edge_width-minimum_edge_width));
+		}
 	    }
 	  else
 	    {
-	      w=(int)(MIN_EDGE_WIDTH+(v-min)/(max-min)*(MAX_EDGE_WIDTH-MIN_EDGE_WIDTH));
+	      w=(int)(v*edge_width);
+	    }
+	  if(w<minimum_edge_width)
+	    {
+	      w=minimum_edge_width;
+	    }
+	  if(zoomtrack)
+	    {
+	      double actual_ppu=get_pixels_per_unit();
+	      w=(int)(w/actual_ppu*fixed_zoom_factor);
 	    }
 	  edgesmap[i]->setLineWidth(w);
 	}

Modified: glemon/trunk/graph_displayer_canvas-node.cc
==============================================================================
--- glemon/trunk/graph_displayer_canvas-node.cc	(original)
+++ glemon/trunk/graph_displayer_canvas-node.cc	Mon Oct  2 20:52:00 2006
@@ -1,7 +1,7 @@
 #include "graph_displayer_canvas.h"
 #include <cmath>
 
-const int minimum_node_radius=0;
+const int minimum_node_radius=5;
 
 int GraphDisplayerCanvas::changeNodeRadius (std::string mapname, Node node)
 {
@@ -25,17 +25,17 @@
 		}
 	      else
 		{
-		  w=(int)(minimum_node_radius+(v-min)/(max-min)*(radius_max-minimum_node_radius));
+		  w=(int)(minimum_node_radius+(v-min)/(max-min)*(radius_size-minimum_node_radius));
 		}
 	    }
 	  else
 	    {
-	      w=(int)(v*radius_max);
+	      w=(int)(v*radius_size);
 	    }
 
-	  if(w<5)
+	  if(w<minimum_node_radius)
 	    {
-	      w=5;
+	      w=minimum_node_radius;
 	    }
 
 	  if(zoomtrack)

Modified: glemon/trunk/graph_displayer_canvas-zoom.cc
==============================================================================
--- glemon/trunk/graph_displayer_canvas-zoom.cc	(original)
+++ glemon/trunk/graph_displayer_canvas-zoom.cc	Mon Oct  2 20:52:00 2006
@@ -8,6 +8,7 @@
   if(zoomtrack)
     {
       propertyChange(false, N_RADIUS);
+      propertyChange(true, E_WIDTH);
     }
 }
 
@@ -17,6 +18,7 @@
       (1.0 - (double) zoom_step / 100.0) * get_pixels_per_unit());
   if(zoomtrack)
     {
+      propertyChange(true, E_WIDTH);
       propertyChange(false, N_RADIUS);
     }
 }
@@ -42,6 +44,7 @@
 
   if(zoomtrack)
     {
+      propertyChange(true, E_WIDTH);
       propertyChange(false, N_RADIUS);
     }
 }
@@ -53,6 +56,7 @@
 
   if(zoomtrack)
     {
+      propertyChange(true, E_WIDTH);
       propertyChange(false, N_RADIUS);
     }
 }

Modified: glemon/trunk/graph_displayer_canvas.cc
==============================================================================
--- glemon/trunk/graph_displayer_canvas.cc	(original)
+++ glemon/trunk/graph_displayer_canvas.cc	Mon Oct  2 20:52:00 2006
@@ -5,7 +5,7 @@
   nodesmap(mainw.mapstorage.graph), edgesmap(mainw.mapstorage.graph), edgetextmap(mainw.mapstorage.graph),
   nodetextmap(mainw.mapstorage.graph), displayed_graph(*(root()), 0, 0),
   isbutton(0), active_item(NULL), target_item(NULL), nodemap_to_edit(""),
-  edgemap_to_edit(""), autoscale(true), zoomtrack(false), radius_min(10), radius_max(40), radius_unit(1), mytab(mainw)
+  edgemap_to_edit(""), autoscale(true), zoomtrack(false), radius_size(20), edge_width(10), mytab(mainw)
 {
   //base event handler is move tool
   actual_handler=signal_event().connect(sigc::mem_fun(*this, &GraphDisplayerCanvas::moveEventHandler), false);
@@ -227,12 +227,11 @@
   }
 }
 
-void GraphDisplayerCanvas::setNodeView(bool autoscale_p, bool zoomtrack_p, double min_p, double max_p, double unit_p)
+void GraphDisplayerCanvas::setView(bool autoscale_p, bool zoomtrack_p, double width_p, double radius_p)
 {
   autoscale=autoscale_p;
-  radius_min=min_p;
-  radius_max=max_p;
-  radius_unit=unit_p;
+  edge_width=width_p;
+  radius_size=radius_p;
 
   if((!zoomtrack) && zoomtrack_p)
     {
@@ -242,13 +241,13 @@
   zoomtrack=zoomtrack_p;
 
   propertyChange(false, N_RADIUS);
+  propertyChange(true, E_WIDTH);
 }
 
-void GraphDisplayerCanvas::getNodeView(bool & autoscale_p, bool & zoomtrack_p, double& min_p, double& max_p, double& unit_p)
+void GraphDisplayerCanvas::getView(bool & autoscale_p, bool & zoomtrack_p, double& width_p, double& radius_p)
 {
   autoscale_p=autoscale;
   zoomtrack_p=zoomtrack;
-  min_p=radius_min;
-  max_p=radius_max;
-  unit_p=radius_unit;
+  width_p=edge_width;
+  radius_p=radius_size;
 }

Modified: glemon/trunk/graph_displayer_canvas.h
==============================================================================
--- glemon/trunk/graph_displayer_canvas.h	(original)
+++ glemon/trunk/graph_displayer_canvas.h	Mon Oct  2 20:52:00 2006
@@ -287,10 +287,10 @@
   int getActualTool();
 
   ///Sets node representation settings
-  void setNodeView(bool, bool, double, double, double);
+  void setView(bool, bool, double, double);
 
   ///Gets node representation settings
-  void getNodeView(bool &, bool &, double&, double&, double&);
+  void getView(bool &, bool &, double&, double&);
 
   ///draws the graph
 
@@ -392,14 +392,11 @@
   ///to store the zoom factor when it was "fixed"
   double fixed_zoom_factor;
   
-  ///Minimum node radius
-  double radius_min;
+  ///Node radius size
+  double radius_size;
 
-  ///Maximum node radius
-  double radius_max;
-
-  ///Node radius unit
-  double radius_unit;
+  ///Edge width
+  double edge_width;
 
 private:
 

Modified: glemon/trunk/main_win.cc
==============================================================================
--- glemon/trunk/main_win.cc	(original)
+++ glemon/trunk/main_win.cc	Mon Oct  2 20:52:00 2006
@@ -208,32 +208,23 @@
   auto_scale->signal_toggled().connect(sigc::mem_fun(*this, &MainWin::nodeViewChanged));
   table2.attach(*auto_scale, 0,2,0,1);
 
-  Gtk::Label * unit_label= new Gtk::Label("Unit:");
-//   table2.attach(*unit_label, 2,3,0,1);
+  Gtk::Label * width_label= new Gtk::Label("Edge Width:");
+  table2.attach(*width_label, 0,1,1,2);
   
-  Gtk::Adjustment * adjustment_unit=new Gtk::Adjustment(20, 5, 200, 5, 10);
-
-  radius_unit = new Gtk::SpinButton(*adjustment_unit, 5,0);
-  radius_unit->signal_value_changed().connect(sigc::mem_fun(*this, &MainWin::nodeViewChanged));
-//   table2.attach(*radius_unit, 3,4,0,1);
-
-  Gtk::Label * min_label= new Gtk::Label("Min:");
-//   table2.attach(*min_label, 0,1,1,2);
+  Gtk::Adjustment * adjustment_width=new Gtk::Adjustment(20, 1, 200, 5, 10);
   
-  Gtk::Adjustment * adjustment_min=new Gtk::Adjustment(20, 5, 200, 5, 10);
+  edge_width = new Gtk::SpinButton(*adjustment_width, 5,0);
+  edge_width->signal_value_changed().connect(sigc::mem_fun(*this, &MainWin::nodeViewChanged));
+  table2.attach(*edge_width, 1,2,1,2);
 
-  radius_min = new Gtk::SpinButton(*adjustment_min, 5,0);
-  radius_min->signal_value_changed().connect(sigc::mem_fun(*this, &MainWin::nodeViewChanged));
-//   table2.attach(*radius_min, 1,2,1,2);
-
-  Gtk::Label * max_label= new Gtk::Label("Size:");
-  table2.attach(*max_label, 2,3,1,2);
+  Gtk::Label * radius_label= new Gtk::Label("Node Radius:");
+  table2.attach(*radius_label, 2,3,1,2);
   
-  Gtk::Adjustment * adjustment_max=new Gtk::Adjustment(20, 0, 200, 5, 10);
+  Gtk::Adjustment * adjustment_radius=new Gtk::Adjustment(20, 0, 500, 5, 10);
 
-  radius_max = new Gtk::SpinButton(*adjustment_max, 5,0);
-  radius_max->signal_value_changed().connect(sigc::mem_fun(*this, &MainWin::nodeViewChanged));
-  table2.attach(*radius_max, 3,4,1,2);
+  radius_size = new Gtk::SpinButton(*adjustment_radius, 5,0);
+  radius_size->signal_value_changed().connect(sigc::mem_fun(*this, &MainWin::nodeViewChanged));
+  table2.attach(*radius_size, 3,4,1,2);
 
   zoom_track = new Gtk::CheckButton("Zoom tracking");
   zoom_track->set_active(false);
@@ -241,7 +232,6 @@
   table2.attach(*zoom_track, 2,4,0,1);
 
 
-  //vbox.pack_start(hbox, Gtk::PACK_SHRINK);
   table.attach(table2, 1, 2, 0, 2, Gtk::SHRINK, Gtk::SHRINK);
 
   tooltips.set_tip(*(uim->get_widget("/ToolBar/CreateNode")),"Create Node");
@@ -252,7 +242,6 @@
 
   active_tool = MOVE;
 
-  //vbox.pack_start(notebook);
   table.attach(notebook,0,2,2,3, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL);
   
   show_all_children();
@@ -368,13 +357,12 @@
   set_title(tabnames[active_tab]);
   bool autoscale;
   bool zoomtrack;
-  double min;
-  double max;
+  double width;
+  double radius;
   double unit;
-  tabs[active_tab]->getNodeView(autoscale, zoomtrack, min, max, unit);
-  radius_min->set_value(min);
-  radius_max->set_value(max);
-  radius_unit->set_value(unit);
+  tabs[active_tab]->getView(autoscale, zoomtrack, width, radius);
+  edge_width->set_value(width);
+  radius_size->set_value(radius);
   zoom_track->set_active(zoomtrack);
   auto_scale->set_active(autoscale);
 
@@ -543,10 +531,10 @@
 
 void MainWin::nodeViewChanged()
 {
-  double min=radius_min->get_value();
-  double max=radius_max->get_value();
-  double unit=radius_unit->get_value();
+  double width=edge_width->get_value();
+  double radius=radius_size->get_value();
+  double unit;
   bool zoomtrack=zoom_track->get_active();
   bool autoscale=auto_scale->get_active();
-  tabs[active_tab]->setNodeView(autoscale, zoomtrack, min, max, unit);
+  tabs[active_tab]->setView(autoscale, zoomtrack, width, radius);
 }

Modified: glemon/trunk/main_win.h
==============================================================================
--- glemon/trunk/main_win.h	(original)
+++ glemon/trunk/main_win.h	Mon Oct  2 20:52:00 2006
@@ -34,7 +34,7 @@
   Gtk::CheckButton * zoom_track;
 
   ///Minimum and maximum node radius entry
-  Gtk::SpinButton * radius_min, * radius_max, * radius_unit;
+  Gtk::SpinButton * radius_size, * edge_width;
 
   ///The notebook that has tabs (\ref NoteBookTab) with different graphs.
   Gtk::Notebook notebook;

Modified: glemon/trunk/nbtab.cc
==============================================================================
--- glemon/trunk/nbtab.cc	(original)
+++ glemon/trunk/nbtab.cc	Mon Oct  2 20:52:00 2006
@@ -218,12 +218,12 @@
   return signal_title;
 }
 
-void NoteBookTab::setNodeView(bool autoscale, bool zoomtrack, double min, double max, double unit)
+void NoteBookTab::setView(bool autoscale, bool zoomtrack, double width, double radius)
 {
-  gd_canvas->setNodeView(autoscale, zoomtrack, min, max, unit);
+  gd_canvas->setView(autoscale, zoomtrack, width, radius);
 }
 
-void NoteBookTab::getNodeView(bool & autoscale, bool & zoomtrack, double& min, double& max, double& unit)
+void NoteBookTab::getView(bool & autoscale, bool & zoomtrack, double& width, double& radius)
 {
-  gd_canvas->getNodeView(autoscale, zoomtrack, min, max, unit);
+  gd_canvas->getView(autoscale, zoomtrack, width, radius);
 }

Modified: glemon/trunk/nbtab.h
==============================================================================
--- glemon/trunk/nbtab.h	(original)
+++ glemon/trunk/nbtab.h	Mon Oct  2 20:52:00 2006
@@ -158,10 +158,10 @@
   void closeMapWin();
 
   ///Sets node representation settings
-  void setNodeView(bool, bool, double, double, double);
+  void setView(bool, bool, double, double);
 
   ///Gets node representation settings
-  void getNodeView(bool &, bool &, double&, double&, double&);
+  void getView(bool &, bool &, double&, double&);
 };
 
 #endif //NBTAB_H



More information about the Lemon-commits mailing list