]> git.saurik.com Git - wxWidgets.git/blame - wxPython/wxSWIG/SWIG/internal.h
Can now switch between PostScript and WIN32 print dialogs
[wxWidgets.git] / wxPython / wxSWIG / SWIG / internal.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 * $Header$
18 *
19 * internals.h
20 *
21 * Contains global variables used in libswig, but which are otherwise
22 * inaccessible to the user.
23 *
24 ***********************************************************************/
25
26#include "swig.h"
27
28// -------------------------------------------------------------------
29// class DocTitle : public DocEntry
30//
31// Top level class for managing documentation. Prints out a title,
32// date, etc...
33// -------------------------------------------------------------------
34
35class DocTitle : public DocEntry {
36public:
37 DocTitle(char *title, DocEntry *_parent); // Create a new title
38 void output(Documentation *d); // Output documentation
39};
40
41// --------------------------------------------------------------------
42// class DocSection : public DocEntry
43//
44// Documentation entry for a section
45// --------------------------------------------------------------------
46
47class DocSection : public DocEntry {
48public:
49 DocSection(char *section, DocEntry *_parent);
50 void output(Documentation *d);
51};
52
53// --------------------------------------------------------------------
54// class DocFunction : public DocEntry
55//
56// Documentation entry for generic sorts of declarations
57// --------------------------------------------------------------------
58
59class DocDecl : public DocEntry {
60public:
61 DocDecl(char *fname, DocEntry *_parent);
62 DocDecl(DocEntry *de, DocEntry *_parent);
63 void output(Documentation *d);
64};
65
66// --------------------------------------------------------------------
67// class DocClass : public DocEntry
68//
69// Documentation entry for a C++ class or C struct
70// --------------------------------------------------------------------
71
72class DocClass : public DocEntry {
73public:
74 DocClass(char *classname, DocEntry *_parent);
75 void output(Documentation *d);
76};
77
78// --------------------------------------------------------------------
79// class DocText : public DocEntry
80//
81// Documentation entry for some plain ole text. Declared using
82// the %text %{,%} directive.
83// --------------------------------------------------------------------
84
85class DocText : public DocEntry {
86public:
87 DocText(char *_text, DocEntry *_parent);
88 void output(Documentation *d);
89};
90
91// --------------------------------------------------------------------
92// class CommentHandler
93//
94// Class for managing comment processing.
95// --------------------------------------------------------------------
96
97class CommentHandler {
98public:
99 CommentHandler();
100 CommentHandler(CommentHandler *c);
101 ~CommentHandler();
102 void add_comment(char *text, int line_num, int col, char *file); // Add a comment
103 void set_entry(DocEntry *d); // Set documentation entry
104 static void cleanup(); // Clean-up everything before quitting
105 void style(char *name, char *value);
106 void parse_args(int argc, char **argv); // Parse command line options
107
108 // Comment handling style parameters
109 int skip_lines; // # blank lines before comment is throw away
110 int location; // Comment location (BEFORE or AFTER)
111 int chop_top; // Lines to chop from the top of a comment
112 int chop_bottom; // Lines to chop from the bottom
113 int chop_left; // Characters to chop from left
114 int chop_right; // Characters to chop from right
115 int untabify; // Expand tabs
116 int ignore; // Ignore comments
117};
118
119#define BEFORE 0
120#define AFTER 1
121
122
123extern int include_file(char *); // Insert library file
124extern char category[256];
125extern char title[256];
126extern DocEntry *doc_entry;
127extern DocEntry *doctitle; // The very first docentry
128extern DocEntry *doc_stack[256]; // Stack of documentation entries
129extern CommentHandler *handler_stack[256]; // Stack of comment handlers
130extern int doc_stack_top; // Top of stack
131
132extern Language *lang;
133extern Documentation *doc;
134extern CommentHandler *comment_handler; // Comment handling system
135extern void swig_append(char *, FILE *);
136extern int Stat_func, Stat_var, Stat_const;
137extern int IgnoreDoc;
138extern int ForceExtern;
139extern int WrapExtern;
140extern String CCode;
141extern int GenerateDefault;
142extern int type_id;
143extern char *ConfigFile;
144extern char *objc_construct;
145extern char *objc_destruct;
146extern int DocOnly;
147
148// Structure for holding typemap parameters
149// A typemap parameter consists of a single parameter (type + name)
150// and an optional list of arguments corresponding to local variables.
151// Has an optional link for building linked lists of parameter lists
152
153struct TMParm {
154 Parm *p;
155 ParmList *args;
156 TMParm *next;
157 TMParm() {
158 next = 0;
159 }
160};
161
162/* Global variables. Needs to be cleaned up */
163
164#ifdef WRAP
165
166 FILE *f_header; // Some commonly used
167 FILE *f_wrappers; // FILE pointers
168 FILE *f_init;
169 FILE *f_input;
170 char InitName[256];
171 char LibDir[512]; // Library directory
172 char **InitNames = 0;
173 int Status;
174 int TypeStrict; // Type checking strictness
175 int Verbose;
176 char category[256]; // Variables for documentation
177 char title[256];
178 DocEntry *doc_entry = 0; // Current documentation entry
179 DocEntry *doctitle = 0; // First doc entry
180 DocEntry *doc_stack[256]; // Stack of documentation entries
181 CommentHandler *handler_stack[256]; // Stack of comment handlers
182 int doc_stack_top = 0; // Top of stack
183
184 Language *lang; // Language method
185 Documentation *doc; // Documentation method
186 int Stat_func = 0;
187 int Stat_var = 0;
188 int Stat_const = 0;
189 int CPlusPlus = 0;
190 int ObjC = 0;
191 int ObjCClass = 0;
192 int AddMethods = 0; // AddMethods flag
193 int NewObject = 0; // NewObject flag
194 int Inline = 0; // Inline mode
195 int Stats = 0;
196 int IgnoreDoc = 0; // Ignore documentation mode
197 int ForceExtern = 0; // Force extern mode
198 int WrapExtern = 0;
199 int GenerateDefault = 0; // Generate default constructors
200 char *Config = 0;
201 int NoInclude = 0;
202 char *typemap_lang = 0; // Typemap name
203 int type_id = 0; // Type identifier
204 int error_count = 0; // Error count
205 char *ConfigFile = 0;
206 int DocOnly = 0; // Only produce documentation
207
208#endif
209
210/* Number of initialization names that can be used */
211
212#define NI_NAMES 512
213
214extern void type_undefined_check(void);
215