]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/wxSWIG/Modules/python.h
Since I have made several changes to SWIG over the years to accomodate
[wxWidgets.git] / wxPython / wxSWIG / Modules / python.h
diff --git a/wxPython/wxSWIG/Modules/python.h b/wxPython/wxSWIG/Modules/python.h
new file mode 100644 (file)
index 0000000..eb7da30
--- /dev/null
@@ -0,0 +1,111 @@
+/*******************************************************************************
+ * Simplified Wrapper and Interface Generator  (SWIG)
+ * 
+ * Author : David Beazley
+ *
+ * Department of Computer Science        
+ * University of Chicago
+ * 1100 E 58th Street
+ * Chicago, IL  60637
+ * beazley@cs.uchicago.edu
+ *
+ * Please read the file LICENSE for the copyright and terms by which SWIG
+ * can be used and distributed.
+ *******************************************************************************/
+
+/**************************************************************************
+ * $Header$
+ *
+ * python.h
+ *
+ * Header file for Python module.   Warning ; this is work in progress.
+ **************************************************************************/
+
+class PYTHON : public Language {
+protected:
+  char   *module;               // Module name
+  char   *path;                 // Pathname of where to look for library files
+  char   *methods;              // Method table name
+  char   *global_name;          // Name of global variables.
+  void    get_pointer(char *iname, char *srcname, char *src, char *dest, DataType *t, String &f, char *ret);
+  int     shadow;
+  int     have_defarg;
+  int     docstring;
+  int     have_output;
+  int     use_kw;     
+  FILE    *f_shadow;
+  struct Method {               // Methods list.  Needed to build methods
+    char   *name;               // Array at very end.
+    char   *function;
+    Method *next;
+  };
+  Method  *head;
+  Hash     hash;
+  String   classes;
+  String   func;
+  String   vars;
+  String   modinit;
+  String   modextern;
+
+  char     *import_file;
+  void add_method(char *name, char *function);
+  void print_methods();
+  char *usage_var(char *, DataType *);
+  char *usage_func(char *, DataType *, ParmList *);
+  char *usage_const(char *, DataType *, char *);
+  char *add_docstring(DocEntry *de);
+
+  // Add for Python-COM support
+  virtual void initialize_cmodule();
+  virtual void close_cmodule();
+  virtual void emit_function_header(WrapperFunction &emit_to, char *wname);
+  virtual char *convert_self(WrapperFunction &f);
+  virtual char *make_funcname_wrapper(char *fnName);
+  void emitAddPragmas(String& output, char* name, char* spacing);
+public :
+  PYTHON() {
+    module = (char *) 0;
+    path = "python";     // Set this to subdirectory where language
+                                  // Dependent library files will be stored
+    head = 0;                     // Head of method list
+    global_name = "cvar";
+    shadow = 0;
+    have_defarg = 0;
+    import_file = 0;
+    use_kw = 0;
+  };
+
+  // Don't change any of this
+  void parse_args(int, char *argv[]);
+  void parse();
+  void create_function(char *, char *, DataType *, ParmList *);
+  void link_variable(char *, char *, DataType *);
+  void declare_const(char *, char *, DataType *, char *);
+  void initialize(void);
+  void headers(void);
+  void close(void);
+  void set_module(char *, char **);
+  void set_init(char *);
+  void add_native(char *, char *);
+  void create_command(char *, char *);
+  void import(char *);
+
+  // C++ extensions---for creating shadow classes
+  
+  void cpp_member_func(char *name, char *iname, DataType *t, ParmList *l);
+  void cpp_constructor(char *name, char *iname, ParmList *l);
+  void cpp_destructor(char *name, char *newname);
+  void cpp_open_class(char *classname, char *rname, char *ctype, int strip);
+  void cpp_close_class();
+  void cpp_cleanup();
+  void cpp_inherit(char **baseclass, int mode = INHERIT_ALL);
+  void cpp_variable(char *name, char *iname, DataType *t);
+  void cpp_declare_const(char *name, char *iname, DataType *type, char *value);
+  void cpp_class_decl(char *, char *,char *);
+  void pragma(char *, char *, char *);
+  void cpp_pragma(Pragma *);
+  void add_typedef(DataType *t, char *name);
+};
+
+#define PYSHADOW_MEMBER  0x2
+