update style (border) and logic of buttons

This commit is contained in:
2021-07-24 20:24:35 +02:00
parent cd13c8d021
commit c78b767958

View File

@@ -34,8 +34,8 @@ def mouseenter_status(self, msg):
STATUS_DIV.inner_html += f" <dd class='pl-4'>{tohtml(self.state.strip())}</dd>"
STATUS_DIV.inner_html += " <dt class='font-bold'>state-pattern</dt>"
STATUS_DIV.inner_html += f" <dd class='pl-4'>{tohtml(self.state_pattern.strip())}</dd>"
#STATUS_DIV.inner_html += " <dt class='font-bold'>state-pattern-alt</dt>"
#STATUS_DIV.inner_html += f" <dd class='pl-4'>{tohtml(self.state_pattern_alt.strip())}</dd>"
STATUS_DIV.inner_html += " <dt class='font-bold'>state-pattern-alt</dt>"
STATUS_DIV.inner_html += f" <dd class='pl-4'>{tohtml(self.state_pattern_alt.strip())}</dd>"
STATUS_DIV.inner_html += " <dt class='font-bold'>switched</dt>"
STATUS_DIV.inner_html += f" <dd class='pl-4'>{str(self.switched)}</dd>"
STATUS_DIV.inner_html += "</dl>"
@@ -219,14 +219,16 @@ class Button(Div):
def update_state(self):
self.state = process(self.state_command)
# update switched state
if self.state_pattern != '':
if search(self.state_pattern, self.state):
# search is None if search has no match otherwise re.Match object
self.switched = False
else:
self.switched = True
if self.state_pattern != '' and search(self.state_pattern, self.state):
# search is None if search has no match otherwise re.Match object
self.switched = False
elif self.state_pattern_alt != '' and search(self.state_pattern_alt, self.state):
self.switched = True
else:
self.switched = False
# change text / icon
if not self.switched:
self.classes = self.classes.replace("border-green-700", "border-gray-700")
if self.image:
self.components[0] = self.image_element
elif self.icon:
@@ -234,6 +236,7 @@ class Button(Div):
else:
self.text = self.text_normal
else:
self.classes = self.classes.replace("border-gray-700", "border-green-700")
if self.image_alt:
self.components[0] = self.image_alt_element
elif self.icon_alt:
@@ -251,7 +254,7 @@ class Button(Div):
self.text = ''
else:
self.classes = "bg-gray-800 hover:bg-gray-700 text-gray-500 w-20 h-20 m-2 p-1 rounded-lg font-bold flex items-center text-center justify-center select-none"
self.classes = "border-2 border-gray-700 bg-gray-800 hover:bg-gray-700 text-gray-500 w-20 h-20 m-2 p-1 rounded-lg font-bold flex items-center text-center justify-center select-none"
self.style = f"background-color:{self.color_bg};" if ishexcolor(self.color_bg) else ''
self.style += f"color:{self.color_fg};" if ishexcolor(self.color_fg) else ''
@@ -268,8 +271,8 @@ class Button(Div):
else:
process_shell(self.command)
# update switched state
if self.state_pattern == '':
self.switched = not self.switched
#if self.state_pattern == '':
# self.switched = not self.switched
self.update_state()
self.on('click', click)