diff options
Diffstat (limited to 'asciifarm/client/display/window.py')
| -rw-r--r-- | asciifarm/client/display/window.py | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/asciifarm/client/display/window.py b/asciifarm/client/display/window.py deleted file mode 100644 index d5c3945..0000000 --- a/asciifarm/client/display/window.py +++ /dev/null @@ -1,74 +0,0 @@ - -import curses - -class Window: - """ Small wrapper around curses windows """ - - def __init__(self, win, colours=None): - - self.win = win - self.colours = colours - - def getSize(self): - if not self.win: - return (0, 0) - height, width = self.win.getmaxyx() - return (width, height) - - def getPos(self): - if not self.win: - return (0, 0) - y, x = self.win.getparyx() - return (x, y) - - def addLine(self, pos, string, colour=(0,0)): - """Draw a string that does not contain newlines or characters with larger width - - long lines are cropped to fit in the window""" - - if not self.win: - return - x, y = pos - width, height = self.getSize() - string = string[:width-x] - drawLast = None - if self.colours: - self._addstr(y, x, string, self.colours.get(*colour)) - else: - self._addstr(y, x, string) - - - def _addstr(self, y, x, string, *args): - if not self.win: - return - width, height = self.getSize() - if y == height-1 and x+len(string) == width: - if len(string) > 1: - self.win.addstr(y, x, string[:-1], *args) - try: - self.win.addstr(height-1, width-1, string[-1], *args) - except curses.error: - # ncurses has a weird problem: - # it always raises an error when drawing to the last character in the window - # it draws first and then raises the error - # therefore to draw in the last place of the window the last character needs to be ingored - # other solutions might be possible, but are more hacky - pass - else: - self.win.addstr(y, x, string, *args) - - def erase(self): - if self.win: - self.win.erase() - - def noutrefresh(self): - if self.win: - self.win.noutrefresh() - - def setAttr(self, pos, attr, num=1): - if self.win: - x, y = pos - self.win.chgat(y, x, num, attr) - - - |
