X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8a693e6e0460b6b3c32e4b6f114a3ab7b7cd24ea..f6bcfd974ef26faf6f91a62cac09827e09463fd1:/utils/wxPython/SWIG.patches/Modules.patch diff --git a/utils/wxPython/SWIG.patches/Modules.patch b/utils/wxPython/SWIG.patches/Modules.patch deleted file mode 100644 index 0cbc44f0f2..0000000000 --- a/utils/wxPython/SWIG.patches/Modules.patch +++ /dev/null @@ -1,202 +0,0 @@ -*** python.cxx.old Fri Jan 02 23:17:40 1998 ---- python.cxx Fri Aug 28 15:49:18 1998 -*************** -*** 1678,1685 **** ---- 1678,1702 ---- - fprintf(stderr,"%s : Line %d. Unable to locate file %s\n", input_file, line_number, value); - } - } - } -+ } else if (strcmp(cmd, "addtomethod") == 0) { -+ // parse value, expected to be in the form "methodName:line" -+ char* txtptr = strchr(value, ':'); -+ if (txtptr) { -+ // add name and line to a list in current_class -+ *txtptr = 0; -+ txtptr++; -+ AddPragmaData* apData = new AddPragmaData(value, txtptr); -+ current_class->addPragmas.append(apData); -+ -+ } else { -+ fprintf(stderr,"%s : Line %d. Malformed addtomethod pragma. Should be \"methodName:text\"\n", -+ input_file, line_number); -+ } -+ } else if (strcmp(cmd, "addtoclass") == 0) { -+ AddPragmaData* apData = new AddPragmaData("__class__", value); -+ current_class->addPragmas.append(apData); - } else { - fprintf(stderr,"%s : Line %d. Unrecognized pragma.\n", input_file, line_number); - } - } -*** python.h.old Thu Jul 24 23:18:50 1997 ---- python.h Fri Aug 28 15:46:08 1998 -*************** -*** 184,191 **** ---- 184,203 ---- - 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 add_typedef(DataType *t, char *name); -+ -+ void emitAddPragmas(String& output, char* name, char* spacing); - }; - - #define PYSHADOW_MEMBER 0x2 -+ -+ struct AddPragmaData { -+ String m_method; -+ String m_text; -+ -+ AddPragmaData(char* method, char* text) -+ : m_method(method), -+ m_text(text) -+ {} -+ }; - -*** pycpp.cxx.old Fri Jan 02 21:23:22 1998 ---- pycpp.cxx Tue Jul 20 14:34:36 1999 -*************** -*** 275,282 **** ---- 275,283 ---- - #endif - } - } - // if ((t->type != T_VOID) || (t->is_pointer)) -+ emitAddPragmas(*pyclass, realname, tab8); - *pyclass << tab8 << "return val\n"; - - // Change the usage string to reflect our shadow class - -*************** -*** 393,400 **** ---- 394,402 ---- - } - } - *construct << ")\n"; - *construct << tab8 << "self.thisown = 1\n"; -+ emitAddPragmas(*construct, "__init__", tab8); - have_constructor = 1; - } else { - - // Hmmm. We seem to be creating a different constructor. We're just going to create a -*************** -*** 490,503 **** - if (class_renamed) realname = class_name; - else realname = name; - } - -! *pyclass << tab4 << "def __del__(self):\n" - << tab8 << "if self.thisown == 1 :\n" - << tab8 << tab4 << module << "." << name_destroy(realname) << "(self.this)\n"; -! - have_destructor = 1; -- - if (doc_entry) { - doc_entry->usage = ""; - doc_entry->usage << "del this"; - } ---- 492,504 ---- - if (class_renamed) realname = class_name; - else realname = name; - } - -! *pyclass << tab4 << "def __del__(self, " << module << "=" << module << "):\n" - << tab8 << "if self.thisown == 1 :\n" - << tab8 << tab4 << module << "." << name_destroy(realname) << "(self.this)\n"; -! emitAddPragmas(*pyclass, "__del__", tab8); - have_destructor = 1; - if (doc_entry) { - doc_entry->usage = ""; - doc_entry->usage << "del this"; - } -*************** -*** 551,558 **** ---- 552,561 ---- - repr << tab4 << "def __repr__(self):\n" - << tab8 << "return \"\"\n"; - - classes << repr; -+ emitAddPragmas(classes, "__class__", tab4); -+ - } - - // Now build the real class with a normal constructor - -*************** -*** 746,753 **** ---- 749,778 ---- - hash.add(name,copy_string((char *) hash.lookup(t->name))); - } - } - -+ // -------------------------------------------------------------------------------- -+ // PYTHON::emitAddPragmas(String& output, char* name, char* spacing); -+ // -+ // Search the current_class->addPragmas vector for any text belonging to name. -+ // Append the text properly spcaed to the output string. -+ // -+ // -------------------------------------------------------------------------------- -+ -+ void PYTHON::emitAddPragmas(String& output, char* name, char* spacing) -+ { -+ AddPragmaData* apData; -+ size_t count; -+ int i; -+ -+ count = current_class->addPragmas.count(); -+ for (i=0; iaddPragmas[i]; -+ if (strcmp(apData->m_method, name) == 0) { -+ output << spacing << apData->m_text << "\n"; -+ } -+ } -+ } - - /********************************************************************************* - * - * $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. - *