svgui/svguilib.py
changeset 1730 64d8f52bc8c8
parent 1511 91538d0c242c
child 1736 7e61baa047f0
equal deleted inserted replaced
1726:d51af006fa6b 1730:64d8f52bc8c8
    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