From 2b871c1cbced75a41b87f645ae7fb3cb57230c82 Mon Sep 17 00:00:00 2001 From: Arnaud Gardelein Date: Wed, 14 Oct 2009 22:57:29 +0200 Subject: [PATCH] gui/menus: put enter range dialog in a separate class --- gui/dialogs.py | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ gui/menus.py | 44 ++++---------------------------------------- 2 files changed, 54 insertions(+), 40 deletions(-) diff --git a/gui/dialogs.py b/gui/dialogs.py index 8ceb6dd..99e120a 100644 --- a/gui/dialogs.py +++ b/gui/dialogs.py @@ -40,3 +40,53 @@ class Enter_Units_Dialog(object): self._entry_yunits.get_text()) self._dlg.destroy() return units + +class Enter_Range_Dialog(object): + def Enter_Range_Dialog(self): + pass + + def display(self, r): + self._dlg = gtk.Dialog('Enter graph range',\ + buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT,\ + gtk.STOCK_OK, gtk.RESPONSE_ACCEPT)) + [xmin, xmax], [ymin, ymax] = r + # Label and entry for X axis + hbox_x = gtk.HBox() + label_xmin = gtk.Label('Xmin:') + hbox_x.pack_start(label_xmin) + self._entry_xmin = gtk.Entry() + self._entry_xmin.set_text(str(xmin)) + hbox_x.pack_start(self._entry_xmin) + label_xmax = gtk.Label('Xmax:') + hbox_x.pack_start(label_xmax) + self._entry_xmax = gtk.Entry() + self._entry_xmax.set_text(str(xmax)) + hbox_x.pack_start(self._entry_xmax) + self._dlg.vbox.pack_start(hbox_x) + + # Label and entry for Y axis + hbox_y = gtk.HBox() + label_ymin = gtk.Label('Ymin:') + hbox_y.pack_start(label_ymin) + self._entry_ymin = gtk.Entry() + self._entry_ymin.set_text(str(ymin)) + hbox_y.pack_start(self._entry_ymin) + label_ymax = gtk.Label('Ymax:') + hbox_y.pack_start(label_ymax) + self._entry_ymax = gtk.Entry() + self._entry_ymax.set_text(str(ymax)) + hbox_y.pack_start(self._entry_ymax) + self._dlg.vbox.pack_start(hbox_y) + + self._dlg.show_all() + + def run(self): + r = [] + resp = self._dlg.run() + if resp == gtk.RESPONSE_ACCEPT: + r = [float(self._entry_xmin.get_text()),\ + float(self._entry_xmax.get_text()),\ + float(self._entry_ymin.get_text()),\ + float(self._entry_ymax.get_text())] + self._dlg.destroy() + return r diff --git a/gui/menus.py b/gui/menus.py index ba76a18..c9632a2 100644 --- a/gui/menus.py +++ b/gui/menus.py @@ -119,49 +119,13 @@ class GraphMenu(object): def _create_range_window(self, figure, graph): if graph is None: return - dlg = gtk.Dialog('Enter graph range',\ - buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT,\ - gtk.STOCK_OK, gtk.RESPONSE_ACCEPT)) - [xmin, xmax], [ymin, ymax] = graph.get_range() - # Label and entry for X axis - hbox_x = gtk.HBox() - label_xmin = gtk.Label('Xmin:') - hbox_x.pack_start(label_xmin) - entry_xmin = gtk.Entry() - entry_xmin.set_text(str(xmin)) - hbox_x.pack_start(entry_xmin) - label_xmax = gtk.Label('Xmax:') - hbox_x.pack_start(label_xmax) - entry_xmax = gtk.Entry() - entry_xmax.set_text(str(xmax)) - hbox_x.pack_start(entry_xmax) - dlg.vbox.pack_start(hbox_x) - - # Label and entry for Y axis - hbox_y = gtk.HBox() - label_ymin = gtk.Label('Ymin:') - hbox_y.pack_start(label_ymin) - entry_ymin = gtk.Entry() - entry_ymin.set_text(str(ymin)) - hbox_y.pack_start(entry_ymin) - label_ymax = gtk.Label('Ymax:') - hbox_y.pack_start(label_ymax) - entry_ymax = gtk.Entry() - entry_ymax.set_text(str(ymax)) - hbox_y.pack_start(entry_ymax) - dlg.vbox.pack_start(hbox_y) - - dlg.show_all() - resp = dlg.run() - if resp == gtk.RESPONSE_ACCEPT: - r = [float(entry_xmin.get_text()),\ - float(entry_xmax.get_text()),\ - float(entry_ymin.get_text()),\ - float(entry_ymax.get_text())] + rangedlg = dialogs.Enter_Range_Dialog() + rangedlg.display(graph.get_range()) + r = rangedlg.run() + if r: graph.set_range(r) if figure.canvas is not None: figure.canvas.draw() - dlg.destroy() def _range_menu_item_activated(self, menuitem, user_data): figure, graph = user_data -- 2.11.4.GIT