| 
									
										
										
										
											2007-12-24 18:53:37 +00:00
										 |  |  | /*
 | 
					
						
							| 
									
										
										
										
											2009-06-23 00:09:26 +00:00
										 |  |  |  * $Id$ | 
					
						
							| 
									
										
										
										
											2007-12-24 18:53:37 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-01-07 18:03:41 +00:00
										 |  |  |  * ***** BEGIN GPL LICENSE BLOCK ***** | 
					
						
							| 
									
										
										
										
											2007-12-24 18:53:37 +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-01-07 19:13:47 +00:00
										 |  |  |  * of the License, or (at your option) any later version. | 
					
						
							| 
									
										
										
										
											2007-12-24 18:53:37 +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. | 
					
						
							| 
									
										
										
										
											2007-12-24 18:53:37 +00:00
										 |  |  |  * | 
					
						
							|  |  |  |  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. | 
					
						
							|  |  |  |  * All rights reserved. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * The Original Code was in: source/blender/bpython/include/BPY_extern.h | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Contributor(s): Michel Selten, Willian P. Germano, Chris Keith | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-01-07 18:03:41 +00:00
										 |  |  |  * ***** END GPL LICENSE BLOCK ***** | 
					
						
							| 
									
										
										
										
											2007-12-24 18:53:37 +00:00
										 |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef BPY_EXTERN_H
 | 
					
						
							|  |  |  | #define BPY_EXTERN_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern char bprogname[];	/* holds a copy of argv[0], from creator.c */ | 
					
						
							| 
									
										
										
										
											2008-02-13 13:55:22 +00:00
										 |  |  | extern char btempdir[];		/* use this to store a valid temp directory */ | 
					
						
							| 
									
										
										
										
											2007-12-24 18:53:37 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | struct Text; /* defined in DNA_text_types.h */ | 
					
						
							|  |  |  | struct ID; /* DNA_ID.h */ | 
					
						
							|  |  |  | struct Object; /* DNA_object_types.h */ | 
					
						
							| 
									
										
										
										
											2009-02-15 23:28:30 +00:00
										 |  |  | struct ChannelDriver; /* DNA_anim_types.h */ | 
					
						
							| 
									
										
										
										
											2007-12-24 18:53:37 +00:00
										 |  |  | struct ListBase; /* DNA_listBase.h */ | 
					
						
							|  |  |  | struct SpaceText; /* DNA_space_types.h */ | 
					
						
							|  |  |  | struct SpaceScript; /* DNA_space_types.h */ | 
					
						
							|  |  |  | struct ScrArea; /* DNA_screen_types.h */ | 
					
						
							|  |  |  | struct bScreen; /* DNA_screen_types.h */ | 
					
						
							|  |  |  | struct bConstraint; /* DNA_constraint_types.h */ | 
					
						
							|  |  |  | struct bPythonConstraint; /* DNA_constraint_types.h */ | 
					
						
							|  |  |  | struct bConstraintOb; /* DNA_constraint_types.h */ | 
					
						
							|  |  |  | struct bConstraintTarget; /* DNA_constraint_types.h*/ | 
					
						
							| 
									
										
										
										
											2008-03-06 21:25:15 +00:00
										 |  |  | struct Script;				/* DNA_screen_types.h */ | 
					
						
							| 
									
										
										
										
											2008-07-15 07:34:46 +00:00
										 |  |  | struct BPyMenu; | 
					
						
							| 
									
										
										
										
											2008-12-21 10:36:29 +00:00
										 |  |  | struct bContext; | 
					
						
							| 
									
										
										
										
											2009-11-10 16:18:54 +00:00
										 |  |  | struct bContextDataResult; | 
					
						
							| 
									
										
										
										
											2009-06-22 18:19:18 +00:00
										 |  |  | struct ReportList; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-12-24 18:53:37 +00:00
										 |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | extern "C" { | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	/*These two next functions are important for making sure the Draw module
 | 
					
						
							|  |  |  | 	  works correctly.  Before calling any gui callback using the Draw module, | 
					
						
							|  |  |  | 	  the following code must be executed: | 
					
						
							|  |  |  | 	   | 
					
						
							|  |  |  | 		if (some_drawspace_pylist) { | 
					
						
							|  |  |  | 			BPy_Set_DrawButtonsList(some_drawspace_pylist->but_refs); | 
					
						
							|  |  |  | 			BPy_Free_DrawButtonsList(); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		some_drawspace_pylist = PyList_New(0); | 
					
						
							|  |  |  | 		BPy_Set_DrawButtonsList(some_drawspace_pylist); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-22 09:30:00 +00:00
										 |  |  | 	  Also, BPy_Free_DrawButtonsList() must be called as necassary when a drawspace | 
					
						
							|  |  |  | 	  with python callbacks is destroyed. | 
					
						
							| 
									
										
										
										
											2007-12-24 18:53:37 +00:00
										 |  |  |        | 
					
						
							| 
									
										
										
										
											2010-03-22 09:30:00 +00:00
										 |  |  | 	  This is necassary to avoid blender buttons storing invalid pointers to freed | 
					
						
							|  |  |  | 	  python data.*/ | 
					
						
							| 
									
										
										
										
											2009-11-20 15:01:09 +00:00
										 |  |  | //	void BPy_Set_DrawButtonsList(void *list);
 | 
					
						
							|  |  |  | //	void BPy_Free_DrawButtonsList(void);
 | 
					
						
							|  |  |  | //
 | 
					
						
							| 
									
										
										
										
											2007-12-24 18:53:37 +00:00
										 |  |  | 	void BPY_pyconstraint_eval(struct bPythonConstraint *con, struct bConstraintOb *cob, struct ListBase *targets); | 
					
						
							| 
									
										
										
										
											2009-11-20 15:01:09 +00:00
										 |  |  | //	void BPY_pyconstraint_settings(void *arg1, void *arg2);
 | 
					
						
							| 
									
										
										
										
											2007-12-24 18:53:37 +00:00
										 |  |  | 	void BPY_pyconstraint_target(struct bPythonConstraint *con, struct bConstraintTarget *ct); | 
					
						
							|  |  |  | 	void BPY_pyconstraint_update(struct Object *owner, struct bConstraint *con); | 
					
						
							|  |  |  | 	int BPY_is_pyconstraint(struct Text *text); | 
					
						
							| 
									
										
										
										
											2009-11-20 15:01:09 +00:00
										 |  |  | //	void BPY_free_pyconstraint_links(struct Text *text);
 | 
					
						
							|  |  |  | //
 | 
					
						
							| 
									
										
										
										
											2007-12-24 18:53:37 +00:00
										 |  |  | 	void BPY_start_python( int argc, char **argv ); | 
					
						
							|  |  |  | 	void BPY_end_python( void ); | 
					
						
							| 
									
										
										
										
											2009-11-20 15:01:09 +00:00
										 |  |  | //	void init_syspath( int first_time );
 | 
					
						
							|  |  |  | //	void syspath_append( char *dir );
 | 
					
						
							|  |  |  | //	void BPY_rebuild_syspath( void );
 | 
					
						
							|  |  |  | //	int BPY_path_update( void );
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | //	int BPY_Err_getLinenumber( void );
 | 
					
						
							|  |  |  | //	const char *BPY_Err_getFilename( void );
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | //	int BPY_txt_do_python_Text( struct Text *text );
 | 
					
						
							|  |  |  | //	int BPY_menu_do_python( short menutype, int event );
 | 
					
						
							|  |  |  | //	int BPY_menu_do_shortcut( short menutype, unsigned short key, unsigned short modifiers );
 | 
					
						
							|  |  |  | //	int BPY_menu_invoke( struct BPyMenu *pym, short menutype );
 | 
					
						
							| 
									
										
										
										
											2009-02-28 13:27:45 +00:00
										 |  |  | 	 | 
					
						
							|  |  |  | 	/* 2.5 UI Scripts */ | 
					
						
							| 
									
										
										
										
											2009-06-14 12:53:47 +00:00
										 |  |  | 	int BPY_run_python_script( struct bContext *C, const char *filename, struct Text *text, struct ReportList *reports ); // 2.5 working
 | 
					
						
							| 
									
										
										
										
											2009-07-09 15:40:04 +00:00
										 |  |  | 	int BPY_run_script_space_draw(const struct bContext *C, struct SpaceScript * sc); // 2.5 working
 | 
					
						
							| 
									
										
										
										
											2009-02-28 13:27:45 +00:00
										 |  |  | //	int BPY_run_script_space_listener(struct bContext *C, struct SpaceScript * sc, struct ARegion *ar, struct wmNotifier *wmn); // 2.5 working
 | 
					
						
							| 
									
										
										
										
											2009-04-11 16:17:39 +00:00
										 |  |  | 	void BPY_update_modules( void ); // XXX - annoying, need this for pointers that get out of date
 | 
					
						
							| 
									
										
										
										
											2009-11-20 15:01:09 +00:00
										 |  |  | //
 | 
					
						
							| 
									
										
										
										
											2009-11-10 16:18:54 +00:00
										 |  |  | 	int BPY_context_get(struct bContext *C, const char *member, struct bContextDataResult *result); | 
					
						
							| 
									
										
										
										
											2009-11-20 15:01:09 +00:00
										 |  |  | //
 | 
					
						
							|  |  |  | //	int BPY_run_script(struct Script *script);
 | 
					
						
							| 
									
										
										
										
											2007-12-24 18:53:37 +00:00
										 |  |  | 	void BPY_free_compiled_text( struct Text *text ); | 
					
						
							| 
									
										
										
										
											2009-11-20 15:01:09 +00:00
										 |  |  | //
 | 
					
						
							|  |  |  | //	int BPY_has_onload_script( void );
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | //	int BPY_is_spacehandler(struct Text *text, char spacetype);
 | 
					
						
							|  |  |  | //	int BPY_del_spacehandler(struct Text *text, struct ScrArea *sa);
 | 
					
						
							|  |  |  | //	int BPY_add_spacehandler(struct Text *txt, struct ScrArea *sa,char spacetype);
 | 
					
						
							|  |  |  | //	int BPY_has_spacehandler(struct Text *text, struct ScrArea *sa);
 | 
					
						
							|  |  |  | //	void BPY_screen_free_spacehandlers(struct bScreen *sc);
 | 
					
						
							|  |  |  | //	int BPY_do_spacehandlers(struct ScrArea *sa, unsigned short event,
 | 
					
						
							|  |  |  | //		short eventValue, unsigned short space_event);
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | //	void BPY_pydriver_update(void);
 | 
					
						
							| 
									
										
										
										
											2010-05-30 14:05:58 +00:00
										 |  |  | 	float BPY_eval_driver(struct ChannelDriver *driver); | 
					
						
							| 
									
										
										
										
											2009-11-20 15:01:09 +00:00
										 |  |  | //
 | 
					
						
							| 
									
										
										
										
											2010-05-30 14:05:58 +00:00
										 |  |  | 	int BPY_eval_button(struct bContext *C, const char *expr, double *value); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	int BPY_eval_string(struct bContext *C, const char *expr); | 
					
						
							| 
									
										
										
										
											2007-12-24 18:53:37 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | /* format importer hook */ | 
					
						
							| 
									
										
										
										
											2010-11-17 09:45:45 +00:00
										 |  |  | 	int BPY_call_importloader(const char *name); | 
					
						
							| 
									
										
										
										
											2009-11-20 15:01:09 +00:00
										 |  |  | //
 | 
					
						
							|  |  |  | //	void BPY_spacescript_do_pywin_draw( struct SpaceScript *sc );
 | 
					
						
							|  |  |  | //	void BPY_spacescript_do_pywin_event( struct SpaceScript *sc,
 | 
					
						
							|  |  |  | //					     unsigned short event, short val, char ascii );
 | 
					
						
							|  |  |  | //	void BPY_free_finished_script( struct Script *script );
 | 
					
						
							|  |  |  | //	void BPY_scripts_clear_pyobjects( void );
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | //	void error_pyscript( void );
 | 
					
						
							| 
									
										
										
										
											2009-12-08 10:36:46 +00:00
										 |  |  | 	void BPY_DECREF(void *pyob_ptr);	/* Py_DECREF() */ | 
					
						
							| 
									
										
										
										
											2009-11-13 09:28:05 +00:00
										 |  |  | 	void BPY_set_context(struct bContext *C); | 
					
						
							| 
									
										
										
										
											2007-12-24 18:53:37 +00:00
										 |  |  | /* void BPY_Err_Handle(struct Text *text); */ | 
					
						
							|  |  |  | /* int BPY_spacetext_is_pywin(struct SpaceText *st); */ | 
					
						
							| 
									
										
										
										
											2009-11-20 15:01:09 +00:00
										 |  |  | 	void BPY_load_user_modules(struct bContext *C); | 
					
						
							| 
									
										
										
										
											2007-12-24 18:53:37 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | }				/* extern "C" */ | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif  /* BPY_EXTERN_H */
 |