| 
									
										
										
										
											2011-02-23 10:52:22 +00:00
										 |  |  | /*
 | 
					
						
							| 
									
										
										
										
											2008-04-16 22:40:48 +00:00
										 |  |  |  * ***** BEGIN GPL LICENSE BLOCK ***** | 
					
						
							| 
									
										
										
										
											2006-11-29 23:31:46 +00:00
										 |  |  |  * | 
					
						
							|  |  |  |  * 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 | 
					
						
							| 
									
										
										
										
											2008-04-16 22:40:48 +00:00
										 |  |  |  * of the License, or (at your option) any later version. | 
					
						
							| 
									
										
										
										
											2006-11-29 23:31:46 +00:00
										 |  |  |  * | 
					
						
							|  |  |  |  * 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, | 
					
						
							| 
									
										
										
										
											2010-02-12 13:34:04 +00:00
										 |  |  |  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | 
					
						
							| 
									
										
										
										
											2006-11-29 23:31:46 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2009-11-16 18:56:58 +00:00
										 |  |  |  * Contributor(s): Joseph Eagar, Campbell Barton | 
					
						
							| 
									
										
										
										
											2006-11-29 23:31:46 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-04-16 22:40:48 +00:00
										 |  |  |  * ***** END GPL LICENSE BLOCK ***** | 
					
						
							| 
									
										
										
										
											2006-11-29 23:31:46 +00:00
										 |  |  |  */ | 
					
						
							| 
									
										
										
										
											2009-11-16 18:56:58 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-11-15 09:28:15 +00:00
										 |  |  | /** \file blender/python/generic/idprop_py_api.h
 | 
					
						
							| 
									
										
										
										
											2011-02-27 20:10:08 +00:00
										 |  |  |  *  \ingroup pygen | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-02-17 18:59:41 +00:00
										 |  |  | #ifndef __IDPROP_PY_API_H__
 | 
					
						
							|  |  |  | #define __IDPROP_PY_API_H__
 | 
					
						
							| 
									
										
										
										
											2006-11-17 04:46:48 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | struct ID; | 
					
						
							|  |  |  | struct IDProperty; | 
					
						
							|  |  |  | struct BPy_IDGroup_Iter; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-10-31 19:07:25 +00:00
										 |  |  | extern PyTypeObject BPy_IDArray_Type; | 
					
						
							|  |  |  | extern PyTypeObject BPy_IDGroup_Iter_Type; | 
					
						
							|  |  |  | extern PyTypeObject BPy_IDGroup_Type; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BPy_IDArray_Check(v)			(PyObject_TypeCheck(v, &BPy_IDArray_Type))
 | 
					
						
							|  |  |  | #define BPy_IDArray_CheckExact(v)		(Py_TYPE(v) == &BPy_IDArray_Type)
 | 
					
						
							|  |  |  | #define BPy_IDGroup_Iter_Check(v)		(PyObject_TypeCheck(v, &BPy_IDGroup_Iter_Type))
 | 
					
						
							|  |  |  | #define BPy_IDGroup_Iter_CheckExact(v)	(Py_TYPE(v) == &BPy_IDGroup_Iter_Type)
 | 
					
						
							|  |  |  | #define BPy_IDGroup_Check(v)			(PyObject_TypeCheck(v, &BPy_IDGroup_Type))
 | 
					
						
							|  |  |  | #define BPy_IDGroup_CheckExact(v)		(Py_TYPE(v) == &BPy_IDGroup_Type)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-11-17 04:46:48 +00:00
										 |  |  | typedef struct BPy_IDProperty { | 
					
						
							|  |  |  | 	PyObject_VAR_HEAD | 
					
						
							| 
									
										
										
										
											2012-04-11 08:37:48 +00:00
										 |  |  | 	struct ID *id;           /* can be NULL */ | 
					
						
							| 
									
										
										
										
											2011-06-17 05:45:46 +00:00
										 |  |  | 	struct IDProperty *prop; /* must be second member */ | 
					
						
							|  |  |  | 	struct IDProperty *parent; | 
					
						
							| 
									
										
										
										
											2006-11-17 04:46:48 +00:00
										 |  |  | 	PyObject *data_wrap; | 
					
						
							|  |  |  | } BPy_IDProperty; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct BPy_IDArray { | 
					
						
							|  |  |  | 	PyObject_VAR_HEAD | 
					
						
							| 
									
										
										
										
											2012-04-11 08:37:48 +00:00
										 |  |  | 	struct ID *id;            /* can be NULL */ | 
					
						
							| 
									
										
										
										
											2011-06-17 05:45:46 +00:00
										 |  |  | 	struct IDProperty *prop;  /* must be second member */ | 
					
						
							| 
									
										
										
										
											2006-11-17 04:46:48 +00:00
										 |  |  | } BPy_IDArray; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct BPy_IDGroup_Iter { | 
					
						
							|  |  |  | 	PyObject_VAR_HEAD | 
					
						
							|  |  |  | 	BPy_IDProperty *group; | 
					
						
							|  |  |  | 	struct IDProperty *cur; | 
					
						
							| 
									
										
										
										
											2006-12-16 23:54:45 +00:00
										 |  |  | 	int mode; | 
					
						
							| 
									
										
										
										
											2006-11-17 04:46:48 +00:00
										 |  |  | } BPy_IDGroup_Iter; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-11 14:08:22 +00:00
										 |  |  | PyObject *BPy_Wrap_GetKeys(struct IDProperty *prop); | 
					
						
							|  |  |  | PyObject *BPy_Wrap_GetValues(struct ID *id, struct IDProperty *prop); | 
					
						
							|  |  |  | PyObject *BPy_Wrap_GetItems(struct ID *id, struct IDProperty *prop); | 
					
						
							|  |  |  | int BPy_Wrap_SetMapItem(struct IDProperty *prop, PyObject *key, PyObject *val); | 
					
						
							| 
									
										
										
										
											2009-11-16 20:16:45 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-11-15 10:19:44 +00:00
										 |  |  | PyObject *BPy_IDGroup_WrapData(struct ID *id, struct IDProperty *prop, struct IDProperty *parent); | 
					
						
							| 
									
										
										
										
											2013-10-17 03:18:21 +00:00
										 |  |  | bool BPy_IDProperty_Map_ValidateAndCreate(PyObject *key, struct IDProperty *group, PyObject *ob); | 
					
						
							| 
									
										
										
										
											2009-11-16 20:16:45 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-11-29 23:31:46 +00:00
										 |  |  | void IDProp_Init_Types(void); | 
					
						
							| 
									
										
										
										
											2006-12-16 23:54:45 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-04-15 14:54:15 +00:00
										 |  |  | PyObject *BPyInit_idprop(void); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-12-16 23:54:45 +00:00
										 |  |  | #define IDPROP_ITER_KEYS	0
 | 
					
						
							|  |  |  | #define IDPROP_ITER_ITEMS	1
 | 
					
						
							| 
									
										
										
										
											2011-02-14 04:15:25 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-02-17 18:59:41 +00:00
										 |  |  | #endif /* __IDPROP_PY_API_H__ */
 |