]> skyeroc.xyz Git - obs-ctl/commitdiff
move text_readout to its own file
authorsbkelley <sb24kelley@gmail.com>
Sun, 30 Nov 2025 05:58:12 +0000 (00:58 -0500)
committersbkelley <sb24kelley@gmail.com>
Sun, 30 Nov 2025 05:58:12 +0000 (00:58 -0500)
src/obs_ctl/__init__.py
src/obs_ctl/widget/__init__.py
src/obs_ctl/widget/element/text_readout.py [new file with mode: 0644]

index 6ffced86f23238749a35596b30918fcab7b9f53a..440cccd8e8156ce785cc8524e1cb5e9bf5e494b6 100644 (file)
@@ -11,9 +11,10 @@ from textual.widgets import Footer, Header, Label, Placeholder, TabbedContent, T
 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()
index 4d2045405a34f1dfca63351dbe4614fff24a5376..6d1f0e0017eb6e3d8400345e7975889785dbd32b 100644 (file)
@@ -51,37 +51,3 @@ class OBSSettingsPane(VerticalScroll):
     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
diff --git a/src/obs_ctl/widget/element/text_readout.py b/src/obs_ctl/widget/element/text_readout.py
new file mode 100644 (file)
index 0000000..55ede6b
--- /dev/null
@@ -0,0 +1,36 @@
+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