From 034cc0013e9f8be5a739e95ef0f3a915d8da3617 Mon Sep 17 00:00:00 2001 From: wmayer Date: Tue, 4 Oct 2016 19:29:53 +0200 Subject: [PATCH] add template for Python workbench --- src/Tools/_TEMPLATEPY_/CMakeLists.txt | 40 +++++ src/Tools/_TEMPLATEPY_/Init.py | 4 + src/Tools/_TEMPLATEPY_/InitGui.py | 21 +++ .../_TEMPLATEPY_/Resources/_TEMPLATEPY_.qrc | 5 + .../Resources/icons/_TEMPLATEPY_Workbench.svg | 159 ++++++++++++++++++ src/Tools/_TEMPLATEPY_/_TEMPLATEPY_.dox | 3 + src/Tools/_TEMPLATEPY_/_TEMPLATEPY_.py | 0 src/Tools/_TEMPLATEPY_/_TEMPLATEPY_Gui.py | 16 ++ 8 files changed, 248 insertions(+) create mode 100644 src/Tools/_TEMPLATEPY_/CMakeLists.txt create mode 100644 src/Tools/_TEMPLATEPY_/Init.py create mode 100644 src/Tools/_TEMPLATEPY_/InitGui.py create mode 100644 src/Tools/_TEMPLATEPY_/Resources/_TEMPLATEPY_.qrc create mode 100644 src/Tools/_TEMPLATEPY_/Resources/icons/_TEMPLATEPY_Workbench.svg create mode 100644 src/Tools/_TEMPLATEPY_/_TEMPLATEPY_.dox create mode 100644 src/Tools/_TEMPLATEPY_/_TEMPLATEPY_.py create mode 100644 src/Tools/_TEMPLATEPY_/_TEMPLATEPY_Gui.py diff --git a/src/Tools/_TEMPLATEPY_/CMakeLists.txt b/src/Tools/_TEMPLATEPY_/CMakeLists.txt new file mode 100644 index 0000000000..34b14da6ea --- /dev/null +++ b/src/Tools/_TEMPLATEPY_/CMakeLists.txt @@ -0,0 +1,40 @@ + +IF (BUILD_GUI) + PYSIDE_WRAP_RC(_TEMPLATEPY__QRC_SRCS Resources/_TEMPLATEPY_.qrc) +ENDIF (BUILD_GUI) + +SET(_TEMPLATEPY__SRCS + Init.py + InitGui.py + _TEMPLATEPY_.py + _TEMPLATEPY_Gui.py +) +SOURCE_GROUP("" FILES ${_TEMPLATEPY__SRCS}) + +ADD_CUSTOM_TARGET(_TEMPLATEPY_ ALL + SOURCES ${_TEMPLATEPY__SRCS} ${_TEMPLATEPY__QRC_SRCS} +) + +fc_copy_sources(_TEMPLATEPY_ "${CMAKE_BINARY_DIR}/Mod/_TEMPLATEPY_" ${_TEMPLATEPY__SRCS}) + +IF (BUILD_GUI) + fc_target_copy_resource(_TEMPLATEPY_ + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_BINARY_DIR}/Mod/_TEMPLATEPY_ + _TEMPLATEPY__rc.py) +ENDIF (BUILD_GUI) + +INSTALL( + FILES + ${_TEMPLATEPY__SRCS} + ${_TEMPLATEPY__QRC_SRCS} + DESTINATION + Mod/_TEMPLATEPY_ +) + +SET(_TEMPLATEPY_GuiIcon_SVG + Resources/icons/_TEMPLATEPY_Workbench.svg +) + +fc_copy_sources(_TEMPLATEPY_ "${CMAKE_BINARY_DIR}/Mod/_TEMPLATEPY_" ${_TEMPLATEPY_GuiIcon_SVG}) +INSTALL(FILES ${_TEMPLATEPY_GuiIcon_SVG} DESTINATION "Mod/_TEMPLATEPY_/Resources/icons") diff --git a/src/Tools/_TEMPLATEPY_/Init.py b/src/Tools/_TEMPLATEPY_/Init.py new file mode 100644 index 0000000000..d19124bd88 --- /dev/null +++ b/src/Tools/_TEMPLATEPY_/Init.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# FreeCAD init script of the _TEMPLATEPY_ module +# (c) 2001 Juergen Riegel +# License LGPL diff --git a/src/Tools/_TEMPLATEPY_/InitGui.py b/src/Tools/_TEMPLATEPY_/InitGui.py new file mode 100644 index 0000000000..ba8aab5295 --- /dev/null +++ b/src/Tools/_TEMPLATEPY_/InitGui.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# _TEMPLATEPY_ gui init module +# (c) 2001 Juergen Riegel +# License LGPL + +class _TEMPLATEPY_Workbench ( Workbench ): + "_TEMPLATEPY_ workbench object" + Icon = FreeCAD.getHomePath() + "Mod/_TEMPLATEPY_/Resources/icons/_TEMPLATEPY_Workbench.svg" + MenuText = "_TEMPLATEPY_" + ToolTip = "_TEMPLATEPY_ workbench" + + def Initialize(self): + # load the module + import _TEMPLATEPY_Gui + self.appendToolbar('_TEMPLATEPY_',['_TEMPLATEPY__HelloWorld']) + self.appendMenu('_TEMPLATEPY_',['_TEMPLATEPY__HelloWorld']) + + def GetClassName(self): + return "Gui::PythonWorkbench" + +Gui.addWorkbench(_TEMPLATEPY_Workbench()) diff --git a/src/Tools/_TEMPLATEPY_/Resources/_TEMPLATEPY_.qrc b/src/Tools/_TEMPLATEPY_/Resources/_TEMPLATEPY_.qrc new file mode 100644 index 0000000000..1d3ee961fd --- /dev/null +++ b/src/Tools/_TEMPLATEPY_/Resources/_TEMPLATEPY_.qrc @@ -0,0 +1,5 @@ + + + icons/_TEMPLATEPY_Workbench.svg + + diff --git a/src/Tools/_TEMPLATEPY_/Resources/icons/_TEMPLATEPY_Workbench.svg b/src/Tools/_TEMPLATEPY_/Resources/icons/_TEMPLATEPY_Workbench.svg new file mode 100644 index 0000000000..28d7e0e826 --- /dev/null +++ b/src/Tools/_TEMPLATEPY_/Resources/icons/_TEMPLATEPY_Workbench.svg @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/src/Tools/_TEMPLATEPY_/_TEMPLATEPY_.dox b/src/Tools/_TEMPLATEPY_/_TEMPLATEPY_.dox new file mode 100644 index 0000000000..b6b6ab28b0 --- /dev/null +++ b/src/Tools/_TEMPLATEPY_/_TEMPLATEPY_.dox @@ -0,0 +1,3 @@ +/** \defgroup TEMPLATE _TEMPLATEPY_ + * \ingroup WORKBENCHES */ + diff --git a/src/Tools/_TEMPLATEPY_/_TEMPLATEPY_.py b/src/Tools/_TEMPLATEPY_/_TEMPLATEPY_.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/Tools/_TEMPLATEPY_/_TEMPLATEPY_Gui.py b/src/Tools/_TEMPLATEPY_/_TEMPLATEPY_Gui.py new file mode 100644 index 0000000000..1da2960637 --- /dev/null +++ b/src/Tools/_TEMPLATEPY_/_TEMPLATEPY_Gui.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# FreeCAD tools of the _TEMPLATEPY_ workbench +# (c) 2001 Juergen Riegel +# License LGPL + +import FreeCAD, FreeCADGui + +class CmdHelloWorld: + def Activated(self): + FreeCAD.Console.PrintMessage("Hello, World!\n") + def IsActive(self): + return True + def GetResources(self): + return {'Pixmap': 'freecad', 'MenuText': 'Hello World', 'ToolTip': 'Print Hello World'} + +FreeCADGui.addCommand('_TEMPLATEPY__HelloWorld', CmdHelloWorld())