docutil/docsvg.py
changeset 814 5743cbdff669
child 1571 486f94a8032c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/docutil/docsvg.py	Fri Sep 07 16:45:55 2012 +0200
@@ -0,0 +1,62 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+#This file is part of PLCOpenEditor, a library implementing an IEC 61131-3 editor
+#based on the plcopen standard. 
+#
+#Copyright (C) 2007: Edouard TISSERANT and Laurent BESSARD
+#
+#See COPYING file for copyrights details.
+#
+#This library is free software; you can redistribute it and/or
+#modify it under the terms of the GNU General Public
+#License as published by the Free Software Foundation; either
+#version 2.1 of the License, or (at your option) any later version.
+#
+#This library is distributed in the hope that it will be useful,
+#but WITHOUT ANY WARRANTY; without even the implied warranty of
+#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#General Public License for more details.
+#
+#You should have received a copy of the GNU General Public
+#License along with this library; if not, write to the Free Software
+#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+import wx, os, subprocess
+
+def get_inkscape_path():
+    """ Return the Inkscape path """
+    import _winreg
+    svgexepath = _winreg.QueryValue(_winreg.HKEY_LOCAL_MACHINE,
+                 'Software\\Classes\\svgfile\\shell\\Inkscape\\command')
+    svgexepath = svgexepath.replace('"%1"', '')
+    return svgexepath.replace('"', '')
+
+def open_win_svg(svgexepath, svgfile):
+    """ Open Inkscape on Windows platform """
+    popenargs = [svgexepath]
+    if svgfile is not None :
+        popenargs.append(svgfile)
+    subprocess.Popen(popenargs).pid
+
+def open_lin_svg(svgexepath, svgfile):
+    """ Open Inkscape on Linux platform """
+    if os.path.isfile("/usr/bin/inkscape"):
+        os.system("%s %s &"%(svgexepath , svgfile))
+    
+def open_svg(svgfile):
+    """ Generic function to open SVG file """
+    if wx.Platform == '__WXMSW__' :
+        try:
+            open_win_svg(get_inkscape_path(), svgfile)
+        except:
+            wx.MessageBox("Inkscape is not found or installed !")
+            return None
+    else:
+        svgexepath = os.path.join("/usr/bin","inkscape")
+        if(os.path.isfile(svgexepath)):
+            open_lin_svg(svgexepath, svgfile)
+        else:
+            wx.MessageBox("Inkscape is not found or installed !")
+            return None
+