Gui: add MDIViewPy.cast_to_base and implement in Python wrappers for sub-classes of MDIView
This commit is contained in:
@@ -53,6 +53,7 @@ void MDIViewPy::init_type()
|
||||
behaviors().supportRepr();
|
||||
behaviors().supportGetattr();
|
||||
behaviors().supportSetattr();
|
||||
behaviors().set_tp_new(extension_object_new);
|
||||
|
||||
add_varargs_method("message",&MDIViewPy::sendMessage,"deprecated: use sendMessage");
|
||||
add_varargs_method("sendMessage",&MDIViewPy::sendMessage,"sendMessage(str)");
|
||||
@@ -60,6 +61,26 @@ void MDIViewPy::init_type()
|
||||
add_varargs_method("fitAll",&MDIViewPy::fitAll,"fitAll()");
|
||||
add_varargs_method("setActiveObject", &MDIViewPy::setActiveObject, "setActiveObject(name,object,subname=None)\nadd or set a new active object");
|
||||
add_varargs_method("getActiveObject", &MDIViewPy::getActiveObject, "getActiveObject(name,resolve=True)\nreturns the active object for the given type");
|
||||
add_varargs_method("cast_to_base", &MDIViewPy::cast_to_base, "cast_to_base() cast to MDIView class");
|
||||
}
|
||||
|
||||
PyObject *MDIViewPy::extension_object_new(struct _typeobject * /*type*/, PyObject * /*args*/, PyObject * /*kwds*/)
|
||||
{
|
||||
return new MDIViewPy(nullptr);
|
||||
}
|
||||
|
||||
Py::Object MDIViewPy::type()
|
||||
{
|
||||
return Py::Object( reinterpret_cast<PyObject *>( behaviors().type_object() ) );
|
||||
}
|
||||
|
||||
Py::ExtensionObject<MDIViewPy> MDIViewPy::create(MDIView *mdi)
|
||||
{
|
||||
Py::Callable class_type(type());
|
||||
Py::Tuple arg;
|
||||
auto inst = Py::ExtensionObject<MDIViewPy>(class_type.apply(arg, Py::Dict()));
|
||||
inst.extensionObject()->_view = mdi;
|
||||
return inst;
|
||||
}
|
||||
|
||||
MDIViewPy::MDIViewPy(MDIView *mdi)
|
||||
@@ -198,3 +219,8 @@ Py::Object MDIViewPy::getActiveObject(const Py::Tuple& args)
|
||||
Py::asObject(parent->getPyObject()),
|
||||
Py::String(subname.c_str()));
|
||||
}
|
||||
|
||||
Py::Object MDIViewPy::cast_to_base(const Py::Tuple&)
|
||||
{
|
||||
return Py::Object(this);
|
||||
}
|
||||
|
||||
@@ -35,7 +35,11 @@ class MDIView;
|
||||
class GuiExport MDIViewPy : public Py::PythonExtension<MDIViewPy>
|
||||
{
|
||||
public:
|
||||
static void init_type(void); // announce properties and methods
|
||||
static void init_type(); // announce properties and methods
|
||||
static PyObject *extension_object_new( PyTypeObject *subtype, PyObject * /*args*/, PyObject * /*kwds*/ );
|
||||
|
||||
static Py::Object type();
|
||||
static Py::ExtensionObject<MDIViewPy> create(MDIView *mdi);
|
||||
|
||||
MDIViewPy(MDIView *mdi);
|
||||
~MDIViewPy();
|
||||
@@ -47,6 +51,7 @@ public:
|
||||
Py::Object fitAll(const Py::Tuple&);
|
||||
Py::Object setActiveObject(const Py::Tuple&);
|
||||
Py::Object getActiveObject(const Py::Tuple&);
|
||||
Py::Object cast_to_base(const Py::Tuple&);
|
||||
|
||||
MDIView* getMDIViewPtr() {return _view.data();}
|
||||
|
||||
|
||||
@@ -52,6 +52,7 @@
|
||||
#include "View3DViewerPy.h"
|
||||
#include "ActiveObjectList.h"
|
||||
#include "PythonWrapper.h"
|
||||
#include "MDIViewPy.h"
|
||||
|
||||
|
||||
#include <Base/Console.h>
|
||||
@@ -208,6 +209,7 @@ void View3DInventorPy::init_type()
|
||||
"hasClippingPlane(): check whether this clipping plane is active");
|
||||
add_varargs_method("graphicsView",&View3DInventorPy::graphicsView,
|
||||
"graphicsView(): Access this view as QGraphicsView");
|
||||
add_varargs_method("cast_to_base", &View3DInventorPy::cast_to_base, "cast_to_base() cast to MDIView class");
|
||||
}
|
||||
|
||||
View3DInventorPy::View3DInventorPy(View3DInventor *vi)
|
||||
@@ -2633,3 +2635,8 @@ Py::Object View3DInventorPy::graphicsView(const Py::Tuple& args)
|
||||
wrap.loadWidgetsModule();
|
||||
return wrap.fromQWidget(_view->getViewer(), "QGraphicsView");
|
||||
}
|
||||
|
||||
Py::Object View3DInventorPy::cast_to_base(const Py::Tuple&)
|
||||
{
|
||||
return Gui::MDIViewPy::create(_view);
|
||||
}
|
||||
|
||||
@@ -135,6 +135,7 @@ public:
|
||||
Py::Object toggleClippingPlane(const Py::Tuple& args, const Py::Dict &);
|
||||
Py::Object hasClippingPlane(const Py::Tuple& args);
|
||||
Py::Object graphicsView(const Py::Tuple& args);
|
||||
Py::Object cast_to_base(const Py::Tuple&);
|
||||
|
||||
View3DInventor* getView3DIventorPtr() {return _view;}
|
||||
|
||||
|
||||
@@ -471,6 +471,7 @@ void SheetViewPy::init_type()
|
||||
behaviors().supportSetattr();
|
||||
|
||||
add_varargs_method("getSheet", &SheetViewPy::getSheet, "getSheet()");
|
||||
add_varargs_method("cast_to_base", &SheetViewPy::cast_to_base, "cast_to_base() cast to MDIView class");
|
||||
behaviors().readyType();
|
||||
}
|
||||
|
||||
@@ -531,4 +532,9 @@ Py::Object SheetViewPy::getSheet(const Py::Tuple& args)
|
||||
return Py::asObject(new Spreadsheet::SheetPy(getSheetViewPtr()->getSheet()));
|
||||
}
|
||||
|
||||
Py::Object SheetViewPy::cast_to_base(const Py::Tuple&)
|
||||
{
|
||||
return Gui::MDIViewPy::create(base.getMDIViewPtr());
|
||||
}
|
||||
|
||||
#include "moc_SpreadsheetView.cpp"
|
||||
|
||||
@@ -130,6 +130,7 @@ public:
|
||||
Py::Object repr();
|
||||
Py::Object getattr(const char *);
|
||||
Py::Object getSheet(const Py::Tuple&);
|
||||
Py::Object cast_to_base(const Py::Tuple&);
|
||||
|
||||
SheetView* getSheetViewPtr();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user