# InputDialog.py Own implementation of InputDialog # # Copyright (C) 2011 Laurent BERNABE # # This program is free software; you can redistribute it # and/or modify it under the terms of the GNU General # Public License as published by the Free Software # Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will # be useful, but WITHOUT ANY WARRANTY; without even # the implied warranty of MERCHANTABILITY or FITNESS FOR # A PARTICULAR PURPOSE. See the GNU General Public # License for more details. # # You should have received a copy of the GNU General # Public License along with this program; if not, write # to the Free Software Foundation, Inc., 51 Franklin # St, Fifth Floor, Boston, MA 02110-1301 USA import pygtk pygtk.require('2.0') import gtk class InputDialog(gtk.MessageDialog): ''' Creates an input dialog with => a label (for the prompt) => a text entry => ok_button and cancel_button ''' def __init__(self, prompt, parent=None): ''' Constructor(prompt, parent=None) prompt argument : the text of the dialog parent : the parent control ''' gtk.MessageDialog.__init__(self, parent, gtk.DIALOG_MODAL, gtk.MESSAGE_QUESTION, gtk.BUTTONS_OK_CANCEL, prompt) self.__entry = gtk.Entry() self.vbox.pack_start(self.__entry, True, True, 0) self.connect("delete-event", lambda widget, event : self.__close() ) def run(self): ''' Run() Runs the dialog ''' self.show_all() response = super(InputDialog,self).run() if response == gtk.RESPONSE_OK : text = self.__entry.get_text() else : text = None self.destroy() return text def __close(self): ''' __close() Closes the dialog and returns None ''' self.destroy() return None