tuikit/driver_dummy.py
changeset 24 b248ef500557
parent 23 4e72fd2a0e14
child 29 c0cdef06fd16
equal deleted inserted replaced
23:4e72fd2a0e14 24:b248ef500557
     2 '''Dummy driver.
     2 '''Dummy driver.
     3 
     3 
     4 Implements basic driver interface.
     4 Implements basic driver interface.
     5 This is useful for debugging or when writing new driver.
     5 This is useful for debugging or when writing new driver.
     6 
     6 
     7 @author: Radek Brich <radek.brich@devl.cz>
       
     8 
       
     9 '''
     7 '''
    10 
     8 
    11 import logging
     9 import logging
    12 
    10 
    13 from tuikit.common import Size, ClipStack
    11 from tuikit.driver import Driver
    14 
    12 
    15 
    13 
    16 class DriverDummy:
    14 class DriverDummy(Driver):
    17     
    15     
    18     '''Dummy driver class'''
    16     '''Dummy driver class'''
    19     
    17     
    20     def __init__(self):
    18     def __init__(self):
    21         '''Initialize instance attributes'''
    19         '''Initialize instance attributes'''
       
    20         Driver.__init__(self)
    22         self.log = logging.getLogger('tuikit')
    21         self.log = logging.getLogger('tuikit')
    23         self.size = Size()
    22         self.size.w, self.size.h = 80, 25
    24         self.clipstack = ClipStack()
       
    25     
    23     
    26     def start(self, mainfunc):
    24     def start(self, mainfunc):
    27         '''Start driver and run mainfunc.'''
    25         '''Start driver and run mainfunc.'''
    28         self.size.w, self.size.h = 80, 25
       
    29         mainfunc()
    26         mainfunc()
    30 
    27 
    31 
    28 
    32     # colors
    29     ## input ##
       
    30     
       
    31     def getevents(self, timeout=None):
       
    32         '''Process input, return list of events.
       
    33         
       
    34         This dummy implementation just returns 'q' and Escape key presses.
       
    35         
       
    36         '''
       
    37         events = [('keypress', None, 'q'), ('keypress', 'escape', None)]
       
    38         return events
       
    39 
       
    40 
       
    41     ## drawing ##
       
    42     
       
    43     def erase(self):
       
    44         '''Clear screen.'''
       
    45         self.log.info('DummyDriver.erase()')
       
    46 
       
    47     def putch(self, x, y, c):
       
    48         '''Output one unicode character to specified coordinates.'''
       
    49         self.log.info('DummyDriver.putch(x=%r, y=%r, c=%r)', x, y, c)
       
    50 
       
    51     def commit(self):
       
    52         '''Commit changes to the screen.'''
       
    53         self.log.info('DummyDriver.commit()')
       
    54 
       
    55 
       
    56     ## colors ##
    33     
    57     
    34     def setcolor(self, name, desc):
    58     def setcolor(self, name, desc):
    35         '''Define color name.
    59         '''Define color name.
    36         
    60         
    37         name - name of color (e.g. 'normal', 'active')
    61         name - name of color (e.g. 'normal', 'active')
    39         
    63         
    40         '''
    64         '''
    41         self.log.info('DummyDriver.setcolor(name=%r, desc=%r)', name, desc)
    65         self.log.info('DummyDriver.setcolor(name=%r, desc=%r)', name, desc)
    42 
    66 
    43     def pushcolor(self, name):
    67     def pushcolor(self, name):
       
    68         '''Add color on top of stack and use this color for following output.'''
    44         self.log.info('DummyDriver.pushcolor(name=%r)', name)
    69         self.log.info('DummyDriver.pushcolor(name=%r)', name)
    45     
    70     
    46     def popcolor(self):
    71     def popcolor(self):
       
    72         '''Remove color from top of stack and use new top color for following output.'''
    47         self.log.info('DummyDriver.popcolor()')
    73         self.log.info('DummyDriver.popcolor()')
    48 
    74 
    49 
    75 
    50     # drawing
    76     ## cursor ##
    51     
       
    52     def erase(self):
       
    53         '''Clear screen.'''
       
    54         self.log.info('DummyDriver.erase()')
       
    55 
    77 
    56     def puts(self, x, y, s):
    78     def showcursor(self, x, y):
    57         '''Output string to specified coordinates.'''
    79         '''Set cursor to be shown at x, y coordinates.'''
    58         self.log.info('DummyDriver.puts(x=%r, y=%r, s=%r)', x, y, s)
    80         self.log.info('DummyDriver.showcursor(x=%r, y=%r)', x, y)
    59 
    81 
    60     def commit(self):
    82     def hidecursor(self):
    61         '''Commit changes to the screen.'''
    83         '''Hide cursor.'''
    62         self.log.info('DummyDriver.commit()')
    84         self.log.info('DummyDriver.hidecursor()')
    63 
    85 
    64 
       
    65     # input
       
    66     
       
    67     def process_input(self, timeout=None):
       
    68         '''Process input, return list of events.
       
    69         
       
    70         This dummy implementation just returns 'q' and Escape key presses.
       
    71         
       
    72         '''
       
    73         events = [('keypress', None, 'q'), ('keypress', 'escape', None)]
       
    74         return events
       
    75