Device search is working. Working on The multidevice seach, WIP
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
from textual.containers import Vertical
|
||||
from textual.message import Message
|
||||
from textual.widget import Widget
|
||||
from textual.widgets import Button, Static
|
||||
|
||||
|
||||
class ThemeSelector(Widget):
|
||||
"""Widget for selecting and applying Textual themes."""
|
||||
|
||||
class ThemeSelected(Message):
|
||||
"""Message posted when a theme is selected."""
|
||||
|
||||
def __init__(self, theme_name: str):
|
||||
super().__init__()
|
||||
self.theme_name = theme_name
|
||||
|
||||
AVAILABLE_THEMES = [
|
||||
("textual-dark", "textual-dark"),
|
||||
("textual-light", "textual-light"),
|
||||
("nord", "nord"),
|
||||
("gruvbox", "gruvbox"),
|
||||
("catppuccin-mocha", "catppuccin-mocha"),
|
||||
("dracula", "dracula"),
|
||||
("tokyo-night", "tokyo-night"),
|
||||
("monokai", "monokai"),
|
||||
("flexoki", "flexoki"),
|
||||
("catppuccin-latte", "catppuccin-latte"),
|
||||
("solarized-light", "solarized-light"),
|
||||
]
|
||||
|
||||
def compose(self):
|
||||
yield Static("Theme Options", id="theme_title")
|
||||
|
||||
with Vertical() as column:
|
||||
column.styles.width = "1fr"
|
||||
column.styles.height = "auto"
|
||||
|
||||
for label, btn_id in self.AVAILABLE_THEMES:
|
||||
yield Button(label, id=f"set_theme_{btn_id}", compact=True)
|
||||
|
||||
def on_button_pressed(self, event: Button.Pressed) -> None:
|
||||
button_id = event.button.id
|
||||
if button_id and button_id.startswith("set_theme_"):
|
||||
theme_name = button_id.replace("set_theme_", "")
|
||||
self.post_message(self.ThemeSelected(theme_name))
|
||||
Reference in New Issue
Block a user