mirror of
https://github.com/aclist/dztui.git
synced 2026-08-29 19:27:13 +02:00
feat: toast notification
This commit is contained in:
parent
8f3238e4de
commit
9c6847ba39
@ -551,6 +551,9 @@ def load_css() -> None:
|
|||||||
.frame {
|
.frame {
|
||||||
border: 0px;
|
border: 0px;
|
||||||
}
|
}
|
||||||
|
.toast-label {
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
.frame > border {
|
.frame > border {
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
@ -1016,8 +1019,14 @@ class OuterWindow(Gtk.Window):
|
|||||||
self._set_resolution()
|
self._set_resolution()
|
||||||
|
|
||||||
self.grid = Grid()
|
self.grid = Grid()
|
||||||
self.add(self.grid)
|
self.toast = Toast()
|
||||||
|
self.overlay = Gtk.Overlay()
|
||||||
|
self.overlay.add_overlay(self.grid)
|
||||||
|
self.overlay.add_overlay(self.toast)
|
||||||
|
self.add(self.overlay)
|
||||||
|
|
||||||
self.show_all()
|
self.show_all()
|
||||||
|
self.toast.set_visible(False)
|
||||||
|
|
||||||
self.grid.right_panel.filters_vbox.set_visible(False)
|
self.grid.right_panel.filters_vbox.set_visible(False)
|
||||||
self.grid.right_panel.enable_ping_button(False)
|
self.grid.right_panel.enable_ping_button(False)
|
||||||
@ -1080,6 +1089,47 @@ class OuterWindow(Gtk.Window):
|
|||||||
save_res_and_quit()
|
save_res_and_quit()
|
||||||
|
|
||||||
|
|
||||||
|
class Toast(Gtk.EventBox):
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__()
|
||||||
|
|
||||||
|
self.label = Gtk.Label()
|
||||||
|
self.box = Gtk.Box(
|
||||||
|
orientation=Gtk.Orientation.HORIZONTAL,
|
||||||
|
halign=Gtk.Align.CENTER,
|
||||||
|
valign=Gtk.Align.CENTER,
|
||||||
|
)
|
||||||
|
self.box.add(self.label)
|
||||||
|
self.add(self.box)
|
||||||
|
self.box.set_size_request(200, 100)
|
||||||
|
|
||||||
|
add_class(self.box, "toast-label")
|
||||||
|
|
||||||
|
def set_text(self, text: str) -> None:
|
||||||
|
self.label.set_text(text)
|
||||||
|
|
||||||
|
def set_text_and_fade(self, text: str) -> None:
|
||||||
|
self.set_text(text)
|
||||||
|
self.pop()
|
||||||
|
self._defer_fade()
|
||||||
|
|
||||||
|
def fade_out(self) -> bool:
|
||||||
|
if self.get_opacity() == 0:
|
||||||
|
self.set_visible(False)
|
||||||
|
self.set_opacity(1)
|
||||||
|
return False
|
||||||
|
self.set_opacity(self.get_opacity() - 0.03)
|
||||||
|
return True
|
||||||
|
|
||||||
|
def pop(self) -> None:
|
||||||
|
self.set_visible(True)
|
||||||
|
|
||||||
|
def _defer_fade(self) -> Literal[False]:
|
||||||
|
"""Defers fade out of toast"""
|
||||||
|
GLib.timeout_add(30, self.fade_out)
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
class ScrollableTree(Gtk.ScrolledWindow):
|
class ScrollableTree(Gtk.ScrolledWindow):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user