c90f71dd8c
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);
|
|
}
|
|
|
|
|
|
|