ab9861521059637ac34cd30fac240a3cc34a4b0e
[audiocontrol.git] / Logger.py
1 import textwrap, time
2
3 logger = None
4
5 def init(viewmanager, x, y, dx, dy):
6     global logger
7     logger = Logger(viewmanager.win(), x, y, dx, dy)
8
9 class Logger(object):
10
11     def __init__(self, win, x, y, dx, dy):
12         self._win = win.derwin(dy,dx,y,x)
13         self._win.border()
14         self._win.addstr(0,2,' Log ')
15         self._win.nooutrefresh()
16         self._textwin = self._win.derwin(dy-2,dx-3,1,2)
17         self._textwin.scrollok(1)
18         self._wrapper = textwrap.TextWrapper(width = dx-4,
19                                              subsequent_indent = ' '*4)
20         
21     def log(self, src, msg):
22         lines = self._wrapper.wrap(
23             '[%s] (%s) %s' %  (time.strftime("%H:%M:%S",time.localtime()),src, msg))
24         self._textwin.scroll(len(lines))
25         for i in range(len(lines)):
26             self._textwin.addstr(self._textwin.getmaxyx()[0]-len(lines)+i,0,
27                                  lines[i])
28         self._textwin.nooutrefresh()
29
30 def log(src,msg):
31     if logger:
32         logger.log(src,msg)