Difference between revisions of "CEGUIPython"
(→Downloading) |
|||
Line 4: | Line 4: | ||
= Downloading = | = Downloading = | ||
+ | |||
+ | == Release == | ||
+ | |||
+ | You can get the released package for current cegui (0.5rc2): | ||
+ | |||
+ | [http://b2cs.delcorp.org/files/CEGUIPython-0.5.0rc2.tar.gz CEGUIPython-0.5.0rc2.tar.gz] | ||
+ | |||
+ | == SVN/CVS == | ||
The cegui python script module can be downloaded from cegui cvs using the following commands: | The cegui python script module can be downloaded from cegui cvs using the following commands: | ||
Line 16: | Line 24: | ||
Then to build and install you would go to the CEGUIPython folder, and do the following commands: | Then to build and install you would go to the CEGUIPython folder, and do the following commands: | ||
− | bash bootstrap (only needed the first time to generate some files) | + | == Installing == |
+ | |||
+ | bash bootstrap (only needed the first time to generate some files if you got from cvs/svn) | ||
./configure | ./configure | ||
make | make |
Revision as of 10:19, 19 September 2006
Contents
Introduction
Cegui has a really nice set of python bindings that can be used to script your interfaces using this nice language. The python bindings where originally created for project Xenocide, and its main authors are guyver6 (main developer) and reist (build system and adapting for new cegui versions).
Downloading
Release
You can get the released package for current cegui (0.5rc2):
SVN/CVS
The cegui python script module can be downloaded from cegui cvs using the following commands:
cvs -d:pserver:anonymous@crayzedsgui.cvs.sourceforge.net:/cvsroot/crayzedsgui login cvs -z3 -d:pserver:anonymous@crayzedsgui.cvs.sourceforge.net:/cvsroot/crayzedsgui/ co -P ceguiaddons/PythonScriptModule/ScriptingModules/CEGUIPython
Note if you have some problem there is the Xenocide svn where ceguipython is usually first fixed, you can get it also from there by using svn tools:
svn co http://svn.projectxenocide.com/xenocide/trunk/cegui/ScriptingModules/CEGUIPython CEGUIPython
Then to build and install you would go to the CEGUIPython folder, and do the following commands:
Installing
bash bootstrap (only needed the first time to generate some files if you got from cvs/svn) ./configure make make install (you'll need root/admin privileges for this)
Also note you might need to regenerate the bindings using swig if you need to link with a 3d party library python bindings (as all swig generated modules must be generated using the same version of swig so they can work together).
The build system does not yet detect a different swig version, so you need to trick it to think the main interface file has changed so it will be rebuilt:
touch package/cegui.i make make install
Using
The bindings are pretty extensive and allow to access most of cegui functionality.
Syntax
In general the api is the same as cegui's, but all get/set methods are translated into python attributes, as illustrated in the following (simple) example:
c++
float max = slider->getMaxValue(); slider->setMaxValue(max+1);
python
max = slider.MaxValue; slider.MaxValue = max+1;
Creating Windows
As usual in cegui you create windows by using the cegui window manager:
slider = winMgr.createWindow("ice/Slider","Demo7/Window/Slider9")
Subscribing to events
You can set python functions to respond to different interface events
slider.subscribeEvent(cegui.Slider.EventValueChanged,onSlider)
Then, at the event callback you get an args parameter, that will be of a different type depending on the kind of event, you can check the type by printing the object if you're not sure.
def onSlider(args): print args # shows in this case this is a cegui.WindowEventArgs w = args.Window val = w.CurrentValue print w.Name,"received",val
Documentation
There is not yet proper documentation for the cegui python bindings, but there is an api reference at http://delcorp.org/caedes/pyceguidoc (without the method descriptions yet, but can help to find out what a method name could be). Other than this for now you have to refer to the main cegui documentation.