3 # vim: sw=4 ts=4 expandtab ai
5 #=== Localization =============================================================
11 os.environ['LANGUAGE'] = 'ru' ###
14 # Meaning ru/LC_MESSAGES/findit.mo is in current dir (sys.path[0])
15 # For /usr/share/locale write `gettext.bindtextdomain('findit')`:
16 gettext.bindtextdomain('findit', sys.path[0])
17 gettext.textdomain('findit')
20 # Comment out before use pygettext
24 #==============================================================================
26 def size_hum_read(size):
27 """Return string with file size in b or Kb or Mb or Gb or Tb."""
28 for i, unit in enumerate(['%d b', '%.1f Kb', '%.2f Mb', '%.3f Gb', '%.4f Tb']):
29 if size < 1024**(i+1):
30 return unit % (size/1024.**i)
33 #==============================================================================
35 class NotebookWCloseBtns(object):
36 """gtk.Notebook widget with close buttons."""
42 self.notebook = gtk.Notebook()
44 def new_tab(self, child, title, noclose=False):
45 self.notebook.append_page(child)
47 label = self.create_tab_label(child, title, noclose)
49 self.notebook.set_tab_label(child, label)
51 pages = self.notebook.get_n_pages()
52 self.notebook.set_current_page(pages)
54 def create_tab_label(self, child, title, noclose):
55 label = gtk.Label(title)
58 image.set_from_stock(gtk.STOCK_CLOSE, gtk.ICON_SIZE_MENU)
60 close_btn = gtk.Button()
61 close_btn.connect('clicked', self.close_tab, child)
62 close_btn.set_relief(gtk.RELIEF_NONE)
64 close_btn.set_sensitive(False)
66 close_btn.set_image(image)
69 hbox.pack_start(label, True, True)
70 hbox.pack_end(close_btn, False, False)
73 def close_tab(self, widget, child):
74 pagenum = self.notebook.page_num(child)
76 self.notebook.remove_page(pagenum)