home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / share / system-config-printer / ToolbarSearchEntry.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2009-10-12  |  6.1 KB  |  165 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import gobject
  5. import gtk
  6.  
  7. try:
  8.     import sexy
  9.     has_sexy = True
  10. except:
  11.     has_sexy = False
  12.  
  13. import HIG
  14. from gettext import gettext as _
  15.  
  16. class ToolbarSearchEntry(gtk.HBox):
  17.     __gproperties__ = {
  18.         'search_timeout': (gobject.TYPE_UINT, 'search timeout', 'search signal rate limiter (in ms)', 0, 5000, 300, gobject.PARAM_READWRITE) }
  19.     __gsignals__ = {
  20.         'search': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, [
  21.             gobject.TYPE_STRING]),
  22.         'activate': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, []) }
  23.     
  24.     def __init__(self):
  25.         self.sexy = has_sexy
  26.         self.entry = None
  27.         self.timeout = 0
  28.         self.is_a11y_theme = False
  29.         self.search_timeout = 300
  30.         self.menu = None
  31.         gtk.HBox.__gobject_init__(self)
  32.         self.set_spacing(HIG.PAD_NORMAL)
  33.         self.set_border_width(HIG.PAD_NORMAL)
  34.         settings = gtk.settings_get_for_screen(self.get_screen())
  35.         theme = settings.get_property('gtk-theme-name')
  36.         if not theme == 'HighContrast':
  37.             pass
  38.         self.is_a11y_theme = theme == 'LowContrast'
  39.         label = gtk.Label()
  40.         label.set_text_with_mnemonic(_('_Filter:'))
  41.         label.set_justify(gtk.JUSTIFY_RIGHT)
  42.         self.pack_start(label, False, True, 0)
  43.         if self.sexy:
  44.             self.entry = sexy.IconEntry()
  45.             self.entry.add_clear_button()
  46.             self.entry.set_icon(sexy.ICON_ENTRY_PRIMARY, gtk.image_new_from_stock(gtk.STOCK_FIND, gtk.ICON_SIZE_MENU))
  47.         else:
  48.             self.entry = gtk.Entry()
  49.         label.set_mnemonic_widget(self.entry)
  50.         self.pack_start(self.entry, True, True, 0)
  51.         self.entry.connect('changed', self.on_changed)
  52.         self.entry.connect('focus_out_event', self.on_focus_out_event)
  53.         self.entry.connect('activate', self.on_activate)
  54.         if self.sexy:
  55.             self.entry.connect('icon-pressed', self.on_icon_pressed)
  56.         
  57.  
  58.     
  59.     def do_get_property(self, property):
  60.         if property.name == 'search_timeout':
  61.             return self.search_timeout
  62.         raise AttributeError, 'unknown property %s' % property.name
  63.  
  64.     
  65.     def do_set_property(self, property, value):
  66.         if property.name == 'search_timeout':
  67.             self.search_timeout = value
  68.         else:
  69.             raise AttributeError, 'unknown property %s' % property.name
  70.         return property.name == 'search_timeout'
  71.  
  72.     
  73.     def clear(self):
  74.         if self.timeout != 0:
  75.             gobject.source_remove(self.timeout)
  76.             self.timeout = 0
  77.         
  78.         self.entry.set_text('')
  79.  
  80.     
  81.     def get_text(self):
  82.         return self.entry.get_text()
  83.  
  84.     
  85.     def set_text(self, text):
  86.         self.entry.set_text(text)
  87.  
  88.     
  89.     def check_style(self):
  90.         if self.is_a11y_theme:
  91.             return None
  92.         bg_colour = gtk.gdk.color_parse('#f7f7be')
  93.         fg_colour = gtk.gdk.color_parse('#000000')
  94.         text = self.entry.get_text()
  95.         if len(text) > 0:
  96.             self.entry.modify_text(gtk.STATE_NORMAL, fg_colour)
  97.             self.entry.modify_base(gtk.STATE_NORMAL, bg_colour)
  98.         else:
  99.             self.entry.modify_text(gtk.STATE_NORMAL, None)
  100.             self.entry.modify_base(gtk.STATE_NORMAL, None)
  101.         self.queue_draw()
  102.  
  103.     
  104.     def on_changed(self, UNUSED):
  105.         self.check_style()
  106.         if self.timeout != 0:
  107.             gobject.source_remove(self.timeout)
  108.             self.timeout = 0
  109.         
  110.         if len(self.entry.get_text()) > 0:
  111.             self.timeout = gobject.timeout_add(self.search_timeout, self.on_search_timeout)
  112.         else:
  113.             self.on_search_timeout()
  114.  
  115.     
  116.     def on_search_timeout(self):
  117.         self.emit('search', self.entry.get_text())
  118.         self.timeout = 0
  119.         return False
  120.  
  121.     
  122.     def on_focus_out_event(self, UNUSED_widget, UNUSED_event):
  123.         if self.timeout == 0:
  124.             return False
  125.         gobject.source_remove(self.timeout)
  126.         self.timeout = 0
  127.         self.emit('search', self.entry.get_text())
  128.         return False
  129.  
  130.     
  131.     def searching(self):
  132.         return self.entry.get_text() != ''
  133.  
  134.     
  135.     def on_activate(self, UNUSED_entry):
  136.         self.emit('search', self.entry.get_text())
  137.  
  138.     
  139.     def grab_focus(self):
  140.         self.entry.grab_focus()
  141.  
  142.     
  143.     def set_drop_down_menu(self, menu):
  144.         if not self.sexy:
  145.             return None
  146.         if menu:
  147.             self.entry.set_icon_highlight(sexy.ICON_ENTRY_PRIMARY, True)
  148.             self.menu = menu
  149.         else:
  150.             self.entry.set_icon_highlight(sexy.ICON_ENTRY_PRIMARY, False)
  151.             self.menu = None
  152.  
  153.     
  154.     def on_icon_pressed(self, UNUSED, icon_position, button):
  155.         if not self.sexy:
  156.             return None
  157.         if icon_position != sexy.ICON_ENTRY_PRIMARY:
  158.             return None
  159.         if not self.menu:
  160.             return None
  161.         self.menu.popup(None, None, None, button, 0x0L)
  162.  
  163.  
  164. gobject.type_register(ToolbarSearchEntry)
  165.