Use an enum for border colors

This commit is contained in:
Kovid Goyal 2018-07-05 11:52:32 +05:30
parent 619c3a0025
commit 00092db6ad
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -9,6 +9,14 @@ from .fast_data_types import (
BORDERS_PROGRAM, add_borders_rect, compile_program, init_borders_program BORDERS_PROGRAM, add_borders_rect, compile_program, init_borders_program
) )
from .utils import load_shaders from .utils import load_shaders
try:
from enum import IntFlag
except Exception:
from enum import IntEnum as IntFlag
class BorderColor(IntFlag):
default_bg, active, inactive, window_bg, bell = ((1 << i) for i in range(5))
def vertical_edge(os_window_id, tab_id, color, width, top, bottom, left): def vertical_edge(os_window_id, tab_id, color, width, top, bottom, left):
@ -52,9 +60,9 @@ class Borders:
extra_blank_rects, extra_blank_rects,
draw_window_borders=True draw_window_borders=True
): ):
add_borders_rect(self.os_window_id, self.tab_id, 0, 0, 0, 0, 1) add_borders_rect(self.os_window_id, self.tab_id, 0, 0, 0, 0, BorderColor.default_bg)
for br in chain(current_layout.blank_rects, extra_blank_rects): for br in chain(current_layout.blank_rects, extra_blank_rects):
add_borders_rect(self.os_window_id, self.tab_id, *br, 1) add_borders_rect(self.os_window_id, self.tab_id, *br, BorderColor.default_bg)
bw, pw = self.border_width, self.padding_width bw, pw = self.border_width, self.padding_width
fw = bw + pw fw = bw + pw
@ -63,7 +71,7 @@ class Borders:
g = w.geometry g = w.geometry
if bw > 0 and draw_window_borders: if bw > 0 and draw_window_borders:
# Draw the border rectangles # Draw the border rectangles
color = 2 if w is active_window else (16 if w.needs_attention else 4) color = BorderColor.active if w is active_window else (BorderColor.bell if w.needs_attention else BorderColor.inactive)
border( border(
self.os_window_id, self.tab_id, self.os_window_id, self.tab_id,
color, bw, g.left - fw, g.top - fw, g.right + fw, color, bw, g.left - fw, g.top - fw, g.right + fw,
@ -74,6 +82,6 @@ class Borders:
color = w.screen.color_profile.default_bg color = w.screen.color_profile.default_bg
border( border(
self.os_window_id, self.tab_id, self.os_window_id, self.tab_id,
(color << 8) | 8, pw, g.left - pw, g.top - pw, g.right + pw, (color << 8) | BorderColor.window_bg, pw, g.left - pw, g.top - pw, g.right + pw,
g.bottom + pw g.bottom + pw
) )