New SWIG runtime files and api updates for the move to SWIG 1.3.22
authorRobin Dunn <robin@alldunn.com>
Thu, 9 Sep 2004 18:48:25 +0000 (18:48 +0000)
committerRobin Dunn <robin@alldunn.com>
Thu, 9 Sep 2004 18:48:25 +0000 (18:48 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29063 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

wxPython/docs/xml/wxPython-metadata.xml
wxPython/include/wx/wxPython/wxPython_int.h
wxPython/src/_core_api.i
wxPython/src/common.swg
wxPython/src/libpy.c
wxPython/src/my_fragments.i [new file with mode: 0644]
wxPython/src/my_typemaps.i
wxPython/src/pyrun.swg
wxPython/src/python.swg [new file with mode: 0644]

index 854b9639fc45d513245334e581e4ebf75a7e32bf..32144cea8bc7be996db963e09143110a18339f4d 100644 (file)
@@ -1292,6 +1292,19 @@ success flag and rgb values.</docstring>
           <param name="startB" type="byte" default="0"/>
         </paramlist>
       </method>
+      <method name="ConvertAlphaToMask" type="bool" overloaded="no">
+        <autodoc>ConvertAlphaToMask(self, byte threshold=128) -&gt; bool</autodoc>
+        <docstring>If the image has alpha channel, this method converts it to mask. All pixels
+with alpha value less than ``threshold`` are replaced with mask colour and the
+alpha channel is removed. Mask colour is chosen automatically using
+`FindFirstUnusedColour`.
+
+If the image image doesn't have alpha channel, ConvertAlphaToMask does
+nothing.</docstring>
+        <paramlist>
+          <param name="threshold" type="byte" default="128"/>
+        </paramlist>
+      </method>
       <method name="SetMaskFromImage" type="bool" overloaded="no">
         <autodoc>SetMaskFromImage(self, Image mask, byte mr, byte mg, byte mb) -&gt; bool</autodoc>
         <paramlist>
@@ -5213,6 +5226,34 @@ not be used at all.</docstring>
         <docstring>Returns the foreground colour of the window.  The interpretation of
 foreground colour is dependent on the window class; it may be the text
 colour or other colour, or it may not be used at all.</docstring>
+      </method>
+      <method name="SetBackgroundStyle" type="bool" overloaded="no">
+        <autodoc>SetBackgroundStyle(self, int style) -&gt; bool</autodoc>
+        <docstring>Returns the background style of the window. The background style
+indicates how the background of the window is drawn.
+
+    ======================  ========================================
+    wx.BG_STYLE_SYSTEM      The background colour or pattern should
+                            be determined by the system
+    wx.BG_STYLE_COLOUR      The background should be a solid colour
+    wx.BG_STYLE_CUSTOM      The background will be implemented by the
+                            application.
+    ======================  ========================================
+
+On GTK+, use of wx.BG_STYLE_CUSTOM allows the flicker-free drawing of
+a custom background, such as a tiled bitmap. Currently the style has
+no effect on other platforms.
+
+:see: `GetBackgroundStyle`, `SetBackgroundColour`</docstring>
+        <paramlist>
+          <param name="style" type="wxBackgroundStyle" default=""/>
+        </paramlist>
+      </method>
+      <method name="GetBackgroundStyle" type="wxBackgroundStyle" overloaded="no">
+        <autodoc>GetBackgroundStyle(self) -&gt; int</autodoc>
+        <docstring>Returns the background style of the window.
+
+:see: `SetBackgroundStyle`</docstring>
       </method>
       <method name="SetCursor" type="bool" overloaded="no">
         <autodoc>SetCursor(self, Cursor cursor) -&gt; bool</autodoc>
@@ -8438,16 +8479,16 @@ __wxPyPtrTypeMap['wxStatusBar95']   = 'wxStatusBar'
 
 #----------------------------------------------------------------------------
 # Load version numbers from __version__...  Ensure that major and minor
-# versions are the same for both wxPython and wxWindows.
+# versions are the same for both wxPython and wxWidgets.
 
 from __version__ import *
 __version__ = VERSION_STRING
 
-assert MAJOR_VERSION == _core_.MAJOR_VERSION, "wxPython/wxWindows version mismatch"
-assert MINOR_VERSION == _core_.MINOR_VERSION, "wxPython/wxWindows version mismatch"
+assert MAJOR_VERSION == _core_.MAJOR_VERSION, "wxPython/wxWidgets version mismatch"
+assert MINOR_VERSION == _core_.MINOR_VERSION, "wxPython/wxWidgets version mismatch"
 if RELEASE_VERSION != _core_.RELEASE_VERSION:
     import warnings
-    warnings.warn("wxPython/wxWindows release number mismatch")
+    warnings.warn("wxPython/wxWidgets release number mismatch")
 
 #----------------------------------------------------------------------------
 
@@ -12481,6 +12522,7 @@ output. Default is 720ppi.</docstring>
         <autodoc>Create(self, Window parent, int id=-1, Point pos=DefaultPosition, 
     Size size=DefaultSize, long style=wxTAB_TRAVERSAL|wxNO_BORDER, 
     String name=PanelNameStr) -&gt; bool</autodoc>
+        <docstring>Create the GUI part of the Window for 2-phase creation mode.</docstring>
         <paramlist>
           <param name="parent" type="Window" default=""/>
           <param name="id" type="int" default="-1"/>
@@ -12537,6 +12579,7 @@ this.</docstring>
         <autodoc>Create(self, Window parent, int id=-1, Point pos=DefaultPosition, 
     Size size=DefaultSize, long style=wxHSCROLL|wxVSCROLL, 
     String name=PanelNameStr) -&gt; bool</autodoc>
+        <docstring>Create the GUI part of the Window for 2-phase creation mode.</docstring>
         <paramlist>
           <param name="parent" type="Window" default=""/>
           <param name="id" type="int" default="-1"/>
@@ -14063,6 +14106,10 @@ EVT_SPLITTER_DCLICK = EVT_SPLITTER_DOUBLECLICKED
       </method>
       <method name="ScrollLines" type="bool" overloaded="no">
         <autodoc>ScrollLines(self, int lines) -&gt; bool</autodoc>
+        <docstring>If the platform and window class supports it, scrolls the window by
+the given number of lines down, if lines is positive, or up if lines
+is negative.  Returns True if the window was scrolled, False if it was
+already on top/bottom and nothing was done.</docstring>
         <paramlist>
           <param name="lines" type="int" default=""/>
         </paramlist>
@@ -16818,12 +16865,12 @@ indeed almost any other window.
 Window Styles
 -------------
     ==============   ==========================================
-    wx.BU_LEFT       Left-justifies the label. WIN32 only.
+    wx.BU_LEFT       Left-justifies the label. Windows and GTK+ only.
     wx.BU_TOP        Aligns the label to the top of the button.
-                     WIN32 only.
-    wx.BU_RIGHT      Right-justifies the bitmap label. WIN32 only.
+                     Windows and GTK+ only.
+    wx.BU_RIGHT      Right-justifies the bitmap label. Windows and GTK+ only.
     wx.BU_BOTTOM     Aligns the label to the bottom of the button.
-                     WIN32 only.
+                     Windows and GTK+ only.
     wx.BU_EXACTFIT   Creates the button as small as possible
                      instead of making it of the standard size
                      (which is the default behaviour.)
@@ -16843,7 +16890,67 @@ Events
     Point pos=DefaultPosition, Size size=DefaultSize, 
     long style=0, Validator validator=DefaultValidator, 
     String name=ButtonNameStr) -&gt; Button</autodoc>
-        <docstring>Create and show a button.</docstring>
+        <docstring>Create and show a button.  The preferred way to create standard
+buttons is to use a standard ID and an empty label.  In this case
+wxWigets will automatically use a stock label that coresponds to the
+ID given.  In additon, the button will be decorated with stock icons
+under GTK+ 2.
+
+The stock IDs and coresponding labels are
+
+    ==================      ====================
+    wx.ID_ADD               'Add'
+    wx.ID_APPLY             '\\&amp;Apply'
+    wx.ID_BOLD              '\\&amp;Bold'
+    wx.ID_CANCEL            '\\&amp;Cancel'
+    wx.ID_CLEAR             '\\&amp;Clear'
+    wx.ID_CLOSE             '\\&amp;Close'
+    wx.ID_COPY              '\\&amp;Copy'
+    wx.ID_CUT               'Cu\\&amp;t'
+    wx.ID_DELETE            '\\&amp;Delete'
+    wx.ID_FIND              '\\&amp;Find'
+    wx.ID_REPLACE           'Find and rep\\&amp;lace'
+    wx.ID_BACKWARD          '\\&amp;Back'
+    wx.ID_DOWN              '\\&amp;Down'
+    wx.ID_FORWARD           '\\&amp;Forward'
+    wx.ID_UP                '\\&amp;Up'
+    wx.ID_HELP              '\\&amp;Help'
+    wx.ID_HOME              '\\&amp;Home'
+    wx.ID_INDENT            'Indent'
+    wx.ID_INDEX             '\\&amp;Index'
+    wx.ID_ITALIC            '\\&amp;Italic'
+    wx.ID_JUSTIFY_CENTER    'Centered'
+    wx.ID_JUSTIFY_FILL      'Justified'
+    wx.ID_JUSTIFY_LEFT      'Align Left'
+    wx.ID_JUSTIFY_RIGHT     'Align Right'
+    wx.ID_NEW               '\\&amp;New'
+    wx.ID_NO                '\\&amp;No'
+    wx.ID_OK                '\\&amp;OK'
+    wx.ID_OPEN              '\\&amp;Open'
+    wx.ID_PASTE             '\\&amp;Paste'
+    wx.ID_PREFERENCES       '\\&amp;Preferences'
+    wx.ID_PRINT             '\\&amp;Print'
+    wx.ID_PREVIEW           'Print previe\\&amp;w'
+    wx.ID_PROPERTIES        '\\&amp;Properties'
+    wx.ID_EXIT              '\\&amp;Quit'
+    wx.ID_REDO              '\\&amp;Redo'
+    wx.ID_REFRESH           'Refresh'
+    wx.ID_REMOVE            'Remove'
+    wx.ID_REVERT_TO_SAVED   'Revert to Saved'
+    wx.ID_SAVE              '\\&amp;Save'
+    wx.ID_SAVEAS            'Save \\&amp;As...'
+    wx.ID_STOP              '\\&amp;Stop'
+    wx.ID_UNDELETE          'Undelete'
+    wx.ID_UNDERLINE         '\\&amp;Underline'
+    wx.ID_UNDO              '\\&amp;Undo'
+    wx.ID_UNINDENT          '\\&amp;Unindent'
+    wx.ID_YES               '\\&amp;Yes'
+    wx.ID_ZOOM_100          '\\&amp;Actual Size'
+    wx.ID_ZOOM_FIT          'Zoom to \\&amp;Fit'
+    wx.ID_ZOOM_IN           'Zoom \\&amp;In'
+    wx.ID_ZOOM_OUT          'Zoom \\&amp;Out'
+    ==================      ====================
+</docstring>
         <paramlist>
           <param name="parent" type="Window" default=""/>
           <param name="id" type="int" default="-1"/>
@@ -22823,9 +22930,10 @@ toggle keys.  On some platforms those may be the only keys that work.
     <class name="FileHistory" oldname="wxFileHistory" module="_misc">
       <baseclass name="Object"/>
       <constructor name="FileHistory" overloaded="no">
-        <autodoc>__init__(self, int maxFiles=9) -&gt; FileHistory</autodoc>
+        <autodoc>__init__(self, int maxFiles=9, int idBase=ID_FILE1) -&gt; FileHistory</autodoc>
         <paramlist>
           <param name="maxFiles" type="int" default="9"/>
+          <param name="idBase" type="int" default="wxID_FILE1"/>
         </paramlist>
       </constructor>
       <destructor name="~wxFileHistory" overloaded="no">
@@ -24045,8 +24153,21 @@ Identifying art resources
 -------------------------
 
 Every bitmap is known to wx.ArtProvider under an unique ID that is
-used when requesting a resource from it. The IDs can have one of these
-predefined values:
+used when requesting a resource from it. The IDs can have one of the
+following predefined values.  Additionally, any string recognized by
+custom art providers registered using `PushProvider` may be used.
+
+GTK+ Note
+---------
+
+When running under GTK+ 2, GTK+ stock item IDs (e.g. 'gtk-cdrom') may be used
+as well.  Additionally, if wxGTK was compiled against GTK+ &gt;= 2.4, then it is
+also possible to load icons from current icon theme by specifying their name
+without the extension and directory components. Icon themes recognized by GTK+
+follow the freedesktop.org Icon Themes specification.  Note that themes are
+not guaranteed to contain all icons, so wx.ArtProvider may return wx.NullBitmap
+or wx.NullIcon.  The default theme is typically installed in /usr/share/icons/hicolor.
+
 
     * wx.ART_ADD_BOOKMARK
     * wx.ART_DEL_BOOKMARK
@@ -24085,7 +24206,7 @@ Clients
 -------
 
 The Client is the entity that calls wx.ArtProvider's `GetBitmap` or
-`GetIcon` function.  Client IDs server as a hint to wx.ArtProvider
+`GetIcon` function.  Client IDs serve as a hint to wx.ArtProvider
 that is supposed to help it to choose the best looking bitmap. For
 example it is often desirable to use slightly different icons in menus
 and toolbars even though they represent the same action (e.g.
@@ -24099,6 +24220,7 @@ identical bitmap for different client values!
     * wx.ART_CMN_DIALOG
     * wx.ART_HELP_BROWSER
     * wx.ART_MESSAGE_BOX
+    * wx.ART_BUTTON
     * wx.ART_OTHER (used for all requests that don't fit into any
       of the categories above)
 </docstring>
@@ -24126,8 +24248,21 @@ Identifying art resources
 -------------------------
 
 Every bitmap is known to wx.ArtProvider under an unique ID that is
-used when requesting a resource from it. The IDs can have one of these
-predefined values:
+used when requesting a resource from it. The IDs can have one of the
+following predefined values.  Additionally, any string recognized by
+custom art providers registered using `PushProvider` may be used.
+
+GTK+ Note
+---------
+
+When running under GTK+ 2, GTK+ stock item IDs (e.g. 'gtk-cdrom') may be used
+as well.  Additionally, if wxGTK was compiled against GTK+ &gt;= 2.4, then it is
+also possible to load icons from current icon theme by specifying their name
+without the extension and directory components. Icon themes recognized by GTK+
+follow the freedesktop.org Icon Themes specification.  Note that themes are
+not guaranteed to contain all icons, so wx.ArtProvider may return wx.NullBitmap
+or wx.NullIcon.  The default theme is typically installed in /usr/share/icons/hicolor.
+
 
     * wx.ART_ADD_BOOKMARK
     * wx.ART_DEL_BOOKMARK
@@ -24166,7 +24301,7 @@ Clients
 -------
 
 The Client is the entity that calls wx.ArtProvider's `GetBitmap` or
-`GetIcon` function.  Client IDs server as a hint to wx.ArtProvider
+`GetIcon` function.  Client IDs serve as a hint to wx.ArtProvider
 that is supposed to help it to choose the best looking bitmap. For
 example it is often desirable to use slightly different icons in menus
 and toolbars even though they represent the same action (e.g.
@@ -24180,6 +24315,7 @@ identical bitmap for different client values!
     * wx.ART_CMN_DIALOG
     * wx.ART_HELP_BROWSER
     * wx.ART_MESSAGE_BOX
+    * wx.ART_BUTTON
     * wx.ART_OTHER (used for all requests that don't fit into any
       of the categories above)
 </docstring>
@@ -28879,6 +29015,18 @@ this.</docstring>
       <method name="CanDragGridSize" type="bool" overloaded="no">
         <autodoc>CanDragGridSize(self) -&gt; bool</autodoc>
       </method>
+      <method name="EnableDragCell" type="" overloaded="no">
+        <autodoc>EnableDragCell(self, bool enable=True)</autodoc>
+        <paramlist>
+          <param name="enable" type="bool" default="True"/>
+        </paramlist>
+      </method>
+      <method name="DisableDragCell" type="" overloaded="no">
+        <autodoc>DisableDragCell(self)</autodoc>
+      </method>
+      <method name="CanDragCell" type="bool" overloaded="no">
+        <autodoc>CanDragCell(self) -&gt; bool</autodoc>
+      </method>
       <method name="SetAttr" type="" overloaded="no">
         <autodoc>SetAttr(self, int row, int col, GridCellAttr attr)</autodoc>
         <paramlist>
@@ -29648,6 +29796,7 @@ EVT_GRID_SELECT_CELL = wx.PyEventBinder( wxEVT_GRID_SELECT_CELL )
 EVT_GRID_EDITOR_SHOWN = wx.PyEventBinder( wxEVT_GRID_EDITOR_SHOWN )
 EVT_GRID_EDITOR_HIDDEN = wx.PyEventBinder( wxEVT_GRID_EDITOR_HIDDEN )
 EVT_GRID_EDITOR_CREATED = wx.PyEventBinder( wxEVT_GRID_EDITOR_CREATED )
+EVT_GRID_CELL_BEGIN_DRAG = wx.PyEventBinder( wxEVT_GRID_CELL_BEGIN_DRAG )
 
 
 # The same as above but with the ability to specify an identifier
@@ -29667,6 +29816,8 @@ EVT_GRID_CMD_SELECT_CELL =         wx.PyEventBinder( wxEVT_GRID_SELECT_CELL,
 EVT_GRID_CMD_EDITOR_SHOWN =        wx.PyEventBinder( wxEVT_GRID_EDITOR_SHOWN,       1 )
 EVT_GRID_CMD_EDITOR_HIDDEN =       wx.PyEventBinder( wxEVT_GRID_EDITOR_HIDDEN,      1 )
 EVT_GRID_CMD_EDITOR_CREATED =      wx.PyEventBinder( wxEVT_GRID_EDITOR_CREATED,     1 )
+EVT_GRID_CMD_CELL_BEGIN_DRAG =     wx.PyEventBinder( wxEVT_GRID_CELL_BEGIN_DRAG,    1 )
+    
 </pythoncode>
   </module>
   <module name="html">
@@ -40625,8 +40776,8 @@ EVT_DYNAMIC_SASH_UNIFY = wx.PyEventBinder( wxEVT_DYNAMIC_SASH_UNIFY, 1 )
       <method name="GetStrings" type="PyObject" overloaded="no">
         <autodoc>GetStrings(self) -&gt; PyObject</autodoc>
       </method>
-      <method name="GetListCtrl" type="wxListCtrl" overloaded="no">
-        <autodoc>GetListCtrl(self) -&gt; wxListCtrl</autodoc>
+      <method name="GetListCtrl" type="ListCtrl" overloaded="no">
+        <autodoc>GetListCtrl(self) -&gt; ListCtrl</autodoc>
       </method>
       <method name="GetDelButton" type="BitmapButton" overloaded="no">
         <autodoc>GetDelButton(self) -&gt; BitmapButton</autodoc>
index 157b58bef01eb032c5499245fd69418696b0dd56..a39639af6e9e6a18915d037f90a3b6e4bdb4fb91 100644 (file)
@@ -338,6 +338,7 @@ typedef swig_type_info* (*p_SWIG_Python_TypeCheck_t)(char *c, swig_type_info *);
 typedef void*           (*p_SWIG_Python_TypeCast_t)(swig_type_info *, void *);
 typedef swig_type_info* (*p_SWIG_Python_TypeDynamicCast_t)(swig_type_info *, void **);
 typedef const char*     (*p_SWIG_Python_TypeName_t)(const swig_type_info *);
+typedef const char *    (*p_SWIG_Python_TypePrettyName_t)(const swig_type_info *);
 typedef swig_type_info* (*p_SWIG_Python_TypeQuery_t)(const char *);
 typedef void            (*p_SWIG_Python_TypeClientData_t)(swig_type_info *, void *);
 typedef PyObject*       (*p_SWIG_Python_newvarlink_t)(void);
@@ -359,6 +360,7 @@ struct wxPyCoreAPI {
     p_SWIG_Python_TypeCast_t           p_SWIG_Python_TypeCast;
     p_SWIG_Python_TypeDynamicCast_t    p_SWIG_Python_TypeDynamicCast;
     p_SWIG_Python_TypeName_t           p_SWIG_Python_TypeName;
+    p_SWIG_Python_TypePrettyName_t     p_SWIG_Python_TypePrettyName; 
     p_SWIG_Python_TypeQuery_t          p_SWIG_Python_TypeQuery;
     p_SWIG_Python_TypeClientData_t     p_SWIG_Python_TypeClientData;
     p_SWIG_Python_newvarlink_t         p_SWIG_Python_newvarlink;
index 8ebca68b4d2727848614d353f9424ff912f816ca..c3cc8fd053290b119fc0718aa30ebf9f917f2f06 100644 (file)
@@ -137,6 +137,7 @@ static wxPyCoreAPI API = {
     (p_SWIG_Python_TypeCast_t)SWIG_Python_TypeCast,
     (p_SWIG_Python_TypeDynamicCast_t)SWIG_Python_TypeDynamicCast,
     (p_SWIG_Python_TypeName_t)SWIG_Python_TypeName,
+    (p_SWIG_Python_TypePrettyName_t)SWIG_Python_TypePrettyName,
     (p_SWIG_Python_TypeQuery_t)SWIG_Python_TypeQuery,
     (p_SWIG_Python_TypeClientData_t)SWIG_Python_TypeClientData,
     (p_SWIG_Python_newvarlink_t)SWIG_Python_newvarlink,
index 4e739206efcb3dfc696367a4263eaa2761469e35..afdaf0b9f12770053c5f8d1c42d41f86a3a6a2d8 100644 (file)
@@ -62,6 +62,7 @@ SWIGIMPORT(swig_type_info *) SWIG_TypeCheck(char *c, swig_type_info *);
 SWIGIMPORT(void *)           SWIG_TypeCast(swig_type_info *, void *);
 SWIGIMPORT(swig_type_info *) SWIG_TypeDynamicCast(swig_type_info *, void **);
 SWIGIMPORT(const char *)     SWIG_TypeName(const swig_type_info *);
+SWIGIMPORT(const char *)     SWIG_TypePrettyName(const swig_type_info *);
 SWIGIMPORT(swig_type_info *) SWIG_TypeQuery(const char *);
 SWIGIMPORT(void)             SWIG_TypeClientData(swig_type_info *, void *);
 SWIGIMPORT(char *)           SWIG_PackData(char *, void *, int);
@@ -71,3 +72,4 @@ SWIGIMPORT(char *)           SWIG_UnpackData(char *, void *, int);
 #ifdef __cplusplus
 }
 #endif
+
index 131b635d0dc1e49165201337c141b48cf418f1af..48680c914d8b85525da477dd6fa716637fed8c4e 100644 (file)
@@ -28,6 +28,7 @@
 #define SWIG_TypeCast        SWIG_Python_TypeCast
 #define SWIG_TypeDynamicCast SWIG_Python_TypeDynamicCast
 #define SWIG_TypeName        SWIG_Python_TypeName
+#define SWIG_TypePrettyName  SWIG_Python_TypePrettyName
 #define SWIG_TypeQuery       SWIG_Python_TypeQuery
 #define SWIG_TypeClientData  SWIG_Python_TypeClientData
 #define SWIG_PackData        SWIG_Python_PackData 
@@ -104,6 +105,7 @@ SWIGIMPORT(swig_type_info *) SWIG_TypeCheck(char *c, swig_type_info *);
 SWIGIMPORT(void *)           SWIG_TypeCast(swig_type_info *, void *);
 SWIGIMPORT(swig_type_info *) SWIG_TypeDynamicCast(swig_type_info *, void **);
 SWIGIMPORT(const char *)     SWIG_TypeName(const swig_type_info *);
+SWIGIMPORT(const char *)     SWIG_TypePrettyName(const swig_type_info *);
 SWIGIMPORT(swig_type_info *) SWIG_TypeQuery(const char *);
 SWIGIMPORT(void)             SWIG_TypeClientData(swig_type_info *, void *);
 SWIGIMPORT(char *)           SWIG_PackData(char *, void *, int);
@@ -112,13 +114,14 @@ SWIGIMPORT(char *)           SWIG_UnpackData(char *, void *, int);
 #else
 
 static swig_type_info *swig_type_list = 0;
+static swig_type_info **swig_type_list_handle = &swig_type_list;
 
 /* Register a type mapping with the type-checking */
 SWIGRUNTIME(swig_type_info *)
 SWIG_TypeRegister(swig_type_info *ti) {
   swig_type_info *tc, *head, *ret, *next;
   /* Check to see if this type has already been registered */
-  tc = swig_type_list;
+  tc = *swig_type_list_handle;
   while (tc) {
     if (strcmp(tc->name, ti->name) == 0) {
       /* Already exists in the table.  Just add additional types to the list */
@@ -133,8 +136,8 @@ SWIG_TypeRegister(swig_type_info *ti) {
   next = 0;
 
   /* Place in list */
-  ti->prev = swig_type_list;
-  swig_type_list = ti;
+  ti->prev = *swig_type_list_handle;
+  *swig_type_list_handle = ti;
 
   /* Build linked lists */
   l1:
@@ -203,6 +206,26 @@ SWIG_TypeName(const swig_type_info *ty) {
   return ty->name;
 }
 
+/* Return the pretty name associated with this type,
+   that is an unmangled type name in a form presentable to the user.
+*/
+SWIGRUNTIME(const char *)
+SWIG_TypePrettyName(const swig_type_info *type) {
+  /* The "str" field contains the equivalent pretty names of the
+     type, separated by vertical-bar characters.  We choose
+     to print the last name, as it is often (?) the most
+     specific. */
+  if (type->str != NULL) {
+    const char *last_name = type->str;
+    const char *s;
+    for (s = type->str; *s; s++)
+      if (*s == '|') last_name = s+1;
+    return last_name;
+  }
+  else
+    return type->name;
+}
+
 /* 
    Compare two type names skipping the space characters, therefore
    "char*" == "char *" and "Class<int>" == "Class<int >", etc.
@@ -243,7 +266,7 @@ SWIG_TypeEquiv(const char *nb, const char *tb) {
 /* Search for a swig_type_info structure */
 SWIGRUNTIME(swig_type_info *)
 SWIG_TypeQuery(const char *name) {
-  swig_type_info *ty = swig_type_list;
+  swig_type_info *ty = *swig_type_list_handle;
   while (ty) {
     if (ty->str && (SWIG_TypeEquiv(ty->str,name))) return ty;
     if (ty->name && (strcmp(name,ty->name) == 0)) return ty;
@@ -261,7 +284,7 @@ SWIG_TypeClientData(swig_type_info *ti, void *clientdata) {
   equiv = ti->next;
   while (equiv) {
     if (!equiv->converter) {
-      tc = swig_type_list;
+      tc = *swig_type_list_handle;
       while (tc) {
         if ((strcmp(tc->name, equiv->name) == 0))
           SWIG_TypeClientData(tc,clientdata);
@@ -276,10 +299,10 @@ SWIG_TypeClientData(swig_type_info *ti, void *clientdata) {
 SWIGRUNTIME(char *)
 SWIG_PackData(char *c, void *ptr, int sz) {
   static char hex[17] = "0123456789abcdef";
-  int i;
   unsigned char *u = (unsigned char *) ptr;
+  const unsigned char *eu =  u + sz;
   register unsigned char uu;
-  for (i = 0; i < sz; i++,u++) {
+  for (; u != eu; ++u) {
     uu = *u;
     *(c++) = hex[(uu & 0xf0) >> 4];
     *(c++) = hex[uu & 0xf];
@@ -293,8 +316,8 @@ SWIG_UnpackData(char *c, void *ptr, int sz) {
   register unsigned char uu = 0;
   register int d;
   unsigned char *u = (unsigned char *) ptr;
-  int i;
-  for (i = 0; i < sz; i++, u++) {
+  const unsigned char *eu =  u + sz;
+  for (; u != eu; ++u) {
     d = *(c++);
     if ((d >= '0') && (d <= '9'))
       uu = ((d - '0') << 4);
@@ -317,7 +340,7 @@ SWIG_UnpackData(char *c, void *ptr, int sz) {
 #endif
 
 /***********************************************************************
- * python.swg
+ * pyrun.swg
  *
  *     This file contains the runtime support for Python modules
  *     and includes code for managing global variables and pointer
@@ -326,8 +349,6 @@ SWIG_UnpackData(char *c, void *ptr, int sz) {
  * Author : David Beazley (beazley@cs.uchicago.edu)
  ************************************************************************/
 
-#include "Python.h"
-
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -481,6 +502,7 @@ statichere PyTypeObject varlinktype = {
   0,                                  /* tp_clear */
   0,                                  /* tp_richcompare */
   0,                                  /* tp_weaklistoffset */
+#if PY_VERSION_HEX >= 0x02020000
   0,                                  /* tp_iter */
   0,                                  /* tp_iternext */
   0,                                  /* tp_methods */
@@ -501,6 +523,17 @@ statichere PyTypeObject varlinktype = {
   0,                                  /* tp_cache */
   0,                                  /* tp_subclasses */
   0,                                  /* tp_weaklist */
+#endif
+#if PY_VERSION_HEX >= 0x02030200
+  0,                                  /* tp_del */
+#endif
+#ifdef COUNT_ALLOCS
+  /* these must be last */
+  0,                                  /* tp_alloc */
+  0,                                  /* tp_free */
+  0,                                  /* tp_maxalloc */
+  0,                                  /*  tp_next */
+#endif
 };
 
 /* Create a variable linking object for use later */
@@ -574,7 +607,7 @@ SWIG_Python_ConvertPtr(PyObject *obj, void **ptr, swig_type_info *ty, int flags)
       goto type_error;
     }
   } 
-  c = PyString_AsString(obj);
+  c = PyString_AS_STRING(obj);
   /* Pointer values must start with leading underscore */
   if (*c != '_') {
     *ptr = (void *) 0;
@@ -602,19 +635,17 @@ cobject:
   }
 
   if ((pyobj) && (flags & SWIG_POINTER_DISOWN)) {
-    PyObject *zero = PyInt_FromLong(0);
-    PyObject_SetAttrString(pyobj,(char*)"thisown",zero);
-    Py_DECREF(zero);
+    PyObject_SetAttrString(pyobj,(char*)"thisown",Py_False);
   }
   return 0;
 
 type_error:
+  PyErr_Clear();
   if (flags & SWIG_POINTER_EXCEPTION) {
     if (ty && c) {
-      PyObject *err = 
-       PyString_FromFormat("Type error. Got %s, expected %s",c,ty->name);
-      PyErr_SetObject(PyExc_TypeError, err);
-      Py_DECREF(err);
+      PyErr_Format(PyExc_TypeError, 
+                  "Type error. Got %s, expected %s",
+                  c, ty->name);
     } else {
       PyErr_SetString(PyExc_TypeError,"Expected a pointer");
     }
@@ -637,7 +668,7 @@ SWIG_Python_ConvertPacked(PyObject *obj, void *ptr, int sz, swig_type_info *ty,
   char  *c = 0;
 
   if ((!obj) || (!PyString_Check(obj))) goto type_error;
-  c = PyString_AsString(obj);
+  c = PyString_AS_STRING(obj);
   /* Pointer values must start with leading underscore */
   if (*c != '_') goto type_error;
   c++;
@@ -652,10 +683,9 @@ type_error:
 
   if (flags) {
     if (ty && c) {
-      PyObject *err = 
-       PyString_FromFormat("Type error. Got %s, expected %s",c,ty->name);
-      PyErr_SetObject(PyExc_TypeError, err);
-      Py_DECREF(err);
+      PyErr_Format(PyExc_TypeError, 
+                  "Type error. Got %s, expected %s",
+                  c, ty->name);
     } else {
       PyErr_SetString(PyExc_TypeError,"Expected a pointer");
     }
@@ -692,9 +722,7 @@ SWIG_Python_NewPointerObj(void *ptr, swig_type_info *type, int own) {
     Py_DECREF(args);
     if (inst) {
       if (own) {
-        PyObject *n = PyInt_FromLong(1);
-        PyObject_SetAttrString(inst,(char*)"thisown",n);
-        Py_DECREF(n);
+        PyObject_SetAttrString(inst,(char*)"thisown",Py_True);
       }
       robj = inst;
     }
@@ -769,61 +797,74 @@ static swig_type_info *swig_types[2];
 
 /* -------- TYPES TABLE (END) -------- */
 
+#define SWIG_init    initswigrun
 
-/*-----------------------------------------------
-              @(target):= _swigrun.so
-  ------------------------------------------------*/
-#define SWIG_init    init_swigrun
+#define SWIG_name    "swigrun"
 
-#define SWIG_name    "_swigrun"
+/* Auxiliar swig  macros that appear in the header */
 
-/* Auxiliar swig  macros */
+#define SWIG_OLDOBJ  1
+#define SWIG_NEWOBJ  SWIG_OLDOBJ + 1
+#define SWIG_PYSTR   SWIG_NEWOBJ + 1
 
 #ifdef __cplusplus
 #define SWIGSTATICINLINE(a) static inline a
 #define SWIGSTATIC(a) static a
-#define swig_new_array(type, size) (new type[(size)])
+#define swig_new_array(size,Type) (new Type[(size)])
+#define swig_delete(cptr) delete cptr
 #define swig_delete_array(cptr) delete[] cptr
-#define swig_const_cast(type,a) const_cast<type>(a)
-#define swig_static_cast(type,a) static_cast<type>(a)
-#define swig_reinterpret_cast(type,a) reinterpret_cast<type>(a)
-
-#ifdef HAVE_NUMERIC_CAST
-#define swig_numeric_cast(type,a) numeric_cast<type>(a)
-#else
-#define swig_numeric_cast(type,a) static_cast<type>(a)
-#endif
+#define swig_const_cast(a,Type) const_cast<Type >(a)
+#define swig_static_cast(a,Type) static_cast<Type >(a)
+#define swig_reinterpret_cast(a,Type) reinterpret_cast<Type >(a)
+#define swig_new_copy(ptr,Type) (new Type(*ptr))
+#define swig_numeric_cast(a,Type) static_cast<Type >(a)
 
 #else /* C case */
 
 #define SWIGSTATICINLINE(a) static a
 #define SWIGSTATIC(a) static a
-#define swig_new_array(type, size) ((type*) malloc((size)*sizeof(type)))
+#define swig_new_array(size,Type) ((Type*) malloc((size)*sizeof(Type)))
+#define swig_delete(cptr) free((char*)cptr)
 #define swig_delete_array(cptr) free((char*)cptr)
-#define swig_const_cast(type,a) (type)(a)
-#define swig_static_cast(type,a) (type)(a)
-#define swig_reinterpret_cast(type,a) (type)(a)
-#define swig_numeric_cast(type,a) (type)(a)
+#define swig_const_cast(a,Type) (Type)(a)
+#define swig_static_cast(a,Type) (Type)(a)
+#define swig_reinterpret_cast(a,Type) (Type)(a)
+#define swig_numeric_cast(a,Type) (Type)(a)
+#define swig_new_copy(ptr,Type)  ((Type*)memcpy(malloc(sizeof(Type)),ptr,sizeof(Type)))
 
 #endif /* __cplusplus */
 
 
-#define SWIG_FromSignedChar     PyInt_FromLong
-#define SWIG_FromUnsignedChar   PyInt_FromLong
-#define SWIG_FromShort         PyInt_FromLong
-#define SWIG_FromUnsignedShort  PyInt_FromLong
-#define SWIG_FromInt           PyInt_FromLong
-#define SWIG_FromLong          PyInt_FromLong
-#define SWIG_FromFloat         PyFloat_FromDouble
-#define SWIG_FromDouble        PyFloat_FromDouble
-#define SWIG_FromFloat         PyFloat_FromDouble
-#define SWIG_FromDouble        PyFloat_FromDouble
+/*@/opt/swig/share/swig/1.3.22/python/pymacros.swg,63,SWIG_define@*/
+#define SWIG_From_signed_SS_char PyInt_FromLong
+/*@@*/
+/*@/opt/swig/share/swig/1.3.22/python/pymacros.swg,63,SWIG_define@*/
+#define SWIG_From_unsigned_SS_char PyInt_FromLong
+/*@@*/
+/*@/opt/swig/share/swig/1.3.22/python/pymacros.swg,63,SWIG_define@*/
+#define SWIG_From_short PyInt_FromLong
+/*@@*/
+/*@/opt/swig/share/swig/1.3.22/python/pymacros.swg,63,SWIG_define@*/
+#define SWIG_From_unsigned_SS_short PyInt_FromLong
+/*@@*/
+/*@/opt/swig/share/swig/1.3.22/python/pymacros.swg,63,SWIG_define@*/
+#define SWIG_From_int PyInt_FromLong
+/*@@*/
+/*@/opt/swig/share/swig/1.3.22/python/pymacros.swg,63,SWIG_define@*/
+#define SWIG_From_long PyInt_FromLong
+/*@@*/
+/*@/opt/swig/share/swig/1.3.22/python/pymacros.swg,63,SWIG_define@*/
+#define SWIG_From_float PyFloat_FromDouble
+/*@@*/
+/*@/opt/swig/share/swig/1.3.22/python/pymacros.swg,63,SWIG_define@*/
+#define SWIG_From_double PyFloat_FromDouble
+/*@@*/
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 static PyMethodDef SwigMethods[] = {
-        { NULL, NULL }
+        { NULL, NULL, 0, NULL }
 };
 
 
@@ -840,7 +881,7 @@ _swigt__p_char,
 /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */
 
 static swig_const_info swig_const_table[] = {
-{0}};
+{0, 0, 0, 0.0, 0, 0}};
 
 #ifdef __cplusplus
 }
diff --git a/wxPython/src/my_fragments.i b/wxPython/src/my_fragments.i
new file mode 100644 (file)
index 0000000..1b1f06b
--- /dev/null
@@ -0,0 +1,69 @@
+// These fragments are inserted in modules that need to convert PyObjects to
+// integer values, my versions allow any numeric type to be used, as long as
+// it can be converted to a PyInt.  (Specifically, I allow floats where the
+// default SWIG_AsVal_long would just raise an exception.
+//
+// NOTE: This file has to be %included very early in the SWIGging process as
+// it no longer allows existing fragments to be replaced with one of the same
+// name.  So to make this work I had to bring a copy of python.swg into this
+// project and do the %include there before most other of the standard swiglib
+// files are %included.  This may change in 1.3.23, so adjust accordingly then.
+
+
+
+%fragment(SWIG_AsVal_frag(long), "header") {
+// See my_fragments.i
+SWIGSTATICINLINE(int)
+SWIG_AsVal(long)(PyObject* obj, long* val)
+{
+    if (PyNumber_Check(obj)) {
+        if (val) *val = PyInt_AsLong(obj);
+        return 1;
+    }
+    else {
+        PyObject* errmsg = PyString_FromFormat("Expected number, got %s",
+                                               obj->ob_type->tp_name);
+        PyErr_SetObject(PyExc_TypeError, errmsg);
+        Py_DECREF(errmsg);
+    }
+    return 0;
+}
+}
+
+
+%fragment(SWIG_AsVal_frag(unsigned long), "header",
+          fragment=SWIG_AsVal_frag(long)) {
+// See my_fragments.i
+SWIGSTATICINLINE(int)
+SWIG_AsVal(unsigned long)(PyObject* obj, unsigned long* val)
+{
+    long v = 0;
+    if (SWIG_AsVal_long(obj, &v) && v < 0) {
+        PyErr_SetString(PyExc_TypeError, "negative value received for unsigned type");
+        return 0;
+    }
+    else if (val)
+        *val = (unsigned long)v;
+    return 1;
+}
+}
+
+
+%fragment(SWIG_AsVal_frag(double), "header") {
+// See my_fragments.i
+SWIGSTATICINLINE(int)
+SWIG_AsVal(double)(PyObject *obj, double* val)
+{
+    if (PyNumber_Check(obj)) {
+        if (val) *val = PyFloat_AsDouble(obj);
+        return 1;
+    }
+    else {
+        PyObject* errmsg = PyString_FromFormat("Expected number, got %s",
+                                               obj->ob_type->tp_name);
+        PyErr_SetObject(PyExc_TypeError, errmsg);
+        Py_DECREF(errmsg);
+    }
+    return 0;
+}
+}
index da6de8d8eb42bb6ceb78fa9eede01166a49b84c9..9e30c677f86aedc31c148cc78b14020057413df6 100644 (file)
@@ -283,62 +283,6 @@ MAKE_INT_ARRAY_TYPEMAPS(styles, styles_field)
 }
 
 
-// These fragments are iserted in modules that need to convert PyObjects to
-// integer values, my versions allow any numeric type to be used, as long as
-// it can be converted to a PyInt.  (Specifically, I allow floats where the
-// default SWIG_AsLong would raise an obsucre exception from within
-// PyLong_AsLong.)
-
-%fragment("SWIG_AsLong","header") %{
-SWIGSTATICINLINE(long)
-SWIG_AsLong(PyObject * obj)
-{
-    if (PyNumber_Check(obj))
-        return PyInt_AsLong(obj);
-    else {
-        PyObject* errmsg = PyString_FromFormat("Expected number, got %s",
-                                               obj->ob_type->tp_name);
-        PyErr_SetObject(PyExc_TypeError, errmsg);
-        Py_DECREF(errmsg);
-        return 0;
-    }
-}
-%}
-
-%fragment("SWIG_AsUnsignedLong","header", fragment="SWIG_AsLong") %{
-SWIGSTATICINLINE(unsigned long)
-SWIG_AsUnsignedLong(PyObject * obj) 
-{
-  if (PyLong_Check(obj)) {
-    return PyLong_AsUnsignedLong(obj);
-  } else {
-    long i = SWIG_AsLong(obj);
-    if ( !PyErr_Occurred() && (i < 0)) {
-      PyErr_SetString(PyExc_TypeError, "negative value received for unsigned type");
-    }
-    return i;
-  }
-}
-%}
-
-
-%fragment("SWIG_AsDouble","header") %{
-SWIGSTATICINLINE(double)
-SWIG_AsDouble(PyObject *obj)
-{
-    if (PyNumber_Check(obj))
-        return PyFloat_AsDouble(obj);
-    else {
-        PyObject* errmsg = PyString_FromFormat("Expected number, got %s",
-                                               obj->ob_type->tp_name);
-        PyErr_SetObject(PyExc_TypeError, errmsg);
-        Py_DECREF(errmsg);
-        return 0;
-    }
-}
-%}
-
-
 //---------------------------------------------------------------------------
 // Typemap for when GDI objects are returned by reference.  This will cause a
 // copy to be made instead of returning a reference to the same instance.  The
index 8635809d7a0eb054d53926b891727f5c5b411797..a8dffa8f3cf21463ec3d3fa2a03d35f8e87caaa1 100644 (file)
@@ -8,8 +8,6 @@
  *
  ************************************************************************/
 
-#include "Python.h"
-
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -77,3 +75,4 @@ SWIGIMPORT(void)              SWIG_Python_InstallConstants(PyObject *d, swig_con
 #ifdef __cplusplus
 }
 #endif
+
diff --git a/wxPython/src/python.swg b/wxPython/src/python.swg
new file mode 100644 (file)
index 0000000..0b0da26
--- /dev/null
@@ -0,0 +1,90 @@
+/* -----------------------------------------------------------------------------
+ * python.swg
+ *
+ * Python configuration module.
+ * ----------------------------------------------------------------------------- */
+
+/* Python.h has to appear first */
+
+%insert(runtime) %{
+#include "Python.h"
+%}
+
+%insert(runtime) "precommon.swg";
+%insert(runtime) "common.swg";          /* Common type-checking code */
+%insert(runtime) "pyrun.swg";           /* Python run-time code */
+
+/* Special directive for shadow code */
+
+#define %shadow      %insert("shadow")
+#define %pythoncode  %insert("python")
+
+%include "pymacros.swg"
+
+
+/* -----------------------------------------------------------------------------
+ *  SWIGTYPE typemaps
+ * ----------------------------------------------------------------------------- */
+
+%include "pyswigtype.swg"
+
+
+/* -----------------------------------------------------------------------------
+ *  Check for local fragment defintions
+ * ----------------------------------------------------------------------------- */
+
+%include "my_fragments.i"
+
+
+/* -----------------------------------------------------------------------------
+ *  Typemap specializations
+ * ----------------------------------------------------------------------------- */
+
+%include "pyinout.swg"
+%include "pyvoid.swg"
+%include "pyobject.swg"
+%include "pystrbase.swg"
+%include "pystrings.swg"
+%include "pyvaltypes.swg"
+%include "pyptrtypes.swg"
+%include "pyprimtypes.swg"
+%include "pymisctypes.swg"
+%include "pyenum.swg"
+
+/* ------------------------------------------------------------
+ *  Overloaded operator support
+ * ------------------------------------------------------------ */
+%include "pyopers.swg"
+
+/* ------------------------------------------------------------
+ * Warnings for Python keywords 
+ * ------------------------------------------------------------ */
+%include "pythonkw.swg"
+
+/* ------------------------------------------------------------
+ * The start of the Python initialization function 
+ * ------------------------------------------------------------ */
+
+%init %{
+#ifdef __cplusplus
+extern "C"
+#endif
+SWIGEXPORT(void) SWIG_init(void) {
+  static PyObject *SWIG_globals = 0; 
+  static int       typeinit = 0;
+  PyObject *m, *d;
+  int       i;
+  if (!SWIG_globals) SWIG_globals = SWIG_newvarlink();
+  m = Py_InitModule((char *) SWIG_name, SwigMethods);
+  d = PyModule_GetDict(m);
+
+  if (!typeinit) {
+     for (i = 0; swig_types_initial[i]; i++) {
+        swig_types[i] = SWIG_TypeRegister(swig_types_initial[i]);
+     }
+     typeinit = 1;
+  }
+  SWIG_InstallConstants(d,swig_const_table);
+%}
+
+