From 81d9ddf6066fe8a7b52aadef4ead3e8c547f2c66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Hamal=20Dvo=C5=99=C3=A1k?= <mordae@anilinux.org> Date: Sat, 8 Mar 2025 21:56:41 +0100 Subject: [PATCH] Make overlay wrap --- lazy_player/__init__.py | 16 ++++++++++++---- lazy_player/style.css | 2 ++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/lazy_player/__init__.py b/lazy_player/__init__.py index 6412597..52f2699 100644 --- a/lazy_player/__init__.py +++ b/lazy_player/__init__.py @@ -10,7 +10,8 @@ import gi gi.require_version("Gdk", "4.0") gi.require_version("Gtk", "4.0") gi.require_version("Gst", "1.0") -from gi.repository import Gdk, Gst, Gtk # NOQA: E402 +gi.require_version("Pango", "1.0") +from gi.repository import Gdk, Gst, Gtk, Pango # NOQA: E402 class MainWindow(Gtk.ApplicationWindow): @@ -34,6 +35,8 @@ class MainWindow(Gtk.ApplicationWindow): self.overlay_label.set_valign(Gtk.Align.CENTER) self.overlay_label.set_halign(Gtk.Align.CENTER) self.overlay_label.set_visible(False) + self.overlay_label.set_wrap(True) + self.overlay_label.set_wrap_mode(Pango.WrapMode.WORD_CHAR) def update_overlay(widget: Gtk.Widget, frame_clock: Gdk.FrameClock, data: Any) -> bool: current_time = frame_clock.get_frame_time() / 1_000_000 @@ -65,12 +68,17 @@ class MainWindow(Gtk.ApplicationWindow): self.video_widget.set_vexpand(True) self.video_widget.set_hexpand(True) - overlay_box = Gtk.Box() + overlay_box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) overlay_box.set_name("black-overlay") overlay_box.set_vexpand(True) overlay_box.set_hexpand(True) - overlay_box.append(self.video_widget) - overlay_box.append(self.overlay_label) + + # Create an overlay container + overlay = Gtk.Overlay() + overlay.set_child(self.video_widget) + overlay.add_overlay(self.overlay_label) + + overlay_box.append(overlay) # Setup GStreamer pipeline self.pipeline = Gst.Pipeline.new("video-player") diff --git a/lazy_player/style.css b/lazy_player/style.css index 104a52f..e09d947 100644 --- a/lazy_player/style.css +++ b/lazy_player/style.css @@ -15,4 +15,6 @@ listview > row { background-color: rgba(64, 64, 64, 0.25); padding: 20px; border-radius: 10px; + margin: 48px; + width: 80%; }