2009-02-16 16:17:20 +00:00
/**
* $ Id $
*
* * * * * * BEGIN GPL LICENSE BLOCK * * * * *
*
* 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 . , 59 Temple Place - Suite 330 , Boston , MA 02111 - 1307 , USA .
*
* Contributor ( s ) : Campbell Barton
*
* * * * * * END GPL LICENSE BLOCK * * * * *
*/
# include "bpy_ui.h"
2009-02-28 13:27:45 +00:00
# include "bpy_util.h"
2009-02-27 10:22:40 +00:00
# include "bpy_rna.h" /* for rna buttons */
2009-02-28 13:27:45 +00:00
# include "bpy_operator.h" /* for setting button operator properties */
2009-02-16 16:17:20 +00:00
# include "bpy_compat.h"
2009-02-28 13:27:45 +00:00
# include "WM_types.h" /* for WM_OP_INVOKE_DEFAULT & friends */
2009-02-16 16:17:20 +00:00
# include "BLI_dynstr.h"
# include "MEM_guardedalloc.h"
# include "BKE_global.h" /* evil G.* */
# include "BKE_context.h"
# include "DNA_screen_types.h"
2009-02-28 13:27:45 +00:00
# include "DNA_space_types.h" /* only for SpaceLink */
2009-02-16 16:17:20 +00:00
# include "UI_interface.h"
# include "WM_api.h"
static PyObject * Method_pupMenuBegin ( PyObject * self , PyObject * args )
{
char * title ; int icon ;
if ( ! PyArg_ParseTuple ( args , " si:pupMenuBegin " , & title , & icon ) )
return NULL ;
return PyCObject_FromVoidPtr ( uiPupMenuBegin ( title , icon ) , NULL ) ;
}
static PyObject * Method_pupMenuEnd ( PyObject * self , PyObject * args )
{
PyObject * py_context , * py_head ;
if ( ! PyArg_ParseTuple ( args , " O!O!:pupMenuEnd " , & PyCObject_Type , & py_context , & PyCObject_Type , & py_head ) )
return NULL ;
uiPupMenuEnd ( PyCObject_AsVoidPtr ( py_context ) , PyCObject_AsVoidPtr ( py_head ) ) ;
Py_RETURN_NONE ;
}
static PyObject * Method_menuItemO ( PyObject * self , PyObject * args )
{
PyObject * py_head ;
char * opname ;
int icon ;
if ( ! PyArg_ParseTuple ( args , " O!is:menuItemO " , & PyCObject_Type , & py_head , & icon , & opname ) )
return NULL ;
uiMenuItemO ( PyCObject_AsVoidPtr ( py_head ) , icon , opname ) ;
Py_RETURN_NONE ;
}
static PyObject * Method_defButO ( PyObject * self , PyObject * args )
{
2009-02-28 13:27:45 +00:00
uiBut * but ;
PyObject * py_block , * py_keywords = NULL ;
2009-02-16 16:17:20 +00:00
char * opname , * butname , * tip ;
int exec , xco , yco , width , height ;
2009-02-28 13:27:45 +00:00
if ( ! PyArg_ParseTuple ( args , " O!sisiiiis|O!:defButO " , & PyCObject_Type , & py_block , & opname , & exec , & butname , & xco , & yco , & width , & height , & tip , & PyDict_Type , & py_keywords ) )
2009-02-16 16:17:20 +00:00
return NULL ;
2009-02-28 13:27:45 +00:00
but = uiDefButO ( PyCObject_AsVoidPtr ( py_block ) , BUT , opname , exec , butname , xco , yco , width , height , tip ) ;
/* Optional python doctionary used to set python properties, just like how keyword args are used */
if ( py_keywords & & PyDict_Size ( py_keywords ) ) {
if ( PYOP_props_from_dict ( uiButGetOperatorPtrRNA ( but ) , py_keywords ) = = - 1 )
return NULL ;
}
return PyCObject_FromVoidPtr ( but , NULL ) ;
2009-02-16 16:17:20 +00:00
}
2009-02-27 10:22:40 +00:00
static PyObject * Method_defAutoButR ( PyObject * self , PyObject * args )
{
PyObject * py_block ;
BPy_StructRNA * py_rna ;
char * propname , * butname ;
int index , xco , yco , width , height ;
PropertyRNA * prop ;
if ( ! PyArg_ParseTuple ( args , " O!O!sisiiii:defAutoButR " , & PyCObject_Type , & py_block , & pyrna_struct_Type , & py_rna , & propname , & index , & butname , & xco , & yco , & width , & height ) )
return NULL ;
// XXX This isnt that nice api, but we dont always have the rna property from python since its converted immediately into a PyObject
prop = RNA_struct_find_property ( & py_rna - > ptr , propname ) ;
if ( prop = = NULL ) {
PyErr_SetString ( PyExc_ValueError , " rna property not found " ) ;
return NULL ;
}
2009-03-13 13:38:41 +00:00
return PyCObject_FromVoidPtr ( uiDefAutoButR ( PyCObject_AsVoidPtr ( py_block ) , & py_rna - > ptr , prop , index , butname , 0 , xco , yco , width , height ) , NULL ) ;
2009-02-27 10:22:40 +00:00
}
2009-02-16 16:17:20 +00:00
static uiBlock * py_internal_uiBlockCreateFunc ( struct bContext * C , struct ARegion * ar , void * arg1 )
{
PyObject * ret , * args ;
args = Py_BuildValue ( " (NN) " , PyCObject_FromVoidPtr ( C , NULL ) , PyCObject_FromVoidPtr ( ar , NULL ) ) ;
ret = PyObject_CallObject ( ( PyObject * ) arg1 , args ) ;
Py_DECREF ( args ) ;
if ( ret = = NULL ) {
PyErr_Print ( ) ;
return NULL ;
}
if ( ! PyCObject_Check ( ret ) ) {
printf ( " invalid return value, not a PyCObject block \n " ) ;
return NULL ;
}
return ( uiBlock * ) PyCObject_AsVoidPtr ( ret ) ;
}
static PyObject * Method_pupBlock ( PyObject * self , PyObject * args )
{
PyObject * py_context , * py_func ;
if ( ! PyArg_ParseTuple ( args , " O!O:pupBlock " , & PyCObject_Type , & py_context , & py_func ) )
return NULL ;
if ( ! PyCallable_Check ( py_func ) ) {
PyErr_SetString ( PyExc_ValueError , " arg not callable " ) ;
return NULL ;
}
uiPupBlock ( PyCObject_AsVoidPtr ( py_context ) , py_internal_uiBlockCreateFunc , ( void * ) py_func ) ;
Py_RETURN_NONE ;
}
static PyObject * Method_beginBlock ( PyObject * self , PyObject * args ) // XXX missing 2 args - UI_EMBOSS, UI_HELV, do we care?
{
PyObject * py_context , * py_ar ;
char * name ;
if ( ! PyArg_ParseTuple ( args , " O!O!s:beginBlock " , & PyCObject_Type , & py_context , & PyCObject_Type , & py_ar , & name ) )
return NULL ;
return PyCObject_FromVoidPtr ( uiBeginBlock ( PyCObject_AsVoidPtr ( py_context ) , PyCObject_AsVoidPtr ( py_ar ) , name , UI_EMBOSS , UI_HELV ) , NULL ) ;
}
static PyObject * Method_endBlock ( PyObject * self , PyObject * args )
{
PyObject * py_context , * py_block ;
if ( ! PyArg_ParseTuple ( args , " O!O!:endBlock " , & PyCObject_Type , & py_context , & PyCObject_Type , & py_block ) )
return NULL ;
uiEndBlock ( PyCObject_AsVoidPtr ( py_context ) , PyCObject_AsVoidPtr ( py_block ) ) ;
Py_RETURN_NONE ;
}
2009-02-28 13:27:45 +00:00
static PyObject * Method_drawBlock ( PyObject * self , PyObject * args )
{
PyObject * py_context , * py_block ;
if ( ! PyArg_ParseTuple ( args , " O!O!:drawBlock " , & PyCObject_Type , & py_context , & PyCObject_Type , & py_block ) )
return NULL ;
uiDrawBlock ( PyCObject_AsVoidPtr ( py_context ) , PyCObject_AsVoidPtr ( py_block ) ) ;
Py_RETURN_NONE ;
}
static PyObject * Method_drawPanels ( PyObject * self , PyObject * args )
{
PyObject * py_context ;
int align ;
if ( ! PyArg_ParseTuple ( args , " O!i:drawPanels " , & PyCObject_Type , & py_context , & align ) )
return NULL ;
uiDrawPanels ( PyCObject_AsVoidPtr ( py_context ) , align ) ;
Py_RETURN_NONE ;
}
static PyObject * Method_matchPanelsView2d ( PyObject * self , PyObject * args )
{
PyObject * py_ar ;
if ( ! PyArg_ParseTuple ( args , " O!:matchPanelsView2d " , & PyCObject_Type , & py_ar ) )
return NULL ;
uiMatchPanelsView2d ( PyCObject_AsVoidPtr ( py_ar ) ) ;
Py_RETURN_NONE ;
}
2009-02-16 16:17:20 +00:00
static PyObject * Method_popupBoundsBlock ( PyObject * self , PyObject * args )
{
PyObject * py_block ;
int addval , mx , my ;
if ( ! PyArg_ParseTuple ( args , " O!iii:popupBoundsBlock " , & PyCObject_Type , & py_block , & addval , & mx , & my ) )
return NULL ;
uiPopupBoundsBlock ( PyCObject_AsVoidPtr ( py_block ) , addval , mx , my ) ;
Py_RETURN_NONE ;
}
static PyObject * Method_blockBeginAlign ( PyObject * self , PyObject * args )
{
PyObject * py_block ;
if ( ! PyArg_ParseTuple ( args , " O!:blockBeginAlign " , & PyCObject_Type , & py_block ) )
return NULL ;
uiBlockBeginAlign ( PyCObject_AsVoidPtr ( py_block ) ) ;
Py_RETURN_NONE ;
}
static PyObject * Method_blockEndAlign ( PyObject * self , PyObject * args )
{
PyObject * py_block ;
if ( ! PyArg_ParseTuple ( args , " O!:blockEndAlign " , & PyCObject_Type , & py_block ) )
return NULL ;
uiBlockEndAlign ( PyCObject_AsVoidPtr ( py_block ) ) ;
Py_RETURN_NONE ;
}
2009-02-27 10:22:40 +00:00
static PyObject * Method_blockSetFlag ( PyObject * self , PyObject * args )
{
PyObject * py_block ;
int flag ; /* Note new py api should not use flags, but for this low level UI api its ok. */
if ( ! PyArg_ParseTuple ( args , " O!i:blockSetFlag " , & PyCObject_Type , & py_block , & flag ) )
return NULL ;
uiBlockSetFlag ( PyCObject_AsVoidPtr ( py_block ) , flag ) ;
Py_RETURN_NONE ;
}
2009-02-16 16:17:20 +00:00
static PyObject * Method_newPanel ( PyObject * self , PyObject * args )
{
PyObject * py_context , * py_area , * py_block ;
char * panelname , * tabname ;
int ofsx , ofsy , sizex , sizey ;
if ( ! PyArg_ParseTuple ( args , " O!O!O!ssiiii:newPanel " , & PyCObject_Type , & py_context , & PyCObject_Type , & py_area , & PyCObject_Type , & py_block , & panelname , & tabname , & ofsx , & ofsy , & sizex , & sizey ) )
return NULL ;
return PyLong_FromSize_t ( uiNewPanel ( PyCObject_AsVoidPtr ( py_context ) , PyCObject_AsVoidPtr ( py_area ) , PyCObject_AsVoidPtr ( py_block ) , panelname , tabname , ofsx , ofsy , sizex , sizey ) ) ;
}
2009-02-28 13:27:45 +00:00
/* similar to Draw.c */
static PyObject * Method_register ( PyObject * self , PyObject * args )
{
PyObject * py_sl , * py_draw_func ;
SpaceLink * sl ;
if ( ! PyArg_ParseTuple ( args , " O!O:register " , & PyCObject_Type , & py_sl , & py_draw_func ) )
return NULL ;
sl = PyCObject_AsVoidPtr ( py_sl ) ;
if ( sl - > spacetype ! = SPACE_SCRIPT ) { // XXX todo - add a script space when needed
PyErr_SetString ( PyExc_ValueError , " can only register in a script space " ) ;
return NULL ;
}
else {
SpaceScript * scpt = ( SpaceScript * ) sl ;
char * filename = NULL ;
if ( scpt - > script = = NULL ) {
scpt - > script = MEM_callocN ( sizeof ( Script ) , " ScriptRegister " ) ;
}
BPY_getFileAndNum ( & filename , NULL ) ;
if ( filename ) {
strncpy ( scpt - > script - > scriptname , filename , sizeof ( scpt - > script - > scriptname ) ) ;
#if 0
char * dot ;
dot = strchr ( scpt - > script - > scriptname , ' . ' ) ; /* remove extension */
if ( dot )
* dot = ' \0 ' ;
# endif
Py_XINCREF ( py_draw_func ) ;
scpt - > script - > py_draw = ( void * ) py_draw_func ;
}
else {
return NULL ; /* BPY_getFileAndNum sets the error */
}
if ( filename = = NULL ) {
return NULL ;
}
}
Py_RETURN_NONE ;
}
2009-03-07 09:46:33 +00:00
static PyObject * Method_registerKey ( PyObject * self , PyObject * args )
{
PyObject * py_context ;
PyObject * py_keywords = NULL ;
char * keymap_name , * operator_name ;
int spaceid , regionid ;
int keyval , evtval , q1 , q2 ;
wmWindowManager * wm ;
ListBase * keymap ;
wmKeymapItem * km ;
if ( ! PyArg_ParseTuple ( args , " O!iissiiii|O!:registerKey " , & PyCObject_Type , & py_context , & spaceid , & regionid , & keymap_name , & operator_name , & keyval , & evtval , & q1 , & q2 , & PyDict_Type , & py_keywords ) )
return NULL ;
2009-02-28 13:27:45 +00:00
2009-03-07 09:46:33 +00:00
wm = CTX_wm_manager ( PyCObject_AsVoidPtr ( py_context ) ) ;
/* keymap= WM_keymap_listbase(wm, "Image Generic", SPACE_IMAGE, 0); */
keymap = WM_keymap_listbase ( wm , keymap_name , spaceid , regionid ) ;
km = WM_keymap_add_item ( keymap , operator_name , keyval , evtval , q1 , q2 ) ;
/* Optional python doctionary used to set python properties, just like how keyword args are used */
if ( py_keywords & & PyDict_Size ( py_keywords ) ) {
if ( PYOP_props_from_dict ( km - > ptr , py_keywords ) = = - 1 )
return NULL ;
}
Py_RETURN_NONE ;
}
2009-02-28 13:27:45 +00:00
2009-02-16 16:17:20 +00:00
/* internal use only */
static bContext * get_py_context__internal ( void )
{
PyObject * globals = PyEval_GetGlobals ( ) ;
PyObject * val = PyDict_GetItemString ( globals , " __bpy_context__ " ) ;
return PyCObject_AsVoidPtr ( val ) ;
}
static PyObject * Method_getRegonPtr ( PyObject * self )
{
bContext * C = get_py_context__internal ( ) ;
ARegion * ar = CTX_wm_region ( C ) ;
return PyCObject_FromVoidPtr ( ar , NULL ) ;
}
static PyObject * Method_getAreaPtr ( PyObject * self )
{
bContext * C = get_py_context__internal ( ) ;
ScrArea * area = CTX_wm_area ( C ) ;
return PyCObject_FromVoidPtr ( area , NULL ) ;
}
static PyObject * Method_getScreenPtr ( PyObject * self )
{
bContext * C = get_py_context__internal ( ) ;
bScreen * screen = CTX_wm_screen ( C ) ;
return PyCObject_FromVoidPtr ( screen , NULL ) ;
}
2009-02-28 13:27:45 +00:00
static PyObject * Method_getSpacePtr ( PyObject * self )
{
bContext * C = get_py_context__internal ( ) ;
SpaceLink * sl = CTX_wm_space_data ( C ) ;
return PyCObject_FromVoidPtr ( sl , NULL ) ;
}
2009-02-16 16:17:20 +00:00
static PyObject * Method_getWindowPtr ( PyObject * self )
{
bContext * C = get_py_context__internal ( ) ;
wmWindow * window = CTX_wm_window ( C ) ;
return PyCObject_FromVoidPtr ( window , NULL ) ;
}
static struct PyMethodDef ui_methods [ ] = {
{ " pupMenuBegin " , ( PyCFunction ) Method_pupMenuBegin , METH_VARARGS , " " } ,
{ " pupMenuEnd " , ( PyCFunction ) Method_pupMenuEnd , METH_VARARGS , " " } ,
{ " menuItemO " , ( PyCFunction ) Method_menuItemO , METH_VARARGS , " " } ,
{ " defButO " , ( PyCFunction ) Method_defButO , METH_VARARGS , " " } ,
2009-02-27 10:22:40 +00:00
{ " defAutoButR " , ( PyCFunction ) Method_defAutoButR , METH_VARARGS , " " } ,
2009-02-16 16:17:20 +00:00
{ " pupBlock " , ( PyCFunction ) Method_pupBlock , METH_VARARGS , " " } ,
{ " beginBlock " , ( PyCFunction ) Method_beginBlock , METH_VARARGS , " " } ,
{ " endBlock " , ( PyCFunction ) Method_endBlock , METH_VARARGS , " " } ,
2009-02-28 13:27:45 +00:00
{ " drawBlock " , ( PyCFunction ) Method_drawBlock , METH_VARARGS , " " } ,
2009-02-16 16:17:20 +00:00
{ " popupBoundsBlock " , ( PyCFunction ) Method_popupBoundsBlock , METH_VARARGS , " " } ,
{ " blockBeginAlign " , ( PyCFunction ) Method_blockBeginAlign , METH_VARARGS , " " } ,
{ " blockEndAlign " , ( PyCFunction ) Method_blockEndAlign , METH_VARARGS , " " } ,
2009-02-27 10:22:40 +00:00
{ " blockSetFlag " , ( PyCFunction ) Method_blockSetFlag , METH_VARARGS , " " } ,
2009-02-16 16:17:20 +00:00
{ " newPanel " , ( PyCFunction ) Method_newPanel , METH_VARARGS , " " } ,
2009-02-28 13:27:45 +00:00
{ " drawPanels " , ( PyCFunction ) Method_drawPanels , METH_VARARGS , " " } ,
{ " matchPanelsView2d " , ( PyCFunction ) Method_matchPanelsView2d , METH_VARARGS , " " } ,
{ " register " , ( PyCFunction ) Method_register , METH_VARARGS , " " } , // XXX not sure about this - registers current script with the ScriptSpace, like Draw.Register()
2009-03-07 09:46:33 +00:00
{ " registerKey " , ( PyCFunction ) Method_registerKey , METH_VARARGS , " " } , // XXX could have this in another place too
2009-02-16 16:17:20 +00:00
{ " getRegonPtr " , ( PyCFunction ) Method_getRegonPtr , METH_NOARGS , " " } , // XXX Nasty, we really need to improve dealing with context!
{ " getAreaPtr " , ( PyCFunction ) Method_getAreaPtr , METH_NOARGS , " " } ,
{ " getScreenPtr " , ( PyCFunction ) Method_getScreenPtr , METH_NOARGS , " " } ,
2009-02-28 13:27:45 +00:00
{ " getSpacePtr " , ( PyCFunction ) Method_getSpacePtr , METH_NOARGS , " " } ,
2009-02-16 16:17:20 +00:00
{ " getWindowPtr " , ( PyCFunction ) Method_getWindowPtr , METH_NOARGS , " " } ,
{ NULL , NULL , 0 , NULL }
} ;
2009-02-28 15:28:18 +00:00
# if PY_VERSION_HEX >= 0x03000000
2009-02-26 05:50:19 +00:00
static struct PyModuleDef ui_module = {
PyModuleDef_HEAD_INIT ,
" bpyui " ,
" " ,
- 1 , /* multiple "initialization" just copies the module dict. */
ui_methods ,
NULL , NULL , NULL , NULL
} ;
2009-02-28 15:28:18 +00:00
# endif
2009-02-26 05:50:19 +00:00
PyObject * BPY_ui_module ( void )
{
2009-03-07 09:46:33 +00:00
PyObject * submodule , * mod ;
2009-02-27 10:22:40 +00:00
# if PY_VERSION_HEX >= 0x03000000
submodule = PyModule_Create ( & ui_module ) ;
2009-02-26 05:50:19 +00:00
# else /* Py2.x */
2009-02-27 10:22:40 +00:00
submodule = Py_InitModule3 ( " bpyui " , ui_methods , " " ) ;
2009-02-26 05:50:19 +00:00
# endif
2009-02-27 10:22:40 +00:00
/* uiBlock->flag (controls) */
2009-03-07 09:46:33 +00:00
mod = PyModule_New ( " ui " ) ;
PyModule_AddObject ( submodule , " ui " , mod ) ;
PyModule_AddObject ( mod , " BLOCK_LOOP " , PyLong_FromSize_t ( UI_BLOCK_LOOP ) ) ;
PyModule_AddObject ( mod , " BLOCK_RET_1 " , PyLong_FromSize_t ( UI_BLOCK_RET_1 ) ) ;
PyModule_AddObject ( mod , " BLOCK_NUMSELECT " , PyLong_FromSize_t ( UI_BLOCK_NUMSELECT ) ) ;
PyModule_AddObject ( mod , " BLOCK_ENTER_OK " , PyLong_FromSize_t ( UI_BLOCK_ENTER_OK ) ) ;
PyModule_AddObject ( mod , " BLOCK_NOSHADOW " , PyLong_FromSize_t ( UI_BLOCK_NOSHADOW ) ) ;
PyModule_AddObject ( mod , " BLOCK_NO_HILITE " , PyLong_FromSize_t ( UI_BLOCK_NO_HILITE ) ) ;
PyModule_AddObject ( mod , " BLOCK_MOVEMOUSE_QUIT " , PyLong_FromSize_t ( UI_BLOCK_MOVEMOUSE_QUIT ) ) ;
PyModule_AddObject ( mod , " BLOCK_KEEP_OPEN " , PyLong_FromSize_t ( UI_BLOCK_KEEP_OPEN ) ) ;
PyModule_AddObject ( mod , " BLOCK_POPUP " , PyLong_FromSize_t ( UI_BLOCK_POPUP ) ) ;
2009-02-27 10:22:40 +00:00
2009-02-28 13:27:45 +00:00
/* for executing operators (XXX move elsewhere) */
2009-03-07 09:46:33 +00:00
mod = PyModule_New ( " wmTypes " ) ;
PyModule_AddObject ( submodule , " wmTypes " , mod ) ;
PyModule_AddObject ( mod , " OP_INVOKE_DEFAULT " , PyLong_FromSize_t ( WM_OP_INVOKE_DEFAULT ) ) ;
PyModule_AddObject ( mod , " OP_INVOKE_REGION_WIN " , PyLong_FromSize_t ( WM_OP_INVOKE_REGION_WIN ) ) ;
PyModule_AddObject ( mod , " OP_INVOKE_AREA " , PyLong_FromSize_t ( WM_OP_INVOKE_AREA ) ) ;
PyModule_AddObject ( mod , " OP_INVOKE_SCREEN " , PyLong_FromSize_t ( WM_OP_INVOKE_SCREEN ) ) ;
PyModule_AddObject ( mod , " OP_EXEC_DEFAULT " , PyLong_FromSize_t ( WM_OP_EXEC_DEFAULT ) ) ;
PyModule_AddObject ( mod , " OP_EXEC_REGION_WIN " , PyLong_FromSize_t ( WM_OP_EXEC_REGION_WIN ) ) ;
PyModule_AddObject ( mod , " OP_EXEC_AREA " , PyLong_FromSize_t ( WM_OP_EXEC_AREA ) ) ;
PyModule_AddObject ( mod , " OP_EXEC_SCREEN " , PyLong_FromSize_t ( WM_OP_EXEC_SCREEN ) ) ;
mod = PyModule_New ( " keyValTypes " ) ;
PyModule_AddObject ( submodule , " keyValTypes " , mod ) ;
PyModule_AddObject ( mod , " ANY " , PyLong_FromSize_t ( KM_ANY ) ) ;
PyModule_AddObject ( mod , " NOTHING " , PyLong_FromSize_t ( KM_NOTHING ) ) ;
PyModule_AddObject ( mod , " PRESS " , PyLong_FromSize_t ( KM_PRESS ) ) ;
PyModule_AddObject ( mod , " RELEASE " , PyLong_FromSize_t ( KM_RELEASE ) ) ;
mod = PyModule_New ( " keyModTypes " ) ;
PyModule_AddObject ( submodule , " keyModTypes " , mod ) ;
PyModule_AddObject ( mod , " SHIFT " , PyLong_FromSize_t ( KM_SHIFT ) ) ;
PyModule_AddObject ( mod , " CTRL " , PyLong_FromSize_t ( KM_CTRL ) ) ;
PyModule_AddObject ( mod , " ALT " , PyLong_FromSize_t ( KM_ALT ) ) ;
PyModule_AddObject ( mod , " OSKEY " , PyLong_FromSize_t ( KM_OSKEY ) ) ;
PyModule_AddObject ( mod , " SHIFT2 " , PyLong_FromSize_t ( KM_SHIFT2 ) ) ;
PyModule_AddObject ( mod , " CTRL2 " , PyLong_FromSize_t ( KM_CTRL2 ) ) ;
PyModule_AddObject ( mod , " ALT2 " , PyLong_FromSize_t ( KM_ALT2 ) ) ;
PyModule_AddObject ( mod , " OSKEY2 " , PyLong_FromSize_t ( KM_OSKEY2 ) ) ;
mod = PyModule_New ( " keyTypes " ) ;
PyModule_AddObject ( submodule , " keyTypes " , mod ) ;
PyModule_AddObject ( mod , " A " , PyLong_FromSize_t ( AKEY ) ) ;
PyModule_AddObject ( mod , " B " , PyLong_FromSize_t ( BKEY ) ) ;
PyModule_AddObject ( mod , " C " , PyLong_FromSize_t ( CKEY ) ) ;
PyModule_AddObject ( mod , " D " , PyLong_FromSize_t ( DKEY ) ) ;
PyModule_AddObject ( mod , " E " , PyLong_FromSize_t ( EKEY ) ) ;
PyModule_AddObject ( mod , " F " , PyLong_FromSize_t ( FKEY ) ) ;
PyModule_AddObject ( mod , " G " , PyLong_FromSize_t ( GKEY ) ) ;
PyModule_AddObject ( mod , " H " , PyLong_FromSize_t ( HKEY ) ) ;
PyModule_AddObject ( mod , " I " , PyLong_FromSize_t ( IKEY ) ) ;
PyModule_AddObject ( mod , " J " , PyLong_FromSize_t ( JKEY ) ) ;
PyModule_AddObject ( mod , " K " , PyLong_FromSize_t ( KKEY ) ) ;
PyModule_AddObject ( mod , " L " , PyLong_FromSize_t ( LKEY ) ) ;
PyModule_AddObject ( mod , " M " , PyLong_FromSize_t ( MKEY ) ) ;
PyModule_AddObject ( mod , " N " , PyLong_FromSize_t ( NKEY ) ) ;
PyModule_AddObject ( mod , " O " , PyLong_FromSize_t ( OKEY ) ) ;
PyModule_AddObject ( mod , " P " , PyLong_FromSize_t ( PKEY ) ) ;
PyModule_AddObject ( mod , " Q " , PyLong_FromSize_t ( QKEY ) ) ;
PyModule_AddObject ( mod , " R " , PyLong_FromSize_t ( RKEY ) ) ;
PyModule_AddObject ( mod , " S " , PyLong_FromSize_t ( SKEY ) ) ;
PyModule_AddObject ( mod , " T " , PyLong_FromSize_t ( TKEY ) ) ;
PyModule_AddObject ( mod , " U " , PyLong_FromSize_t ( UKEY ) ) ;
PyModule_AddObject ( mod , " V " , PyLong_FromSize_t ( VKEY ) ) ;
PyModule_AddObject ( mod , " W " , PyLong_FromSize_t ( WKEY ) ) ;
PyModule_AddObject ( mod , " X " , PyLong_FromSize_t ( XKEY ) ) ;
PyModule_AddObject ( mod , " Y " , PyLong_FromSize_t ( YKEY ) ) ;
PyModule_AddObject ( mod , " Z " , PyLong_FromSize_t ( ZKEY ) ) ;
PyModule_AddObject ( mod , " ZERO " , PyLong_FromSize_t ( ZEROKEY ) ) ;
PyModule_AddObject ( mod , " ONE " , PyLong_FromSize_t ( ONEKEY ) ) ;
PyModule_AddObject ( mod , " TWO " , PyLong_FromSize_t ( TWOKEY ) ) ;
PyModule_AddObject ( mod , " THREE " , PyLong_FromSize_t ( THREEKEY ) ) ;
PyModule_AddObject ( mod , " FOUR " , PyLong_FromSize_t ( FOURKEY ) ) ;
PyModule_AddObject ( mod , " FIVE " , PyLong_FromSize_t ( FIVEKEY ) ) ;
PyModule_AddObject ( mod , " SIX " , PyLong_FromSize_t ( SIXKEY ) ) ;
PyModule_AddObject ( mod , " SEVEN " , PyLong_FromSize_t ( SEVENKEY ) ) ;
PyModule_AddObject ( mod , " EIGHT " , PyLong_FromSize_t ( EIGHTKEY ) ) ;
PyModule_AddObject ( mod , " NINE " , PyLong_FromSize_t ( NINEKEY ) ) ;
PyModule_AddObject ( mod , " CAPSLOCK " , PyLong_FromSize_t ( CAPSLOCKKEY ) ) ;
PyModule_AddObject ( mod , " LEFTCTRL " , PyLong_FromSize_t ( LEFTCTRLKEY ) ) ;
PyModule_AddObject ( mod , " LEFTALT " , PyLong_FromSize_t ( LEFTALTKEY ) ) ;
PyModule_AddObject ( mod , " RIGHTALT " , PyLong_FromSize_t ( RIGHTALTKEY ) ) ;
PyModule_AddObject ( mod , " RIGHTCTRL " , PyLong_FromSize_t ( RIGHTCTRLKEY ) ) ;
PyModule_AddObject ( mod , " RIGHTSHIFT " , PyLong_FromSize_t ( RIGHTSHIFTKEY ) ) ;
PyModule_AddObject ( mod , " LEFTSHIFT " , PyLong_FromSize_t ( LEFTSHIFTKEY ) ) ;
PyModule_AddObject ( mod , " ESC " , PyLong_FromSize_t ( ESCKEY ) ) ;
PyModule_AddObject ( mod , " TAB " , PyLong_FromSize_t ( TABKEY ) ) ;
PyModule_AddObject ( mod , " RET " , PyLong_FromSize_t ( RETKEY ) ) ;
PyModule_AddObject ( mod , " SPACE " , PyLong_FromSize_t ( SPACEKEY ) ) ;
PyModule_AddObject ( mod , " LINEFEED " , PyLong_FromSize_t ( LINEFEEDKEY ) ) ;
PyModule_AddObject ( mod , " BACKSPACE " , PyLong_FromSize_t ( BACKSPACEKEY ) ) ;
PyModule_AddObject ( mod , " DEL " , PyLong_FromSize_t ( DELKEY ) ) ;
PyModule_AddObject ( mod , " SEMICOLON " , PyLong_FromSize_t ( SEMICOLONKEY ) ) ;
PyModule_AddObject ( mod , " PERIOD " , PyLong_FromSize_t ( PERIODKEY ) ) ;
PyModule_AddObject ( mod , " COMMA " , PyLong_FromSize_t ( COMMAKEY ) ) ;
PyModule_AddObject ( mod , " QUOTE " , PyLong_FromSize_t ( QUOTEKEY ) ) ;
PyModule_AddObject ( mod , " ACCENTGRAVE " , PyLong_FromSize_t ( ACCENTGRAVEKEY ) ) ;
PyModule_AddObject ( mod , " MINUS " , PyLong_FromSize_t ( MINUSKEY ) ) ;
PyModule_AddObject ( mod , " SLASH " , PyLong_FromSize_t ( SLASHKEY ) ) ;
PyModule_AddObject ( mod , " BACKSLASH " , PyLong_FromSize_t ( BACKSLASHKEY ) ) ;
PyModule_AddObject ( mod , " EQUAL " , PyLong_FromSize_t ( EQUALKEY ) ) ;
PyModule_AddObject ( mod , " LEFTBRACKET " , PyLong_FromSize_t ( LEFTBRACKETKEY ) ) ;
PyModule_AddObject ( mod , " RIGHTBRACKET " , PyLong_FromSize_t ( RIGHTBRACKETKEY ) ) ;
PyModule_AddObject ( mod , " LEFTARROW " , PyLong_FromSize_t ( LEFTARROWKEY ) ) ;
PyModule_AddObject ( mod , " DOWNARROW " , PyLong_FromSize_t ( DOWNARROWKEY ) ) ;
PyModule_AddObject ( mod , " RIGHTARROW " , PyLong_FromSize_t ( RIGHTARROWKEY ) ) ;
PyModule_AddObject ( mod , " UPARROW " , PyLong_FromSize_t ( UPARROWKEY ) ) ;
PyModule_AddObject ( mod , " PAD0 " , PyLong_FromSize_t ( PAD0 ) ) ;
PyModule_AddObject ( mod , " PAD1 " , PyLong_FromSize_t ( PAD1 ) ) ;
PyModule_AddObject ( mod , " PAD2 " , PyLong_FromSize_t ( PAD2 ) ) ;
PyModule_AddObject ( mod , " PAD3 " , PyLong_FromSize_t ( PAD3 ) ) ;
PyModule_AddObject ( mod , " PAD4 " , PyLong_FromSize_t ( PAD4 ) ) ;
PyModule_AddObject ( mod , " PAD5 " , PyLong_FromSize_t ( PAD5 ) ) ;
PyModule_AddObject ( mod , " PAD6 " , PyLong_FromSize_t ( PAD6 ) ) ;
PyModule_AddObject ( mod , " PAD7 " , PyLong_FromSize_t ( PAD7 ) ) ;
PyModule_AddObject ( mod , " PAD8 " , PyLong_FromSize_t ( PAD8 ) ) ;
PyModule_AddObject ( mod , " PAD9 " , PyLong_FromSize_t ( PAD9 ) ) ;
PyModule_AddObject ( mod , " PADPERIOD " , PyLong_FromSize_t ( PADPERIOD ) ) ;
PyModule_AddObject ( mod , " PADSLASH " , PyLong_FromSize_t ( PADSLASHKEY ) ) ;
PyModule_AddObject ( mod , " PADASTER " , PyLong_FromSize_t ( PADASTERKEY ) ) ;
PyModule_AddObject ( mod , " PADMINUS " , PyLong_FromSize_t ( PADMINUS ) ) ;
PyModule_AddObject ( mod , " PADENTER " , PyLong_FromSize_t ( PADENTER ) ) ;
PyModule_AddObject ( mod , " PADPLUS " , PyLong_FromSize_t ( PADPLUSKEY ) ) ;
PyModule_AddObject ( mod , " F1 " , PyLong_FromSize_t ( F1KEY ) ) ;
PyModule_AddObject ( mod , " F2 " , PyLong_FromSize_t ( F2KEY ) ) ;
PyModule_AddObject ( mod , " F3 " , PyLong_FromSize_t ( F3KEY ) ) ;
PyModule_AddObject ( mod , " F4 " , PyLong_FromSize_t ( F4KEY ) ) ;
PyModule_AddObject ( mod , " F5 " , PyLong_FromSize_t ( F5KEY ) ) ;
PyModule_AddObject ( mod , " F6 " , PyLong_FromSize_t ( F6KEY ) ) ;
PyModule_AddObject ( mod , " F7 " , PyLong_FromSize_t ( F7KEY ) ) ;
PyModule_AddObject ( mod , " F8 " , PyLong_FromSize_t ( F8KEY ) ) ;
PyModule_AddObject ( mod , " F9 " , PyLong_FromSize_t ( F9KEY ) ) ;
PyModule_AddObject ( mod , " F10 " , PyLong_FromSize_t ( F10KEY ) ) ;
PyModule_AddObject ( mod , " F11 " , PyLong_FromSize_t ( F11KEY ) ) ;
PyModule_AddObject ( mod , " F12 " , PyLong_FromSize_t ( F12KEY ) ) ;
PyModule_AddObject ( mod , " PAUSE " , PyLong_FromSize_t ( PAUSEKEY ) ) ;
PyModule_AddObject ( mod , " INSERT " , PyLong_FromSize_t ( INSERTKEY ) ) ;
PyModule_AddObject ( mod , " HOME " , PyLong_FromSize_t ( HOMEKEY ) ) ;
PyModule_AddObject ( mod , " PAGEUP " , PyLong_FromSize_t ( PAGEUPKEY ) ) ;
PyModule_AddObject ( mod , " PAGEDOWN " , PyLong_FromSize_t ( PAGEDOWNKEY ) ) ;
PyModule_AddObject ( mod , " END " , PyLong_FromSize_t ( ENDKEY ) ) ;
PyModule_AddObject ( mod , " UNKNOWN " , PyLong_FromSize_t ( UNKNOWNKEY ) ) ;
PyModule_AddObject ( mod , " COMMAND " , PyLong_FromSize_t ( COMMANDKEY ) ) ;
PyModule_AddObject ( mod , " GRLESS " , PyLong_FromSize_t ( GRLESSKEY ) ) ;
mod = PyModule_New ( " spaceTypes " ) ;
PyModule_AddObject ( submodule , " spaceTypes " , mod ) ;
PyModule_AddObject ( mod , " EMPTY " , PyLong_FromSize_t ( SPACE_EMPTY ) ) ;
PyModule_AddObject ( mod , " VIEW3D " , PyLong_FromSize_t ( SPACE_VIEW3D ) ) ;
PyModule_AddObject ( mod , " IPO " , PyLong_FromSize_t ( SPACE_IPO ) ) ;
2009-03-26 14:05:33 +00:00
PyModule_AddObject ( mod , " OUTLINER " , PyLong_FromSize_t ( SPACE_OUTLINER ) ) ;
2009-03-07 09:46:33 +00:00
PyModule_AddObject ( mod , " BUTS " , PyLong_FromSize_t ( SPACE_BUTS ) ) ;
PyModule_AddObject ( mod , " FILE " , PyLong_FromSize_t ( SPACE_FILE ) ) ;
PyModule_AddObject ( mod , " IMAGE " , PyLong_FromSize_t ( SPACE_IMAGE ) ) ;
PyModule_AddObject ( mod , " INFO " , PyLong_FromSize_t ( SPACE_INFO ) ) ;
PyModule_AddObject ( mod , " SEQ " , PyLong_FromSize_t ( SPACE_SEQ ) ) ;
PyModule_AddObject ( mod , " TEXT " , PyLong_FromSize_t ( SPACE_TEXT ) ) ;
PyModule_AddObject ( mod , " IMASEL " , PyLong_FromSize_t ( SPACE_IMASEL ) ) ;
PyModule_AddObject ( mod , " SOUND " , PyLong_FromSize_t ( SPACE_SOUND ) ) ;
PyModule_AddObject ( mod , " ACTION " , PyLong_FromSize_t ( SPACE_ACTION ) ) ;
PyModule_AddObject ( mod , " NLA " , PyLong_FromSize_t ( SPACE_NLA ) ) ;
PyModule_AddObject ( mod , " SCRIPT " , PyLong_FromSize_t ( SPACE_SCRIPT ) ) ;
PyModule_AddObject ( mod , " TIME " , PyLong_FromSize_t ( SPACE_TIME ) ) ;
PyModule_AddObject ( mod , " NODE " , PyLong_FromSize_t ( SPACE_NODE ) ) ;
2009-02-28 13:27:45 +00:00
2009-02-27 10:22:40 +00:00
return submodule ;
}