*** swig.h.old Wed Feb 04 15:59:40 1998 --- swig.h Fri Aug 28 15:46:32 1998 *************** *** 178,185 **** --- 178,211 ---- char *firstkey(); char *nextkey(); }; + // ------------------------------------------------------------------- + // Simple Vector class + // User is responsible for deleting contents before deleteing Vector + // ------------------------------------------------------------------- + + class Vector { + public: + Vector(size_t allocSize=8); + ~Vector(); + + size_t size() { return m_size; } + size_t count() { return m_count; } + size_t append(void* object); + size_t extend(size_t newSize); + + void*& operator[] (size_t idx); + + static void* s_nullPtr; + + private: + size_t m_size; + size_t m_count; + void** m_data; + }; + + /************************************************************************ * class DataType * * Defines the basic datatypes supported by the translator. *************** *** 684,691 **** --- 710,761 ---- extern char *name_get(char *vname, int suppress=0); extern char *name_set(char *vname, int suppress=0); extern char *name_construct(char *classname, int suppress=0); extern char *name_destroy(char *classname, int suppress=0); + + // ---------------------------------------------------------------------- + // class CPP_class + // + // Class for managing class members (internally) + // ---------------------------------------------------------------------- + + class CPP_member; + + class CPP_class { + public: + char *classname; // Real class name + char *classrename; // New name of class (if applicable) + char *classtype; // class type (struct, union, class) + int strip; // Strip off class declarator + int wextern; // Value of extern wrapper variable for this class + int have_constructor; // Status bit indicating if we've seen a constructor + int have_destructor; // Status bit indicating if a destructor has been seen + int is_abstract; // Status bit indicating if this is an abstract class + int generate_default; // Generate default constructors + int objective_c; // Set if this is an objective C class + int error; // Set if this class can't be generated + int line; // Line number + char **baseclass; // Base classes (if any) + Hash *local; // Hash table for local types + Hash *scope; // Local scope hash table + DocEntry *de; // Documentation entry of class + CPP_member *members; // Linked list of members + CPP_class *next; // Next class + static CPP_class *classlist; // List of all classes stored + + Vector addPragmas; + + CPP_class(char *name, char *ctype); + void add_member(CPP_member *m); + CPP_member *search_member(char *name); + void inherit_decls(int mode); + void emit_decls(); + static CPP_class *search(char *name); + void create_default(); + static void create_all(); + }; + + extern CPP_class *current_class; /*********************************************************************** * -- Revision History * $Log$ * Revision 1.2 1999/07/31 07:54:05 RD * wxPython 2.1b1: * * Added the missing wxWindow.GetUpdateRegion() method. * * Made a new change in SWIG (update your patches everybody) that * provides a fix for global shadow objects that get an exception in * their __del__ when their extension module has already been deleted. * It was only a 1 line change in .../SWIG/Modules/pycpp.cxx at about * line 496 if you want to do it by hand. * * It is now possible to run through MainLoop more than once in any one * process. The cleanup that used to happen as MainLoop completed (and * prevented it from running again) has been delayed until the wxc module * is being unloaded by Python. * * wxWindow.PopupMenu() now takes a wxPoint instead of x,y. Added * wxWindow.PopupMenuXY to be consistent with some other methods. * * Added wxGrid.SetEditInPlace and wxGrid.GetEditInPlace. * * You can now provide your own app.MainLoop method. See * wxPython/demo/demoMainLoop.py for an example and some explaination. * * Got the in-place-edit for the wxTreeCtrl fixed and added some demo * code to show how to use it. * * Put the wxIcon constructor back in for GTK as it now has one that * matches MSW's. * * Added wxGrid.GetCells * * Added wxSystemSettings static methods as functions with names like * wxSystemSettings_GetSystemColour. * * Removed wxPyMenu since using menu callbacks have been depreciated in * wxWindows. Use wxMenu and events instead. * * Added alternate wxBitmap constructor (for MSW only) as * wxBitmapFromData(data, type, width, height, depth = 1) * * Added a helper function named wxPyTypeCast that can convert shadow * objects of one type into shadow objects of another type. (Like doing * a down-cast.) See the implementation in wx.py for some docs. *