1 /*
2  * Interface wrapper code.
3  *
4  * Generated by SIP 4.19.16
5  *
6  *     Copyright: (c) 2018 by Total Control Software
7  *     License:   wxWindows License
8  */
9 
10 #include "sipAPI_core.h"
11 
12         #include <wx/log.h>
13 
14         #include <wx/log.h>
15         #include <wx/log.h>
16         #include <wx/log.h>
17 
18 
19 class sipwxLogChain : public  ::wxLogChain
20 {
21 public:
22     sipwxLogChain( ::wxLog*);
23     virtual ~sipwxLogChain();
24 
25     /*
26      * There is a public method for every protected method visible from
27      * this class.
28      */
29     void sipProtectVirt_DoLogRecord(bool, ::wxLogLevel,const  ::wxString&,const  ::wxLogRecordInfo&);
30     void sipProtectVirt_DoLogTextAtLevel(bool, ::wxLogLevel,const  ::wxString&);
31     void sipProtectVirt_DoLogText(bool,const  ::wxString&);
32 
33     /*
34      * There is a protected method for every virtual method visible from
35      * this class.
36      */
37 protected:
38     void Flush() SIP_OVERRIDE;
39     void DoLogRecord( ::wxLogLevel,const  ::wxString&,const  ::wxLogRecordInfo&) SIP_OVERRIDE;
40     void DoLogTextAtLevel( ::wxLogLevel,const  ::wxString&) SIP_OVERRIDE;
41     void DoLogText(const  ::wxString&) SIP_OVERRIDE;
42 
43 public:
44     sipSimpleWrapper *sipPySelf;
45 
46 private:
47     sipwxLogChain(const sipwxLogChain &);
48     sipwxLogChain &operator = (const sipwxLogChain &);
49 
50     char sipPyMethods[4];
51 };
52 
sipwxLogChain(::wxLog * logger)53 sipwxLogChain::sipwxLogChain( ::wxLog*logger):  ::wxLogChain(logger), sipPySelf(SIP_NULLPTR)
54 {
55     memset(sipPyMethods, 0, sizeof (sipPyMethods));
56 }
57 
~sipwxLogChain()58 sipwxLogChain::~sipwxLogChain()
59 {
60     sipInstanceDestroyedEx(&sipPySelf);
61 }
62 
Flush()63 void sipwxLogChain::Flush()
64 {
65     sip_gilstate_t sipGILState;
66     PyObject *sipMeth;
67 
68     sipMeth = sipIsPyMethod(&sipGILState,&sipPyMethods[0],sipPySelf,SIP_NULLPTR,sipName_Flush);
69 
70     if (!sipMeth)
71     {
72          ::wxLogChain::Flush();
73         return;
74     }
75 
76     extern void sipVH__core_45(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *);
77 
78     sipVH__core_45(sipGILState, 0, sipPySelf, sipMeth);
79 }
80 
DoLogRecord(::wxLogLevel level,const::wxString & msg,const::wxLogRecordInfo & info)81 void sipwxLogChain::DoLogRecord( ::wxLogLevel level,const  ::wxString& msg,const  ::wxLogRecordInfo& info)
82 {
83     sip_gilstate_t sipGILState;
84     PyObject *sipMeth;
85 
86     sipMeth = sipIsPyMethod(&sipGILState,&sipPyMethods[1],sipPySelf,SIP_NULLPTR,sipName_DoLogRecord);
87 
88     if (!sipMeth)
89     {
90          ::wxLogChain::DoLogRecord(level,msg,info);
91         return;
92     }
93 
94     extern void sipVH__core_46(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *,  ::wxLogLevel,const  ::wxString&,const  ::wxLogRecordInfo&);
95 
96     sipVH__core_46(sipGILState, 0, sipPySelf, sipMeth, level, msg, info);
97 }
98 
DoLogTextAtLevel(::wxLogLevel level,const::wxString & msg)99 void sipwxLogChain::DoLogTextAtLevel( ::wxLogLevel level,const  ::wxString& msg)
100 {
101     sip_gilstate_t sipGILState;
102     PyObject *sipMeth;
103 
104     sipMeth = sipIsPyMethod(&sipGILState,&sipPyMethods[2],sipPySelf,SIP_NULLPTR,sipName_DoLogTextAtLevel);
105 
106     if (!sipMeth)
107     {
108          ::wxLogChain::DoLogTextAtLevel(level,msg);
109         return;
110     }
111 
112     extern void sipVH__core_47(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *,  ::wxLogLevel,const  ::wxString&);
113 
114     sipVH__core_47(sipGILState, 0, sipPySelf, sipMeth, level, msg);
115 }
116 
DoLogText(const::wxString & msg)117 void sipwxLogChain::DoLogText(const  ::wxString& msg)
118 {
119     sip_gilstate_t sipGILState;
120     PyObject *sipMeth;
121 
122     sipMeth = sipIsPyMethod(&sipGILState,&sipPyMethods[3],sipPySelf,SIP_NULLPTR,sipName_DoLogText);
123 
124     if (!sipMeth)
125     {
126          ::wxLogChain::DoLogText(msg);
127         return;
128     }
129 
130     extern void sipVH__core_48(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, const  ::wxString&);
131 
132     sipVH__core_48(sipGILState, 0, sipPySelf, sipMeth, msg);
133 }
134 
sipProtectVirt_DoLogRecord(bool sipSelfWasArg,::wxLogLevel level,const::wxString & msg,const::wxLogRecordInfo & info)135 void sipwxLogChain::sipProtectVirt_DoLogRecord(bool sipSelfWasArg, ::wxLogLevel level,const  ::wxString& msg,const  ::wxLogRecordInfo& info)
136 {
137     (sipSelfWasArg ?  ::wxLog::DoLogRecord(level,msg,info) : DoLogRecord(level,msg,info));
138 }
139 
sipProtectVirt_DoLogTextAtLevel(bool sipSelfWasArg,::wxLogLevel level,const::wxString & msg)140 void sipwxLogChain::sipProtectVirt_DoLogTextAtLevel(bool sipSelfWasArg, ::wxLogLevel level,const  ::wxString& msg)
141 {
142     (sipSelfWasArg ?  ::wxLog::DoLogTextAtLevel(level,msg) : DoLogTextAtLevel(level,msg));
143 }
144 
sipProtectVirt_DoLogText(bool sipSelfWasArg,const::wxString & msg)145 void sipwxLogChain::sipProtectVirt_DoLogText(bool sipSelfWasArg,const  ::wxString& msg)
146 {
147     (sipSelfWasArg ?  ::wxLog::DoLogText(msg) : DoLogText(msg));
148 }
149 
150 
151 PyDoc_STRVAR(doc_wxLogChain_DoLogRecord, "DoLogRecord(level, msg, info)\n"
152 "\n"
153 "Called to log a new record.");
154 
155 extern "C" {static PyObject *meth_wxLogChain_DoLogRecord(PyObject *, PyObject *, PyObject *);}
meth_wxLogChain_DoLogRecord(PyObject * sipSelf,PyObject * sipArgs,PyObject * sipKwds)156 static PyObject *meth_wxLogChain_DoLogRecord(PyObject *sipSelf, PyObject *sipArgs, PyObject *sipKwds)
157 {
158     PyObject *sipParseErr = SIP_NULLPTR;
159     bool sipSelfWasArg = (!sipSelf || sipIsDerivedClass((sipSimpleWrapper *)sipSelf));
160 
161     {
162          ::wxLogLevel level;
163         const  ::wxString* msg;
164         int msgState = 0;
165         const  ::wxLogRecordInfo* info;
166         sipwxLogChain *sipCpp;
167 
168         static const char *sipKwdList[] = {
169             sipName_level,
170             sipName_msg,
171             sipName_info,
172         };
173 
174         if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BmJ1J9", &sipSelf, sipType_wxLogChain, &sipCpp, &level, sipType_wxString,&msg, &msgState, sipType_wxLogRecordInfo, &info))
175         {
176             PyErr_Clear();
177 
178             Py_BEGIN_ALLOW_THREADS
179             sipCpp->sipProtectVirt_DoLogRecord(sipSelfWasArg,level,*msg,*info);
180             Py_END_ALLOW_THREADS
181             sipReleaseType(const_cast< ::wxString *>(msg),sipType_wxString,msgState);
182 
183             if (PyErr_Occurred())
184                 return 0;
185 
186             Py_INCREF(Py_None);
187             return Py_None;
188         }
189     }
190 
191     /* Raise an exception if the arguments couldn't be parsed. */
192     sipNoMethod(sipParseErr, sipName_LogChain, sipName_DoLogRecord, SIP_NULLPTR);
193 
194     return SIP_NULLPTR;
195 }
196 
197 
198 PyDoc_STRVAR(doc_wxLogChain_DoLogTextAtLevel, "DoLogTextAtLevel(level, msg)\n"
199 "\n"
200 "Called to log the specified string at given level.");
201 
202 extern "C" {static PyObject *meth_wxLogChain_DoLogTextAtLevel(PyObject *, PyObject *, PyObject *);}
meth_wxLogChain_DoLogTextAtLevel(PyObject * sipSelf,PyObject * sipArgs,PyObject * sipKwds)203 static PyObject *meth_wxLogChain_DoLogTextAtLevel(PyObject *sipSelf, PyObject *sipArgs, PyObject *sipKwds)
204 {
205     PyObject *sipParseErr = SIP_NULLPTR;
206     bool sipSelfWasArg = (!sipSelf || sipIsDerivedClass((sipSimpleWrapper *)sipSelf));
207 
208     {
209          ::wxLogLevel level;
210         const  ::wxString* msg;
211         int msgState = 0;
212         sipwxLogChain *sipCpp;
213 
214         static const char *sipKwdList[] = {
215             sipName_level,
216             sipName_msg,
217         };
218 
219         if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BmJ1", &sipSelf, sipType_wxLogChain, &sipCpp, &level, sipType_wxString,&msg, &msgState))
220         {
221             PyErr_Clear();
222 
223             Py_BEGIN_ALLOW_THREADS
224             sipCpp->sipProtectVirt_DoLogTextAtLevel(sipSelfWasArg,level,*msg);
225             Py_END_ALLOW_THREADS
226             sipReleaseType(const_cast< ::wxString *>(msg),sipType_wxString,msgState);
227 
228             if (PyErr_Occurred())
229                 return 0;
230 
231             Py_INCREF(Py_None);
232             return Py_None;
233         }
234     }
235 
236     /* Raise an exception if the arguments couldn't be parsed. */
237     sipNoMethod(sipParseErr, sipName_LogChain, sipName_DoLogTextAtLevel, SIP_NULLPTR);
238 
239     return SIP_NULLPTR;
240 }
241 
242 
243 PyDoc_STRVAR(doc_wxLogChain_DoLogText, "DoLogText(msg)\n"
244 "\n"
245 "Called to log the specified string.");
246 
247 extern "C" {static PyObject *meth_wxLogChain_DoLogText(PyObject *, PyObject *, PyObject *);}
meth_wxLogChain_DoLogText(PyObject * sipSelf,PyObject * sipArgs,PyObject * sipKwds)248 static PyObject *meth_wxLogChain_DoLogText(PyObject *sipSelf, PyObject *sipArgs, PyObject *sipKwds)
249 {
250     PyObject *sipParseErr = SIP_NULLPTR;
251     bool sipSelfWasArg = (!sipSelf || sipIsDerivedClass((sipSimpleWrapper *)sipSelf));
252 
253     {
254         const  ::wxString* msg;
255         int msgState = 0;
256         sipwxLogChain *sipCpp;
257 
258         static const char *sipKwdList[] = {
259             sipName_msg,
260         };
261 
262         if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ1", &sipSelf, sipType_wxLogChain, &sipCpp, sipType_wxString,&msg, &msgState))
263         {
264             PyErr_Clear();
265 
266             Py_BEGIN_ALLOW_THREADS
267             sipCpp->sipProtectVirt_DoLogText(sipSelfWasArg,*msg);
268             Py_END_ALLOW_THREADS
269             sipReleaseType(const_cast< ::wxString *>(msg),sipType_wxString,msgState);
270 
271             if (PyErr_Occurred())
272                 return 0;
273 
274             Py_INCREF(Py_None);
275             return Py_None;
276         }
277     }
278 
279     /* Raise an exception if the arguments couldn't be parsed. */
280     sipNoMethod(sipParseErr, sipName_LogChain, sipName_DoLogText, SIP_NULLPTR);
281 
282     return SIP_NULLPTR;
283 }
284 
285 
286 PyDoc_STRVAR(doc_wxLogChain_DetachOldLog, "DetachOldLog()\n"
287 "\n"
288 "Detaches the old log target so it won't be destroyed when the\n"
289 "wxLogChain object is destroyed.");
290 
291 extern "C" {static PyObject *meth_wxLogChain_DetachOldLog(PyObject *, PyObject *);}
meth_wxLogChain_DetachOldLog(PyObject * sipSelf,PyObject * sipArgs)292 static PyObject *meth_wxLogChain_DetachOldLog(PyObject *sipSelf, PyObject *sipArgs)
293 {
294     PyObject *sipParseErr = SIP_NULLPTR;
295 
296     {
297          ::wxLogChain *sipCpp;
298 
299         if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_wxLogChain, &sipCpp))
300         {
301             PyErr_Clear();
302 
303             Py_BEGIN_ALLOW_THREADS
304             sipCpp->DetachOldLog();
305             Py_END_ALLOW_THREADS
306 
307             if (PyErr_Occurred())
308                 return 0;
309 
310             Py_INCREF(Py_None);
311             return Py_None;
312         }
313     }
314 
315     /* Raise an exception if the arguments couldn't be parsed. */
316     sipNoMethod(sipParseErr, sipName_LogChain, sipName_DetachOldLog, SIP_NULLPTR);
317 
318     return SIP_NULLPTR;
319 }
320 
321 
322 PyDoc_STRVAR(doc_wxLogChain_GetOldLog, "GetOldLog() -> Log\n"
323 "\n"
324 "Returns the pointer to the previously active log target (which may be\n"
325 "NULL).");
326 
327 extern "C" {static PyObject *meth_wxLogChain_GetOldLog(PyObject *, PyObject *);}
meth_wxLogChain_GetOldLog(PyObject * sipSelf,PyObject * sipArgs)328 static PyObject *meth_wxLogChain_GetOldLog(PyObject *sipSelf, PyObject *sipArgs)
329 {
330     PyObject *sipParseErr = SIP_NULLPTR;
331 
332     {
333         const  ::wxLogChain *sipCpp;
334 
335         if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_wxLogChain, &sipCpp))
336         {
337              ::wxLog*sipRes;
338 
339             PyErr_Clear();
340 
341             Py_BEGIN_ALLOW_THREADS
342             sipRes = sipCpp->GetOldLog();
343             Py_END_ALLOW_THREADS
344 
345             if (PyErr_Occurred())
346                 return 0;
347 
348             return sipConvertFromType(sipRes,sipType_wxLog,SIP_NULLPTR);
349         }
350     }
351 
352     /* Raise an exception if the arguments couldn't be parsed. */
353     sipNoMethod(sipParseErr, sipName_LogChain, sipName_GetOldLog, SIP_NULLPTR);
354 
355     return SIP_NULLPTR;
356 }
357 
358 
359 PyDoc_STRVAR(doc_wxLogChain_IsPassingMessages, "IsPassingMessages() -> bool\n"
360 "\n"
361 "Returns true if the messages are passed to the previously active log\n"
362 "target (default) or false if PassMessages() had been called.");
363 
364 extern "C" {static PyObject *meth_wxLogChain_IsPassingMessages(PyObject *, PyObject *);}
meth_wxLogChain_IsPassingMessages(PyObject * sipSelf,PyObject * sipArgs)365 static PyObject *meth_wxLogChain_IsPassingMessages(PyObject *sipSelf, PyObject *sipArgs)
366 {
367     PyObject *sipParseErr = SIP_NULLPTR;
368 
369     {
370         const  ::wxLogChain *sipCpp;
371 
372         if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_wxLogChain, &sipCpp))
373         {
374             bool sipRes;
375 
376             PyErr_Clear();
377 
378             Py_BEGIN_ALLOW_THREADS
379             sipRes = sipCpp->IsPassingMessages();
380             Py_END_ALLOW_THREADS
381 
382             if (PyErr_Occurred())
383                 return 0;
384 
385             return PyBool_FromLong(sipRes);
386         }
387     }
388 
389     /* Raise an exception if the arguments couldn't be parsed. */
390     sipNoMethod(sipParseErr, sipName_LogChain, sipName_IsPassingMessages, SIP_NULLPTR);
391 
392     return SIP_NULLPTR;
393 }
394 
395 
396 PyDoc_STRVAR(doc_wxLogChain_PassMessages, "PassMessages(passMessages)\n"
397 "\n"
398 "By default, the log messages are passed to the previously active log\n"
399 "target.");
400 
401 extern "C" {static PyObject *meth_wxLogChain_PassMessages(PyObject *, PyObject *, PyObject *);}
meth_wxLogChain_PassMessages(PyObject * sipSelf,PyObject * sipArgs,PyObject * sipKwds)402 static PyObject *meth_wxLogChain_PassMessages(PyObject *sipSelf, PyObject *sipArgs, PyObject *sipKwds)
403 {
404     PyObject *sipParseErr = SIP_NULLPTR;
405 
406     {
407         bool passMessages;
408          ::wxLogChain *sipCpp;
409 
410         static const char *sipKwdList[] = {
411             sipName_passMessages,
412         };
413 
414         if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "Bb", &sipSelf, sipType_wxLogChain, &sipCpp, &passMessages))
415         {
416             PyErr_Clear();
417 
418             Py_BEGIN_ALLOW_THREADS
419             sipCpp->PassMessages(passMessages);
420             Py_END_ALLOW_THREADS
421 
422             if (PyErr_Occurred())
423                 return 0;
424 
425             Py_INCREF(Py_None);
426             return Py_None;
427         }
428     }
429 
430     /* Raise an exception if the arguments couldn't be parsed. */
431     sipNoMethod(sipParseErr, sipName_LogChain, sipName_PassMessages, SIP_NULLPTR);
432 
433     return SIP_NULLPTR;
434 }
435 
436 
437 PyDoc_STRVAR(doc_wxLogChain_SetLog, "SetLog(logger)\n"
438 "\n"
439 "Sets another log target to use (may be NULL).");
440 
441 extern "C" {static PyObject *meth_wxLogChain_SetLog(PyObject *, PyObject *, PyObject *);}
meth_wxLogChain_SetLog(PyObject * sipSelf,PyObject * sipArgs,PyObject * sipKwds)442 static PyObject *meth_wxLogChain_SetLog(PyObject *sipSelf, PyObject *sipArgs, PyObject *sipKwds)
443 {
444     PyObject *sipParseErr = SIP_NULLPTR;
445 
446     {
447          ::wxLog* logger;
448          ::wxLogChain *sipCpp;
449 
450         static const char *sipKwdList[] = {
451             sipName_logger,
452         };
453 
454         if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ8", &sipSelf, sipType_wxLogChain, &sipCpp, sipType_wxLog, &logger))
455         {
456             PyErr_Clear();
457 
458             Py_BEGIN_ALLOW_THREADS
459             sipCpp->SetLog(logger);
460             Py_END_ALLOW_THREADS
461 
462             if (PyErr_Occurred())
463                 return 0;
464 
465             Py_INCREF(Py_None);
466             return Py_None;
467         }
468     }
469 
470     /* Raise an exception if the arguments couldn't be parsed. */
471     sipNoMethod(sipParseErr, sipName_LogChain, sipName_SetLog, SIP_NULLPTR);
472 
473     return SIP_NULLPTR;
474 }
475 
476 
477 /* Cast a pointer to a type somewhere in its inheritance hierarchy. */
478 extern "C" {static void *cast_wxLogChain(void *, const sipTypeDef *);}
cast_wxLogChain(void * sipCppV,const sipTypeDef * targetType)479 static void *cast_wxLogChain(void *sipCppV, const sipTypeDef *targetType)
480 {
481      ::wxLogChain *sipCpp = reinterpret_cast< ::wxLogChain *>(sipCppV);
482 
483     if (targetType == sipType_wxLog)
484         return static_cast< ::wxLog *>(sipCpp);
485 
486     return sipCppV;
487 }
488 
489 
490 /* Call the instance's destructor. */
491 extern "C" {static void release_wxLogChain(void *, int);}
release_wxLogChain(void * sipCppV,int sipState)492 static void release_wxLogChain(void *sipCppV, int sipState)
493 {
494     Py_BEGIN_ALLOW_THREADS
495 
496     if (sipState & SIP_DERIVED_CLASS)
497         delete reinterpret_cast<sipwxLogChain *>(sipCppV);
498     else
499         delete reinterpret_cast< ::wxLogChain *>(sipCppV);
500 
501     Py_END_ALLOW_THREADS
502 }
503 
504 
505 extern "C" {static void dealloc_wxLogChain(sipSimpleWrapper *);}
dealloc_wxLogChain(sipSimpleWrapper * sipSelf)506 static void dealloc_wxLogChain(sipSimpleWrapper *sipSelf)
507 {
508     if (sipIsDerivedClass(sipSelf))
509         reinterpret_cast<sipwxLogChain *>(sipGetAddress(sipSelf))->sipPySelf = SIP_NULLPTR;
510 
511     if (sipIsOwnedByPython(sipSelf))
512     {
513         release_wxLogChain(sipGetAddress(sipSelf), sipIsDerivedClass(sipSelf));
514     }
515 }
516 
517 
518 extern "C" {static void *init_type_wxLogChain(sipSimpleWrapper *, PyObject *, PyObject *, PyObject **, PyObject **, PyObject **);}
init_type_wxLogChain(sipSimpleWrapper * sipSelf,PyObject * sipArgs,PyObject * sipKwds,PyObject ** sipUnused,PyObject **,PyObject ** sipParseErr)519 static void *init_type_wxLogChain(sipSimpleWrapper *sipSelf, PyObject *sipArgs, PyObject *sipKwds, PyObject **sipUnused, PyObject **, PyObject **sipParseErr)
520 {
521     sipwxLogChain *sipCpp = SIP_NULLPTR;
522 
523     {
524          ::wxLog* logger;
525 
526         static const char *sipKwdList[] = {
527             sipName_logger,
528         };
529 
530         if (sipParseKwdArgs(sipParseErr, sipArgs, sipKwds, sipKwdList, sipUnused, "J8", sipType_wxLog, &logger))
531         {
532             PyErr_Clear();
533 
534             Py_BEGIN_ALLOW_THREADS
535             sipCpp = new sipwxLogChain(logger);
536             Py_END_ALLOW_THREADS
537 
538             if (PyErr_Occurred())
539             {
540                 delete sipCpp;
541                 return SIP_NULLPTR;
542             }
543 
544             sipCpp->sipPySelf = sipSelf;
545 
546             return sipCpp;
547         }
548     }
549 
550     return SIP_NULLPTR;
551 }
552 
553 
554 /* Define this type's super-types. */
555 static sipEncodedTypeDef supers_wxLogChain[] = {{298, 255, 1}};
556 
557 
558 static PyMethodDef methods_wxLogChain[] = {
559     {SIP_MLNAME_CAST(sipName_DetachOldLog), meth_wxLogChain_DetachOldLog, METH_VARARGS, SIP_MLDOC_CAST(doc_wxLogChain_DetachOldLog)},
560     {SIP_MLNAME_CAST(sipName_DoLogRecord), SIP_MLMETH_CAST(meth_wxLogChain_DoLogRecord), METH_VARARGS|METH_KEYWORDS, SIP_NULLPTR},
561     {SIP_MLNAME_CAST(sipName_DoLogText), SIP_MLMETH_CAST(meth_wxLogChain_DoLogText), METH_VARARGS|METH_KEYWORDS, SIP_NULLPTR},
562     {SIP_MLNAME_CAST(sipName_DoLogTextAtLevel), SIP_MLMETH_CAST(meth_wxLogChain_DoLogTextAtLevel), METH_VARARGS|METH_KEYWORDS, SIP_NULLPTR},
563     {SIP_MLNAME_CAST(sipName_GetOldLog), meth_wxLogChain_GetOldLog, METH_VARARGS, SIP_MLDOC_CAST(doc_wxLogChain_GetOldLog)},
564     {SIP_MLNAME_CAST(sipName_IsPassingMessages), meth_wxLogChain_IsPassingMessages, METH_VARARGS, SIP_MLDOC_CAST(doc_wxLogChain_IsPassingMessages)},
565     {SIP_MLNAME_CAST(sipName_PassMessages), SIP_MLMETH_CAST(meth_wxLogChain_PassMessages), METH_VARARGS|METH_KEYWORDS, SIP_MLDOC_CAST(doc_wxLogChain_PassMessages)},
566     {SIP_MLNAME_CAST(sipName_SetLog), SIP_MLMETH_CAST(meth_wxLogChain_SetLog), METH_VARARGS|METH_KEYWORDS, SIP_MLDOC_CAST(doc_wxLogChain_SetLog)}
567 };
568 
569 sipVariableDef variables_wxLogChain[] = {
570     {PropertyVariable, sipName_OldLog, &methods_wxLogChain[4], SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR},
571 };
572 
573 PyDoc_STRVAR(doc_wxLogChain, "LogChain(logger)\n"
574 "\n"
575 "This simple class allows you to chain log sinks, that is to install a\n"
576 "new sink but keep passing log messages to the old one instead of\n"
577 "replacing it completely as wxLog::SetActiveTarget does.");
578 
579 
580 sipClassTypeDef sipTypeDef__core_wxLogChain = {
581     {
582         -1,
583         SIP_NULLPTR,
584         SIP_NULLPTR,
585         SIP_TYPE_CLASS,
586         sipNameNr_wxLogChain,
587         {SIP_NULLPTR},
588         SIP_NULLPTR
589     },
590     {
591         sipNameNr_LogChain,
592         {0, 0, 1},
593         8, methods_wxLogChain,
594         0, SIP_NULLPTR,
595         1, variables_wxLogChain,
596         {SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR},
597     },
598     doc_wxLogChain,
599     -1,
600     -1,
601     supers_wxLogChain,
602     SIP_NULLPTR,
603     init_type_wxLogChain,
604     SIP_NULLPTR,
605     SIP_NULLPTR,
606 #if PY_MAJOR_VERSION >= 3
607     SIP_NULLPTR,
608     SIP_NULLPTR,
609 #else
610     SIP_NULLPTR,
611     SIP_NULLPTR,
612     SIP_NULLPTR,
613     SIP_NULLPTR,
614 #endif
615     dealloc_wxLogChain,
616     SIP_NULLPTR,
617     SIP_NULLPTR,
618     SIP_NULLPTR,
619     release_wxLogChain,
620     cast_wxLogChain,
621     SIP_NULLPTR,
622     SIP_NULLPTR,
623     SIP_NULLPTR,
624     SIP_NULLPTR,
625     SIP_NULLPTR,
626     SIP_NULLPTR
627 };
628