FreeCAD
1/***************************************************************************
2* Copyright (c) 2019 Abdullah Tahiri <abdullah.tahiri.yo@gmail.com> *
3* *
4* This file is part of the FreeCAD CAx development system. *
5* *
6* This library is free software; you can redistribute it and/or *
7* modify it under the terms of the GNU Library General Public *
8* License as published by the Free Software Foundation; either *
9* version 2 of the License, or (at your option) any later version. *
10* *
11* This library is distributed in the hope that it will be useful, *
12* but WITHOUT ANY WARRANTY; without even the implied warranty of *
13* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14* GNU Library General Public License for more details. *
15* *
16* You should have received a copy of the GNU Library General Public *
17* License along with this library; see the file COPYING.LIB. If not, *
18* write to the Free Software Foundation, Inc., 59 Temple Place, *
19* Suite 330, Boston, MA 02111-1307, USA *
20* *
21***************************************************************************/
22
23#include "PreCompiled.h"24
25#ifndef _PreComp_26# include <sstream>27#endif28
29#include "GeometryStringExtensionPy.h"30#include "GeometryStringExtensionPy.cpp"31
32
33using namespace Part;34
35// returns a string which represents the object e.g. when printed in python
36std::string GeometryStringExtensionPy::representation() const37{
38std::stringstream str;39str << "<GeometryStringExtension (" ;40
41if(!getGeometryStringExtensionPtr()->getName().empty())42str << "\'" << getGeometryStringExtensionPtr()->getName() << "\', ";43
44str << getGeometryStringExtensionPtr()->getValue() << ") >";45
46return str.str();47}
48
49PyObject *GeometryStringExtensionPy::PyMake(struct _typeobject *, PyObject *, PyObject *) // Python wrapper50{
51// create a new instance of the python object and the Twin object52return new GeometryStringExtensionPy(new GeometryStringExtension);53}
54
55// constructor method
56int GeometryStringExtensionPy::PyInit(PyObject* args, PyObject* /*kwd*/)57{
58
59if (PyArg_ParseTuple(args, "")) {60// default extension61return 0;62}63
64PyErr_Clear();65char *pstr;66if (PyArg_ParseTuple(args, "s", &pstr)) {67this->getGeometryStringExtensionPtr()->setValue(pstr);68return 0;69}70
71PyErr_Clear();72char * pystr;73if (PyArg_ParseTuple(args, "ss", &pstr, &pystr)) {74this->getGeometryStringExtensionPtr()->setValue(pstr);75this->getGeometryStringExtensionPtr()->setName(pystr);76return 0;77}78
79
80PyErr_SetString(PyExc_TypeError, "GeometryStringExtension constructor accepts:\n"81"-- empty parameter list\n"82"-- string\n"83"-- string, string\n");84return -1;85}
86
87Py::String GeometryStringExtensionPy::getValue() const88{
89return {this->getGeometryStringExtensionPtr()->getValue()};90}
91
92void GeometryStringExtensionPy::setValue(Py::String value)93{
94this->getGeometryStringExtensionPtr()->setValue(value.as_std_string());95}
96
97PyObject *GeometryStringExtensionPy::getCustomAttributes(const char* /*attr*/) const98{
99return nullptr;100}
101
102int GeometryStringExtensionPy::setCustomAttributes(const char* /*attr*/, PyObject* /*obj*/)103{
104return 0;105}
106