about summary refs log tree commit diff stats
path: root/html/409float.mu.html
Commit message (Expand)AuthorAgeFilesLines
* 6958Kartik Agaram2020-10-051-0/+78
='n30' href='#n30'>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
from os import devnull
null = open(devnull, 'a')

class FM():
	def __init__(self, environment):
		self.env = environment

	def feed(self, path, ui):
		self.ui = ui
		self.env.path = path
		self.env.enter_dir(path)

	def run(self):
		import time
		while 1:
			try:
				self.ui.draw()
				key = self.ui.get_next_key()
				self.ui.press(key, self)
			except KeyboardInterrupt:
				self.env.key_clear()
				time.sleep(0.2)
			except:
				raise

	def resize(self):
		self.ui.resize()

	def exit(self):
		raise SystemExit()

	def enter_dir(self, path):
		self.env.enter_dir(path)

	def move_left(self):
		self.env.enter_dir('..')

	def move_right(self):
		try:
			path = self.env.cf.path
			if not self.env.enter_dir(path):
				self.execute_file(path)
		except AttributeError:
			pass

	def execute_file(self, path):
		from subprocess import Popen
		Popen(('mplayer', '-fs', path), stdout = null, stderr = null)

	def move_pointer(self, relative = 0, absolute = None):
		self.env.cf = self.env.pwd.move_pointer(relative, absolute)

	def move_pointer_by_pages(self, relative = 0):
		self.env.cf = self.env.pwd.move_pointer(
				relative = int(relative * self.env.termsize[0]))

	def redraw(self):
		self.ui.redraw()

	def reset(self):
		old_path = self.env.pwd.path
		self.env.directories = {}
		self.enter_dir(old_path)

	def toggle_boolean_option(self, string):
		if isinstance(self.env.opt[string], bool):
			self.env.opt[string] ^= True