mirror of
https://github.com/Textualize/textual.git
synced 2025-10-17 02:38:12 +03:00
Delete some old sandbox stuff
This commit is contained in:
@@ -1,54 +0,0 @@
|
|||||||
from textual.app import App
|
|
||||||
from textual.widget import Widget
|
|
||||||
from textual.widgets import Static
|
|
||||||
|
|
||||||
|
|
||||||
class FocusKeybindsApp(App):
|
|
||||||
dark = True
|
|
||||||
|
|
||||||
def on_load(self) -> None:
|
|
||||||
self.bind("1", "focus('widget1')")
|
|
||||||
self.bind("2", "focus('widget2')")
|
|
||||||
self.bind("3", "focus('widget3')")
|
|
||||||
self.bind("4", "focus('widget4')")
|
|
||||||
self.bind("q", "focus('widgetq')")
|
|
||||||
self.bind("w", "focus('widgetw')")
|
|
||||||
self.bind("e", "focus('widgete')")
|
|
||||||
self.bind("r", "focus('widgetr')")
|
|
||||||
|
|
||||||
def on_mount(self) -> None:
|
|
||||||
info = Static(
|
|
||||||
"Use keybinds to shift focus between the widgets in the lists below",
|
|
||||||
)
|
|
||||||
self.mount(info=info)
|
|
||||||
|
|
||||||
self.mount(
|
|
||||||
body=Widget(
|
|
||||||
Widget(
|
|
||||||
Static("Press 1 to focus", id="widget1", classes="list-item"),
|
|
||||||
Static("Press 2 to focus", id="widget2", classes="list-item"),
|
|
||||||
Static("Press 3 to focus", id="widget3", classes="list-item"),
|
|
||||||
Static("Press 4 to focus", id="widget4", classes="list-item"),
|
|
||||||
classes="list",
|
|
||||||
id="left_list",
|
|
||||||
),
|
|
||||||
Widget(
|
|
||||||
Static("Press Q to focus", id="widgetq", classes="list-item"),
|
|
||||||
Static("Press W to focus", id="widgetw", classes="list-item"),
|
|
||||||
Static("Press E to focus", id="widgete", classes="list-item"),
|
|
||||||
Static("Press R to focus", id="widgetr", classes="list-item"),
|
|
||||||
classes="list",
|
|
||||||
id="right_list",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
self.mount(footer=Static("No widget focused"))
|
|
||||||
|
|
||||||
def on_descendant_focus(self):
|
|
||||||
self.get_child("footer").update(
|
|
||||||
f"Focused: {self.focused.id}" or "No widget focused"
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
app = FocusKeybindsApp(css_path="focus_keybindings.scss", watch_css=True)
|
|
||||||
app.run()
|
|
||||||
@@ -1,57 +0,0 @@
|
|||||||
App > Screen {
|
|
||||||
layout: dock;
|
|
||||||
docks: left=left top=top;
|
|
||||||
}
|
|
||||||
|
|
||||||
#info {
|
|
||||||
background: $primary;
|
|
||||||
dock: top;
|
|
||||||
height: 3;
|
|
||||||
padding: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
#body {
|
|
||||||
dock: top;
|
|
||||||
layout: dock;
|
|
||||||
docks: bodylhs=left;
|
|
||||||
}
|
|
||||||
|
|
||||||
#left_list {
|
|
||||||
dock: bodylhs;
|
|
||||||
padding: 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
#right_list {
|
|
||||||
dock: bodylhs;
|
|
||||||
padding: 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
#footer {
|
|
||||||
height: 1;
|
|
||||||
background: $secondary;
|
|
||||||
padding: 0 1;
|
|
||||||
dock: top;
|
|
||||||
}
|
|
||||||
|
|
||||||
.list {
|
|
||||||
background: $surface;
|
|
||||||
border-top: hkey $surface-darken-1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.list:focus-within {
|
|
||||||
background: $primary-darken-1;
|
|
||||||
outline-top: $accent-lighten-1;
|
|
||||||
outline-bottom: $accent-lighten-1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.list-item {
|
|
||||||
background: $surface;
|
|
||||||
height: auto;
|
|
||||||
border: $surface-darken-1 tall;
|
|
||||||
padding: 0 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.list-item:focus {
|
|
||||||
background: $surface-darken-1;
|
|
||||||
outline: $accent tall;
|
|
||||||
}
|
|
||||||
@@ -504,99 +504,3 @@ class Stylesheet:
|
|||||||
apply(node.horizontal_scrollbar)
|
apply(node.horizontal_scrollbar)
|
||||||
if node.show_horizontal_scrollbar and node.show_vertical_scrollbar:
|
if node.show_horizontal_scrollbar and node.show_vertical_scrollbar:
|
||||||
apply(node.scrollbar_corner)
|
apply(node.scrollbar_corner)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
from rich.traceback import install
|
|
||||||
|
|
||||||
install(show_locals=True)
|
|
||||||
|
|
||||||
class Widget(DOMNode):
|
|
||||||
pass
|
|
||||||
|
|
||||||
class View(DOMNode):
|
|
||||||
pass
|
|
||||||
|
|
||||||
class App(DOMNode):
|
|
||||||
pass
|
|
||||||
|
|
||||||
app = App()
|
|
||||||
main_view = View(id="main")
|
|
||||||
help_view = View(id="help")
|
|
||||||
app._add_child(main_view)
|
|
||||||
app._add_child(help_view)
|
|
||||||
|
|
||||||
widget1 = Widget(id="widget1")
|
|
||||||
widget2 = Widget(id="widget2")
|
|
||||||
sidebar = Widget(id="sidebar")
|
|
||||||
sidebar.add_class("float")
|
|
||||||
|
|
||||||
helpbar = Widget(id="helpbar")
|
|
||||||
helpbar.add_class("float")
|
|
||||||
|
|
||||||
main_view._add_child(widget1)
|
|
||||||
main_view._add_child(widget2)
|
|
||||||
main_view._add_child(sidebar)
|
|
||||||
|
|
||||||
sub_view = View(id="sub")
|
|
||||||
sub_view.add_class("-subview")
|
|
||||||
main_view._add_child(sub_view)
|
|
||||||
|
|
||||||
tooltip = Widget(id="tooltip")
|
|
||||||
tooltip.add_class("float", "transient")
|
|
||||||
sub_view._add_child(tooltip)
|
|
||||||
|
|
||||||
help = Widget(id="markdown")
|
|
||||||
help_view._add_child(help)
|
|
||||||
help_view._add_child(helpbar)
|
|
||||||
|
|
||||||
from rich import print
|
|
||||||
|
|
||||||
print(app.tree)
|
|
||||||
print()
|
|
||||||
|
|
||||||
DEFAULT_CSS = """
|
|
||||||
App > View {
|
|
||||||
layout: dock;
|
|
||||||
docks: sidebar=left | widgets=top;
|
|
||||||
}
|
|
||||||
|
|
||||||
#sidebar {
|
|
||||||
dock-group: sidebar;
|
|
||||||
}
|
|
||||||
|
|
||||||
#widget1 {
|
|
||||||
text: on blue;
|
|
||||||
dock-group: widgets;
|
|
||||||
}
|
|
||||||
|
|
||||||
#widget2 {
|
|
||||||
text: on red;
|
|
||||||
dock-group: widgets;
|
|
||||||
}
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
stylesheet = Stylesheet()
|
|
||||||
stylesheet.add_source(CSS)
|
|
||||||
|
|
||||||
print(stylesheet.css)
|
|
||||||
|
|
||||||
# print(stylesheet.error_renderable)
|
|
||||||
|
|
||||||
# print(widget1.styles)
|
|
||||||
|
|
||||||
# stylesheet.apply(widget1)
|
|
||||||
|
|
||||||
# print(widget1.styles)
|
|
||||||
|
|
||||||
# print(stylesheet.css)
|
|
||||||
|
|
||||||
# from .query import DOMQuery
|
|
||||||
|
|
||||||
# tests = ["View", "App > View", "Widget.float", ".float.transient", "*"]
|
|
||||||
|
|
||||||
# for test in tests:
|
|
||||||
# print("")
|
|
||||||
# print(f"[b]{test}")
|
|
||||||
# print(app.query(test))
|
|
||||||
|
|||||||
Reference in New Issue
Block a user