diff options
author | Daniel Francis <francis@sugarlabs.org> | 2012-06-14 18:26:25 (GMT) |
---|---|---|
committer | Daniel Francis <francis@sugarlabs.org> | 2012-06-14 18:26:25 (GMT) |
commit | b7afc8efb41a7d096081d2741a922dd1a50969a4 (patch) | |
tree | fadf95dd7e9a287b7ebe3758c4a477230d65e169 /activity.py | |
parent | 12673a2278305a837a61fbd650facc484f38f8d6 (diff) |
Moved scale range entries
Diffstat (limited to 'activity.py')
-rw-r--r-- | activity.py | 113 |
1 files changed, 70 insertions, 43 deletions
diff --git a/activity.py b/activity.py index 13b8a03..516200a 100644 --- a/activity.py +++ b/activity.py @@ -216,7 +216,8 @@ class Graph(gtk.DrawingArea): return x * (self.x_max - self.x_min) / self.canvas_width + self.x_min def graph_y(self, y): - return self.y_max - (y * (self.y_max - self.y_min) / self.canvas_height) + return self.y_max - (y * (self.y_max - self.y_min) /\ + self.canvas_height) def plot(self): self.context.set_source_rgb(1, 1, 1) @@ -244,7 +245,7 @@ class Graph(gtk.DrawingArea): for i in xrange(int(self.canvas_width / iv + 1)): #multiples of iv, #cause adding of any error in iv, so keep iv as float - # use round(), to get to closest pixel, int() to prevent warning + # use round(),to get to closest pixel, int() to prevent warning self.context.move_to(int(round(os + i * iv)), int(round(self.canvas_y(0) - 5))) self.context.line_to(int(round(os + i * iv)), @@ -424,12 +425,14 @@ class Graph(gtk.DrawingArea): self.context = widget.get_window().cairo_create() self.plot() - #widget.window.draw_drawable(widget.get_style().fg_gc[gtk.STATE_NORMAL], + #widget.window.draw_drawable( + # widget.get_style().fg_gc[gtk.STATE_NORMAL], # self.pix_map, x, y, x, y, w, h) return False def canvas_y(self, y): - return (self.y_max - y) * self.canvas_height / (self.y_max - self.y_min) + return (self.y_max - y) * self.canvas_height /\ + (self.y_max - self.y_min) def canvas_x(self, x): "Calculate position on canvas to point on graph" @@ -513,7 +516,8 @@ class GraphPlotter(activity.Activity): x = float(dlg_win.x_entry.get_text()) safe_dict['x'] = x e[1].set_text(str(eval(e[0].replace("^", "**"), - {"__builtins__": {}}, safe_dict))) + {"__builtins__": {}}, + safe_dict))) except: if len(e[0]) > 0: e[1].set_text("Error: %s" % sys.exc_value) @@ -642,7 +646,7 @@ Toggle between a graph that connects points with lines and one that does not self.toolbar_box.toolbar.insert(self.activity_button, 0) self.activity_button.show() self.graph_item = ToolbarButton() - self.graph_item.props.icon_name = 'graph' + self.graph_item.props.icon_name = 'toolbar-view' else: self.toolbox = activity.ActivityToolbox(self) activity_toolbar = self.toolbox.get_activity_toolbar() @@ -651,7 +655,46 @@ Toggle between a graph that connects points with lines and one that does not if have_toolbox: self.graph_item.props.page = self.graph_toolbar else: - self.toolbox.add_toolbar(_('Graph'), self.graph_toolbar) + self.toolbox.add_toolbar(_('View'), self.graph_toolbar) + + scale_range = ToolButton('cell-size') + scale_range.set_tooltip(_('Scale Range')) + scale_range_table = gtk.Table(4, 2, False) + x_min_label = gtk.Label(_("X min =")) + self.x_min_entry = gtk.Entry() + self.x_min_entry.set_size_request(90, -1) + self.x_min_entry.set_alignment(0) + scale_range_table.attach(x_min_label, 0, 1, 0, 1, xpadding=5) + scale_range_table.attach(self.x_min_entry, 1, 2, 0, 1) + x_max_label = gtk.Label(_("X max =")) + self.x_max_entry = gtk.Entry() + self.x_max_entry.set_size_request(90, -1) + self.x_max_entry.set_alignment(0) + scale_range_table.attach(x_max_label, 0, 1, 2, 3, xpadding=5) + scale_range_table.attach(self.x_max_entry, 1, 2, 2, 3) + + y_min_label = gtk.Label(_("Y min")) + self.y_min_entry = gtk.Entry() + self.y_min_entry.set_size_request(90, -1) + self.y_min_entry.set_alignment(0) + scale_range_table.attach(y_min_label, 2, 3, 0, 1, xpadding=5) + scale_range_table.attach(self.y_min_entry, 3, 4, 0, 1) + y_max_label = gtk.Label(_("Y max")) + self.y_max_entry = gtk.Entry() + self.y_max_entry.set_size_request(90, -1) + self.y_max_entry.set_alignment(0) + scale_range_table.attach(y_max_label, 2, 3, 2, 3, xpadding=5) + scale_range_table.attach(self.y_max_entry, 3, 4, 2, 3) + + palette = scale_range.get_palette() + palette.set_content(scale_range_table) + self.graph_toolbar.insert(scale_range, -1) + scale_range_table.show_all() + scale_range.connect('clicked', + lambda w: palette.popup(immediate=True, + state=1)) + scale_range.show_all() + self.plot_item = ToolButton('gtk-refresh') self.plot_item.props.tooltip = _("Plot") self.plot_item.connect("clicked", self.plot) @@ -735,21 +778,11 @@ Toggle between a graph that connects points with lines and one that does not self.y1_entry = gtk.Entry() self.y2_entry = gtk.Entry() self.y3_entry = gtk.Entry() - self.x_min_entry = gtk.Entry() - self.x_min_entry.set_size_request(90, 24) - self.x_min_entry.set_alignment(1) - self.x_max_entry = gtk.Entry() - self.x_max_entry.set_size_request(90, 24) - self.x_max_entry.set_alignment(1) + self.x_scale_entry = gtk.Entry() self.x_scale_entry.set_size_request(90, 24) self.x_scale_entry.set_alignment(1) - self.y_min_entry = gtk.Entry() - self.y_min_entry.set_size_request(90, 24) - self.y_min_entry.set_alignment(1) - self.y_max_entry = gtk.Entry() - self.y_max_entry.set_size_request(90, 24) - self.y_max_entry.set_alignment(1) + self.y_scale_entry = gtk.Entry() self.y_scale_entry.set_size_request(90, 24) self.y_scale_entry.set_alignment(1) @@ -769,36 +802,30 @@ Toggle between a graph that connects points with lines and one that does not self.parameter_entries.attach(label, 0, 1, 0, 1, xpadding=5, ypadding=5, xoptions=gtk.FILL) self.parameter_entries.attach(self.y1_entry, 1, 2, 0, 1) - label = gtk.Label(_("X min")) - label.set_alignment(1, .5) - self.parameter_entries.attach(label, 2, 3, 0, 1, - xpadding=5, ypadding=7, xoptions=gtk.FILL) - self.parameter_entries.attach(self.x_min_entry, - 3, 4, 0, 1, xoptions=gtk.FILL) - label = gtk.Label(_("Y min")) - label.set_alignment(1, .5) - self.parameter_entries.attach(label, 4, 5, 0, 1, - xpadding=5, ypadding=5, xoptions=gtk.FILL) - self.parameter_entries.attach(self.y_min_entry, - 5, 6, 0, 1, xpadding=5, xoptions=gtk.FILL) + #label = gtk.Label(_("X min")) + #label.set_alignment(1, .5) + #self.parameter_entries.attach(label, 2, 3, 0, 1, + # xpadding=5, ypadding=7, xoptions=gtk.FILL) + #self.parameter_entries.attach(self.x_min_entry, + # 3, 4, 0, 1, xoptions=gtk.FILL) + + #label.set_alignment(1, .5) + #self.parameter_entries.attach(label, 4, 5, 0, 1, + # xpadding=5, ypadding=5, xoptions=gtk.FILL) + #self.parameter_entries.attach(self.y_min_entry, + # 5, 6, 0, 1, xpadding=5, xoptions=gtk.FILL) label = gtk.Label("y2 = ") label.set_alignment(0, .5) label.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse("red")) self.parameter_entries.attach(label, 0, 1, 1, 2, xpadding=5, ypadding=5, xoptions=gtk.FILL) self.parameter_entries.attach(self.y2_entry, 1, 2, 1, 2) - label = gtk.Label(_("X max")) - label.set_alignment(1, .5) - self.parameter_entries.attach(label, 2, 3, 1, 2, - xpadding=5, ypadding=7, xoptions=gtk.FILL) - self.parameter_entries.attach(self.x_max_entry, - 3, 4, 1, 2, xoptions=gtk.FILL) - label = gtk.Label(_("Y max")) - label.set_alignment(1, .5) - self.parameter_entries.attach(label, - 4, 5, 1, 2, xpadding=5, ypadding=5, xoptions=gtk.FILL) - self.parameter_entries.attach(self.y_max_entry, - 5, 6, 1, 2, xpadding=5, xoptions=gtk.FILL) + #label = gtk.Label(_("Y max")) + #label.set_alignment(1, .5) + #self.parameter_entries.attach(label, + # 4, 5, 1, 2, xpadding=5, ypadding=5, xoptions=gtk.FILL) + #self.parameter_entries.attach(self.y_max_entry, + # 5, 6, 1, 2, xpadding=5, xoptions=gtk.FILL) label = gtk.Label("y3 = ") label.set_alignment(0, .5) label.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse("DarkGreen")) |