[gtk/matthiasc/for-master: 7/9] gtk-demo: Add some example videos
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/matthiasc/for-master: 7/9] gtk-demo: Add some example videos
- Date: Sun, 13 Sep 2020 06:33:42 +0000 (UTC)
commit 52304fe7daff45bffda3a42b1093e798630ddaa7
Author: Matthias Clasen <mclasen redhat com>
Date: Sun Sep 13 01:50:31 2020 -0400
gtk-demo: Add some example videos
Add buttons to show the gtk-logo animation and
the Big Buck Bunny trailer.
demos/gtk-demo/bbb.png | Bin 0 -> 13015 bytes
demos/gtk-demo/demo.gresource.xml | 3 +++
demos/gtk-demo/video_player.c | 47 ++++++++++++++++++++++++++++++++++----
3 files changed, 46 insertions(+), 4 deletions(-)
---
diff --git a/demos/gtk-demo/bbb.png b/demos/gtk-demo/bbb.png
new file mode 100644
index 0000000000..b4c9e415ef
Binary files /dev/null and b/demos/gtk-demo/bbb.png differ
diff --git a/demos/gtk-demo/demo.gresource.xml b/demos/gtk-demo/demo.gresource.xml
index 551468fd1b..22db1bad21 100644
--- a/demos/gtk-demo/demo.gresource.xml
+++ b/demos/gtk-demo/demo.gresource.xml
@@ -196,6 +196,9 @@
<file>floppybuddy.gif</file>
<file>gtk-logo.webm</file>
</gresource>
+ <gresource prefix="/video-player">
+ <file>bbb.png</file>
+ </gresource>
<gresource prefix="/sources">
<file>application_demo.c</file>
<file>assistant.c</file>
diff --git a/demos/gtk-demo/video_player.c b/demos/gtk-demo/video_player.c
index d84bc123b5..221a5b1617 100644
--- a/demos/gtk-demo/video_player.c
+++ b/demos/gtk-demo/video_player.c
@@ -39,6 +39,7 @@ open_clicked_cb (GtkWidget *button,
"_Cancel", GTK_RESPONSE_CANCEL,
"_Open", GTK_RESPONSE_ACCEPT,
NULL);
+
filter = gtk_file_filter_new ();
gtk_file_filter_add_mime_type (filter, "video/*");
gtk_file_filter_set_name (filter, "Video");
@@ -50,6 +51,28 @@ open_clicked_cb (GtkWidget *button,
gtk_widget_show (dialog);
}
+static void
+logo_clicked_cb (GtkWidget *button,
+ gpointer video)
+{
+ GFile *file;
+
+ file = g_file_new_for_uri ("resource:///images/gtk-logo.webm");
+ gtk_video_set_file (GTK_VIDEO (video), file);
+ g_object_unref (file);
+}
+
+static void
+bbb_clicked_cb (GtkWidget *button,
+ gpointer video)
+{
+ GFile *file;
+
+ file = g_file_new_for_uri ("https://download.blender.org/peach/trailer/trailer_400p.ogg");
+ gtk_video_set_file (GTK_VIDEO (video), file);
+ g_object_unref (file);
+}
+
static void
fullscreen_clicked_cb (GtkWidget *button,
gpointer unused)
@@ -64,7 +87,8 @@ do_video_player (GtkWidget *do_widget)
{
GtkWidget *title;
GtkWidget *video;
- GtkWidget *open_button;
+ GtkWidget *button;
+ GtkWidget *image;
GtkWidget *fullscreen_button;
if (!window)
@@ -77,14 +101,29 @@ do_video_player (GtkWidget *do_widget)
g_object_add_weak_pointer (G_OBJECT (window), (gpointer *)&window);
video = gtk_video_new ();
+ gtk_video_set_autoplay (GTK_VIDEO (video), TRUE);
gtk_window_set_child (GTK_WINDOW (window), video);
title = gtk_header_bar_new ();
gtk_window_set_titlebar (GTK_WINDOW (window), title);
- open_button = gtk_button_new_with_mnemonic ("_Open");
- g_signal_connect (open_button, "clicked", G_CALLBACK (open_clicked_cb), video);
- gtk_header_bar_pack_start (GTK_HEADER_BAR (title), open_button);
+ button = gtk_button_new_with_mnemonic ("_Open");
+ g_signal_connect (button, "clicked", G_CALLBACK (open_clicked_cb), video);
+ gtk_header_bar_pack_start (GTK_HEADER_BAR (title), button);
+
+ button = gtk_button_new ();
+ image = gtk_image_new_from_resource ("/cursors/images/gtk_logo_cursor.png");
+ gtk_image_set_pixel_size (GTK_IMAGE (image), 24);
+ gtk_button_set_child (GTK_BUTTON (button), image);
+ g_signal_connect (button, "clicked", G_CALLBACK (logo_clicked_cb), video);
+ gtk_header_bar_pack_start (GTK_HEADER_BAR (title), button);
+
+ button = gtk_button_new ();
+ image = gtk_image_new_from_resource ("/video-player/bbb.png");
+ gtk_image_set_pixel_size (GTK_IMAGE (image), 24);
+ gtk_button_set_child (GTK_BUTTON (button), image);
+ g_signal_connect (button, "clicked", G_CALLBACK (bbb_clicked_cb), video);
+ gtk_header_bar_pack_start (GTK_HEADER_BAR (title), button);
fullscreen_button = gtk_button_new_from_icon_name ("view-fullscreen-symbolic");
g_signal_connect (fullscreen_button, "clicked", G_CALLBACK (fullscreen_clicked_cb), NULL);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]