21 # You should have received a copy of the GNU General Public License |
21 # You should have received a copy of the GNU General Public License |
22 # along with this program; if not, write to the Free Software |
22 # along with this program; if not, write to the Free Software |
23 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
23 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
24 |
24 |
25 class button: |
25 class button: |
26 |
26 |
27 def __init__(self, parent, id, args): |
27 def __init__(self, parent, id, args): |
28 self.parent = parent |
28 self.parent = parent |
29 self.id = id |
29 self.id = id |
30 self.back_elt = getSVGElementById(args.back_id) |
30 self.back_elt = getSVGElementById(args.back_id) |
31 self.sele_elt = getSVGElementById(args.sele_id) |
31 self.sele_elt = getSVGElementById(args.sele_id) |
38 self.dragging = False |
38 self.dragging = False |
39 if self.toggle: |
39 if self.toggle: |
40 self.up = not self.state |
40 self.up = not self.state |
41 else: |
41 else: |
42 self.up = True |
42 self.up = True |
43 |
43 |
44 # Add event on each element of the button |
44 # Add event on each element of the button |
45 if self.active: |
45 if self.active: |
46 self.back_elt.addEventListener("mouseup", self, False) |
46 self.back_elt.addEventListener("mouseup", self, False) |
47 self.back_elt.addEventListener("mousedown", self, False) |
47 self.back_elt.addEventListener("mousedown", self, False) |
48 self.back_elt.addEventListener("mouseover", self, False) |
48 self.back_elt.addEventListener("mouseover", self, False) |
49 self.back_elt.addEventListener("mouseout", self, False) |
49 self.back_elt.addEventListener("mouseout", self, False) |
50 |
50 |
51 self.sele_elt.addEventListener("mouseup", self, False) |
51 self.sele_elt.addEventListener("mouseup", self, False) |
52 self.sele_elt.addEventListener("mousedown", self, False) |
52 self.sele_elt.addEventListener("mousedown", self, False) |
53 self.sele_elt.addEventListener("mouseover", self, False) |
53 self.sele_elt.addEventListener("mouseover", self, False) |
54 self.sele_elt.addEventListener("mouseout", self, False) |
54 self.sele_elt.addEventListener("mouseout", self, False) |
55 |
55 |
56 blockSVGElementDrag(self.back_elt) |
56 blockSVGElementDrag(self.back_elt) |
57 blockSVGElementDrag(self.sele_elt) |
57 blockSVGElementDrag(self.sele_elt) |
58 |
58 |
59 self.updateElements() |
59 self.updateElements() |
60 |
60 |
64 self.sele_elt.setAttribute("display", "none") |
64 self.sele_elt.setAttribute("display", "none") |
65 self.back_elt.removeAttribute("display") |
65 self.back_elt.removeAttribute("display") |
66 else: |
66 else: |
67 self.sele_elt.removeAttribute("display") |
67 self.sele_elt.removeAttribute("display") |
68 self.back_elt.setAttribute("display", "none") |
68 self.back_elt.setAttribute("display", "none") |
69 |
69 |
70 def updateValues(self, values): |
70 def updateValues(self, values): |
71 if values.state != self.state: |
71 if values.state != self.state: |
72 self.state = values.state |
72 self.state = values.state |
73 self.up = not self.state |
73 self.up = not self.state |
74 if self.toggle: |
74 if self.toggle: |
78 def handleEvent(self, evt): |
78 def handleEvent(self, evt): |
79 # Quand le bouton de la souris est presse |
79 # Quand le bouton de la souris est presse |
80 if evt.type == "mousedown": |
80 if evt.type == "mousedown": |
81 evt.stopPropagation() |
81 evt.stopPropagation() |
82 setCurrentObject(self) |
82 setCurrentObject(self) |
83 |
83 |
84 self.dragging = True |
84 self.dragging = True |
85 |
85 |
86 if self.toggle: |
86 if self.toggle: |
87 self.up = self.state |
87 self.up = self.state |
88 else: |
88 else: |
89 self.up = False |
89 self.up = False |
90 self.state = True |
90 self.state = True |
91 updateAttr(self.id, 'state', self.state) |
91 updateAttr(self.id, 'state', self.state) |
92 self.updateElements() |
92 self.updateElements() |
93 |
93 |
94 if isCurrentObject(self) and self.dragging: |
94 if isCurrentObject(self) and self.dragging: |
95 # Quand le bouton est survole |
95 # Quand le bouton est survole |
96 if evt.type == "mouseover" and self.toggle: |
96 if evt.type == "mouseover" and self.toggle: |
97 self.up = self.state |
97 self.up = self.state |
98 self.updateElements() |
98 self.updateElements() |
99 |
99 |
100 # Quand le curseur quitte la zone du bouton |
100 # Quand le curseur quitte la zone du bouton |
101 elif evt.type == "mouseout" and self.toggle: |
101 elif evt.type == "mouseout" and self.toggle: |
102 self.up = not self.state |
102 self.up = not self.state |
103 self.updateElements() |
103 self.updateElements() |
104 |
104 |
105 # Quand le bouton de la souris est relache |
105 # Quand le bouton de la souris est relache |
106 elif evt.type == "mouseup": |
106 elif evt.type == "mouseup": |
107 evt.stopPropagation() |
107 evt.stopPropagation() |
108 if self.toggle and self.up == self.state: |
108 if self.toggle and self.up == self.state: |
109 self.state = not self.state |
109 self.state = not self.state |
114 updateAttr(self.id, 'state', self.state) |
114 updateAttr(self.id, 'state', self.state) |
115 self.updateElements() |
115 self.updateElements() |
116 self.dragging = False |
116 self.dragging = False |
117 |
117 |
118 class textControl: |
118 class textControl: |
119 |
119 |
120 def __init__(self, parent, id, args): |
120 def __init__(self, parent, id, args): |
121 self.parent = parent |
121 self.parent = parent |
122 self.id = id |
122 self.id = id |
123 self.back_elt = getSVGElementById(args.back_id) |
123 self.back_elt = getSVGElementById(args.back_id) |
124 if args.text != undefined: |
124 if args.text != undefined: |
125 self.text = args.text |
125 self.text = args.text |
126 else: |
126 else: |
127 self.text = "" |
127 self.text = "" |
128 self.updateElements() |
128 self.updateElements() |
129 |
129 |
130 def updateValues(self, values): |
130 def updateValues(self, values): |
131 if values.text != self.value: |
131 if values.text != self.value: |
132 self.text = values.text |
132 self.text = values.text |
133 updateAttr(self.id, 'text', self.text) |
133 updateAttr(self.id, 'text', self.text) |
134 self.updateElements() |
134 self.updateElements() |
135 |
135 |
136 def updateElements(self): |
136 def updateElements(self): |
137 self.back_elt.firstChild.firstChild.textContent = self.text |
137 self.back_elt.firstChild.firstChild.textContent = self.text |
138 |
138 |
139 def handleEvent(self, evt): |
139 def handleEvent(self, evt): |
140 pass |
140 pass |
141 |
|
142 |
|