diff -r 46d7d2ce84d2 -r 5c0f34a9ab00 plugins/python/modules/svgui/svguilib.py --- a/plugins/python/modules/svgui/svguilib.py Thu Aug 13 11:48:55 2009 +0200 +++ b/plugins/python/modules/svgui/svguilib.py Fri Aug 14 16:26:19 2009 +0200 @@ -1,13 +1,14 @@ class button: - def __init__(self, parent, back_id, sele_id, toggle, state, active): + def __init__(self, parent, id, args): self.parent = parent - self.back_elt = getSVGElementById(back_id) - self.sele_elt = getSVGElementById(sele_id) - self.toggle = toggle - self.state = state - self.active = active + self.id = id + self.back_elt = getSVGElementById(args.back_id) + self.sele_elt = getSVGElementById(args.sele_id) + self.toggle = args.toggle + self.active = args.active + self.state = False self.dragging = False if toggle: self.up = not state @@ -40,9 +41,11 @@ self.sele_elt.setAttribute("visibility", "visible") self.back_elt.setAttribute("visibility", "hidden") - def updateState(self, value): - self.up = not value - self.updateElements() + def updateValues(self, values): + if values.state != self.state: + self.state = values.state + self.up = not self.state + self.updateElements() def handleEvent(self, evt): # Quand le bouton de la souris est presse @@ -57,7 +60,7 @@ else: self.up = False self.state = True - updateAttr(self.back_elt.id, 'state', self.state) + updateAttr(self.id, 'state', self.state) self.updateElements() if isCurrentObject(self) and self.dragging: @@ -76,31 +79,31 @@ evt.stopPropagation() if self.toggle and self.up == self.state: self.state = not self.state - updateAttr(self.back_elt.id, 'state', self.state) + updateAttr(self.id, 'state', self.state) elif not self.toggle: self.up = True self.state = False - updateAttr(self.back_elt.id, 'state', self.state) + updateAttr(self.id, 'state', self.state) self.updateElements() self.dragging = False class textControl: - def __init__(self, parent, back_id, state): + def __init__(self, parent, id, args): self.parent = parent - self.back_elt = getSVGElementById(back_id) - self.state = state - self.setValue(self.state) + self.id = id + self.back_elt = getSVGElementById(args.back_id) + self.value = "" + self.updateElements() + + def updateValues(self, values): + if values.text != self.value: + self.value = values.text + self.updateElements() + + def updateElements(self): + self.back_elt.firstChild.firstChild.textContent = self.value def handleEvent(self, evt): pass - - def getValue(self): - return self.back_elt.firstChild.firstChild.textContent - - def setValue(self, value): - self.back_elt.firstChild.firstChild.textContent = value - - def updateState(self, value): - self.setValue(value) \ No newline at end of file