+ add Puthon binding to AbstractSplitView
This commit is contained in:
parent
c30031f3d2
commit
6763d3a6e4
|
@ -367,6 +367,227 @@ void AbstractSplitView::setOverrideCursor(const QCursor& aCursor)
|
|||
//_viewer->getWidget()->setCursor(aCursor);
|
||||
}
|
||||
|
||||
PyObject *AbstractSplitView::getPyObject(void)
|
||||
{
|
||||
static bool init = false;
|
||||
if (!init) {
|
||||
init = true;
|
||||
AbstractSplitViewPy::init_type();
|
||||
}
|
||||
|
||||
return new AbstractSplitViewPy(this);
|
||||
}
|
||||
|
||||
void AbstractSplitView::setPyObject(PyObject *)
|
||||
{
|
||||
throw Base::AttributeError("Attribute is read-only");
|
||||
}
|
||||
|
||||
// ------------------------------------------------------
|
||||
|
||||
void AbstractSplitViewPy::init_type()
|
||||
{
|
||||
behaviors().name("AbstractSplitViewPy");
|
||||
behaviors().doc("Python binding class for the Inventor viewer class");
|
||||
// you must have overwritten the virtual functions
|
||||
behaviors().supportRepr();
|
||||
|
||||
add_varargs_method("fitAll",&AbstractSplitViewPy::fitAll,"fitAll()");
|
||||
add_varargs_method("viewBottom",&AbstractSplitViewPy::viewBottom,"viewBottom()");
|
||||
add_varargs_method("viewFront",&AbstractSplitViewPy::viewFront,"viewFront()");
|
||||
add_varargs_method("viewLeft",&AbstractSplitViewPy::viewLeft,"viewLeft()");
|
||||
add_varargs_method("viewRear",&AbstractSplitViewPy::viewRear,"viewRear()");
|
||||
add_varargs_method("viewRight",&AbstractSplitViewPy::viewRight,"viewRight()");
|
||||
add_varargs_method("viewTop",&AbstractSplitViewPy::viewTop,"viewTop()");
|
||||
add_varargs_method("viewAxometric",&AbstractSplitViewPy::viewAxometric,"viewAxometric()");
|
||||
}
|
||||
|
||||
AbstractSplitViewPy::AbstractSplitViewPy(AbstractSplitView *vi)
|
||||
: _view(vi)
|
||||
{
|
||||
}
|
||||
|
||||
AbstractSplitViewPy::~AbstractSplitViewPy()
|
||||
{
|
||||
}
|
||||
|
||||
Py::Object AbstractSplitViewPy::repr()
|
||||
{
|
||||
std::string s;
|
||||
std::ostringstream s_out;
|
||||
if (!_view)
|
||||
throw Py::RuntimeError("Cannot print representation of deleted object");
|
||||
s_out << "AbstractSplitView";
|
||||
return Py::String(s_out.str());
|
||||
}
|
||||
|
||||
Py::Object AbstractSplitViewPy::fitAll(const Py::Tuple& args)
|
||||
{
|
||||
if (!PyArg_ParseTuple(args.ptr(), ""))
|
||||
throw Py::Exception();
|
||||
|
||||
try {
|
||||
_view->onMsg("ViewFit", 0);
|
||||
}
|
||||
catch (const Base::Exception& e) {
|
||||
throw Py::Exception(e.what());
|
||||
}
|
||||
catch (const std::exception& e) {
|
||||
throw Py::Exception(e.what());
|
||||
}
|
||||
catch(...) {
|
||||
throw Py::Exception("Unknown C++ exception");
|
||||
}
|
||||
return Py::None();
|
||||
}
|
||||
|
||||
Py::Object AbstractSplitViewPy::viewBottom(const Py::Tuple& args)
|
||||
{
|
||||
if (!PyArg_ParseTuple(args.ptr(), ""))
|
||||
throw Py::Exception();
|
||||
|
||||
try {
|
||||
_view->onMsg("ViewBottom", 0);
|
||||
}
|
||||
catch (const Base::Exception& e) {
|
||||
throw Py::Exception(e.what());
|
||||
}
|
||||
catch (const std::exception& e) {
|
||||
throw Py::Exception(e.what());
|
||||
}
|
||||
catch(...) {
|
||||
throw Py::Exception("Unknown C++ exception");
|
||||
}
|
||||
|
||||
return Py::None();
|
||||
}
|
||||
|
||||
Py::Object AbstractSplitViewPy::viewFront(const Py::Tuple& args)
|
||||
{
|
||||
if (!PyArg_ParseTuple(args.ptr(), ""))
|
||||
throw Py::Exception();
|
||||
|
||||
try {
|
||||
_view->onMsg("ViewFront", 0);
|
||||
}
|
||||
catch (const Base::Exception& e) {
|
||||
throw Py::Exception(e.what());
|
||||
}
|
||||
catch (const std::exception& e) {
|
||||
throw Py::Exception(e.what());
|
||||
}
|
||||
catch(...) {
|
||||
throw Py::Exception("Unknown C++ exception");
|
||||
}
|
||||
|
||||
return Py::None();
|
||||
}
|
||||
|
||||
Py::Object AbstractSplitViewPy::viewLeft(const Py::Tuple& args)
|
||||
{
|
||||
if (!PyArg_ParseTuple(args.ptr(), ""))
|
||||
throw Py::Exception();
|
||||
|
||||
try {
|
||||
_view->onMsg("ViewLeft", 0);
|
||||
}
|
||||
catch (const Base::Exception& e) {
|
||||
throw Py::Exception(e.what());
|
||||
}
|
||||
catch (const std::exception& e) {
|
||||
throw Py::Exception(e.what());
|
||||
}
|
||||
catch(...) {
|
||||
throw Py::Exception("Unknown C++ exception");
|
||||
}
|
||||
|
||||
return Py::None();
|
||||
}
|
||||
|
||||
Py::Object AbstractSplitViewPy::viewRear(const Py::Tuple& args)
|
||||
{
|
||||
if (!PyArg_ParseTuple(args.ptr(), ""))
|
||||
throw Py::Exception();
|
||||
|
||||
try {
|
||||
_view->onMsg("ViewRear", 0);
|
||||
}
|
||||
catch (const Base::Exception& e) {
|
||||
throw Py::Exception(e.what());
|
||||
}
|
||||
catch (const std::exception& e) {
|
||||
throw Py::Exception(e.what());
|
||||
}
|
||||
catch(...) {
|
||||
throw Py::Exception("Unknown C++ exception");
|
||||
}
|
||||
|
||||
return Py::None();
|
||||
}
|
||||
|
||||
Py::Object AbstractSplitViewPy::viewRight(const Py::Tuple& args)
|
||||
{
|
||||
if (!PyArg_ParseTuple(args.ptr(), ""))
|
||||
throw Py::Exception();
|
||||
|
||||
try {
|
||||
_view->onMsg("ViewRight", 0);
|
||||
}
|
||||
catch (const Base::Exception& e) {
|
||||
throw Py::Exception(e.what());
|
||||
}
|
||||
catch (const std::exception& e) {
|
||||
throw Py::Exception(e.what());
|
||||
}
|
||||
catch(...) {
|
||||
throw Py::Exception("Unknown C++ exception");
|
||||
}
|
||||
|
||||
return Py::None();
|
||||
}
|
||||
|
||||
Py::Object AbstractSplitViewPy::viewTop(const Py::Tuple& args)
|
||||
{
|
||||
if (!PyArg_ParseTuple(args.ptr(), ""))
|
||||
throw Py::Exception();
|
||||
|
||||
try {
|
||||
_view->onMsg("ViewTop", 0);
|
||||
}
|
||||
catch (const Base::Exception& e) {
|
||||
throw Py::Exception(e.what());
|
||||
}
|
||||
catch (const std::exception& e) {
|
||||
throw Py::Exception(e.what());
|
||||
}
|
||||
catch(...) {
|
||||
throw Py::Exception("Unknown C++ exception");
|
||||
}
|
||||
|
||||
return Py::None();
|
||||
}
|
||||
|
||||
Py::Object AbstractSplitViewPy::viewAxometric(const Py::Tuple& args)
|
||||
{
|
||||
if (!PyArg_ParseTuple(args.ptr(), ""))
|
||||
throw Py::Exception();
|
||||
|
||||
try {
|
||||
_view->onMsg("ViewAxo", 0);
|
||||
}
|
||||
catch (const Base::Exception& e) {
|
||||
throw Py::Exception(e.what());
|
||||
}
|
||||
catch (const std::exception& e) {
|
||||
throw Py::Exception(e.what());
|
||||
}
|
||||
catch(...) {
|
||||
throw Py::Exception("Unknown C++ exception");
|
||||
}
|
||||
|
||||
return Py::None();
|
||||
}
|
||||
|
||||
// ------------------------------------------------------
|
||||
|
||||
TYPESYSTEM_SOURCE_ABSTRACT(Gui::SplitView3DInventor, Gui::AbstractSplitView);
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#include "MDIView.h"
|
||||
|
||||
#include <Base/Parameter.h>
|
||||
#include <CXX/Extensions.hxx>
|
||||
#include <vector>
|
||||
|
||||
namespace Gui {
|
||||
|
@ -54,9 +55,11 @@ public:
|
|||
virtual void deleteSelf();
|
||||
|
||||
View3DInventorViewer *getViewer(unsigned int) const;
|
||||
|
||||
void setOverrideCursor(const QCursor&);
|
||||
|
||||
PyObject *getPyObject(void);
|
||||
void setPyObject(PyObject *);
|
||||
|
||||
protected:
|
||||
void setupSettings();
|
||||
|
||||
|
@ -66,6 +69,29 @@ protected:
|
|||
std::vector<View3DInventorViewer*> _viewer;
|
||||
};
|
||||
|
||||
class AbstractSplitViewPy : public Py::PythonExtension<AbstractSplitViewPy>
|
||||
{
|
||||
public:
|
||||
static void init_type(void); // announce properties and methods
|
||||
|
||||
AbstractSplitViewPy(AbstractSplitView *vi);
|
||||
~AbstractSplitViewPy();
|
||||
|
||||
Py::Object repr();
|
||||
|
||||
Py::Object fitAll(const Py::Tuple&);
|
||||
Py::Object viewBottom(const Py::Tuple&);
|
||||
Py::Object viewFront(const Py::Tuple&);
|
||||
Py::Object viewLeft(const Py::Tuple&);
|
||||
Py::Object viewRear(const Py::Tuple&);
|
||||
Py::Object viewRight(const Py::Tuple&);
|
||||
Py::Object viewTop(const Py::Tuple&);
|
||||
Py::Object viewAxometric(const Py::Tuple&);
|
||||
|
||||
private:
|
||||
AbstractSplitView* _view;
|
||||
};
|
||||
|
||||
/** The SplitView3DInventor class allows to create a window with two or more Inventor views.
|
||||
* \author Werner Mayer
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue
Block a user