#!/usr/bin/env python # -*- coding: utf-8 -*- # Author : Steven Harper # License : GNU GENERAL PUBLIC LICENSE import pygtk import gtk import sys ICON_PATH_CONNECT="/icons/connect_icon.png" ICON_PATH_DISCONNECT="/icons/disconnect_icon.png" ICON_PATH_EXTRACTFIRMWARE="/icons/extract_firmware_icon.png" ICON_PATH_CONFIG="/icons/config_icon.png" ICON_PATH_ABOUT="/icons/about_icon.png" ICON_PATH_EXIT="/icons/exit_icon.png" ICON_SIZE=20 class USBAdslModemPopupMenu: def __init__(self, modem_manager): # Make me an Image imageicon_connect = gtk.Image() pixbuf = gtk.gdk.pixbuf_new_from_file( modem_manager.root + ICON_PATH_CONNECT ) scaled_buf = pixbuf.scale_simple(ICON_SIZE,ICON_SIZE,gtk.gdk.INTERP_BILINEAR) imageicon_connect.set_from_pixbuf(scaled_buf) imageicon_disconnect = gtk.Image() pixbuf = gtk.gdk.pixbuf_new_from_file( modem_manager.root + ICON_PATH_DISCONNECT ) scaled_buf = pixbuf.scale_simple(ICON_SIZE,ICON_SIZE,gtk.gdk.INTERP_BILINEAR) imageicon_disconnect.set_from_pixbuf(scaled_buf) imageicon_reextractfirmware = gtk.Image() pixbuf = gtk.gdk.pixbuf_new_from_file( modem_manager.root + ICON_PATH_EXTRACTFIRMWARE ) scaled_buf = pixbuf.scale_simple(ICON_SIZE,ICON_SIZE,gtk.gdk.INTERP_BILINEAR) imageicon_reextractfirmware.set_from_pixbuf(scaled_buf) imageicon_config = gtk.Image() pixbuf = gtk.gdk.pixbuf_new_from_file( modem_manager.root + ICON_PATH_CONFIG ) scaled_buf = pixbuf.scale_simple(ICON_SIZE,ICON_SIZE,gtk.gdk.INTERP_BILINEAR) imageicon_config.set_from_pixbuf(scaled_buf) imageicon_about = gtk.Image() pixbuf = gtk.gdk.pixbuf_new_from_file( modem_manager.root + ICON_PATH_ABOUT ) scaled_buf = pixbuf.scale_simple(ICON_SIZE,ICON_SIZE,gtk.gdk.INTERP_BILINEAR) imageicon_about.set_from_pixbuf(scaled_buf) imageicon_exit = gtk.Image() pixbuf = gtk.gdk.pixbuf_new_from_file( modem_manager.root + ICON_PATH_EXIT ) scaled_buf = pixbuf.scale_simple(ICON_SIZE,ICON_SIZE,gtk.gdk.INTERP_BILINEAR) imageicon_exit.set_from_pixbuf(scaled_buf) # Create menu items item_connect = gtk.ImageMenuItem( modem_manager.lang.get_string("POPUP_MENU_CONNECT"), gtk.TRUE) item_connect.set_image(imageicon_connect) item_disconnect = gtk.ImageMenuItem( modem_manager.lang.get_string("POPUP_MENU_DISCONNECT"), gtk.TRUE) item_disconnect.set_image(imageicon_disconnect) item_reextractfirmware = gtk.ImageMenuItem( modem_manager.lang.get_string("POPUP_MENU_REEX_FIRM") , gtk.TRUE) item_reextractfirmware.set_image(imageicon_reextractfirmware) item_config = gtk.ImageMenuItem( modem_manager.lang.get_string("POPUP_MENU_CONFIG") , gtk.TRUE) item_config.set_image(imageicon_config) item_about = gtk.ImageMenuItem( modem_manager.lang.get_string("POPUP_MENU_ABOUT") , gtk.TRUE) item_about.set_image(imageicon_about) item_exit = gtk.ImageMenuItem(modem_manager.lang.get_string("POPUP_MENU_EXIT"), gtk.TRUE) item_exit.set_image(imageicon_exit) # Connect the events item_connect.connect( 'activate', modem_manager.doConnectEvent) item_disconnect.connect( 'activate', modem_manager.doDisconnectEvent) item_reextractfirmware.connect( 'activate', modem_manager.installFirmwareEvent) item_config.connect( 'activate', modem_manager.showConfigWindowEvent) item_about.connect( 'activate', modem_manager.showAboutWindowEvent) item_exit.connect( 'activate', modem_manager.exit) # Create the menu self.menu = gtk.Menu() # Append menu items to the menu self.menu.append( item_connect) self.menu.append( item_disconnect) self.menu.append( gtk.SeparatorMenuItem()) self.menu.append( item_reextractfirmware) self.menu.append( item_config) self.menu.append( gtk.SeparatorMenuItem()) self.menu.append( item_about) self.menu.append( item_exit) self.menu.show_all() return