You are here: Home software clickndrag


A hierarchical surface framework for PyGame.


Click'n'Drag is a hierarchical surface framework for PyGame.

The clickndrag module introduces the "Plane" class which extends PyGame's "Surface" functionality, offering a hierarchy of mouse-sensitive, draggable Surfaces that can be used as sprites, windows, icons or other interactive elements.

In addition, the clickndrag.gui module uses clickndrag to provide basic GUI elements like container, label, text box, option list and button.


Python >= 2.6 PyGame >= 1.9.1


Unzip the file, then at the command line run

python install


A showcase python script will be installed along with clickndrag. Run


API documentation is included and will be installed during install.


(c) Florian Berger


Releases are signed with my OpenPGP key.


Released on 29 July 2011.

Removed OK button and callback from gui.OptionList to be able to embed it in more complex dialogs. Added gui.OptionSelector as a drop-in replacement. Simplified cursor rendering in gui.TextBox, which is done in gui.TextBox.redraw() now, no longer messing with gui.TextBox.text. Changed Plane.remove_all() to actually call Plane.remove() for all current subplanes. gui.Container now also shrinks horizontally when a subplane is removed. Added 'insert_after' argument to Plane.sub(), making it possible to render related subplanes without others inbetween. Plane.sync() uses the offset between Plane centers instead of Plane toplefts now, avoiding alignment problems with dynamic Planes as gui.OutlinedText. gui.OutlinedText now saves and restores the center of OutlinedText.rect upon a text change. Fixed default background color setting in various places. Added wrapping at newlines to gui.OkBox. Several fixes to be compatible with Python 2.6 distutils. Added clickndrag.VERSION, which is now read in Documentation update.

clickndrag-0.4.1.tar.bz2 (MD5 5b726230b339a7ed44050075e8f3d3e2)

clickndrag-0.4.1.tar.bz2.asc (MD5 d9d5087c7f95be191f782a47d109e8b3)

Older Releases

Older releases are available upon request.

© Florian Berger — Powered by PloneCO2-freie Website