Skip to content

Commit 83fa72e

Browse files
authored
fix: add tooltips to help/close (#203)
Signed-off-by: Henry Schreiner <[email protected]>
1 parent 0cd0f04 commit 83fa72e

File tree

2 files changed

+41
-51
lines changed

2 files changed

+41
-51
lines changed

src/uproot_browser/tui/browser.css

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,3 +93,39 @@ HelpScreen {
9393
height: 3;
9494
background: $surface-lighten-1;
9595
}
96+
97+
98+
HeaderCloseIcon {
99+
dock: left;
100+
border: none;
101+
min-width: 3;
102+
}
103+
104+
HeaderCloseIcon:hover {
105+
background: $panel-lighten-2;
106+
}
107+
108+
HeaderHelpIcon {
109+
dock: right;
110+
padding: 0 1;
111+
border: none;
112+
min-width: 4;
113+
content-align: right middle;
114+
}
115+
116+
HeaderHelpIcon:hover {
117+
background: $panel-lighten-2;
118+
}
119+
120+
HeaderTitle {
121+
content-align: center middle;
122+
width: 100%;
123+
}
124+
125+
Header {
126+
dock: top;
127+
width: 100%;
128+
background: $foreground 5%;
129+
color: $text;
130+
height: 1;
131+
}

src/uproot_browser/tui/header.py

Lines changed: 5 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -7,61 +7,25 @@
77
import textual.app
88
import textual.reactive
99
import textual.widget
10+
import textual.widgets
1011

1112
if typing.TYPE_CHECKING:
1213
from .browser import Browser
1314

1415

15-
class HeaderCloseIcon(textual.widget.Widget):
16-
DEFAULT_CSS = """
17-
HeaderCloseIcon {
18-
dock: left;
19-
padding: 0 1;
20-
width: 4;
21-
content-align: left middle;
22-
}
23-
HeaderCloseIcon:hover {
24-
background: $panel-lighten-2;
25-
}
26-
"""
27-
28-
def render(self) -> textual.app.RenderResult:
29-
return "❌"
30-
16+
class HeaderCloseIcon(textual.widgets.Button):
3117
def on_click(self) -> None:
3218
self.app.exit()
3319

3420

35-
class HeaderHelpIcon(textual.widget.Widget):
36-
DEFAULT_CSS = """
37-
HeaderHelpIcon {
38-
dock: right;
39-
padding: 0 1;
40-
width: 4;
41-
content-align: right middle;
42-
}
43-
HeaderHelpIcon:hover {
44-
background: $panel-lighten-2;
45-
}
46-
"""
47-
21+
class HeaderHelpIcon(textual.widgets.Button):
4822
app: Browser
4923

50-
def render(self) -> textual.app.RenderResult:
51-
return "❓"
52-
5324
def on_click(self) -> None:
5425
self.app.action_help()
5526

5627

5728
class HeaderTitle(textual.widget.Widget):
58-
DEFAULT_CSS = """
59-
HeaderTitle {
60-
content-align: center middle;
61-
width: 100%;
62-
}
63-
"""
64-
6529
text = textual.reactive.Reactive("")
6630
sub_text = textual.reactive.Reactive("")
6731

@@ -74,26 +38,16 @@ def render(self) -> textual.app.RenderResult:
7438

7539

7640
class Header(textual.widget.Widget):
77-
DEFAULT_CSS = """
78-
Header {
79-
dock: top;
80-
width: 100%;
81-
background: $foreground 5%;
82-
color: $text;
83-
height: 1;
84-
}
85-
"""
86-
8741
DEFAULT_CLASSES = ""
8842

8943
def __init__(self, title: str, **kwargs: Any):
9044
super().__init__(**kwargs)
9145
self.title = title
9246

9347
def compose(self) -> textual.app.ComposeResult:
94-
yield HeaderCloseIcon()
48+
yield HeaderCloseIcon("❌", tooltip="Close")
9549
yield HeaderTitle()
96-
yield HeaderHelpIcon()
50+
yield HeaderHelpIcon("❓", tooltip="Help")
9751

9852
def on_mount(self) -> None:
9953
self.query_one(HeaderTitle).text = self.title

0 commit comments

Comments
 (0)