Advertisement
Guest User

moox-gtk2

a guest
Mar 18th, 2012
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.93 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3.  
  4. import os, sys
  5. import gtk
  6.  
  7. BOFFS = 101 # offset id bottoni
  8.  
  9. def getmoodirs():
  10.     global homedir, moodir
  11.  
  12.     homedir = os.path.abspath(os.path.dirname(sys.argv[0]))
  13.     moodir = os.path.join(homedir, 'moo')
  14.  
  15. def makemoo():
  16.     global moodir, objlst
  17.  
  18.     nostart = ['.', 'no-list']
  19.  
  20.     objlst = sorted(os.listdir(moodir), key = str.lower)
  21.     if len(objlst) == 0:
  22.         return False
  23.  
  24.     oklist =[] # start
  25.     for ele in objlst:
  26.         no = False
  27.         for c in nostart:
  28.             no = ele[:len(c)] == c
  29.             if no: break
  30.         if not no:
  31.             oklist.append(ele)
  32.     if len(oklist) == 0:
  33.         return False
  34.  
  35.     if len(objlst) > 20:
  36.         objlst = objlst[:20]
  37.     return True
  38.  
  39. class mooWindow(gtk.Window):
  40.     def __init__(self):
  41.         gtk.Window.__init__(self)
  42.  
  43.         global homedir, moodir
  44.         global objlst
  45.  
  46.         tit = os.path.basename(homedir)
  47.         self.set_title(tit)
  48.         self.set_icon_from_file('moo.png')
  49.         self.set_position(gtk.WIN_POS_CENTER)
  50.         self.set_resizable(False)
  51.  
  52.         self.fixed = gtk.Fixed()
  53.  
  54.         for c in range(len(objlst)):
  55.             txt = objlst[c]
  56.             if len(txt) > 32:
  57.                 txt = txt[:31]
  58.             self.btn = gtk.Button(txt)
  59.             self.btn.set_size_request(240, 50)
  60.             self.btn.connect("clicked", self.OnClick, BOFFS + c)
  61.             self.fixed.put(self.btn, 0, 40 * c)
  62.  
  63.         h = 10 + len(objlst) * 40
  64.         self.set_size_request(240, h)
  65.         self.add(self.fixed)
  66.  
  67.     def OnClick(self, widget, bid):
  68.         global objlst, moodir
  69.  
  70.         w = objlst[bid - BOFFS]
  71.         wp = os.path.join(moodir, w)
  72.         if os.path.isdir(wp):
  73.             os.system('totem "%s" &' % wp)
  74.  
  75. # main
  76. getmoodirs()
  77. if not makemoo():
  78.     sys.exit(2)
  79.  
  80. win = mooWindow()
  81. win.connect("destroy", gtk.main_quit)
  82. win.show_all()
  83. gtk.main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement