Advertisement
pablokal

image_desklet

Jun 29th, 2012
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.64 KB | None | 0 0
  1. #!/usr/bin/python2
  2.  
  3. ## Thanks to : ## Lucas Rocha - http://blogs.gnome.org/lucasr/
  4.  
  5. import gtk
  6. import os
  7. import random
  8. import mimetypes
  9. import gobject
  10.  
  11. ## Images directory
  12. IMG_DIR = '/home/paul/Afbeeldingen/image_desklet'
  13.  
  14. ## Time between change ( in sec )
  15. TIMER = 100000
  16.  
  17. ## Background color : HTML Color or None
  18. BG_COLOR = "#202020"
  19.  
  20.  
  21. ## Position on desktop
  22. POS_X = 1200
  23. POS_Y = 550
  24.  
  25. ## Image size
  26. WIDTH = 374
  27. HEIGHT = 520
  28.  
  29. ## Show a border :  True or False
  30. SHOW_BORDER = False
  31.  
  32. class App():
  33. #-----------------------------------------------------------------------
  34.     def __init__(self):
  35.         self.window = gtk.Window() ## gtk.WINDOW_TOPLEVEL)
  36.         self.window.add_events(gtk.gdk.BUTTON_PRESS_MASK)
  37.         self.window.connect("destroy", gtk.main_quit)
  38.         self.window.connect("button_press_event", self.onClick)
  39.         self.window.stick()
  40.         self.window.set_decorated(False)
  41.         self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DESKTOP)
  42.         self.window.set_skip_taskbar_hint(True)
  43.         if SHOW_BORDER:
  44.             self.window.set_border_width(1)
  45.         else:
  46.             self.window.set_border_width(0)
  47.         if BG_COLOR:
  48.             self.window.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse(BG_COLOR))
  49.         self.img = gtk.Image()
  50.         dir_items = os.listdir(IMG_DIR)
  51.         self.items = []
  52.         for item in dir_items:
  53.             mimetype = mimetypes.guess_type(item)[0]
  54.             if mimetype and mimetype.split('/')[0] == 'image':
  55.                 self.items.append(os.path.join(IMG_DIR, item))
  56.         self.img.set_size_request(WIDTH,HEIGHT)
  57.         self.set_image()
  58.         self.img.show()
  59.         self.window.add(self.img)
  60.         gobject.timeout_add(TIMER*1000, self.set_image)
  61.         self.popupMenu = gtk.Menu()
  62.         menuPopup = gtk.ImageMenuItem (gtk.STOCK_QUIT)
  63.         menuPopup.connect("activate", gtk.main_quit)
  64.         self.popupMenu.add(menuPopup)
  65.         self.popupMenu.show_all()
  66.         self.window.move(POS_X, POS_Y)
  67.         self.window.show_all()
  68.  
  69.     def set_image(self, widget=None, event=None):
  70.         item = random.randint(0, len(self.items)-1)
  71.         pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(self.items[item],WIDTH,HEIGHT)
  72.         self.img.set_from_pixbuf(pixbuf)
  73.         return True
  74.  
  75.     def onClick(self, widget, event, data=None):
  76.         if event.button==3: # right click
  77.             self.popupMenu.popup(None, None, None, event.button, event.time)
  78.         elif event.button==1: # left click
  79.             self.set_image()
  80.  
  81.     def run(self):
  82.         gtk.main()
  83.  
  84. if __name__ == "__main__":
  85.     my_image = App()
  86.     my_image.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement