|
|
/*
|
|
|
*
|
|
|
* Copyright (C) 2010 MeVis Medical Solutions AG All Rights Reserved.
|
|
|
*
|
|
|
* This library is free software; you can redistribute it and/or
|
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
|
* License as published by the Free Software Foundation; either
|
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
|
*
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
* Lesser General Public License for more details.
|
|
|
*
|
|
|
* Further, this software is distributed without any warranty that it is
|
|
|
* free of the rightful claim of any third person regarding infringement
|
|
|
* or the like. Any license provided herein, whether implied or
|
|
|
* otherwise, applies only to this software file. Patent licenses, if
|
|
|
* any, provided herein do not apply to combinations of this program with
|
|
|
* other software, or any other product whatsoever.
|
|
|
*
|
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
|
* License along with this library; if not, write to the Free Software
|
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
*
|
|
|
* Contact information: MeVis Medical Solutions AG, Universitaetsallee 29,
|
|
|
* 28359 Bremen, Germany or:
|
|
|
*
|
|
|
* http://www.mevis.de
|
|
|
*
|
|
|
*/
|
|
|
|
|
|
//----------------------------------------------------------------------------------
|
|
|
/*!
|
|
|
// \file PythonQtSlot.cpp
|
|
|
// \author Florian Link
|
|
|
// \author Last changed by $Author: florian $
|
|
|
// \date 2006-05
|
|
|
*/
|
|
|
//----------------------------------------------------------------------------------
|
|
|
|
|
|
#include "PythonQt.h"
|
|
|
#include "PythonQtBoolResult.h"
|
|
|
|
|
|
static int PythonQtBoolResult_init(PythonQtBoolResultObject *self, PyObject* args, PyObject*)
|
|
|
{
|
|
|
if (args && PyTuple_Size(args)>0) {
|
|
|
PyErr_SetString(PyExc_ValueError, "No arguments supported for BoolResult!");
|
|
|
return -1;
|
|
|
}
|
|
|
self->_value = false;
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
static PyObject *PythonQtBoolResult_repr(PythonQtBoolResultObject *obj)
|
|
|
{
|
|
|
PythonQtBoolResultObject* wrapper = (PythonQtBoolResultObject*)obj;
|
|
|
return PyString_FromString(wrapper->_value?"BoolResult(True)":"BoolResult(False)");
|
|
|
}
|
|
|
|
|
|
static int PythonQtBoolResult_nonzero(PyObject *obj)
|
|
|
{
|
|
|
PythonQtBoolResultObject* wrapper = (PythonQtBoolResultObject*)obj;
|
|
|
return wrapper->_value;
|
|
|
}
|
|
|
|
|
|
// we override nb_nonzero, so that one can do 'if' expressions to test for a NULL ptr
|
|
|
static PyNumberMethods PythonQtBoolResult_as_number = {
|
|
|
0, /* nb_add */
|
|
|
0, /* nb_subtract */
|
|
|
0, /* nb_multiply */
|
|
|
#ifndef PY3K
|
|
|
0, /* nb_divide */
|
|
|
#endif
|
|
|
0, /* nb_remainder */
|
|
|
0, /* nb_divmod */
|
|
|
0, /* nb_power */
|
|
|
0, /* nb_negative */
|
|
|
0, /* nb_positive */
|
|
|
0, /* nb_absolute */
|
|
|
PythonQtBoolResult_nonzero, /* nb_nonzero / nb_bool in Py3K */
|
|
|
0, /* nb_invert */
|
|
|
0, /* nb_lshift */
|
|
|
0, /* nb_rshift */
|
|
|
0, /* nb_and */
|
|
|
0, /* nb_xor */
|
|
|
0, /* nb_or */
|
|
|
#ifndef PY3K
|
|
|
0, /* nb_coerce */
|
|
|
#endif
|
|
|
0, /* nb_int */
|
|
|
0, /* nb_long / nb_reserved in Py3K */
|
|
|
0, /* nb_float */
|
|
|
#ifndef PY3K
|
|
|
0, /* nb_oct */
|
|
|
0, /* nb_hex */
|
|
|
#endif
|
|
|
0, /* nb_inplace_add */
|
|
|
0, /* nb_inplace_subtract */
|
|
|
0, /* nb_inplace_multiply */
|
|
|
#ifndef PY3K
|
|
|
0, /* nb_inplace_divide */
|
|
|
#endif
|
|
|
0, /* nb_inplace_remainder */
|
|
|
0, /* nb_inplace_power */
|
|
|
0, /* nb_inplace_lshift */
|
|
|
0, /* nb_inplace_rshift */
|
|
|
0, /* nb_inplace_and */
|
|
|
0, /* nb_inplace_xor */
|
|
|
0, /* nb_inplace_or */
|
|
|
0, /* nb_floor_divide */
|
|
|
0, /* nb_true_divide */
|
|
|
0, /* nb_inplace_floor_divide */
|
|
|
0, /* nb_inplace_true_divide */
|
|
|
#ifdef PY3K
|
|
|
0, /* nb_index in Py3K */
|
|
|
#endif
|
|
|
};
|
|
|
|
|
|
PyTypeObject PythonQtBoolResult_Type = {
|
|
|
PyVarObject_HEAD_INIT(&PyType_Type, 0)
|
|
|
"BoolResult",
|
|
|
sizeof(PythonQtBoolResultObject),
|
|
|
0,
|
|
|
0, /* tp_dealloc */
|
|
|
0, /* tp_print */
|
|
|
0, /* tp_getattr */
|
|
|
0, /* tp_setattr */
|
|
|
0,
|
|
|
(reprfunc)PythonQtBoolResult_repr, /* tp_repr */
|
|
|
&PythonQtBoolResult_as_number, /* tp_as_number */
|
|
|
0, /* tp_as_sequence */
|
|
|
0, /* tp_as_mapping */
|
|
|
0, /* tp_hash */
|
|
|
0, /* tp_call */
|
|
|
0, /* tp_str */
|
|
|
0, /* tp_getattro */
|
|
|
0, /* tp_setattro */
|
|
|
0, /* tp_as_buffer */
|
|
|
Py_TPFLAGS_DEFAULT,/* tp_flags */
|
|
|
"Result object that is useful for bool* arguments", /* tp_doc */
|
|
|
0, /* tp_traverse */
|
|
|
0, /* tp_clear */
|
|
|
0, /* tp_richcompare */
|
|
|
0, /* tp_weaklistoffset */
|
|
|
0, /* tp_iter */
|
|
|
0, /* tp_iternext */
|
|
|
0, /* tp_methods */
|
|
|
0, /* tp_members */
|
|
|
0, /* tp_getset */
|
|
|
0, /* tp_base */
|
|
|
0, /* tp_dict */
|
|
|
0, /* tp_descr_get */
|
|
|
0, /* tp_descr_set */
|
|
|
0, /* tp_dictoffset */
|
|
|
(initproc)&PythonQtBoolResult_init, /* tp_init */
|
|
|
};
|
|
|
|
|
|
|