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, write to the Free Software 
16  # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
17  #  
18  """ 
19  Boolean options, these classes will display a boolean 
20  Checkbox as required and control the formating of data. 
21  """ 
22   
23  import gtk 
24   
25  from screenlets.options import _ 
26  from base import Option 
27   
28 -class BoolOption(Option):
29 """An Option for boolean values."""
30 - def on_import(self, strvalue):
31 """When a boolean is imported from the config.""" 32 return strvalue.lower() == "true"
33
34 - def on_export(self, value):
35 """When a boolean is exported to the config.""" 36 return str(value)
37
38 - def generate_widget(self, value):
39 """Generate a checkbox for a boolean option.""" 40 if not self.widget: 41 self.widget = gtk.CheckButton() 42 self.set_value(value) 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