def new_ilw(self): self.quotes_updater = QuoteUpdater(self.set_applet_icon, self.set_applet_tooltip) self.investwidget = Gtk.ScrolledWindow() self.investwidget.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) #this helps get the initial height right self.investwidget.set_propagate_natural_height(True) raw_invest_widget = InvestWidget(self.quotes_updater) #the window containing the list of quotes can't be #resized by the user so show all quotes possible up to a #nice maximum window size window = self.applet.get_window() display = window.get_display() monitor = display.get_monitor_at_window(window) monitor_geom = monitor.get_geometry() self.investwidget.set_max_content_height(monitor_geom.height - 60) self.investwidget.add(raw_invest_widget) self.ilw = InvestmentsListWindow(self.applet, self.investwidget)
def new_ilw(self): self.quotes_updater = QuoteUpdater(self.set_applet_icon, self.set_applet_tooltip) self.investwidget = InvestWidget(self.quotes_updater) self.ilw = InvestmentsListWindow(self.applet, self.investwidget)
class InvestApplet: def __init__(self, applet): self.applet = applet self.applet.setup_menu_from_file(None, "Invest_Applet.xml", None, [("About", self.on_about), ("Help", self.on_help), ("Prefs", self.on_preferences), ("Refresh", self.on_refresh)]) evbox = gtk.HBox() self.applet_icon = gtk.Image() self.set_applet_icon(0) self.applet_icon.show() evbox.add(self.applet_icon) self.applet.add(evbox) self.applet.connect("button-press-event", self.button_clicked) self.applet.show_all() self.new_ilw() def new_ilw(self): self.quotes_updater = QuoteUpdater(self.set_applet_icon, self.set_applet_tooltip) self.investwidget = InvestWidget(self.quotes_updater) self.ilw = InvestmentsListWindow(self.applet, self.investwidget) def reload_ilw(self): self.ilw.destroy() self.new_ilw() def button_clicked(self, widget, event): if event.type == gtk.gdk.BUTTON_PRESS and event.button == 1: # Three cases... if len(mate_invest.STOCKS) == 0: # a) We aren't configured yet mate_invest.preferences.show_preferences( self, _("<b>You have not entered any stock information yet</b>")) self.reload_ilw() elif not self.quotes_updater.quotes_valid: # b) We can't get the data (e.g. offline) alert = gtk.MessageDialog(buttons=gtk.BUTTONS_CLOSE) alert.set_markup( _("<b>No stock quotes are currently available</b>")) alert.format_secondary_text( _("The server could not be contacted. The computer is either offline or the servers are down. Try again later." )) alert.run() alert.destroy() else: # c) Everything is normal: pop-up the window self.ilw.toggle_show() def on_about(self, component, verb): mate_invest.about.show_about() def on_help(self, component, verb): mate_invest.help.show_help() def on_preferences(self, component, verb): mate_invest.preferences.show_preferences(self) self.reload_ilw() def on_refresh(self, component, verb): self.quotes_updater.refresh() def set_applet_icon(self, change): if change == 1: pixbuf = gtk.gdk.pixbuf_new_from_file_at_size( join(mate_invest.ART_DATA_DIR, "invest-22_up.png"), -1, -1) elif change == 0: pixbuf = gtk.gdk.pixbuf_new_from_file_at_size( join(mate_invest.ART_DATA_DIR, "invest-22_neutral.png"), -1, -1) else: pixbuf = gtk.gdk.pixbuf_new_from_file_at_size( join(mate_invest.ART_DATA_DIR, "invest-22_down.png"), -1, -1) self.applet_icon.set_from_pixbuf(pixbuf) def set_applet_tooltip(self, text): self.applet_icon.set_tooltip_text(text)
class InvestApplet(MatePanelApplet.Applet): def __init__(self, applet): self.applet = applet # name, stock_id, label, accellerator, tooltip, callback menu_actions = [("About", Gtk.STOCK_HELP, _("About"), None, None, self.on_about), ("Help", Gtk.STOCK_HELP, _("Help"), None, None, self.on_help), ("Prefs", Gtk.STOCK_PREFERENCES, _("Preferences"), None, None, self.on_preferences), ("Refresh", Gtk.STOCK_REFRESH, _("Refresh"), None, None, self.on_refresh) ] actiongroup = Gtk.ActionGroup.new("InvestAppletActions") actiongroup.set_translation_domain(mate_invest.defs.GETTEXT_PACKAGE) actiongroup.add_actions(menu_actions, None) self.applet.setup_menu_from_file (join(mate_invest.defs.PKGDATADIR, "Invest_Applet.xml"), actiongroup) evbox = Gtk.HBox() self.applet_icon = Gtk.Image() self.set_applet_icon(0) self.applet_icon.show() evbox.add(self.applet_icon) self.applet.add(evbox) self.applet.connect("button-press-event", self.button_clicked) self.applet.show_all() self.new_ilw() def new_ilw(self): self.quotes_updater = QuoteUpdater(self.set_applet_icon, self.set_applet_tooltip) self.investwidget = InvestWidget(self.quotes_updater) self.ilw = InvestmentsListWindow(self.applet, self.investwidget) def reload_ilw(self): self.ilw.destroy() self.new_ilw() def button_clicked(self, widget,event): if event.type == Gdk.EventType.BUTTON_PRESS and event.button == 1: # Three cases... if len (mate_invest.STOCKS) == 0: # a) We aren't configured yet mate_invest.preferences.show_preferences(self, _("<b>You have not entered any stock information yet</b>")) self.reload_ilw() elif not self.quotes_updater.quotes_valid: # b) We can't get the data (e.g. offline) alert = Gtk.MessageDialog(buttons=Gtk.ButtonsType.CLOSE) alert.set_markup(_("<b>No stock quotes are currently available</b>")) alert.format_secondary_text(_("The server could not be contacted. The computer is either offline or the servers are down. Try again later.")) alert.run() alert.destroy() else: # c) Everything is normal: pop-up the window self.ilw.toggle_show() def on_about(self, action): mate_invest.about.show_about() def on_help(self, action): mate_invest.help.show_help() def on_preferences(self, action): mate_invest.preferences.show_preferences(self) self.reload_ilw() def on_refresh(self, action): self.quotes_updater.refresh() def set_applet_icon(self, change): if change == 1: pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(join(mate_invest.ART_DATA_DIR, "invest-22_up.png"), -1,-1) elif change == 0: pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(join(mate_invest.ART_DATA_DIR, "invest-22_neutral.png"), -1,-1) else: pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(join(mate_invest.ART_DATA_DIR, "invest-22_down.png"), -1,-1) self.applet_icon.set_from_pixbuf(pixbuf) def set_applet_tooltip(self, text): self.applet_icon.set_tooltip_text(text)
class InvestApplet(MatePanelApplet.Applet): def __init__(self, applet): self.applet = applet # name, stock_id, label, accellerator, tooltip, callback menu_actions = [("About", Gtk.STOCK_ABOUT, _("About"), None, None, self.on_about), ("Help", Gtk.STOCK_HELP, _("Help"), None, None, self.on_help), ("Prefs", Gtk.STOCK_PREFERENCES, _("Preferences"), None, None, self.on_preferences), ("Refresh", Gtk.STOCK_REFRESH, _("Refresh"), None, None, self.on_refresh) ] actiongroup = Gtk.ActionGroup.new("InvestAppletActions") actiongroup.set_translation_domain(mate_invest.defs.GETTEXT_PACKAGE) actiongroup.add_actions(menu_actions, None) self.applet.setup_menu_from_file (join(mate_invest.defs.PKGDATADIR, "Invest_Applet.xml"), actiongroup) evbox = Gtk.HBox() self.applet_icon = Gtk.Image() self.set_applet_icon(0) self.applet_icon.show() evbox.add(self.applet_icon) self.applet.add(evbox) self.applet.connect("button-press-event", self.button_clicked) self.applet.show_all() self.new_ilw() def new_ilw(self): self.quotes_updater = QuoteUpdater(self.set_applet_icon, self.set_applet_tooltip) self.investwidget = InvestWidget(self.quotes_updater) self.ilw = InvestmentsListWindow(self.applet, self.investwidget) def reload_ilw(self): self.ilw.destroy() self.new_ilw() def button_clicked(self, widget,event): if event.type == Gdk.EventType.BUTTON_PRESS and event.button == 1: # Three cases... if len (mate_invest.STOCKS) == 0: # a) We aren't configured yet mate_invest.preferences.show_preferences(self, _("<b>You have not entered any stock information yet</b>")) self.reload_ilw() elif not self.quotes_updater.quotes_valid: # b) We can't get the data (e.g. offline) alert = Gtk.MessageDialog(buttons=Gtk.ButtonsType.CLOSE) alert.set_markup(_("<b>No stock quotes are currently available</b>")) alert.format_secondary_text(_("The server could not be contacted. The computer is either offline or the servers are down. Try again later.")) alert.run() alert.destroy() else: # c) Everything is normal: pop-up the window self.ilw.toggle_show() def on_about(self, action): mate_invest.about.show_about() def on_help(self, action): mate_invest.help.show_help() def on_preferences(self, action): mate_invest.preferences.show_preferences(self) self.reload_ilw() def on_refresh(self, action): self.quotes_updater.refresh() def set_applet_icon(self, change): if change == 1: pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(join(mate_invest.ART_DATA_DIR, "invest-22_up.png"), -1,-1) elif change == 0: pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(join(mate_invest.ART_DATA_DIR, "invest-22_neutral.png"), -1,-1) else: pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(join(mate_invest.ART_DATA_DIR, "invest-22_down.png"), -1,-1) self.applet_icon.set_from_pixbuf(pixbuf) def set_applet_tooltip(self, text): self.applet_icon.set_tooltip_text(text)
class InvestApplet: def __init__(self, applet): self.applet = applet self.applet.setup_menu_from_file ( None, "Invest_Applet.xml", None, [("About", self.on_about), ("Help", self.on_help), ("Prefs", self.on_preferences), ("Refresh", self.on_refresh) ]) evbox = gtk.HBox() self.applet_icon = gtk.Image() self.set_applet_icon(0) self.applet_icon.show() evbox.add(self.applet_icon) self.applet.add(evbox) self.applet.connect("button-press-event",self.button_clicked) self.applet.show_all() self.new_ilw() def new_ilw(self): self.quotes_updater = QuoteUpdater(self.set_applet_icon, self.set_applet_tooltip) self.investwidget = InvestWidget(self.quotes_updater) self.ilw = InvestmentsListWindow(self.applet, self.investwidget) def reload_ilw(self): self.ilw.destroy() self.new_ilw() def button_clicked(self, widget,event): if event.type == gtk.gdk.BUTTON_PRESS and event.button == 1: # Three cases... if len (mate_invest.STOCKS) == 0: # a) We aren't configured yet mate_invest.preferences.show_preferences(self, _("<b>You have not entered any stock information yet</b>")) self.reload_ilw() elif not self.quotes_updater.quotes_valid: # b) We can't get the data (e.g. offline) alert = gtk.MessageDialog(buttons=gtk.BUTTONS_CLOSE) alert.set_markup(_("<b>No stock quotes are currently available</b>")) alert.format_secondary_text(_("The server could not be contacted. The computer is either offline or the servers are down. Try again later.")) alert.run() alert.destroy() else: # c) Everything is normal: pop-up the window self.ilw.toggle_show() def on_about(self, component, verb): mate_invest.about.show_about() def on_help(self, component, verb): mate_invest.help.show_help() def on_preferences(self, component, verb): mate_invest.preferences.show_preferences(self) self.reload_ilw() def on_refresh(self, component, verb): self.quotes_updater.refresh() def set_applet_icon(self, change): if change == 1: pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(join(mate_invest.ART_DATA_DIR, "invest-22_up.png"), -1,-1) elif change == 0: pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(join(mate_invest.ART_DATA_DIR, "invest-22_neutral.png"), -1,-1) else: pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(join(mate_invest.ART_DATA_DIR, "invest-22_down.png"), -1,-1) self.applet_icon.set_from_pixbuf(pixbuf) def set_applet_tooltip(self, text): self.applet_icon.set_tooltip_text(text)