def __init__(self, content=""): ''' Initialize InputEntry class. ''' # Init. gtk.VBox.__init__(self) clean_button = CleanButton() clean_button.connect("clicked", self.on_clean_clicked) self.entry = Entry(content, place_holder=_("Need some music? Find it here...")) entry_align = gtk.Alignment() entry_align.set(0.5, 0.5, 1, 1) entry_align.add(self.entry) clean_box = gtk.HBox(spacing=5) clean_box.pack_start(entry_align, True, True) self.clean_button_align = set_widget_gravity(clean_button, gravity=(0.5, 0.5, 0, 0), paddings=(0, 0, 0, 5)) self.clean_button_align.set_no_show_all(True) clean_box.pack_start(self.clean_button_align, False, False) self.add(clean_box) self.entry.connect("press-return", self.__emit_enter_signal) self.entry.connect("changed", self.__on_entry_changed) self.connect("expose-event", self.expose_input_entry)
def double_click(self, widget, item, column): if not item.is_select: return #if not item.clicked: #return if not column in item.ENTRY_COLUMN: return if item.entry: item.entry.grab_focus() return item.get_buffer(column) item.entry_buffer.set_property('cursor-visible', True) hbox = gtk.HBox(False) align = gtk.Alignment(0, 0, 1, 1) entry = Entry() entry.set_data("item", item) entry.set_data("button_press", False) entry.set_buffer(item.entry_buffer) width = item.get_column_widths()[column] if width >= 0: entry.set_size_request(item.get_column_widths()[column]-4, 0) entry.connect("press-return", lambda w: hbox.destroy()) entry.connect("destroy", self.edit_done, hbox, item) entry.connect_after("focus-in-event", self.entry_focus_changed, item) entry.connect_after("focus-out-event", self.entry_focus_changed, item) self.pack_start(hbox, False, False) self.set_data("entry_widget", entry) hbox.pack_start(entry, False, False) hbox.pack_start(align) hbox.show_all() entry.set_can_focus(True) entry.grab_focus() entry.select_all() item.entry = entry