Sketcher: SketchGeometryExtensionPy - add testGeometryMode/setGeometryMode interface

This commit is contained in:
Abdullah Tahiri
2020-12-05 06:24:33 +01:00
committed by abdullahtahiriyo
parent cd77e7ad2c
commit 092a1ee39d
2 changed files with 61 additions and 2 deletions

View File

@@ -15,10 +15,20 @@
<Author Licence="LGPL" Name="Abdullah Tahiri" EMail="abdullah.tahiri.yo@gmail.com" />
<UserDocu>Describes a SketchGeometryExtension</UserDocu>
</Documentation>
<Methode Name="testGeometryMode" Const="true">
<Documentation>
<UserDocu>Returns a boolean indicating whether the given bit is set.</UserDocu>
</Documentation>
</Methode>
<Methode Name="setGeometryMode" Const="false">
<Documentation>
<UserDocu>Sets the given bit to true/false.</UserDocu>
</Documentation>
</Methode>
<Attribute Name="Id" ReadOnly="false">
<Documentation>
<UserDocu>
returns the Id of the SketchGeometryExtension.
Returns the Id of the SketchGeometryExtension.
</UserDocu>
</Documentation>
<Parameter Name="Id" Type="Long"/>
@@ -26,7 +36,7 @@
<Attribute Name="InternalType" ReadOnly="false">
<Documentation>
<UserDocu>
returns the Id of the SketchGeometryExtension.
Returns the Id of the SketchGeometryExtension.
</UserDocu>
</Documentation>
<Parameter Name="InternalType" Type="String"/>

View File

@@ -124,6 +124,55 @@ void SketchGeometryExtensionPy::setBlocked(Py::Boolean arg)
getSketchGeometryExtensionPtr()->setGeometryMode(GeometryMode::Blocked, arg);
}
Py::Boolean SketchGeometryExtensionPy::getConstruction(void) const
{
return Py::Boolean(getSketchGeometryExtensionPtr()->testGeometryMode(GeometryMode::Construction));
}
void SketchGeometryExtensionPy::setConstruction(Py::Boolean arg)
{
getSketchGeometryExtensionPtr()->setGeometryMode(GeometryMode::Construction, arg);
}
PyObject* SketchGeometryExtensionPy::testGeometryMode(PyObject *args)
{
char* flag;
if (PyArg_ParseTuple(args, "s",&flag)) {
GeometryMode::GeometryMode mode;
if(getSketchGeometryExtensionPtr()->getGeometryModeFromName(flag, mode))
return new_reference_to(Py::Boolean(getSketchGeometryExtensionPtr()->testGeometryMode(mode)));
PyErr_SetString(PyExc_TypeError, "Flag string does not exist.");
return NULL;
}
PyErr_SetString(PyExc_TypeError, "No flag string provided.");
return NULL;
}
PyObject* SketchGeometryExtensionPy::setGeometryMode(PyObject *args)
{
char * flag;
PyObject * bflag = Py_True;
if (PyArg_ParseTuple(args, "s|O!", &flag, &PyBool_Type, &bflag)) {
GeometryMode::GeometryMode mode;
if(getSketchGeometryExtensionPtr()->getGeometryModeFromName(flag, mode)) {
getSketchGeometryExtensionPtr()->setGeometryMode(mode, PyObject_IsTrue(bflag) ? true : false);
Py_Return;
}
PyErr_SetString(PyExc_TypeError, "Flag string does not exist.");
return NULL;
}
PyErr_SetString(PyExc_TypeError, "No flag string provided.");
Py_Return;
}
PyObject *SketchGeometryExtensionPy::getCustomAttributes(const char* /*attr*/) const
{
return 0;