00001 #ifndef _PYTHONQTSLOT_H 00002 #define _PYTHONQTSLOT_H 00003 00004 /* 00005 * 00006 * Copyright (C) 2006 MeVis Research GmbH All Rights Reserved. 00007 * 00008 * This library is free software; you can redistribute it and/or 00009 * modify it under the terms of the GNU Lesser General Public 00010 * License as published by the Free Software Foundation; either 00011 * version 2.1 of the License, or (at your option) any later version. 00012 * 00013 * This library is distributed in the hope that it will be useful, 00014 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00016 * Lesser General Public License for more details. 00017 * 00018 * Further, this software is distributed without any warranty that it is 00019 * free of the rightful claim of any third person regarding infringement 00020 * or the like. Any license provided herein, whether implied or 00021 * otherwise, applies only to this software file. Patent licenses, if 00022 * any, provided herein do not apply to combinations of this program with 00023 * other software, or any other product whatsoever. 00024 * 00025 * You should have received a copy of the GNU Lesser General Public 00026 * License along with this library; if not, write to the Free Software 00027 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00028 * 00029 * Contact information: MeVis Research GmbH, Universitaetsallee 29, 00030 * 28359 Bremen, Germany or: 00031 * 00032 * http://www.mevis.de 00033 * 00034 */ 00035 00036 //---------------------------------------------------------------------------------- 00043 //---------------------------------------------------------------------------------- 00044 00045 #include "Python.h" 00046 #include "structmember.h" 00047 00048 class PythonQtSlotInfo; 00049 00050 extern PyTypeObject PythonQtSlotFunction_Type; 00051 00052 #define PythonQtSlotFunction_Check(op) ((op)->ob_type == &PythonQtSlotFunction_Type) 00053 00054 PythonQtSlotInfo* PythonQtSlotFunction_GetSlotInfo(PyObject *); 00055 PyObject* PythonQtSlotFunction_GetSelf(PyObject *); 00056 00057 /* Macros for direct access to these values. Type checks are *not* 00058 done, so use with care. */ 00059 #define PythonQtSlotFunction_GET_SELF(func) \ 00060 (((PythonQtSlotFunctionObject *)func) -> m_self) 00061 00062 PyObject* PythonQtSlotFunction_Call(PyObject *, PyObject *, PyObject *); 00063 00064 PyObject *PythonQtSlotFunction_CallImpl(QObject* objectToCall, PythonQtSlotInfo* info, PyObject *args, PyObject *kw, bool isVariantCall=false, void* firstArg=NULL); 00065 00066 00067 PyObject* PythonQtSlotFunction_New(PythonQtSlotInfo *, PyObject *, 00068 PyObject *); 00069 00071 typedef struct { 00072 PyObject_HEAD 00073 PythonQtSlotInfo *m_ml; /* Description of the C function to call */ 00074 PyObject *m_self; /* Passed as 'self' arg to the C func, can be NULL */ 00075 PyObject *m_module; /* The __module__ attribute, can be anything */ 00076 } PythonQtSlotFunctionObject; 00077 00078 00079 #endif
1.5.8