about summary refs log tree commit diff stats
path: root/tangle/Readme
blob: 6cfbfd7e2fd413d4a3e52c0a547572b0b59f052b (plain) (blame)
1
Tool to convert Mu's layers into compilable form. See https://en.wikipedia.org/wiki/Literate_programming.
ther */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
import curses, debug
class UI():
	def __init__(self, env):
		self.env = env

		self.widgets = []
		self.win = curses.initscr()
		self.win.leaveok(1)
		curses.noecho()
		curses.halfdelay(3)

		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()
		curses.echo()
		curses.endwin()

	def draw(self):
		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.win.getch()
		curses.flushinp()
		return key