Ensure legends colored properly in dark mode
This commit is contained in:
parent
f692b2061c
commit
d357734996
2 changed files with 38 additions and 10 deletions
|
@ -84,7 +84,7 @@ args = argparser.parse_args()
|
||||||
config = Config.load()
|
config = Config.load()
|
||||||
db = Database.from_config(config)
|
db = Database.from_config(config)
|
||||||
|
|
||||||
conus = SPCOutlookMap()
|
conus = SPCOutlookMap(args.dark)
|
||||||
|
|
||||||
if args.file is None:
|
if args.file is None:
|
||||||
outlook = SPCOutlook.for_timestamp(db, args.valid, args.day)
|
outlook = SPCOutlook.for_timestamp(db, args.valid, args.day)
|
||||||
|
|
|
@ -647,15 +647,23 @@ class SPCOutlookLegend():
|
||||||
|
|
||||||
return self.width, self.height
|
return self.width, self.height
|
||||||
|
|
||||||
def draw_item(self, cr: cairo.Context, key: str, x: float, y: float):
|
def draw_item(self,
|
||||||
|
cr: cairo.Context,
|
||||||
|
key: str,
|
||||||
|
x: float,
|
||||||
|
y: float,
|
||||||
|
dark: bool=False):
|
||||||
cr.save()
|
cr.save()
|
||||||
|
|
||||||
cr.set_source_rgb(*self.colors[key])
|
cr.set_source_rgb(*self.colors[key])
|
||||||
cr.rectangle(x, y, self.COLOR_WIDTH, self.COLOR_HEIGHT)
|
cr.rectangle(x, y, self.COLOR_WIDTH, self.COLOR_HEIGHT)
|
||||||
cr.fill()
|
cr.fill()
|
||||||
|
|
||||||
|
color = (1, 1, 1) if dark else (0, 0, 0)
|
||||||
|
|
||||||
|
cr.set_source_rgb(*color)
|
||||||
|
|
||||||
cr.set_line_width(1)
|
cr.set_line_width(1)
|
||||||
cr.set_source_rgb(0, 0, 0)
|
|
||||||
cr.rectangle(x, y, self.COLOR_WIDTH, self.COLOR_HEIGHT)
|
cr.rectangle(x, y, self.COLOR_WIDTH, self.COLOR_HEIGHT)
|
||||||
cr.stroke()
|
cr.stroke()
|
||||||
|
|
||||||
|
@ -666,11 +674,12 @@ class SPCOutlookLegend():
|
||||||
cr.move_to(x + self.COLOR_WIDTH + self.MARGIN,
|
cr.move_to(x + self.COLOR_WIDTH + self.MARGIN,
|
||||||
y + self.COLOR_WIDTH / 2 + extents.height / 2)
|
y + self.COLOR_WIDTH / 2 + extents.height / 2)
|
||||||
|
|
||||||
|
cr.set_source_rgb(*color)
|
||||||
cr.show_text(text)
|
cr.show_text(text)
|
||||||
|
|
||||||
cr.restore()
|
cr.restore()
|
||||||
|
|
||||||
def draw(self, cr: cairo.Context, x: float, y: float):
|
def draw(self, cr: cairo.Context, x: float, y: float, dark: bool=False):
|
||||||
cr.save()
|
cr.save()
|
||||||
|
|
||||||
cr.select_font_face(self.FONT_FACE,
|
cr.select_font_face(self.FONT_FACE,
|
||||||
|
@ -679,7 +688,11 @@ class SPCOutlookLegend():
|
||||||
|
|
||||||
cr.set_font_size(self.FONT_SIZE)
|
cr.set_font_size(self.FONT_SIZE)
|
||||||
|
|
||||||
cr.set_source_rgba(0.2, 0.2, 0.2, 0.1)
|
if dark:
|
||||||
|
cr.set_source_rgba(0.2, 0.2, 0.2, 0.8)
|
||||||
|
else:
|
||||||
|
cr.set_source_rgba(0.2, 0.2, 0.2, 0.1)
|
||||||
|
|
||||||
draw_rounded_rect(cr, x, y, self.width, self.height, self.RADIUS)
|
draw_rounded_rect(cr, x, y, self.width, self.height, self.RADIUS)
|
||||||
|
|
||||||
cr.fill()
|
cr.fill()
|
||||||
|
@ -692,7 +705,7 @@ class SPCOutlookLegend():
|
||||||
|
|
||||||
item_y = y + self.MARGIN + i * (self.COLOR_HEIGHT + self.MARGIN)
|
item_y = y + self.MARGIN + i * (self.COLOR_HEIGHT + self.MARGIN)
|
||||||
|
|
||||||
self.draw_item(cr, key, x + self.MARGIN, item_y)
|
self.draw_item(cr, key, x + self.MARGIN, item_y, dark)
|
||||||
|
|
||||||
i += 1
|
i += 1
|
||||||
|
|
||||||
|
@ -727,7 +740,7 @@ class SPCOutlookMap(EquirectMap):
|
||||||
None: ( 20/255.0, 20/255.0, 20/255.0),
|
None: ( 20/255.0, 20/255.0, 20/255.0),
|
||||||
}
|
}
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self, dark: bool=False):
|
||||||
super().__init__(*MAP_SCREEN_DIMENSIONS, MAP_BOUNDS)
|
super().__init__(*MAP_SCREEN_DIMENSIONS, MAP_BOUNDS)
|
||||||
|
|
||||||
self.hatched_surface = cairo.RecordingSurface(cairo.CONTENT_COLOR_ALPHA,
|
self.hatched_surface = cairo.RecordingSurface(cairo.CONTENT_COLOR_ALPHA,
|
||||||
|
@ -739,6 +752,8 @@ class SPCOutlookMap(EquirectMap):
|
||||||
cr.line_to(4, 4)
|
cr.line_to(4, 4)
|
||||||
cr.stroke()
|
cr.stroke()
|
||||||
|
|
||||||
|
self.dark = dark
|
||||||
|
|
||||||
def draw_legend(self,
|
def draw_legend(self,
|
||||||
cr: cairo.Context,
|
cr: cairo.Context,
|
||||||
kind: SPCOutlookType):
|
kind: SPCOutlookType):
|
||||||
|
@ -772,7 +787,7 @@ class SPCOutlookMap(EquirectMap):
|
||||||
x = self.width - 3 * self.MARGIN - size[0]
|
x = self.width - 3 * self.MARGIN - size[0]
|
||||||
y = self.height - 6 * self.MARGIN - size[1]
|
y = self.height - 6 * self.MARGIN - size[1]
|
||||||
|
|
||||||
legend.draw(cr, x, y)
|
legend.draw(cr, x, y, self.dark)
|
||||||
|
|
||||||
def draw_logo(self, cr: cairo.Context, path: str):
|
def draw_logo(self, cr: cairo.Context, path: str):
|
||||||
cr.save()
|
cr.save()
|
||||||
|
@ -808,6 +823,11 @@ class SPCOutlookMap(EquirectMap):
|
||||||
x = self.width - extents.width - 48
|
x = self.width - extents.width - 48
|
||||||
y = self.height - extents.height - 16
|
y = self.height - extents.height - 16
|
||||||
|
|
||||||
|
if self.dark:
|
||||||
|
cr.set_source_rgb(1, 1, 1)
|
||||||
|
else:
|
||||||
|
cr.set_source_rgb(0, 0, 0)
|
||||||
|
|
||||||
cr.move_to(x, y)
|
cr.move_to(x, y)
|
||||||
cr.show_text(text)
|
cr.show_text(text)
|
||||||
|
|
||||||
|
@ -826,11 +846,19 @@ class SPCOutlookMap(EquirectMap):
|
||||||
x = self.width - extents.width - 32
|
x = self.width - extents.width - 32
|
||||||
y = 8 + extents.height
|
y = 8 + extents.height
|
||||||
|
|
||||||
cr.set_source_rgba(1, 1, 1, 0.8)
|
if self.dark:
|
||||||
|
cr.set_source_rgba(0, 0, 0, 0.2)
|
||||||
|
else:
|
||||||
|
cr.set_source_rgba(1, 1, 1, 0.8)
|
||||||
|
|
||||||
cr.rectangle(x - 4, y - 3, extents.width + 8, extents.height + 8)
|
cr.rectangle(x - 4, y - 3, extents.width + 8, extents.height + 8)
|
||||||
cr.fill()
|
cr.fill()
|
||||||
|
|
||||||
cr.set_source_rgb(0, 0, 0)
|
if self.dark:
|
||||||
|
cr.set_source_rgb(1, 1, 1)
|
||||||
|
else:
|
||||||
|
cr.set_source_rgb(0, 0, 0)
|
||||||
|
|
||||||
cr.move_to(x, y + extents.height)
|
cr.move_to(x, y + extents.height)
|
||||||
cr.show_text(text)
|
cr.show_text(text)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue