def __init__(self, factory: callable, *args, **kwargs): super().__init__(*args, **kwargs) # This is the factory of the DetailedList implementation. self.factory = factory self.icon = self.get_icon(self.interface, self.factory) text = Gtk.Label(xalign=0) # The three line below are necessary for right to left text. text.set_hexpand(True) text.set_ellipsize(Pango.EllipsizeMode.END) text.set_margin_end(12) text_markup = self.markup(self.interface) text.set_markup(text_markup) content = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) vbox.pack_start(text, True, True, 0) if self.icon is not None: content.pack_start(self.icon, False, False, 6) content.pack_start(vbox, True, True, 5) self.add_content(content) self._delete_button = Gtk.Button.new_from_icon_name( "user-trash-symbolic", Gtk.IconSize.BUTTON) self._delete_button.connect("clicked", self.gtk_on_delete_clicked) self.add_button(self._delete_button)
def __init__(self, dl, *args, **kwargs): super().__init__(*args, **kwargs) self._dl = dl self._content_name = "content" self._buttons_name = "buttons" self.stack = Gtk.Stack() self.content = Gtk.Box() self.buttons = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) self.buttons_hbox = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) self.buttons.pack_start(self.buttons_hbox, True, False, 0) self.stack.add_named(self.content, self._content_name) self.stack.add_named(self.buttons, self._buttons_name) self.add(self.stack)