-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathabout.py
71 lines (47 loc) · 2.25 KB
/
about.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#!/usr/bin/python2
import wx
import version
class InfoTab(wx.ScrolledWindow):
def __init__(self, parent):
super(InfoTab, self).__init__(parent)
self.SetScrollRate(5,5)
vbox = wx.BoxSizer(wx.VERTICAL)
self.SetSizer(vbox)
name = wx.StaticText(self, label=version.fancy_string)
description = wx.StaticText(self, label=version.description)
url = wx.HyperlinkCtrl(self, wx.ID_ANY, label=version.url, url=version.url)
copyright = wx.StaticText(self, label=version.copyright)
default_fontsize = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT).GetPointSize()
title_font = wx.Font(default_fontsize+2, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD)
copyright_font = wx.Font(default_fontsize, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_ITALIC, wx.FONTWEIGHT_NORMAL)
name.SetFont(title_font)
copyright.SetFont(copyright_font)
description.Wrap(400)
vbox.Add(name, proportion=0, flag=wx.ALIGN_CENTER|wx.TOP, border=10)
vbox.Add(description, proportion=0, flag=wx.ALIGN_CENTER|wx.TOP|wx.BOTTOM, border=10)
vbox.Add(url, proportion=0, flag=wx.ALIGN_CENTER|wx.TOP, border=10)
vbox.Add(copyright, proportion=0, flag=wx.ALIGN_CENTER|wx.TOP|wx.BOTTOM, border=5)
class LicenseTab(wx.ScrolledWindow):
def __init__(self, parent):
super(LicenseTab, self).__init__(parent)
self.SetScrollRate(5,5)
vbox = wx.BoxSizer(wx.VERTICAL)
text = wx.StaticText(self, label=version.getLicenseBody())
self.SetSizer(vbox)
vbox.Add(text, proportion=0, flag=wx.ALIGN_CENTER|wx.TOP|wx.BOTTOM|wx.LEFT|wx.RIGHT, border=10)
class AboutWindow(wx.Frame):
def __init__(self, *args, **kwargs):
super(AboutWindow, self).__init__(*args, **kwargs)
self.Bind(wx.EVT_CLOSE, self.OnClose, self)
self.SetTitle("About %s" % (version.fancy_name))
tabs = wx.Notebook(self)
info_tab = InfoTab(tabs)
tabs.AddPage(info_tab, 'Info')
license_tab = LicenseTab(tabs)
tabs.AddPage(license_tab, 'License')
def OnClose(self, e):
if e.CanVeto():
self.Show(False)
e.Veto()
else:
self.Destroy()