# -*-coding: utf-8 -*-
# vim: sw=4 ts=4 expandtab ai
+#=== Localization =============================================================
+
+import sys
+import gettext
+import os
+
+os.environ['LANGUAGE'] = 'ru' ###
+
+try:
+ # Meaning ru/LC_MESSAGES/findit.mo is in current dir (sys.path[0])
+ # For /usr/share/locale write `gettext.bindtextdomain('findit')`:
+ gettext.bindtextdomain('findit', sys.path[0])
+ gettext.textdomain('findit')
+ _ = gettext.gettext
+except IOError:
+ # Comment out before use pygettext
+ def _(text):
+ return text
+
+#==============================================================================
+
def size_hum_read(size):
- """Return string with file size in b or Kb or Mb or Gb or Tb."""
- for i, unit in enumerate(['%d b', '%.1f Kb', '%.2f Mb', '%.3f Gb', '%.4f Tb']):
- if size < 1024**(i+1):
- return unit % (size/1024.**i)
- return '>1024 Tb'
+ """Return string with file size in b or Kb or Mb or Gb or Tb."""
+ for i, unit in enumerate(['%d b', '%.1f Kb', '%.2f Mb', '%.3f Gb', '%.4f Tb']):
+ if size < 1024**(i+1):
+ return unit % (size/1024.**i)
+ return '>1024 Tb'
+
+#==============================================================================
+
+class NotebookWCloseBtns(object):
+ """gtk.Notebook widget with close buttons."""
+
+ def __init__(self):
+ import gtk
+ global gtk
+
+ self.notebook = gtk.Notebook()
+
+ def new_tab(self, child, title, noclose=False):
+ self.notebook.append_page(child)
+
+ label = self.create_tab_label(child, title, noclose)
+ label.show_all()
+ self.notebook.set_tab_label(child, label)
+
+ pages = self.notebook.get_n_pages()
+ self.notebook.set_current_page(pages)
+
+ def create_tab_label(self, child, title, noclose):
+ label = gtk.Label(title)
+
+ image = gtk.Image()
+ image.set_from_stock(gtk.STOCK_CLOSE, gtk.ICON_SIZE_MENU)
+
+ close_btn = gtk.Button()
+ close_btn.connect('clicked', self.close_tab, child)
+ close_btn.set_relief(gtk.RELIEF_NONE)
+ if noclose:
+ close_btn.set_sensitive(False)
+
+ close_btn.set_image(image)
+
+ hbox = gtk.HBox()
+ hbox.pack_start(label, True, True)
+ hbox.pack_end(close_btn, False, False)
+ return hbox
+
+ def close_tab(self, widget, child):
+ pagenum = self.notebook.page_num(child)
+ if pagenum != -1:
+ self.notebook.remove_page(pagenum)
+ child.destroy()