]> git.saurik.com Git - wxWidgets.git/blame - wxPython/wxSWIG/Modules/tcl8.h
RTTI simplifications
[wxWidgets.git] / wxPython / wxSWIG / Modules / tcl8.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 TCL8
18 *
19 * A TCL implementation for Tcl 8.0. Basically the same as the other
20 * Tcl module, but with different code generation.
21 **************************************************************************/
22
23class TCL8 : public Language {
24private:
25 char interp_name[256];
26 char *prefix; // Package prefix
27 char *module; // Name of the module
28 char *tcl_path;
29 char *init_name;
30 int nspace;
31 void get_pointer(char *iname, char *srcname, char *src, char *dest, DataType *t,
32 String &f, char *ret);
33 char *char_result;
34 char *usage_func(char *, DataType *, ParmList *);
35 char *usage_string(char *, DataType *, ParmList *);
36 char *usage_var(char *, DataType *);
37 char *usage_const(char *, DataType *, char *);
38
39 // C++ handling
40
41 int have_constructor;
42 int have_destructor;
43 int have_methods;
44 int have_config;
45 int have_cget;
46 String config;
47 String cget;
48 String methods;
49 String options;
50 String config_options;
51 String methodnames;
52 String postinit;
53 int shadow;
54 char *class_name;
55 char *class_type;
56 char *real_classname;
57 char *base_class;
58 Hash hash;
59 Hash repeatcmd;
60
61 // Code generation options
62
63 String delcmd;
64 String methodcmd;
65 String objcmd;
66
67public :
68 TCL8() {
69 prefix = 0;
70 module = 0;
71 init_name = 0;
72 nspace = 0;
73 shadow = 1;
74 char_result = "TCL_VOLATILE";
75 tcl_path = "tcl";
76 sprintf(interp_name,"interp");
77 class_name = 0;
78 class_type = 0;
79 real_classname = 0;
80 base_class = 0;
81 };
82 void parse_args(int, char *argv[]);
83 void parse();
84 void create_function(char *, char *, DataType *, ParmList *);
85 void link_variable(char *, char *, DataType *);
86 void declare_const(char *, char *, DataType *, char *);
87 void initialize(void);
88 void headers(void);
89 void close(void);
90 void set_module(char *,char **);
91 void set_init(char *);
92 void add_native(char *, char *);
93 void pragma(char *,char *, char *);
94 void create_command(char *, char *);
95
96 // Stubs for processing C++ classes in Tcl
97
98 void cpp_open_class(char *classname, char *rename, char *ctype, int strip);
99 void cpp_close_class();
100 void cpp_member_func(char *name, char *iname, DataType *t, ParmList *l);
101 void cpp_variable(char *name, char *iname, DataType *t);
102 void cpp_constructor(char *name, char *iname, ParmList *l);
103 void cpp_destructor(char *name, char *newname);
104 void cpp_inherit(char **baseclass, int mode = INHERIT_ALL);
105 void cpp_declare_const(char *name, char *iname, DataType *type, char *value);
106 void add_typedef(DataType *, char *);
107 void cpp_class_decl(char *, char *, char *);
108
109};
110
111
112
113
114
115