plugins/python/modules/svgui/svguilib.py
changeset 381 5c0f34a9ab00
parent 371 b7cb57a2da08
child 389 bde723abfdfc
equal deleted inserted replaced
380:46d7d2ce84d2 381:5c0f34a9ab00
     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