def METHOD_NAME(self, new_value, update_vars=False, **kwargs):
    rgba = Gdk.RGBA()
    is_app_ready = self.app.is_ready
    if kwargs.get("update_from") != "text_value":
        if rgba.parse(new_value):
            self.text_value.set_text(new_value)
            self.text_value_toggle.set_active(False)
        else:
            self.text_value.set_text(new_value)
            self.text_value_toggle.set_active(True)
    if kwargs.get("update_from") != "color_value":
        if rgba.parse(new_value):
            self.color_value.set_rgba(rgba)
            self.color_value.set_tooltip_text(new_value)
        else:
            rgba.parse("rgba(0,0,0,0)")
            self.color_value.set_rgba(rgba)
            self.color_value.set_tooltip_text(_("Not a color, see text value"))
    if update_vars == True:
        if is_app_ready and kwargs.get("update_from") == "text_value" and new_value != "":
            if self.update_var:
                self.update_var[self.get_name()] = new_value
            else:
                self.app.variables[self.get_name()] = new_value
            self.app.mark_as_dirty()
            self.app.reload_variables()