Use PREFIX in install rule.
[SysBars.git] / choices.py
blobeab2fdcd38cb69ab52ae903735b3c23d34ad302d
1 import ConfigParser
2 import os.path
4 import gtk as g
6 import compat
8 def colour_to_string(c):
9 if hasattr(c, "to_string"):
10 return c.to_string()
11 else:
12 return "#%04x%04x%04x" % (c.red, c.green, c.blue)
15 class Settings(ConfigParser.ConfigParser):
16 def __init__(self):
17 ConfigParser.ConfigParser.__init__(self)
18 f = compat.load_first_config('realh.co.uk', 'SysBars', 'options')
19 if f:
20 self.read(f)
21 #if not self.has_section('DEFAULT'):
22 # self.add_section('DEFAULT')
24 def save(self):
25 f = os.path.join(compat.save_config_path('realh.co.uk', 'SysBars'),
26 'options')
27 fp = open(f, 'w')
28 self.write(fp)
29 fp.close()
31 def set(self, section, option, value):
32 ConfigParser.ConfigParser.set(self, section, option, str(value))
33 self.save()
35 def set_bar(self, bar, option, value):
36 """ bar here is a number """
37 sec = 'bar%d' % bar
38 if not self.has_section(sec):
39 self.add_section(sec)
40 self.set(sec, option, value)
42 def get_bar(self, bar, option, value = None):
43 """ bar here is a number; value is default """
44 try:
45 return self.get('bar%d' % bar, option)
46 except:
47 return value
49 def get_bar_int(self, bar, option, value):
50 """ bar here is a number; value is default """
51 try:
52 return self.getint('bar%d' % bar, option)
53 except:
54 return value
56 def get_bar_float(self, bar, option, value):
57 """ bar here is a number; value is default """
58 try:
59 return self.getfloat('bar%d' % bar, option)
60 except:
61 return value
63 def get_label_font(self):
64 try:
65 return self.get('DEFAULT', 'font')
66 except:
67 return 'Sans 8'
69 def set_label_font(self, font):
70 self.set('DEFAULT', 'font', font)
72 def get_label_colour(self):
73 try:
74 cname = self.get('DEFAULT', 'label_colour')
75 return g.gdk.color_parse(cname)
76 except:
77 return g.gdk.Color()
79 def set_label_colour(self, gcolour):
80 self.set('DEFAULT', 'label_colour', colour_to_string(gcolour))
82 def get_overlap(self):
83 try:
84 return self.getboolean('DEFAULT', 'overlap')
85 except:
86 return False
88 def set_overlap(self, overlap):
89 self.set('DEFAULT', 'overlap', str(overlap))
91 def get_num_bars(self):
92 try:
93 return self.getint('DEFAULT', 'nbars')
94 except:
95 return 1
97 def set_num_bars(self, value):
98 self.set('DEFAULT', 'nbars', str(value))
100 def get_bar_type(self, bar):
101 return self.get_bar(bar, 'type', 'cpu')
103 def set_bar_type(self, bar, value):
104 self.set_bar(bar, 'type', str(value))
106 def get_bar_label(self, bar):
107 return self.get_bar(bar, 'label', _("C"))
109 def set_bar_label(self, bar, value):
110 self.set_bar(bar, 'label', value)
112 def get_bar_colour(self, bar):
113 try:
114 return g.gdk.color_parse(self.get_bar(bar, 'colour', '#206020'))
115 except:
116 return g.gdk.Color(0x4040, 0x4040, 0x4040)
118 def set_bar_colour(self, bar, gcolour):
119 self.set_bar(bar, 'colour', colour_to_string(gcolour))
121 def get_bar_width(self, bar):
122 return self.get_bar_int(bar, 'width', 16)
124 def set_bar_width(self, bar, value):
125 self.set_bar(bar, 'width', str(value))
127 def get_bar_min_period(self, bar):
128 return self.get_bar_float(bar, 'min_period', 0.2)
130 def set_bar_min_period(self, bar, value):
131 self.set_bar(bar, 'min_period', value)
133 def get_bar_max_period(self, bar):
134 return self.get_bar_float(bar, 'max_period', 1)
136 def set_bar_max_period(self, bar, value):
137 self.set_bar(bar, 'max_period', value)
139 def get_throughput(self, device, default = 0):
140 try:
141 return self.getint('throughput', device)
142 except:
143 return default
145 def set_throughput(self, device, value):
146 if not self.has_section('throughput'):
147 self.add_section('throughput')
148 self.set('throughput', device, value)
152 settings = Settings()