from textual.css.query import NoMatches
from . import log, data
-from .widget import TextReadout, OBSSettingsPane
+from .widget import OBSSettingsPane
from .widget.element.bool_control import BoolControl
+from .widget.element.text_readout import TextReadout
logger = log.getLogger(__name__)
obs_req_client = obs.ReqClient()
def watch_record_path(self, value):
input: Input = self.query_exactly_one("#input_record_path")
input.value = value
-
-
-class TextReadout(Container):
- COMPONENT_CLASSES = {
- "text_readout--label",
- "text_readout--text",
- }
- text = reactive("Text")
- label = reactive("Label")
- readout_layout = reactive("vertical")
-
- def __init__(self, label, text, *children, layout = "vertical", name = None, id = None, classes = None, disabled = False, markup = True):
- super().__init__(*children, name=name, id=id, classes=classes, disabled=disabled, markup=markup)
- self.set_reactive(TextReadout.label, label)
- self.set_reactive(TextReadout.text, text)
- self.set_reactive(TextReadout.readout_layout, layout)
-
-
- def compose(self):
- yield Container(Label(self.label, id="label"), classes="text_readout--label")
- yield Container(Label(self.text, id="text"), classes="text_readout--text")
-
- def watch_text(self, value: str):
- text: Label = self.query_exactly_one("#text")
- text.update(value)
-
-
- def watch_label(self, value):
- label: Label = self.query_exactly_one("#label")
- label.update(value)
-
-
- def watch_readout_layout(self, value):
- self.set_styles(layout=value)
\ No newline at end of file
--- /dev/null
+from textual.containers import Container
+from textual.reactive import reactive
+from textual.widgets import Label
+
+class TextReadout(Container):
+ COMPONENT_CLASSES = {
+ "text_readout--label",
+ "text_readout--text",
+ }
+ text = reactive("Text")
+ label = reactive("Label")
+ readout_layout = reactive("vertical")
+
+ def __init__(self, label, text, *children, layout = "vertical", name = None, id = None, classes = None, disabled = False, markup = True):
+ super().__init__(*children, name=name, id=id, classes=classes, disabled=disabled, markup=markup)
+ self.set_reactive(TextReadout.label, label)
+ self.set_reactive(TextReadout.text, text)
+ self.set_reactive(TextReadout.readout_layout, layout)
+
+
+ def compose(self):
+ yield Container(Label(self.label, id="label"), classes="text_readout--label")
+ yield Container(Label(self.text, id="text"), classes="text_readout--text")
+
+ def watch_text(self, value: str):
+ text: Label = self.query_exactly_one("#text")
+ text.update(value)
+
+
+ def watch_label(self, value):
+ label: Label = self.query_exactly_one("#label")
+ label.update(value)
+
+
+ def watch_readout_layout(self, value):
+ self.set_styles(layout=value)
\ No newline at end of file