summary refs log tree commit diff stats
path: root/code/ui.py
diff options
context:
space:
mode:
Diffstat (limited to 'code/ui.py')
-rw-r--r--code/ui.py57
1 files changed, 31 insertions, 26 deletions
diff --git a/code/ui.py b/code/ui.py
index 3994d7ce..d9c1de4e 100644
--- a/code/ui.py
+++ b/code/ui.py
@@ -1,26 +1,28 @@
 import curses, debug
 class UI():
-	def __init__(self, options):
-		self.scr = curses.initscr()
-		self.scr.leaveok(1)
+	def __init__(self, env):
+		self.env = env
+
+		self.widgets = []
+		self.win = curses.initscr()
+		self.win.leaveok(1)
 		curses.noecho()
 		curses.halfdelay(3)
 
-		self.options = options
-		self.directories = None
-		self.pwd = None
-		self.cf = None
-		self.termsize = None
-		self.rows = 0
-		self.cols = 0
-
-	def feed(self, directories, pwd, cf, termsize):
-		self.directories = directories
-		self.pwd = pwd
-		self.cf = cf
-		self.termsize = termsize
-		self.cols = termsize.x
-		self.rows = termsize.y
+		self.setup()
+		self.resize()
+
+	def setup(self):
+		pass
+
+	def resize(self):
+		self.env.termsize = self.win.getmaxyx()
+
+	def add_widget(self, widg):
+		self.widgets.append(widg)
+
+	def feed_env(self, env):
+		self.env = env
 
 	def exit(self):
 		curses.nocbreak()
@@ -28,16 +30,19 @@ class UI():
 		curses.endwin()
 
 	def draw(self):
-		import time
-		self.scr.erase()
-		for i in range(1, len(self.pwd)):
-			f = self.pwd.files[i]
-			self.scr.addstr(i, 0, f.path)
-			if f.infostring: self.scr.addstr(i, 50, f.infostring)
-		self.scr.refresh()
+		self.win.erase()
+		for widg in self.widgets:
+			widg.feed_env(self.env)
+			widg.draw()
+		self.win.refresh()
+
+#		for i in range(1, len(self.env.pwd)):
+#			f = self.env.pwd.files[i]
+#			self.win.addstr(i, 0, f.path)
+#			if f.infostring: self.win.addstr(i, 50, f.infostring)
 
 	def get_next_key(self):
-		key = self.scr.getch()
+		key = self.win.getch()
 		curses.flushinp()
 		return key
 
7689a58831328e55a3a42ff32e703027190a6'>53a7689a ^
d95ceeb3 ^

1814dcdd ^
b1375328 ^



c182f3ec ^
b1375328 ^


41fe8c22 ^
b1375328 ^





68ed20f1 ^





b1375328 ^


e94b604b ^
e0dfe483 ^
b1375328 ^


e0dfe483 ^

d944e825 ^


9d782fa6 ^
1bc69418 ^




a308f5e4 ^

9d782fa6 ^
7bc160c2 ^
1bc69418 ^




b68d2ce1 ^

1bc69418 ^

d169312a ^
53a7689a ^
d169312a ^
7f956aa4 ^


62cbad1c ^
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94