-
Notifications
You must be signed in to change notification settings - Fork 0
/
wxmacros.py
79 lines (57 loc) · 2.15 KB
/
wxmacros.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
71
72
73
74
75
76
77
78
79
"""
autoUI by Christian Battista
autoUI is a collection of python modules that are used to create wx apps from classes. autogenerates a user interface which can be used to manipulate class arguments and functions.
This program 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 3 of the License, or (at your option) any later version.
This program 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 program. If not, see <http://www.gnu.org/licenses/>.
"""
import wx
import values
class FloatCtrl(wx.TextCtrl):
"""extension of TextCtrl object to process floating point numbers"""
def __init__(self, parent, value, *args, **kwargs):
wx.TextCtrl.__init__(self, parent, *args, **kwargs)
self.SetFloat(value)
def SetFloat(self, value):
self.SetValue(str(value))
def GetFloat(self):
return float(self.GetValue())
def ClassItems(value):
"""code constructor for a class/instance"""
if str(type(value)) == "<type 'instance'>":
c = value.__class__
i = value
else:
c = value
i = None
items = []
items.append("wx.StaticText(self.parent, -1, str(%s)" % c)
items.append("wx.StaticText(self.parent, -1, str(%s)" % i)
items.append("wx.Button(self.parent, -1, 'Class Edit')")
return items
def ReadClassItems(c, i):
#get the value of the text ctrls of class and instance
c = c.GetValue()
i = i.GetValue()
#evaluate the values (i.e., generate class and instance)
c = eval(c)
i = eval(i)
#if there is an instance, use that, otherwise use the class obj
if i:
return i
else:
return c
def ListItems(the_list):
items = []
for l in the_list:
item = values.ValItem(l)
items.append(item)
items.append("wx.Button(self.parent, -1, 'List Edit')")
return items
def ReadList(items):
values = []
for i in items:
if hasattr(i, "read"):
v = i.read()
values.append(v)
return values