SourceForge.net Logo
PythonQt
PythonQtInstanceWrapper.h
Go to the documentation of this file.
00001 #ifndef _PYTHONQTINSTANCEWRAPPER_H
00002 #define _PYTHONQTINSTANCEWRAPPER_H
00003 
00004 /*
00005  *
00006  *  Copyright (C) 2010 MeVis Medical Solutions AG 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 Medical Solutions AG, Universitaetsallee 29,
00030  *  28359 Bremen, Germany or:
00031  *
00032  *  http://www.mevis.de
00033  *
00034  */
00035 
00036 //----------------------------------------------------------------------------------
00043 //----------------------------------------------------------------------------------
00044 
00045 #include "PythonQtPythonInclude.h"
00046 
00047 #include "PythonQtSystem.h"
00048 #include <QPointer>
00049 
00050 #include "structmember.h"
00051 #include "methodobject.h"
00052 #include "compile.h"
00053 #include "eval.h"
00054 
00055 class PythonQtClassInfo;
00056 class QObject;
00057 
00058 extern PYTHONQT_EXPORT PyTypeObject PythonQtInstanceWrapper_Type;
00059 
00060 //---------------------------------------------------------------
00062 typedef struct PythonQtInstanceWrapperStruct {
00063   PyObject_HEAD
00064 
00066   PythonQtClassInfo* classInfo();
00067 
00069   void setQObject(QObject* object) {
00070     _obj = object;
00071     _objPointerCopy = object;
00072   }
00073 
00075   QPointer<QObject> _obj;
00078   void* _objPointerCopy;
00079 
00081   void*    _wrappedPtr;
00082 
00083   // TODO xxx: put booleans into int that holds flags
00084 
00086   bool _ownedByPythonQt;
00087 
00089   bool _useQMetaTypeDestroy;
00090 
00092   bool _isShellInstance;
00093 
00094 } PythonQtInstanceWrapper;
00095 
00096 int PythonQtInstanceWrapper_init(PythonQtInstanceWrapper * self, PyObject * args, PyObject * kwds);
00097 
00098 PyObject *PythonQtInstanceWrapper_delete(PythonQtInstanceWrapper * self);
00099 
00100 #endif
00101