1 |
1 |
2 class button: |
2 class button: |
3 |
3 |
4 def __init__(self, parent, back_id, sele_id, toggle, state, active): |
4 def __init__(self, parent, id, args): |
5 self.parent = parent |
5 self.parent = parent |
6 self.back_elt = getSVGElementById(back_id) |
6 self.id = id |
7 self.sele_elt = getSVGElementById(sele_id) |
7 self.back_elt = getSVGElementById(args.back_id) |
8 self.toggle = toggle |
8 self.sele_elt = getSVGElementById(args.sele_id) |
9 self.state = state |
9 self.toggle = args.toggle |
10 self.active = active |
10 self.active = args.active |
|
11 self.state = False |
11 self.dragging = False |
12 self.dragging = False |
12 if toggle: |
13 if toggle: |
13 self.up = not state |
14 self.up = not state |
14 else: |
15 else: |
15 self.up = True |
16 self.up = True |
38 self.back_elt.setAttribute("visibility", "visible") |
39 self.back_elt.setAttribute("visibility", "visible") |
39 else: |
40 else: |
40 self.sele_elt.setAttribute("visibility", "visible") |
41 self.sele_elt.setAttribute("visibility", "visible") |
41 self.back_elt.setAttribute("visibility", "hidden") |
42 self.back_elt.setAttribute("visibility", "hidden") |
42 |
43 |
43 def updateState(self, value): |
44 def updateValues(self, values): |
44 self.up = not value |
45 if values.state != self.state: |
45 self.updateElements() |
46 self.state = values.state |
|
47 self.up = not self.state |
|
48 self.updateElements() |
46 |
49 |
47 def handleEvent(self, evt): |
50 def handleEvent(self, evt): |
48 # Quand le bouton de la souris est presse |
51 # Quand le bouton de la souris est presse |
49 if evt.type == "mousedown": |
52 if evt.type == "mousedown": |
50 evt.stopPropagation() |
53 evt.stopPropagation() |
55 if self.toggle: |
58 if self.toggle: |
56 self.up = self.state |
59 self.up = self.state |
57 else: |
60 else: |
58 self.up = False |
61 self.up = False |
59 self.state = True |
62 self.state = True |
60 updateAttr(self.back_elt.id, 'state', self.state) |
63 updateAttr(self.id, 'state', self.state) |
61 self.updateElements() |
64 self.updateElements() |
62 |
65 |
63 if isCurrentObject(self) and self.dragging: |
66 if isCurrentObject(self) and self.dragging: |
64 # Quand le bouton est survole |
67 # Quand le bouton est survole |
65 if evt.type == "mouseover" and self.toggle: |
68 if evt.type == "mouseover" and self.toggle: |
74 # Quand le bouton de la souris est relache |
77 # Quand le bouton de la souris est relache |
75 elif evt.type == "mouseup": |
78 elif evt.type == "mouseup": |
76 evt.stopPropagation() |
79 evt.stopPropagation() |
77 if self.toggle and self.up == self.state: |
80 if self.toggle and self.up == self.state: |
78 self.state = not self.state |
81 self.state = not self.state |
79 updateAttr(self.back_elt.id, 'state', self.state) |
82 updateAttr(self.id, 'state', self.state) |
80 elif not self.toggle: |
83 elif not self.toggle: |
81 self.up = True |
84 self.up = True |
82 self.state = False |
85 self.state = False |
83 updateAttr(self.back_elt.id, 'state', self.state) |
86 updateAttr(self.id, 'state', self.state) |
84 self.updateElements() |
87 self.updateElements() |
85 self.dragging = False |
88 self.dragging = False |
86 |
89 |
87 class textControl: |
90 class textControl: |
88 |
91 |
89 def __init__(self, parent, back_id, state): |
92 def __init__(self, parent, id, args): |
90 self.parent = parent |
93 self.parent = parent |
91 self.back_elt = getSVGElementById(back_id) |
94 self.id = id |
92 self.state = state |
95 self.back_elt = getSVGElementById(args.back_id) |
93 self.setValue(self.state) |
96 self.value = "" |
|
97 self.updateElements() |
|
98 |
|
99 def updateValues(self, values): |
|
100 if values.text != self.value: |
|
101 self.value = values.text |
|
102 self.updateElements() |
|
103 |
|
104 def updateElements(self): |
|
105 self.back_elt.firstChild.firstChild.textContent = self.value |
94 |
106 |
95 def handleEvent(self, evt): |
107 def handleEvent(self, evt): |
96 pass |
108 pass |
97 |
109 |
98 def getValue(self): |
|
99 return self.back_elt.firstChild.firstChild.textContent |
|
100 |
|
101 def setValue(self, value): |
|
102 self.back_elt.firstChild.firstChild.textContent = value |
|
103 |
|
104 def updateState(self, value): |
|
105 self.setValue(value) |
|
106 |
|