[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