]> git.saurik.com Git - wxWidgets.git/blame - wxPython/wxSWIG/Modules/swigtcl.h
RTTI simplifications
[wxWidgets.git] / wxPython / wxSWIG / Modules / swigtcl.h
CommitLineData
c90f71dd
RD
1/*******************************************************************************
2 * Simplified Wrapper and Interface Generator (SWIG)
3 *
4 * Author : David Beazley
5 *
6 * Department of Computer Science
7 * University of Chicago
8 * 1100 E 58th Street
9 * Chicago, IL 60637
10 * beazley@cs.uchicago.edu
11 *
12 * Please read the file LICENSE for the copyright and terms by which SWIG
13 * can be used and distributed.
14 *******************************************************************************/
15
16/**************************************************************************
17 * class TCL
18 *
19 * A Simple TCL implementation.
20 **************************************************************************/
21
22class TCL : public Language {
23private:
24 char interp_name[256];
25 char *prefix; // Package prefix
26 char *module; // Name of the module
27 char *tcl_path;
28 char *init_name;
29 int Plugin;
30 int nspace;
31 char *safe_name;
32 void get_pointer(char *iname, char *srcname, char *src, char *dest, DataType *t,
33 String &f, char *ret);
34 char *char_result;
35 char *usage_string(char *, DataType *, ParmList *);
36 char *usage_func(char *, DataType *, ParmList *);
37 char *usage_var(char *, DataType *);
38 char *usage_const(char *, DataType *, char *);
39
40 // C++ handling
41
42 int have_constructor;
43 int have_destructor;
44 int have_methods;
45 int have_config;
46 int have_cget;
47 String config;
48 String cget;
49 String methods;
50 String options;
51 String config_options;
52 String methodnames;
53 String postinit;
54 int shadow;
55 char *class_name;
56 char *class_type;
57 char *real_classname;
58 char *base_class;
59 Hash hash;
60 Hash repeatcmd;
61
62 // C++ Code generation strings
63
64 String delcmd;
65 String methodcmd;
66 String objcmd;
67
68public :
69 TCL() {
70 prefix = 0;
71 module = 0;
72 init_name = 0;
73 nspace = 0;
74 shadow = 1;
75 char_result = "TCL_VOLATILE";
76 tcl_path = "tcl";
77 sprintf(interp_name,"interp");
78 class_name = 0;
79 class_type = 0;
80 real_classname = 0;
81 base_class = 0;
82 };
83 void parse_args(int, char *argv[]);
84 void parse();
85 void create_function(char *, char *, DataType *, ParmList *);
86 void link_variable(char *, char *, DataType *);
87 void declare_const(char *, char *, DataType *, char *);
88 void initialize(void);
89 void headers(void);
90 void close(void);
91 void set_module(char *,char **);
92 void set_init(char *);
93 void add_native(char *, char *);
94 void pragma(char *,char *, char *);
95 void create_command(char *, char *);
96
97 // Stubs for processing C++ classes in Tcl
98
99 void cpp_open_class(char *classname, char *rename, char *ctype, int strip);
100 void cpp_close_class();
101 void cpp_member_func(char *name, char *iname, DataType *t, ParmList *l);
102 void cpp_variable(char *name, char *iname, DataType *t);
103 void cpp_constructor(char *name, char *iname, ParmList *l);
104 void cpp_destructor(char *name, char *newname);
105 void cpp_inherit(char **baseclass, int mode = INHERIT_ALL);
106 void cpp_declare_const(char *name, char *iname, DataType *type, char *value);
107 void cpp_class_decl(char *, char *, char *);
108 void add_typedef(DataType *, char *);
109};
110
111
112
113
114
115