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 += 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 += " <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 += 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 += " <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 += 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 += " <dt class='font-bold'>switched</dt>"
STATUS_DIV.inner_html += f" <dd class='pl-4'>{str(self.switched)}</dd>" STATUS_DIV.inner_html += f" <dd class='pl-4'>{str(self.switched)}</dd>"
STATUS_DIV.inner_html += "</dl>" STATUS_DIV.inner_html += "</dl>"
@@ -219,14 +219,16 @@ class Button(Div):
def update_state(self): def update_state(self):
self.state = process(self.state_command) self.state = process(self.state_command)
# update switched state # update switched state
if self.state_pattern != '': if self.state_pattern != '' and search(self.state_pattern, self.state):
if search(self.state_pattern, self.state): # search is None if search has no match otherwise re.Match object
# search is None if search has no match otherwise re.Match object self.switched = False
self.switched = False elif self.state_pattern_alt != '' and search(self.state_pattern_alt, self.state):
else: self.switched = True
self.switched = True else:
self.switched = False
# change text / icon # change text / icon
if not self.switched: if not self.switched:
self.classes = self.classes.replace("border-green-700", "border-gray-700")
if self.image: if self.image:
self.components[0] = self.image_element self.components[0] = self.image_element
elif self.icon: elif self.icon:
@@ -234,6 +236,7 @@ class Button(Div):
else: else:
self.text = self.text_normal self.text = self.text_normal
else: else:
self.classes = self.classes.replace("border-gray-700", "border-green-700")
if self.image_alt: if self.image_alt:
self.components[0] = self.image_alt_element self.components[0] = self.image_alt_element
elif self.icon_alt: elif self.icon_alt:
@@ -251,7 +254,7 @@ class Button(Div):
self.text = '' self.text = ''
else: 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"background-color:{self.color_bg};" if ishexcolor(self.color_bg) else ''
self.style += f"color:{self.color_fg};" if ishexcolor(self.color_fg) else '' self.style += f"color:{self.color_fg};" if ishexcolor(self.color_fg) else ''
@@ -268,8 +271,8 @@ class Button(Div):
else: else:
process_shell(self.command) process_shell(self.command)
# update switched state # update switched state
if self.state_pattern == '': #if self.state_pattern == '':
self.switched = not self.switched # self.switched = not self.switched
self.update_state() self.update_state()
self.on('click', click) self.on('click', click)