diff options
author | Campbell Barton <ideasman42@gmail.com> | 2007-02-25 10:36:50 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2007-02-25 10:36:50 +0300 |
commit | 436e1697fdf07f5a17bcfbdde8b18e89e44e9cf1 (patch) | |
tree | 6e7695edfd05e95a01d4772f24afb84303a8ee0e /source/blender/python/api2_2x/Scene.c | |
parent | e64b887fad611917916b2ce30bbcf2aa55593ea5 (diff) |
made attributes (name, property, users, fakeUser, lib) into functions all python types can use.
removed a lot of code duplication when moving to this.
Also removed unused functions GetMaterialByName(), same for Mesh, Object, World etc.
Diffstat (limited to 'source/blender/python/api2_2x/Scene.c')
-rw-r--r-- | source/blender/python/api2_2x/Scene.c | 172 |
1 files changed, 5 insertions, 167 deletions
diff --git a/source/blender/python/api2_2x/Scene.c b/source/blender/python/api2_2x/Scene.c index 5b65903a0c6..6502d3b23ce 100644 --- a/source/blender/python/api2_2x/Scene.c +++ b/source/blender/python/api2_2x/Scene.c @@ -125,8 +125,6 @@ struct PyMethodDef M_Scene_methods[] = { {NULL, NULL, 0, NULL} }; /*-----------------------BPy_Scene method declarations--------------------*/ -static PyObject *Scene_oldgetName( BPy_Scene * self ); -static PyObject *Scene_oldsetName( BPy_Scene * self, PyObject * arg ); static PyObject *Scene_getLayerList( BPy_Scene * self ); static PyObject *Scene_oldsetLayers( BPy_Scene * self, PyObject * arg ); static PyObject *Scene_copy( BPy_Scene * self, PyObject * arg ); @@ -158,9 +156,9 @@ static PyObject *SceneObSeq_CreatePyObject( BPy_Scene *self, Base *iter, int mod /*-----------------------BPy_Scene method def------------------------------*/ static PyMethodDef BPy_Scene_methods[] = { /* name, method, flags, doc */ - {"getName", ( PyCFunction ) Scene_oldgetName, METH_NOARGS, + {"getName", ( PyCFunction ) GenericLib_getName, METH_NOARGS, "() - Return Scene name"}, - {"setName", ( PyCFunction ) Scene_oldsetName, METH_VARARGS, + {"setName", ( PyCFunction ) GenericLib_setName_with_method, METH_VARARGS, "(str) - Change Scene name"}, {"getLayers", ( PyCFunction ) Scene_getLayerList, METH_NOARGS, "() - Return a list of layers int indices which are set in this scene "}, @@ -230,66 +228,8 @@ static PyMethodDef BPy_Scene_methods[] = { /*****************************************************************************/ -/* Python BPy_Scene methods: */ +/* Python BPy_Scene getsetattr funcs: */ /*****************************************************************************/ -static PyObject *Scene_getName( BPy_Scene * self ) -{ - PyObject *attr; - SCENE_DEL_CHECK_PY(self); - - attr = PyString_FromString( self->scene->id.name + 2 ); - - if( attr ) - return attr; - - return ( EXPP_ReturnPyObjError( PyExc_RuntimeError, - "couldn't get Scene.name attribute" ) ); -} - -static int Scene_setName( BPy_Scene * self, PyObject * value ) -{ - char *name = NULL; - - SCENE_DEL_CHECK_INT(self); - - name = PyString_AsString ( value ); - if( !name ) - return EXPP_ReturnIntError( PyExc_TypeError, - "expected string argument" ); - - rename_id( &self->scene->id, name ); - - return 0; -} - -static PyObject *Scene_getLib( BPy_Scene * self ) -{ - SCENE_DEL_CHECK_PY(self); - return EXPP_GetIdLib((ID *)self->scene); - -} - -static PyObject *Scene_getUsers( BPy_Scene * self ) -{ - SCENE_DEL_CHECK_PY(self); - return PyInt_FromLong( self->scene->id.us ); -} - -static PyObject *Scene_getFakeUser( BPy_Scene * self ) -{ - SCENE_DEL_CHECK_PY(self); - if (self->scene->id.flag & LIB_FAKEUSER) - Py_RETURN_TRUE; - else - Py_RETURN_FALSE; -} - -static int Scene_setFakeUser( BPy_Scene * self, PyObject * value ) -{ - SCENE_DEL_CHECK_INT(self); - return SetIdFakeUser(&self->scene->id, value); -} - static PyObject *Scene_getLayerMask( BPy_Scene * self ) { SCENE_DEL_CHECK_PY(self); @@ -447,36 +387,11 @@ static PyObject *Scene_getObjects( BPy_Scene *self) return SceneObSeq_CreatePyObject(self, NULL, 0); } -static PyObject *Scene_GetProperties(BPy_Scene * self) -{ - SCENE_DEL_CHECK_PY(self); - return BPy_Wrap_IDProperty( (ID*)self->scene, IDP_GetProperties((ID*)self->scene, 1), NULL ); -} - /*****************************************************************************/ /* Python attributes get/set structure: */ /*****************************************************************************/ static PyGetSetDef BPy_Scene_getseters[] = { - {"name", - (getter)Scene_getName, (setter)Scene_setName, - "Scene name", - NULL}, - {"lib", - (getter)Scene_getLib, (setter)NULL, - "Scenes external library path", - NULL}, - {"users", - (getter)Scene_getUsers, (setter)NULL, - "Scenes user count", - NULL}, - {"fakeUser", - (getter)Scene_getFakeUser, (setter)Scene_setFakeUser, - "Scene fake user state", - NULL}, - {"properties", - (getter)Scene_GetProperties, (setter)NULL, - "Scene properties", - NULL}, + GENERIC_LIB_GETSETATTR, {"Layer", (getter)Scene_getLayerMask, (setter)Scene_setLayerMask, "Scene layer bitmask", @@ -802,88 +717,11 @@ static PyObject *M_Scene_Unlink( PyObject * self, PyObject * args ) /* DEPRECATE ME !!! */ /*-----------------------BPy_Scene function defintions-------------------*/ -/*-----------------------Scene.getName()---------------------------------*/ -static PyObject *Scene_oldgetName( BPy_Scene * self ) -{ - PyObject *attr; - - SCENE_DEL_CHECK_PY(self); - - attr= PyString_FromString( self->scene->id.name + 2 ); - - if( attr ) - return attr; - - return ( EXPP_ReturnPyObjError( PyExc_RuntimeError, - "couldn't get Scene.name attribute" ) ); -} - -/*-----------------------Scene.setName()---------------------------------*/ -static PyObject *Scene_oldsetName( BPy_Scene * self, PyObject * args ) -{ - char *name; - - SCENE_DEL_CHECK_PY(self); - - if( !PyArg_ParseTuple( args, "s", &name ) ) - return ( EXPP_ReturnPyObjError( PyExc_TypeError, - "expected string argument" ) ); - - rename_id( &self->scene->id, name ); - - Py_RETURN_NONE; -} /*-----------------------Scene.setLayers()---------------------------------*/ static PyObject *Scene_oldsetLayers( BPy_Scene * self, PyObject * args ) { - PyObject *list = NULL, *item = NULL; - int layers = 0, val, i, len_list; - - SCENE_DEL_CHECK_PY(self); - - if( !PyArg_ParseTuple( args, "O!", &PyList_Type, &list ) ) - return ( EXPP_ReturnPyObjError( PyExc_TypeError, - "expected a list of integers in the range [1, 20]" ) ); - - len_list = PyList_Size(list); - - if (len_list == 0) - return ( EXPP_ReturnPyObjError( PyExc_AttributeError, - "list can't be empty, at least one layer must be set" ) ); - - for( i = 0; i < len_list; i++ ) { - item = PyList_GetItem( list, i ); - if( !PyInt_Check( item ) ) - return EXPP_ReturnPyObjError - ( PyExc_AttributeError, - "list must contain only integer numbers" ); - - val = ( int ) PyInt_AsLong( item ); - if( val < 1 || val > 20 ) - return EXPP_ReturnPyObjError - ( PyExc_AttributeError, - "layer values must be in the range [1, 20]" ); - - layers |= 1 << ( val - 1 ); - } - self->scene->lay = layers; - - if (G.vd && (self->scene == G.scene)) { - int bit = 0; - G.vd->lay = layers; - - while( bit < 20 ) { - val = 1 << bit; - if( layers & val ) { - G.vd->layact = val; - break; - } - bit++; - } - } - - Py_RETURN_NONE; + return EXPP_setterWrapper( (void *)self, args, (setter)Scene_setLayerList ); } /* END DEPRECATE CODE */ |