1 __copyright__ = "Copyright (C) 2013 David Braam - Released under terms of the AGPLv3 License"
4 import wx.lib.scrolledpanel
6 from Cura.util import version
8 class aboutWindow(wx.Frame):
9 def __init__(self, parent):
10 super(aboutWindow, self).__init__(parent, title=_("About"), style = wx.DEFAULT_DIALOG_STYLE)
12 wx.EVT_CLOSE(self, self.OnClose)
14 p2 = wx.lib.scrolledpanel.ScrolledPanel(self,-1, size=(600, 500), style=wx.SIMPLE_BORDER)
15 p2.SetBackgroundColour('#FFFFFF')
16 s2 = wx.BoxSizer(wx.VERTICAL)
19 self.scrolledpanel = p2
22 s = wx.BoxSizer(wx.VERTICAL)
24 s.Add(self.panel, flag=wx.ALL, border=15)
25 s.Add(self.scrolledpanel, flag=wx.EXPAND|wx.ALL, border=5)
26 s = wx.BoxSizer(wx.VERTICAL)
29 title = wx.StaticText(p, -1, 'Cura LulzBot Edition')
30 title.SetFont(wx.Font(18, wx.SWISS, wx.NORMAL, wx.BOLD))
31 s.Add(title, flag=wx.ALIGN_CENTRE|wx.EXPAND|wx.BOTTOM, border=5)
33 version_num = version.getVersion()
34 s.Add(wx.StaticText(p, -1, 'Version {}'.format(version_num)))
36 s.Add(wx.StaticText(p, -1, 'Release notes:'))
37 url = "code.alephobjects.com/w/cura/release-notes/"
38 s.Add(wx.HyperlinkCtrl(p, -1, url, url))
40 s.Add(wx.StaticText(p, -1, 'Source Code:'))
41 url2 = "code.alephobjects.com/diffusion/CURA/"
42 s.Add(wx.HyperlinkCtrl(p, -1, url2, url2))
44 s.Add(wx.StaticText(p, -1, ''))
45 s.Add(wx.StaticText(p, -1, 'End solution for Open Source Fused Filament Fabrication 3D printing.'), flag=wx.TOP, border=5)
46 s.Add(wx.StaticText(p, -1, 'Cura is currently developed and maintained by David Braam and Ultimaker.'), flag=wx.TOP, border=5)
47 s.Add(wx.StaticText(p, -1, 'Cura LulzBot Edition has been modified and maintained by Aleph Objects, Inc.'))
48 s.Add(wx.StaticText(p, -1, 'for use with LulzBot 3D printers.'))
50 s2.Add(wx.StaticText(p2, -1, 'Cura is built with the following components:'), flag=wx.TOP, border=10)
51 self.addComponent('Cura', 'Graphical user interface', 'AGPLv3', 'https://github.com/daid/Cura')
52 self.addComponent('CuraEngine', 'GCode Generator', 'AGPLv3', 'https://github.com/Ultimaker/CuraEngine')
53 self.addComponent('Clipper', 'Polygon clipping library', 'Boost', 'http://www.angusj.com/delphi/clipper.php')
55 self.addComponent('Python 2.7', 'Framework', 'Python', 'http://python.org/')
56 self.addComponent('wxPython', 'GUI Framework', 'wxWindows', 'http://www.wxpython.org/')
57 self.addComponent('PyOpenGL', '3D Rendering Framework', 'BSD', 'http://pyopengl.sourceforge.net/')
58 self.addComponent('PySerial', 'Serial communication library', 'Python license', 'http://pyserial.sourceforge.net/')
59 self.addComponent('NumPy', 'Support library for faster math', 'BSD', 'http://www.numpy.org/')
60 if platform.system() == "Windows":
61 self.addComponent('VideoCapture', 'Library for WebCam capture on windows', 'LGPLv2.1', 'http://videocapture.sourceforge.net/')
62 #self.addComponent('ffmpeg', 'Support for making timelaps video files', 'GPL', 'http://www.ffmpeg.org/')
63 self.addComponent('comtypes', 'Library to help with windows taskbar features on Windows 7', 'MIT', 'http://starship.python.net/crew/theller/comtypes/')
64 self.addComponent('EjectMedia', 'Utility to safe-remove SD cards', 'Freeware', 'http://www.uwe-sieber.de/english.html')
65 self.addComponent('Pymclevel', 'Python library for reading Minecraft levels.', 'ISC', 'https://github.com/mcedit/pymclevel')
67 s2.Add(wx.StaticText(p2, -1, ""))
68 s2.Add(wx.StaticText(p2, -1, "Cura utilizes graphics from:"))
69 self.addComponent('3d-printer', 'by Toke Frello', 'CC BY 3.0 US', 'https://thenounproject.com/term/3d-printer/170216/')
70 self.addComponent('Check Mark', 'by Stefan Parnarov', 'CC BY 3.0', 'https://thenounproject.com/term/check-mark/63794/')
72 s2.Add(wx.StaticText(p2, -1, "Copyright (C) 2014-2016 Aleph Objects, Inc. - Released under terms of the AGPLv3 License"), flag=wx.TOP, border=10)
73 s2.Add(wx.StaticText(p2, -1, "Copyright (C) 2013 David Braam - Released under terms of the AGPLv3 License"))
74 #Translations done by:
75 #Dutch: Charlotte Jansen
76 #German: Gregor Luetolf, Lars Potter
77 #Polish: Piotr Paczynski
78 #French: Jeremie Francois
82 def addComponent(self, name, description, license, url):
83 p = self.scrolledpanel
85 s.Add(wx.StaticText(p, -1, '* %s - %s' % (name, description)), flag=wx.TOP, border=5)
86 s.Add(wx.StaticText(p, -1, ' License: %s - Website: %s' % (license, url)))