Commit before breaking everything
[matches/honours.git] / research / transmission_spectroscopy / simulator / pgu-0.18 / build / lib / pgu / gui / group.py
1 """
2 """
3 from .const import *
4 from . import widget
5
6 class Group(widget.Widget):
7     """An object for grouping together Form elements.
8     
9     When the value changes, an gui.CHANGE event is sent. Although note, 
10     that when the value is a list, it may have to be sent by hand via 
11     g.send(gui.CHANGE).
12
13     """
14
15     _value = None
16     widgets = None
17     
18     def __init__(self,name=None,value=None):
19         """Create Group instance.
20
21         Arguments:
22         name -- name as used in the Form
23         value -- values that are currently selected in the group
24     
25         """
26         widget.Widget.__init__(self,name=name,value=value)
27         self.widgets = []
28     
29     def add(self,w):
30         """Add a widget to this group."""
31         self.widgets.append(w)
32
33     @property
34     def value(self):
35         return self._value
36
37     @value.setter
38     def value(self, val):
39         oldval = self._value
40         self._value = val
41         if (oldval != val):
42             self._change()
43     
44     def _change(self):
45         self.send(CHANGE)
46         if (self.widgets):
47             for w in self.widgets:
48                 w.repaint()
49

UCC git Repository :: git.ucc.asn.au