miércoles, 15 de diciembre de 2010

Cómo hacer nuetros propios "indicators".

Fuente: Ubuntulife

Es un ejemplo muy sencillo de como crear un indicador, y asociarle un menú. En el ejemplo se crean 5 elementos en el menú. Uno para lanzar una aplicación externa (gedit en este caso), para salir, y otros tres que son un ejemplo de como crear un elemento de menú de tipo radio, check o imagen.

#! /usr/bin/python

#::::::::::::::::::::::::::::::::
# Ejemplo de uso de AppIndicator
#::::::::::::::::::::::::::::::::

import gobject
import gtk
import appindicator
import os

# Acciones que se ejecutan cuando pulse algun elemento del menu
def action1_clicked(widget,data=None):
    print "Lanzando gedit..."
    os.system("gedit &")

def action2_clicked(widget,data=None):
    print "Salir.."
    exit();

def quit(widget, data=None):
    gtk.main_quit()

# Codigo principal
if __name__ == "__main__":

    # Creo el indicador
    ind = appindicator.Indicator ("example-simple-client", "indicator-messages", appindicator.CATEGORY_APPLICATION_STATUS)
    ind.set_status (appindicator.STATUS_ACTIVE)
    ind.set_attention_icon ("indicator-messages-new")
    # Icono para el indicador
    ind.set_icon("distributor-logo")

    # creo un menu
    menu = gtk.Menu()

    # Empiezo a crear elementos para el menu

    # primer elemento (sera de tipo normal)
    # texto
    item = "Lanzar GEDIT..."
    # creo elemento de menu
    menu_item = gtk.MenuItem(item)
    # al pulsarlo le asocio que ejecute "action1"
    menu_item.connect("activate", action1_clicked)
    # Lo asocio al menu
    menu.append(menu_item)

    # Parecido para el item 2 del menu
    item2 = "Salir"
    menu_item2 = gtk.MenuItem(item2)
    # al pulsarlo le asocio que ejecute la "action2"
    menu_item2.connect("activate", action2_clicked)
    menu.append(menu_item2)

    # Aqui creo el item 3 pero sera de tipo check
    check = gtk.CheckMenuItem("Check Menu Item")
    menu.append(check)

    # Aqui creo el item 4 pero sera de tipo radio
    radio = gtk.RadioMenuItem(None, "Radio Menu Item")
    menu.append(radio)

    # Aqui creo el item 5 pero sera una imagen
    image = gtk.ImageMenuItem(gtk.STOCK_QUIT)
    image.connect("activate", quit)
    menu.append(image)

    # hago visibles los elementos del menu
    menu_item.show()
    menu_item2.show();
    check.show();
    radio.show();
    image.show();

    # Asocio el menu al indicador
    ind.set_menu(menu)

    # Ejecuto el codigo principal
    gtk.main()

No hay comentarios:

Publicar un comentario