view clients/editor/scripts/gui/input.py @ 324:e249fa887259

* Split EventListener into several internal subclasses. This fixes issue with multiple inheritance where each BaseClass.__init__() call would overwrite the previous one. This meant that you could only add EventListener to one type of event managers. * MapView now adds maps and layers to EventListener * LayerEditor should now fetch only NameClash exceptions when creating or editing layers
author cheesesucker@33b003aa-7bff-0310-803a-e67f0ece8222
date Fri, 21 Aug 2009 14:39:54 +0000
parents 51cc05d862f2
children 8b125ec749d7
line wrap: on
line source

import pychan
import pychan.widgets as widgets

class InputDialog(object):
	"""
	Input supplies a text box for entering data. The result is passed to onEntry.
	onEntry - the function to call when a input is complete. Accepts one argument: a string of text.
	"""
	def __init__(self, prompt, onEntry, onCancel):
		self._callback = onEntry
		self._cancelCallback = onCancel

		self._widget = pychan.loadXML('gui/input.xml')

		self._widget.mapEvents({
			'okButton'     : self._complete,
			'cancelButton' : self._cancel
		})

		self._widget.distributeInitialData({
			'prompt' : prompt
		})
		self._widget.show()

	def _complete(self):
		self._callback(self._widget.collectData('inputBox'))
		self._widget.hide()
		
	def _cancel(self):
		self._cancelCallback()
		self._widget.hide()