Make overlay wrap
This commit is contained in:
parent
8508b13382
commit
81d9ddf606
2 changed files with 14 additions and 4 deletions
lazy_player
|
@ -10,7 +10,8 @@ import gi
|
||||||
gi.require_version("Gdk", "4.0")
|
gi.require_version("Gdk", "4.0")
|
||||||
gi.require_version("Gtk", "4.0")
|
gi.require_version("Gtk", "4.0")
|
||||||
gi.require_version("Gst", "1.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):
|
class MainWindow(Gtk.ApplicationWindow):
|
||||||
|
@ -34,6 +35,8 @@ class MainWindow(Gtk.ApplicationWindow):
|
||||||
self.overlay_label.set_valign(Gtk.Align.CENTER)
|
self.overlay_label.set_valign(Gtk.Align.CENTER)
|
||||||
self.overlay_label.set_halign(Gtk.Align.CENTER)
|
self.overlay_label.set_halign(Gtk.Align.CENTER)
|
||||||
self.overlay_label.set_visible(False)
|
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:
|
def update_overlay(widget: Gtk.Widget, frame_clock: Gdk.FrameClock, data: Any) -> bool:
|
||||||
current_time = frame_clock.get_frame_time() / 1_000_000
|
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_vexpand(True)
|
||||||
self.video_widget.set_hexpand(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_name("black-overlay")
|
||||||
overlay_box.set_vexpand(True)
|
overlay_box.set_vexpand(True)
|
||||||
overlay_box.set_hexpand(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
|
# Setup GStreamer pipeline
|
||||||
self.pipeline = Gst.Pipeline.new("video-player")
|
self.pipeline = Gst.Pipeline.new("video-player")
|
||||||
|
|
|
@ -15,4 +15,6 @@ listview > row {
|
||||||
background-color: rgba(64, 64, 64, 0.25);
|
background-color: rgba(64, 64, 64, 0.25);
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
|
margin: 48px;
|
||||||
|
width: 80%;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue