FreeCAD
86 строк · 2.9 Кб
1/***************************************************************************
2* Copyright (c) YEAR YOUR NAME <Your e-mail address> *
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
24#include "PreCompiled.h"
25#ifndef _PreComp_
26#include <Python.h>
27#endif
28
29#include <Base/Console.h>
30#include <Base/Interpreter.h>
31#include <Base/PyObjectBase.h>
32#include <Gui/Application.h>
33
34#include "Workbench.h"
35
36#include <CXX/Extensions.hxx>
37#include <CXX/Objects.hxx>
38
39// use a different name to CreateCommand()
40void Create_TEMPLATE_Commands(void);
41
42
43namespace _TEMPLATE_Gui
44{
45class Module: public Py::ExtensionModule<Module>
46{
47public:
48Module()
49: Py::ExtensionModule<Module>("_TEMPLATE_Gui")
50{
51initialize("This module is the _TEMPLATE_Gui module."); // register with Python
52}
53
54virtual ~Module()
55{}
56
57private:
58};
59
60PyObject* initModule()
61{
62return Base::Interpreter().addModule(new Module);
63}
64
65} // namespace _TEMPLATE_Gui
66
67
68/* Python entry */
69PyMOD_INIT_FUNC(_TEMPLATE_Gui)
70{
71if (!Gui::Application::Instance) {
72PyErr_SetString(PyExc_ImportError, "Cannot load Gui module in console application.");
73PyMOD_Return(0);
74}
75
76// instantiating the commands
77Create_TEMPLATE_Commands();
78_TEMPLATE_Gui::Workbench::init();
79
80// ADD YOUR CODE HERE
81//
82//
83PyObject* mod = _TEMPLATE_Gui::initModule();
84Base::Console().Log("Loading GUI of _TEMPLATE_ module... done\n");
85PyMOD_Return(mod);
86}
87