You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
3.0 KiB
108 lines
3.0 KiB
5 years ago
|
/* -----------------------------------------------------------------------------
|
||
|
* SWIG API. Portion that goes into the runtime
|
||
|
* ----------------------------------------------------------------------------- */
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
/* -----------------------------------------------------------------------------
|
||
|
* Constant declarations
|
||
|
* ----------------------------------------------------------------------------- */
|
||
|
|
||
|
/* Constant Types */
|
||
|
#define SWIG_TCL_POINTER 4
|
||
|
#define SWIG_TCL_BINARY 5
|
||
|
|
||
|
/* Constant information structure */
|
||
|
typedef struct swig_const_info {
|
||
|
int type;
|
||
|
char *name;
|
||
|
long lvalue;
|
||
|
double dvalue;
|
||
|
void *pvalue;
|
||
|
swig_type_info **ptype;
|
||
|
} swig_const_info;
|
||
|
|
||
|
typedef int (*swig_wrapper)(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST []);
|
||
|
typedef int (*swig_wrapper_func)(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST []);
|
||
|
typedef char *(*swig_variable_func)(ClientData, Tcl_Interp *, char *, char *, int);
|
||
|
typedef void (*swig_delete_func)(ClientData);
|
||
|
|
||
|
typedef struct swig_method {
|
||
|
const char *name;
|
||
|
swig_wrapper method;
|
||
|
} swig_method;
|
||
|
|
||
|
typedef struct swig_attribute {
|
||
|
const char *name;
|
||
|
swig_wrapper getmethod;
|
||
|
swig_wrapper setmethod;
|
||
|
} swig_attribute;
|
||
|
|
||
|
typedef struct swig_class {
|
||
|
const char *name;
|
||
|
swig_type_info **type;
|
||
|
swig_wrapper constructor;
|
||
|
void (*destructor)(void *);
|
||
|
swig_method *methods;
|
||
|
swig_attribute *attributes;
|
||
|
struct swig_class **bases;
|
||
|
const char **base_names;
|
||
|
swig_module_info *module;
|
||
|
} swig_class;
|
||
|
|
||
|
typedef struct swig_instance {
|
||
|
Tcl_Obj *thisptr;
|
||
|
void *thisvalue;
|
||
|
swig_class *classptr;
|
||
|
int destroy;
|
||
|
Tcl_Command cmdtok;
|
||
|
} swig_instance;
|
||
|
|
||
|
/* Structure for command table */
|
||
|
typedef struct {
|
||
|
const char *name;
|
||
|
int (*wrapper)(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST []);
|
||
|
ClientData clientdata;
|
||
|
} swig_command_info;
|
||
|
|
||
|
/* Structure for variable linking table */
|
||
|
typedef struct {
|
||
|
const char *name;
|
||
|
void *addr;
|
||
|
char * (*get)(ClientData, Tcl_Interp *, char *, char *, int);
|
||
|
char * (*set)(ClientData, Tcl_Interp *, char *, char *, int);
|
||
|
} swig_var_info;
|
||
|
|
||
|
|
||
|
/* -----------------------------------------------------------------------------*
|
||
|
* Install a constant object
|
||
|
* -----------------------------------------------------------------------------*/
|
||
|
|
||
|
static Tcl_HashTable swigconstTable;
|
||
|
static int swigconstTableinit = 0;
|
||
|
|
||
|
SWIGINTERN void
|
||
|
SWIG_Tcl_SetConstantObj(Tcl_Interp *interp, const char* name, Tcl_Obj *obj) {
|
||
|
int newobj;
|
||
|
Tcl_ObjSetVar2(interp,Tcl_NewStringObj(name,-1), NULL, obj, TCL_GLOBAL_ONLY);
|
||
|
Tcl_SetHashValue(Tcl_CreateHashEntry(&swigconstTable, name, &newobj), (ClientData) obj);
|
||
|
}
|
||
|
|
||
|
SWIGINTERN Tcl_Obj *
|
||
|
SWIG_Tcl_GetConstantObj(const char *key) {
|
||
|
Tcl_HashEntry *entryPtr;
|
||
|
if (!swigconstTableinit) return 0;
|
||
|
entryPtr = Tcl_FindHashEntry(&swigconstTable, key);
|
||
|
if (entryPtr) {
|
||
|
return (Tcl_Obj *) Tcl_GetHashValue(entryPtr);
|
||
|
}
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
|