summaryrefslogtreecommitdiff
path: root/asciifarm/client/display/window.py
diff options
context:
space:
mode:
Diffstat (limited to 'asciifarm/client/display/window.py')
-rw-r--r--asciifarm/client/display/window.py74
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)
-
-
-