summary refs log tree commit diff stats
path: root/ranger/gui/colorscheme.py
blob: ff3f92433e7135bff50158b6c92258cb9a645412 (plain) (blame)
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
CONTEXT_KEYS = ['reset', 'wdisplay', 'wstatusbar', 'wtitlebar', 'wconsole', 'directory', 'file', 'maindisplay', 'executable', 'media', 'link', 'broken', 'selected', 'empty']

class ColorSchemeContext():
	pass

class ColorScheme():
	def __init__(self):
		self.cache = {}

	def get(self, *keys):
		try:
			return self.cache[keys]

		except KeyError:
			context = ColorSchemeContext()

			for key in CONTEXT_KEYS:
				context.__dict__[key] = (key in keys)

			color = self.use(context)
			self.cache[keys] = color
			return color

	def get_attr(self, *keys):
		from ranger.gui.color import get_color
		import curses

		fg, bg, attr = self.get(*keys)
		return attr | curses.color_pair(get_color(fg, bg))


	def use(self, context):
		return -1, -1, 0