Mercurial > fife-parpg
view clients/editor/scripts/gui/selection.py @ 255:51cc05d862f2
Merged editor_rewrite branch to trunk.
This contains changes that may break compatibility against existing clients.
For a list of changes that may affect your client, see: http://wiki.fifengine.de/Changes_to_pychan_and_FIFE_in_editor_rewrite_branch
author | cheesesucker@33b003aa-7bff-0310-803a-e67f0ece8222 |
---|---|
date | Mon, 08 Jun 2009 16:00:02 +0000 |
parents | |
children | 8b125ec749d7 |
line wrap: on
line source
import pychan import pychan.widgets as widgets class SelectionDialog(object): """ Selection displays a list of options for the user to select from. The result is passed to onSelection. list - the list to select from onSelection - the function to call when a selection is made. Accepts one argument: an element of the list. """ def __init__(self, list, onSelection): self.list = list self._callback = onSelection self._widget = pychan.loadXML('gui/selection.xml') self._widget.mapEvents({ 'okButton' : self._selected, 'cancelButton' : self._widget.hide }) self._widget.distributeInitialData({ 'optionDrop' : list }) self._widget.show() def _selected(self): selection = self._widget.collectData('optionDrop') if selection < 0: return self._callback(self.list[selection]) self._widget.hide() class ClickSelectionDialog(object): """ ClickSelection displays a list of options for the user to select from. The result is passed to onSelection. Differs from Selection: the selection is made when a list element is clicked, rather than when the box is closed. list - the list to select from onSelection - the function to call when a selection is made. Accepts one argument: an element of the list. """ def __init__(self, list, onSelection): self.list = list self._callback = onSelection self._widget = pychan.loadXML('gui/selection.xml') self._widget.mapEvents({ 'okButton' : self._widget.hide, 'cancelButton' : self._widget.hide, 'optionDrop' : self._selected }) self._widget.distributeInitialData({ 'optionDrop' : list }) self._widget.show() def _selected(self): selection = self._widget.collectData('optionDrop') if selection < 0: return self._callback(self.list[selection])