def init_ui(self): BasicDialog.init_ui(self) label1 = Gtk.Label(_('Password') + ':') label1.set_alignment(0, .5) self.grid.attach(label1, 0, 0, 1, 1) self.entry = Gtk.Entry() self.entry.set_tooltip_text(_('Set password')) self.grid.attach(self.entry, 1, 0, 1, 1) self.image = Gtk.Image() if comun.is_package(): self.image = Gtk.Image.new_from_icon_name( 'pdf-tools-password-hide', Gtk.IconSize.BUTTON) else: self.image = Gtk.Image.new_from_file( os.path.join(comun.ICONDIR, 'pdf-tools-password-hide.svg')) self.entry.set_visibility(False) button_visibility = Gtk.Button() button_visibility.add(self.image) button_visibility.connect('clicked', self.on_button_visibility_clicked) self.grid.attach(button_visibility, 2, 0, 1, 1) self.show_all()
def init_ui(self): BasicDialog.init_ui(self) label1 = Gtk.Label(_('Image resolution') + ':') label1.set_alignment(0, .5) self.grid.attach(label1, 0, 0, 1, 1) label2 = Gtk.Label(_('Append to file') + ':') label2.set_alignment(0, .5) self.grid.attach(label2, 0, 1, 1, 1) self.dpi_entry = Gtk.Entry() self.dpi_entry.set_tooltip_text(_('Set dpi to reduce file')) self.dpi_entry.set_text('100') self.grid.attach(self.dpi_entry, 1, 0, 1, 1) self.dpi_entry.set_activates_default(True) self.dpi_entry.grab_focus() self.append_entry = Gtk.Entry() self.append_entry.set_tooltip_text(_('Append to file to create output filename')) self.append_entry.set_text('_reduced') self.grid.attach(self.append_entry, 1, 1, 1, 1) self.show_all()
def init_ui(self): BasicDialog.init_ui(self) label = Gtk.Label(_('Pages') + ':') label.set_tooltip_text(_('Type page number and/or page\nranges\ separated by commas\ncounting from start of the\ndocument ej. 1,4,6-9')) label.set_alignment(0, .5) self.grid.attach(label, 0, 0, 1, 1) self.entry1 = Gtk.Entry() self.entry1.set_tooltip_text(_('Type page number and/or page\nranges\ separated by commas\ncounting from start of the\ndocument ej. 1,4,6-9')) self.grid.attach(self.entry1, 1, 0, 1, 1) if self.afile is not None: label = Gtk.Label(_('Output file') + ':') label.set_tooltip_text(_('Select the output file')) label.set_alignment(0, .5) self.grid.attach(label, 0, 1, 1, 1) self.output_file = Gtk.Button.new_with_label(self.afile) self.output_file.connect('clicked', self.on_button_output_file_clicked, self.main_window) self.grid.attach(self.output_file, 1, 1, 1, 1) self.show_all()
def init_ui(self): BasicDialog.init_ui(self) options = Gtk.ListStore(str) for extension in MIMETYPES_IMAGE.keys(): if extension != _('ALL'): options.append([extension]) label = Gtk.Label(_('Convert to') + ':') self.grid.attach(label, 0, 0, 1, 1) self.convert_to = Gtk.ComboBox.new_with_model_and_entry(options) self.convert_to.set_entry_text_column(0) self.convert_to.set_active(0) self.grid.attach(self.convert_to, 1, 0, 1, 1)
def init_ui(self): BasicDialog.init_ui(self) self.label = Gtk.Label() self.grid.attach(self.label, 0, 0, 1, 1) if self.text_label is not None: self.label.set_label(self.text_label) self.progressbar = Gtk.ProgressBar() self.progressbar.set_size_request(300, 0) self.grid.attach(self.progressbar, 0, 1, 1, 1) button_stop = Gtk.Button() button_stop.set_size_request(40, 40) button_stop.set_image( Gtk.Image.new_from_stock(Gtk.STOCK_STOP, Gtk.IconSize.BUTTON)) button_stop.connect('clicked', self.on_button_stop_clicked) self.grid.attach(button_stop, 1, 0, 1, 3)
def init_ui(self): BasicDialog.init_ui(self) self.scrolledwindow1 = Gtk.ScrolledWindow() self.scrolledwindow1.set_size_request(630, 630) self.grid.attach(self.scrolledwindow1, 0, 0, 1, 1) self.viewport1 = MiniView() self.scrolledwindow1.add(self.viewport1) self.pages = {} self.scale = 100 self.init_headerbar() if self.filename is not None: uri = "file://" + self.filename self.document = Poppler.Document.new_from_file(uri, None) self.hb.set_subtitle(os.path.basename(self.filename)) self.set_page(0) self.show_all()
def init_ui(self): BasicDialog.init_ui(self) label1 = Gtk.Label(_('Paper size') + ':') label1.set_tooltip_text(_('Select the size of the output file')) label1.set_alignment(0, .5) self.grid.attach(label1, 0, 0, 1, 1) label2 = Gtk.Label(_('Orientation') + ':') label2.set_tooltip_text(_('Select the orientation of the page')) label2.set_alignment(0, .5) self.grid.attach(label2, 0, 1, 1, 1) label3 = Gtk.Label(_('Margen') + ':') label3.set_tooltip_text(_('Select the size of the margin')) label3.set_alignment(0, .5) self.grid.attach(label3, 0, 2, 1, 1) label4 = Gtk.Label(_('Output file') + ':') label4.set_tooltip_text(_('Select the output file')) label4.set_alignment(0, .5) self.grid.attach(label4, 0, 3, 1, 1) liststore = Gtk.ListStore(str, float, float) liststore.append([_('A0'), 2383.9, 3370.4]) liststore.append([_('A1'), 1683.8, 2383.9]) liststore.append([_('A2'), 1190.6, 1683.8]) liststore.append([_('A3'), 841.9, 1190.6]) liststore.append([_('A4'), 595.3, 841.9]) liststore.append([_('A5'), 419.5, 595.3]) liststore.append([_('A6'), 297.6, 419.5]) liststore.append([_('A7'), 209.8, 297.6]) liststore.append([_('A8'), 147.4, 209.8]) liststore.append([_('A9'), 104.9, 147.4]) liststore.append([_('A10'), 73.7, 104.9]) liststore.append([_('B0'), 2834.6, 73.7]) liststore.append([_('B1'), 2004.1, 2834.6]) liststore.append([_('B2'), 1417.3, 2004.1]) liststore.append([_('B3'), 1000.6, 1417.3]) liststore.append([_('B4'), 708.7, 1000.6]) liststore.append([_('B5'), 498.9, 708.7]) liststore.append([_('B6'), 354.3, 498.9]) liststore.append([_('B7'), 249.4, 354.3]) liststore.append([_('B8'), 175.7, 249.4]) liststore.append([_('B9'), 124.7, 175.7]) liststore.append([_('B10'), 87.9, 124.7]) liststore.append([_('Letter (8 1/2x11)'), 612.0, 792.0]) liststore.append([_('Note (8 1/2x11)'), 612.0, 792.0]) liststore.append([_('Legal (8 1/2x14)'), 612.0, 1008.0]) liststore.append([_('Executive (8 1/4x10 1/2)'), 522.0, 756.0]) liststore.append([_('Halfetter (5 1/2x8 1/2)'), 396.0, 612.0]) liststore.append([_('Halfexecutive (5 1/4x7 1/4)'), 378.0, 522.0]) liststore.append([_('11x17 (11x17)'), 792.0, 1224.0]) liststore.append([_('Statement (5 1/2x8 1/2)'), 396.0, 612.0]) liststore.append([_('Folio (8 1/2x13)'), 612.0, 936.0]) liststore.append([_('10x14 (10x14)'), 720.0, 1008.0]) liststore.append([_('Ledger (17x11)'), 1224.0, 792.0]) liststore.append([_('Tabloid (11x17)'), 792.0, 1224.0]) self.entry1 = Gtk.ComboBox.new_with_model(model=liststore) renderer_text = Gtk.CellRendererText() self.entry1.pack_start(renderer_text, True) self.entry1.add_attribute(renderer_text, "text", 0) self.entry1.set_active(0) self.grid.attach(self.entry1, 1, 1, 1, 1) liststore = Gtk.ListStore(str) liststore.append([_('Vertical')]) liststore.append([_('Horizontal')]) self.entry2 = Gtk.ComboBox.new_with_model(model=liststore) renderer_text = Gtk.CellRendererText() self.entry2.pack_start(renderer_text, True) self.entry2.add_attribute(renderer_text, "text", 0) self.entry2.set_active(0) self.grid.attach(self.entry2, 1, 2, 1, 1) liststore = Gtk.ListStore(str) liststore.append([_('No margin')]) liststore.append([_('small margin')]) liststore.append([_('big margin')]) self.entry3 = Gtk.ComboBox.new_with_model(model=liststore) renderer_text = Gtk.CellRendererText() self.entry3.pack_start(renderer_text, True) self.entry3.add_attribute(renderer_text, "text", 0) self.entry3.set_active(0) self.grid.attach(self.entry3, 1, 3, 1, 1) self.output_file = Gtk.Button.new_with_label(self.afile) self.output_file.connect('clicked', self.on_button_output_file_clicked, self.main_window) self.grid.attach(self.output_file, 0, 4, 2, 1) hbox = Gtk.HBox() self.grid.attach(hbox, 0, 5, 2, 8) # vbox0.pack_start(hbox, True, True, 0) scrolledwindow = Gtk.ScrolledWindow() scrolledwindow.set_policy( Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) scrolledwindow.set_shadow_type(Gtk.ShadowType.ETCHED_OUT) scrolledwindow.set_size_request(450, 300) hbox.pack_start(scrolledwindow, True, True, 0) liststore = Gtk.ListStore(GdkPixbuf.Pixbuf, str, str) self.iconview = Gtk.IconView.new() self.iconview.set_model(liststore) self.iconview.set_pixbuf_column(0) self.iconview.set_text_column(1) self.iconview.set_item_width(-1) self.iconview.set_reorderable(True) scrolledwindow.add(self.iconview) vbox2 = Gtk.VBox(spacing=0) vbox2.set_border_width(5) hbox.pack_start(vbox2, False, False, 0) self.button1 = Gtk.Button() self.button1.set_size_request(40, 40) self.button1.set_tooltip_text(_('Up')) self.button1.set_image( Gtk.Image.new_from_stock(Gtk.STOCK_GO_UP, Gtk.IconSize.BUTTON)) self.button1.connect('clicked', self.on_button_up_clicked) vbox2.pack_start(self.button1, False, False, 0) self.button2 = Gtk.Button() self.button2.set_size_request(40, 40) self.button2.set_tooltip_text(_('Down')) self.button2.set_image( Gtk.Image.new_from_stock(Gtk.STOCK_GO_DOWN, Gtk.IconSize.BUTTON)) self.button2.connect('clicked', self.on_button_down_clicked) vbox2.pack_start(self.button2, False, False, 0) self.button3 = Gtk.Button() self.button3.set_size_request(40, 40) self.button3.set_tooltip_text(_('Add')) self.button3.set_image( Gtk.Image.new_from_stock(Gtk.STOCK_ADD, Gtk.IconSize.BUTTON)) self.button3.connect('clicked', self.on_button_add_clicked) vbox2.pack_start(self.button3, False, False, 0) self.button4 = Gtk.Button() self.button4.set_size_request(40, 40) self.button4.set_tooltip_text(_('Remove')) self.button4.set_image( Gtk.Image.new_from_stock(Gtk.STOCK_REMOVE, Gtk.IconSize.BUTTON)) self.button4.connect('clicked', self.on_button_remove_clicked) vbox2.pack_start(self.button4, False, False, 0) if self.files: position = 0 model = self.iconview.get_model() for filename in self.files: pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(filename, 200, 200) if pixbuf is not None: position += 1 if self.iconview.get_item_width() < pixbuf.get_width(): self.iconview.set_item_width(pixbuf.get_width()) model.insert(position, [pixbuf, os.path.basename(filename), filename]) self.show_all()
def init_ui(self): BasicDialog.init_ui(self) label1 = Gtk.Label(_('Output file') + ':') label1.set_tooltip_text(_('Select the output file')) label1.set_alignment(0, .5) self.grid.attach(label1, 0, 0, 1, 1) self.output_file = Gtk.Button.new_with_label(self.afile) self.output_file.connect('clicked', self.on_button_output_file_clicked, self.main_window) self.grid.attach(self.output_file, 1, 0, 3, 1) hbox = Gtk.HBox() self.grid.attach(hbox, 0, 1, 4, 2) scrolledwindow = Gtk.ScrolledWindow() scrolledwindow.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) scrolledwindow.set_shadow_type(Gtk.ShadowType.ETCHED_OUT) scrolledwindow.set_size_request(700, 500) hbox.pack_start(scrolledwindow, True, True, 0) liststore = Gtk.ListStore(GdkPixbuf.Pixbuf, str, str) self.iconview = Gtk.IconView.new() self.iconview.set_model(liststore) self.iconview.set_pixbuf_column(0) self.iconview.set_text_column(1) self.iconview.set_item_width(-1) self.iconview.set_reorderable(True) scrolledwindow.add(self.iconview) vbox2 = Gtk.VBox(spacing=0) vbox2.set_border_width(5) hbox.pack_start(vbox2, False, False, 0) button1 = Gtk.Button() button1.set_size_request(40, 40) button1.set_tooltip_text(_('Up')) button1.set_image( Gtk.Image.new_from_stock(Gtk.STOCK_GO_UP, Gtk.IconSize.BUTTON)) button1.connect('clicked', self.on_button_up_clicked) vbox2.pack_start(button1, False, False, 0) button2 = Gtk.Button() button2.set_size_request(40, 40) button2.set_tooltip_text(_('Down')) button2.set_image( Gtk.Image.new_from_stock(Gtk.STOCK_GO_DOWN, Gtk.IconSize.BUTTON)) button2.connect('clicked', self.on_button_down_clicked) vbox2.pack_start(button2, False, False, 0) button3 = Gtk.Button() button3.set_size_request(40, 40) button3.set_tooltip_text(_('Add')) button3.set_image( Gtk.Image.new_from_stock(Gtk.STOCK_ADD, Gtk.IconSize.BUTTON)) button3.connect('clicked', self.on_button_add_clicked) vbox2.pack_start(button3, False, False, 0) button4 = Gtk.Button() button4.set_size_request(40, 40) button4.set_tooltip_text(_('Remove')) button4.set_image( Gtk.Image.new_from_stock(Gtk.STOCK_REMOVE, Gtk.IconSize.BUTTON)) button4.connect('clicked', self.on_button_remove_clicked) vbox2.pack_start(button4, False, False, 0) if self.files: position = 0 model = self.iconview.get_model() for filename in self.files: pixbuf = tools.get_pixbuf_from_pdf(filename, 200) if pixbuf is not None: position += 1 if self.iconview.get_item_width() < pixbuf.get_width(): self.iconview.set_item_width(pixbuf.get_width()) model.insert( position, [pixbuf, os.path.basename(filename), filename]) self.show_all()
def init_ui(self): BasicDialog.init_ui(self) label1 = Gtk.Label(_('Paper size') + ':') label1.set_alignment(0, .5) self.grid.attach(label1, 0, 0, 1, 1) label2 = Gtk.Label(_('Orientation') + ':') label2.set_alignment(0, .5) self.grid.attach(label2, 0, 1, 1, 1) label3 = Gtk.Label(_('Pages in Page') + ':') label3.set_alignment(0, .5) self.grid.attach(label3, 0, 2, 1, 1) label4 = Gtk.Label(_('by')) label4.set_alignment(.5, .5) self.grid.attach(label4, 2, 2, 1, 1) label5 = Gtk.Label(_('Sort') + ':') label5.set_alignment(0, .5) self.grid.attach(label5, 0, 4, 1, 1) label6 = Gtk.Label(_('Set the margin') + ':') label6.set_alignment(0, .5) self.grid.attach(label6, 0, 5, 1, 1) label7 = Gtk.Label(_('Append to file') + ':') label7.set_alignment(0, .5) self.grid.attach(label7, 0, 6, 1, 1) liststore = Gtk.ListStore(str, float, float) liststore.append([_('A0'), 2383.9, 3370.4]) liststore.append([_('A1'), 1683.8, 2383.9]) liststore.append([_('A2'), 1190.6, 1683.8]) liststore.append([_('A3'), 841.9, 1190.6]) liststore.append([_('A4'), 595.3, 841.9]) liststore.append([_('A5'), 419.5, 595.3]) liststore.append([_('A6'), 297.6, 419.5]) liststore.append([_('A7'), 209.8, 297.6]) liststore.append([_('A8'), 147.4, 209.8]) liststore.append([_('A9'), 104.9, 147.4]) liststore.append([_('A10'), 73.7, 104.9]) liststore.append([_('B0'), 2834.6, 73.7]) liststore.append([_('B1'), 2004.1, 2834.6]) liststore.append([_('B2'), 1417.3, 2004.1]) liststore.append([_('B3'), 1000.6, 1417.3]) liststore.append([_('B4'), 708.7, 1000.6]) liststore.append([_('B5'), 498.9, 708.7]) liststore.append([_('B6'), 354.3, 498.9]) liststore.append([_('B7'), 249.4, 354.3]) liststore.append([_('B8'), 175.7, 249.4]) liststore.append([_('B9'), 124.7, 175.7]) liststore.append([_('B10'), 87.9, 124.7]) liststore.append([_('Letter (8 1/2x11)'), 612.0, 792.0]) liststore.append([_('Note (8 1/2x11)'), 612.0, 792.0]) liststore.append([_('Legal (8 1/2x14)'), 612.0, 1008.0]) liststore.append([_('Executive (8 1/4x10 1/2)'), 522.0, 756.0]) liststore.append([_('Halfetter (5 1/2x8 1/2)'), 396.0, 612.0]) liststore.append([_('Halfexecutive (5 1/4x7 1/4)'), 378.0, 522.0]) liststore.append([_('11x17 (11x17)'), 792.0, 1224.0]) liststore.append([_('Statement (5 1/2x8 1/2)'), 396.0, 612.0]) liststore.append([_('Folio (8 1/2x13)'), 612.0, 936.0]) liststore.append([_('10x14 (10x14)'), 720.0, 1008.0]) liststore.append([_('Ledger (17x11)'), 1224.0, 792.0]) liststore.append([_('Tabloid (11x17)'), 792.0, 1224.0]) self.entry1 = Gtk.ComboBox.new_with_model(model=liststore) self.entry1.set_tooltip_text(_('Select the size of the output file')) renderer_text = Gtk.CellRendererText() self.entry1.pack_start(renderer_text, True) self.entry1.add_attribute(renderer_text, "text", 0) self.entry1.set_active(0) self.grid.attach(self.entry1, 1, 0, 4, 1) liststore = Gtk.ListStore(str) liststore.append([_('Vertical')]) liststore.append([_('Horizontal')]) self.entry2 = Gtk.ComboBox.new_with_model(model=liststore) self.entry2.set_tooltip_text(_('Select the orientation of the page')) renderer_text = Gtk.CellRendererText() self.entry2.pack_start(renderer_text, True) self.entry2.add_attribute(renderer_text, "text", 0) self.entry2.set_active(0) self.grid.attach(self.entry2, 1, 1, 4, 1) self.entry3 = Gtk.SpinButton() self.entry3.set_tooltip_text(_('Select how many pages in a page')) self.entry3.set_adjustment(Gtk.Adjustment(1, 1, 100, 1, 10, 10)) self.entry3.set_value(1) self.grid.attach(self.entry3, 1, 2, 1, 1) self.entry4 = Gtk.SpinButton() self.entry4.set_tooltip_text(_('rows by columns')) self.entry4.set_adjustment(Gtk.Adjustment(1, 1, 100, 1, 10, 10)) self.entry4.set_value(2) self.grid.attach(self.entry4, 3, 2, 1, 1) liststore = Gtk.ListStore(str) liststore.append([_('By rows')]) liststore.append([_('By columns')]) self.entry5 = Gtk.ComboBox.new_with_model(model=liststore) self.entry5.set_tooltip_text(_('Select the combination sort')) renderer_text = Gtk.CellRendererText() self.entry5.pack_start(renderer_text, True) self.entry5.add_attribute(renderer_text, "text", 0) self.entry5.set_active(0) self.grid.attach(self.entry5, 1, 4, 4, 1) self.entry6 = Gtk.SpinButton() self.entry6.set_tooltip_text(_('The margin to the page in mm')) self.entry6.set_adjustment(Gtk.Adjustment(0, 0, 100, 1, 10, 10)) self.entry6.set_value(0) self.grid.attach(self.entry6, 1, 5, 1, 1) self.extension = Gtk.Entry() self.extension.set_tooltip_text(_( 'Append to file to create output filename')) self.extension.set_text(_('_combined')) self.grid.attach(self.extension, 1, 6, 4, 1)
def init_ui(self): BasicDialog.init_ui(self) label1 = Gtk.Label(_('Paper size') + ':') label1.set_alignment(0, 0.5) self.grid.attach(label1, 0, 0, 1, 1) label2 = Gtk.Label(_('Orientation') + ':') label2.set_alignment(0, .5) self.grid.attach(label2, 0, 1, 1, 1) label3 = Gtk.Label(_('Append to file') + ':') label3.set_alignment(0, .5) self.grid.attach(label3, 0, 2, 1, 1) liststore = Gtk.ListStore(str, float, float) liststore.append([_('A0'), 2383.9, 3370.4]) liststore.append([_('A1'), 1683.8, 2383.9]) liststore.append([_('A2'), 1190.6, 1683.8]) liststore.append([_('A3'), 841.9, 1190.6]) liststore.append([_('A4'), 595.3, 841.9]) liststore.append([_('A5'), 419.5, 595.3]) liststore.append([_('A6'), 297.6, 419.5]) liststore.append([_('A7'), 209.8, 297.6]) liststore.append([_('A8'), 147.4, 209.8]) liststore.append([_('A9'), 104.9, 147.4]) liststore.append([_('A10'), 73.7, 104.9]) liststore.append([_('B0'), 2834.6, 73.7]) liststore.append([_('B1'), 2004.1, 2834.6]) liststore.append([_('B2'), 1417.3, 2004.1]) liststore.append([_('B3'), 1000.6, 1417.3]) liststore.append([_('B4'), 708.7, 1000.6]) liststore.append([_('B5'), 498.9, 708.7]) liststore.append([_('B6'), 354.3, 498.9]) liststore.append([_('B7'), 249.4, 354.3]) liststore.append([_('B8'), 175.7, 249.4]) liststore.append([_('B9'), 124.7, 175.7]) liststore.append([_('B10'), 87.9, 124.7]) liststore.append([_('Letter (8 1/2x11)'), 612.0, 792.0]) liststore.append([_('Note (8 1/2x11)'), 612.0, 792.0]) liststore.append([_('Legal (8 1/2x14)'), 612.0, 1008.0]) liststore.append([_('Executive (8 1/4x10 1/2)'), 522.0, 756.0]) liststore.append([_('Halfetter (5 1/2x8 1/2)'), 396.0, 612.0]) liststore.append([_('Halfexecutive (5 1/4x7 1/4)'), 378.0, 522.0]) liststore.append([_('11x17 (11x17)'), 792.0, 1224.0]) liststore.append([_('Statement (5 1/2x8 1/2)'), 396.0, 612.0]) liststore.append([_('Folio (8 1/2x13)'), 612.0, 936.0]) liststore.append([_('10x14 (10x14)'), 720.0, 1008.0]) liststore.append([_('Ledger (17x11)'), 1224.0, 792.0]) liststore.append([_('Tabloid (11x17)'), 792.0, 1224.0]) self.entry1 = Gtk.ComboBox.new_with_model(model=liststore) self.entry1.set_tooltip_text(_('Select the size of the output file')) renderer_text = Gtk.CellRendererText() self.entry1.pack_start(renderer_text, True) self.entry1.add_attribute(renderer_text, "text", 0) self.entry1.set_active(0) self.grid.attach(self.entry1, 1, 0, 1, 1) liststore = Gtk.ListStore(str) liststore.append([_('Vertical')]) liststore.append([_('Horizontal')]) self.entry2 = Gtk.ComboBox.new_with_model(model=liststore) self.entry2.set_tooltip_text(_('Select the orientation of the page')) renderer_text = Gtk.CellRendererText() self.entry2.pack_start(renderer_text, True) self.entry2.add_attribute(renderer_text, "text", 0) self.entry2.set_active(0) self.grid.attach(self.entry2, 1, 1, 1, 1) self.extension = Gtk.Entry() self.extension.set_tooltip_text( _('Append to file to create output filename')) self.extension.set_text(_('_resized')) self.grid.attach(self.extension, 1, 2, 1, 1) self.show_all()