plugins/python/modules/svgui/svguilib.py
changeset 381 5c0f34a9ab00
parent 371 b7cb57a2da08
child 389 bde723abfdfc
--- 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