special cases and other things in wxPython, and since I plan on making several more, I've decided to put the SWIG sources in wxPython's CVS instead of relying on maintaining patches. This effectivly becomes a fork of an obsolete version of SWIG, :-( but since SWIG 1.3 still doesn't have some things I rely on in 1.1, not to mention that my custom patches would all have to be redone, I felt that this is the easier road to take. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15307 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			109 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			OpenEdge ABL
		
	
	
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			OpenEdge ABL
		
	
	
	
	
	
| // constarray.i
 | |
| //
 | |
| // This module changes SWIG to place constant values into a Tcl array
 | |
| 
 | |
| 
 | |
| #ifdef AUTODOC
 | |
| %subsection "Array Constants",pre
 | |
| %text %{
 | |
| %include constarray.i
 | |
| 
 | |
| This module changes SWIG so that constant values are placed into a Tcl
 | |
| array instead of global variables.   The array is given the same name as
 | |
| the SWIG module (specified with the %module directive).
 | |
| 
 | |
| This module should generally be included at the top of an interface
 | |
| file before any declarations appear.   Furthermore, this module changes
 | |
| the default handling of basic datatypes including integers, floats,
 | |
| and character strings.
 | |
| 
 | |
| When this module is used, constants are simply accessed through the
 | |
| module name.  For example :
 | |
| 
 | |
|      %module example
 | |
|      ...
 | |
|      #define FOO 42
 | |
| 
 | |
| would be accessed as '$example(FOO)'
 | |
| 
 | |
| Note : This module replaces the existing mechanism for creating constants.
 | |
| The method used by this module is based on a set of typemaps supplied
 | |
| by Tim Medley.
 | |
| %}
 | |
| #endif
 | |
| 
 | |
| %typemap(tcl,const) int SWIG_DEFAULT_TYPE, 
 | |
|                     unsigned int SWIG_DEFAULT_TYPE,
 | |
|                     long SWIG_DEFAULT_TYPE,
 | |
|                     unsigned long SWIG_DEFAULT_TYPE,
 | |
|                     short SWIG_DEFAULT_TYPE,
 | |
|                     unsigned short SWIG_DEFAULT_TYPE,
 | |
|                     unsigned char  SWIG_DEFAULT_TYPE,
 | |
|                     signed char    SWIG_DEFAULT_TYPE
 | |
| {
 | |
|   static int ivalue = (int) $source;
 | |
|   Tcl_LinkVar(interp,SWIG_name "($target)",(char *) &ivalue, TCL_LINK_INT | TCL_LINK_READ_ONLY);
 | |
| }
 | |
| 
 | |
| %typemap(tcl,const) float  SWIG_DEFAULT_TYPE, 
 | |
|                     double SWIG_DEFAULT_TYPE
 | |
| {
 | |
|   static double dvalue = (double) $source;
 | |
|   Tcl_LinkVar(interp, SWIG_prefix SWIG_name "($target)",(char *) &dvalue, TCL_LINK_DOUBLE | TCL_LINK_READ_ONLY);
 | |
| }
 | |
| 
 | |
| %typemap(tcl,const) char  *SWIG_DEFAULT_TYPE
 | |
| {
 | |
|   static char *cvalue = $source;
 | |
|   Tcl_LinkVar(interp, SWIG_prefix SWIG_name "($target)",(char *) &cvalue, TCL_LINK_STRING | TCL_LINK_READ_ONLY);
 | |
| }
 | |
| 
 | |
| %typemap(tcl,const) Pointer *SWIG_DEFAULT_TYPE
 | |
| {
 | |
|   static char *pvalue;
 | |
|   pvalue = (char *) malloc(20+strlen("$mangle"));
 | |
|   SWIG_MakePtr(pvalue, (void *) ($source), "$mangle");
 | |
|   Tcl_LinkVar(interp, SWIG_prefix SWIG_name "($target)",(char *) &pvalue, TCL_LINK_STRING | TCL_LINK_READ_ONLY);
 | |
| }  
 | |
| 
 | |
| // ----------------------------------------------------------------------------------
 | |
| // Tcl 8 Object versions
 | |
| // ----------------------------------------------------------------------------------
 | |
| 
 | |
| %typemap(tcl8,const) int SWIG_DEFAULT_TYPE, 
 | |
|                     unsigned int SWIG_DEFAULT_TYPE,
 | |
|                     long SWIG_DEFAULT_TYPE,
 | |
|                     unsigned long SWIG_DEFAULT_TYPE,
 | |
|                     short SWIG_DEFAULT_TYPE,
 | |
|                     unsigned short SWIG_DEFAULT_TYPE,
 | |
|                     unsigned char  SWIG_DEFAULT_TYPE,
 | |
|                     signed char    SWIG_DEFAULT_TYPE
 | |
| {
 | |
|   static int ivalue = (int) $source;
 | |
|   Tcl_LinkVar(interp, SWIG_prefix SWIG_name "($target)",(char *) &ivalue, TCL_LINK_INT | TCL_LINK_READ_ONLY);
 | |
| }
 | |
| 
 | |
| %typemap(tcl8,const) float  SWIG_DEFAULT_TYPE, 
 | |
|                     double SWIG_DEFAULT_TYPE
 | |
| {
 | |
|   static double dvalue = (double) $source;
 | |
|   Tcl_LinkVar(interp, SWIG_prefix SWIG_name "($target)",(char *) &dvalue, TCL_LINK_DOUBLE | TCL_LINK_READ_ONLY);
 | |
| }
 | |
| 
 | |
| %typemap(tcl8,const) char  *SWIG_DEFAULT_TYPE
 | |
| {
 | |
|   static char *cvalue = $source;
 | |
|   Tcl_LinkVar(interp, SWIG_prefix SWIG_name "($target)",(char *) &cvalue, TCL_LINK_STRING | TCL_LINK_READ_ONLY);
 | |
| }
 | |
| 
 | |
| %typemap(tcl8,const) Pointer *SWIG_DEFAULT_TYPE
 | |
| {
 | |
|   static char *pvalue;
 | |
|   pvalue = (char *) malloc(20+strlen("$mangle"));
 | |
|   SWIG_MakePtr(pvalue, (void *) ($source), "$mangle");
 | |
|   Tcl_LinkVar(interp, SWIG_prefix SWIG_name "($target)",(char *) &pvalue, TCL_LINK_STRING | TCL_LINK_READ_ONLY);
 | |
| }  
 | |
| 
 | |
| 
 | |
|    
 |