diff --git a/SpanshRouter/AutoCompleter.py b/SpanshRouter/AutoCompleter.py index ac7f614..213ee83 100755 --- a/SpanshRouter/AutoCompleter.py +++ b/SpanshRouter/AutoCompleter.py @@ -75,6 +75,7 @@ class AutoCompleter(Entry, PlaceHolder): event.widget.event_generate('<>') def changed(self, name, index, mode): + self.set_default_style() if self.var.get().__len__() < 3 and self.lb_up or self.has_selected: self.hide_list() self.has_selected = False diff --git a/SpanshRouter/PlaceHolder.py b/SpanshRouter/PlaceHolder.py index a915cd2..22a7edf 100644 --- a/SpanshRouter/PlaceHolder.py +++ b/SpanshRouter/PlaceHolder.py @@ -5,7 +5,6 @@ class PlaceHolder(): def __init__(self, placeholder, **kw): self.placeholder = placeholder self.placeholder_color = "grey" - self.default_fg_color = config.get('dark_text') self.bind("", self.foc_in) self.bind("", self.foc_out) @@ -21,9 +20,19 @@ class PlaceHolder(): def force_placeholder_color(self): self['fg'] = self.placeholder_color + def set_default_style(self): + theme = config.getint('theme') + self['fg'] = config.get('dark_text') if theme else "black" + + def set_error_style(self, error=True): + if error: + self['fg'] = "red" + else: + self.set_default_style() + def foc_in(self, *args): if self['fg'] == "red" or self['fg'] == self.placeholder_color: - self['fg'] = self.default_fg_color + self.set_default_style() if self.get() == self.placeholder: self.delete('0', 'end') diff --git a/SpanshRouter/SpanshRouter.py b/SpanshRouter/SpanshRouter.py index 2017ab4..736500a 100755 --- a/SpanshRouter/SpanshRouter.py +++ b/SpanshRouter/SpanshRouter.py @@ -162,7 +162,7 @@ class SpanshRouter(): def set_source_ac(self, text): self.source_ac.delete(0, tk.END) self.source_ac.insert(0, text) - self.source_ac["fg"] = self.source_ac.default_fg_color + self.source_ac.set_default_style() def show_route_gui(self, show): self.hide_error() @@ -460,11 +460,11 @@ class SpanshRouter(): if value.__len__() > 0 and value != self.range_entry.placeholder: try: float(value) - self.range_entry['fg'] = self.range_entry.default_fg_color + self.range_entry.set_error_style(False) self.hide_error() except ValueError: self.show_error("Invalid range") - self.range_entry['fg'] = "red" + self.range_entry.set_error_style() def cleanup_old_version(self): try: