Package screenlets :: Package options :: Module boolean_option
[hide private]
[frames] | no frames]

Source Code for Module screenlets.options.boolean_option

 1  #  
 2  # Copyright (C) 2009 Martin Owens (DoctorMO) <doctormo@gmail.com> 
 3  # 
 4  # This program is free software: you can redistribute it and/or modify 
 5  # it under the terms of the GNU General Public License as published by 
 6  # the Free Software Foundation, either version 3 of the License, or 
 7  # (at your option) any later version. 
 8  #  
 9  # This program is distributed in the hope that it will be useful, 
10  # but WITHOUT ANY WARRANTY; without even the implied warranty of 
11  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
12  # GNU General Public License for more details. 
13  #  
14  # You should have received a copy of the GNU General Public License 
15  # along with this program.  If not, see <http://www.gnu.org/licenses/>. 
16  #  
17  """ 
18  Boolean options, these classes will display a boolean 
19  Checkbox as required and control the formating of data. 
20  """ 
21   
22  import gtk 
23   
24  from screenlets.options import _ 
25  from base import Option 
26   
27 -class BoolOption(Option):
28 """An Option for boolean values."""
29 - def on_import(self, strvalue):
30 """When a boolean is imported from the config.""" 31 return strvalue.lower() == "true"
32
33 - def on_export(self, value):
34 """When a boolean is exported to the config.""" 35 return str(value)
36
37 - def generate_widget(self, value):
38 """Generate a checkbox for a boolean option.""" 39 if not self.widget: 40 self.widget = gtk.CheckButton() 41 self.set_value(value) 42 if self.realtime: 43 self.widget.connect("toggled", self.has_changed) 44 return self.widget
45
46 - def set_value(self, value):
47 """Set the true/false value to the checkbox widget""" 48 self.value = value 49 self.widget.set_active(self.value)
50
51 - def has_changed(self, widget):
52 """Executed when the widget event kicks off.""" 53 self.set_value( self.widget.get_active() ) 54 super(BoolOption, self).has_changed()
55