| 
									
										
										
										
											2007-12-24 18:53:37 +00:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * $Id: BPY_extern.h 12334 2007-10-21 23:00:29Z aligorith $ | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											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, | 
					
						
							|  |  |  |  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * 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 ScriptLink; /* DNA_scriptlink_types.h */ | 
					
						
							|  |  |  | 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; | 
					
						
							| 
									
										
										
										
											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); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       Also, BPy_Free_DrawButtonsList() must be called as necassary when a drawspace | 
					
						
							|  |  |  |       with python callbacks is destroyed. | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |       This is necassary to avoid blender buttons storing invalid pointers to freed | 
					
						
							|  |  |  |       python data.*/ | 
					
						
							|  |  |  | 	void BPy_Set_DrawButtonsList(void *list); | 
					
						
							|  |  |  | 	void BPy_Free_DrawButtonsList(void); | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 	void BPY_pyconstraint_eval(struct bPythonConstraint *con, struct bConstraintOb *cob, struct ListBase *targets); | 
					
						
							|  |  |  | 	void BPY_pyconstraint_settings(void *arg1, void *arg2); | 
					
						
							|  |  |  | 	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); | 
					
						
							| 
									
										
										
										
											2008-02-24 06:38:42 +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 ); | 
					
						
							|  |  |  | 	void BPY_post_start_python( void ); | 
					
						
							|  |  |  | 	void init_syspath( int first_time ); | 
					
						
							|  |  |  | 	void syspath_append( char *dir ); | 
					
						
							| 
									
										
										
										
											2008-02-20 13:42:15 +00:00
										 |  |  | 	void BPY_rebuild_syspath( void ); | 
					
						
							| 
									
										
										
										
											2008-04-23 14:04:05 +00:00
										 |  |  | 	int BPY_path_update( void ); | 
					
						
							|  |  |  | 	 | 
					
						
							| 
									
										
										
										
											2007-12-24 18:53:37 +00:00
										 |  |  | 	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 ); | 
					
						
							| 
									
										
										
										
											2008-07-15 07:04:31 +00:00
										 |  |  | 	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-03-04 13:26:33 +00:00
										 |  |  | 	int BPY_run_python_script( struct bContext *C, const char *filename, struct Text *text ); // 2.5 working
 | 
					
						
							| 
									
										
										
										
											2009-02-28 13:27:45 +00:00
										 |  |  | 	int BPY_run_script_space_draw(struct bContext *C, struct SpaceScript * sc); // 2.5 working
 | 
					
						
							|  |  |  | //	int BPY_run_script_space_listener(struct bContext *C, struct SpaceScript * sc, struct ARegion *ar, struct wmNotifier *wmn); // 2.5 working
 | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 	 | 
					
						
							| 
									
										
										
										
											2008-03-06 21:25:15 +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 ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	void BPY_clear_bad_scriptlinks( struct Text *byebye ); | 
					
						
							|  |  |  | 	int BPY_has_onload_script( void ); | 
					
						
							| 
									
										
										
										
											2008-09-18 22:33:49 +00:00
										 |  |  | 	void BPY_do_all_scripts( short event, short anim ); | 
					
						
							| 
									
										
										
										
											2007-12-24 18:53:37 +00:00
										 |  |  | 	int BPY_check_all_scriptlinks( struct Text *text ); | 
					
						
							|  |  |  | 	void BPY_do_pyscript( struct ID *id, short event ); | 
					
						
							|  |  |  | 	void BPY_free_scriptlink( struct ScriptLink *slink ); | 
					
						
							|  |  |  | 	void BPY_copy_scriptlink( struct ScriptLink *scriptlink ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	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, | 
					
						
							| 
									
										
										
										
											2008-09-19 18:53:05 +00:00
										 |  |  | 		short eventValue, unsigned short space_event); | 
					
						
							| 
									
										
										
										
											2007-12-24 18:53:37 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	void BPY_pydriver_update(void); | 
					
						
							| 
									
										
										
										
											2009-02-15 23:28:30 +00:00
										 |  |  | 	float BPY_pydriver_eval(struct ChannelDriver *driver); | 
					
						
							|  |  |  | 	struct Object **BPY_pydriver_get_objects(struct ChannelDriver *driver); | 
					
						
							| 
									
										
										
										
											2007-12-24 18:53:37 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	int BPY_button_eval(char *expr, double *value); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* format importer hook */ | 
					
						
							|  |  |  | 	int BPY_call_importloader( char *name ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	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_clear_script( struct Script *script ); | 
					
						
							|  |  |  | 	void BPY_free_finished_script( struct Script *script ); | 
					
						
							| 
									
										
										
										
											2008-03-06 21:25:15 +00:00
										 |  |  | 	void BPY_scripts_clear_pyobjects( void ); | 
					
						
							| 
									
										
										
										
											2008-03-15 18:53:42 +00:00
										 |  |  | 	 | 
					
						
							|  |  |  | 	void error_pyscript( void ); | 
					
						
							|  |  |  | 	 | 
					
						
							| 
									
										
										
										
											2007-12-24 18:53:37 +00:00
										 |  |  | /* void BPY_Err_Handle(struct Text *text); */ | 
					
						
							|  |  |  | /* void BPY_clear_bad_scriptlink(struct ID *id, struct Text *byebye); */ | 
					
						
							|  |  |  | /* void BPY_clear_bad_scriptlist(struct ListBase *, struct Text *byebye); */ | 
					
						
							|  |  |  | /* int BPY_spacetext_is_pywin(struct SpaceText *st); */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | }				/* extern "C" */ | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif  /* BPY_EXTERN_H */
 |