#!/usr/bin/env python # -*- coding: utf-8 -*- import pygtk pygtk.require('2.0') import gtk class AssistantTest: def delete_event(self, widget, event, data = None): return False def destroy(self, widget, data = None): gtk.main_quit() def __init__(self): self.data = { "filename" : None, "outputdir" : None} self.ass = gtk.Assistant() self.ass.connect("delete_event", self.delete_event) self.ass.connect("close", self.destroy) self.ass.connect("cancel", self.destroy) # Construct page 0 label = gtk.Label("""Buttons for website allows you to produce a series of buttons for use on a website. On the next pages you may choose several options to change the content and the look of the buttons.""") label.set_line_wrap(True) label.show() self.ass.append_page(label) self.ass.set_page_title(label, "Introduction to buttons for website") self.ass.set_page_type(label, gtk.ASSISTANT_PAGE_INTRO) self.ass.set_page_complete(label, True) # Construct page 1 self.page1 = gtk.VBox(False, 5) self.page1.set_border_width(5) self.page1.show() self.ass.append_page(self.page1) self.ass.set_page_title(self.page1, "Select the input file and output directory") self.ass.set_page_type(self.page1, gtk.ASSISTANT_PAGE_CONTENT) label = gtk.Label("Please choose the file containing your button labels and the directory where the generated files should be put.") label.set_line_wrap(True) label.show() self.page1.pack_start(label, True, True, 0) table = gtk.Table(rows=2, columns=2, homogeneous=False) table.show() label = gtk.Label("Button label file") label.show() table.attach(label, 0, 1, 0, 1) button = gtk.FileChooserButton("Choose file") button.set_action(gtk.FILE_CHOOSER_ACTION_OPEN) button.connect("selection-changed", self.cb_file_selected, button) button.show() table.attach(button, 1, 2, 0, 1) label = gtk.Label("Output directory") label.show() table.attach(label, 0, 1, 1, 2) button = gtk.FileChooserButton("Choose directory") button.set_action(gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER) button.connect("selection-changed", self.cb_dir_selected, button) button.show() table.attach(button, 1, 2, 1, 2) self.page1.pack_end(table) # Construct page 2 label = gtk.Label('Thanks for using btn4ws') label.set_line_wrap(True) label.show() self.ass.append_page(label) self.ass.set_page_title(label, 'Page 1: The end') self.ass.set_page_type(label, gtk.ASSISTANT_PAGE_SUMMARY) self.ass.show() def checkpage1completion(self): print str(self.data) if self.data["filename"] and self.data["outputdir"]: self.ass.set_page_complete(self.page1, True) else: self.ass.set_page_complete(self.page1, False) def cb_file_selected(self, w, filesel): self.data["filename"] = filesel.get_filename() self.checkpage1completion() def cb_dir_selected(self, w, dirsel): self.data["outputdir"] = dirsel.get_filename() self.checkpage1completion() def main(self): gtk.main() if __name__ == "__main__": assi = AssistantTest() assi.main()