diff --git a/podcasts-gtk/resources/gtk/player_dialog.ui b/podcasts-gtk/resources/gtk/player_dialog.ui
new file mode 100644
index 0000000..8934098
--- /dev/null
+++ b/podcasts-gtk/resources/gtk/player_dialog.ui
@@ -0,0 +1,300 @@
+
+
+
+
+
+
+
diff --git a/podcasts-gtk/resources/gtk/player_rate.ui b/podcasts-gtk/resources/gtk/player_rate.ui
new file mode 100644
index 0000000..4dbc387
--- /dev/null
+++ b/podcasts-gtk/resources/gtk/player_rate.ui
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+ False
+ rate_button
+
+
+ True
+ False
+ 6
+ 6
+ 6
+ 6
+ vertical
+ 3
+
+
+ 1.50×
+ True
+ True
+ False
+ 1.5 speed rate
+ center
+ center
+ True
+ normal_rate
+
+
+ True
+ True
+ 0
+
+
+
+
+ 1.25×
+ True
+ True
+ False
+ 1.25 speed rate
+ center
+ center
+ True
+ normal_rate
+
+
+ True
+ True
+ 1
+
+
+
+
+ 1.00×
+ True
+ True
+ False
+ Normal speed
+ center
+ center
+ True
+ True
+
+
+ True
+ True
+ 2
+
+
+
+
+
+
diff --git a/podcasts-gtk/resources/gtk/player_toolbar.ui b/podcasts-gtk/resources/gtk/player_toolbar.ui
index 3495956..875fd5f 100644
--- a/podcasts-gtk/resources/gtk/player_toolbar.ui
+++ b/podcasts-gtk/resources/gtk/player_toolbar.ui
@@ -54,344 +54,365 @@ Tobias Bernard
False
skip-back-symbolic
-
+
+ True
False
- True
- center
+ vertical
+ 0
-
- True
- False
- center
-
-
- 42
- True
- True
- True
- Rewind 10 seconds
- rewind
- True
-
-
- False
- False
- 0
-
-
-
-
- 60
- True
- True
- Play
- play_image
- True
-
-
- False
- False
- 1
-
-
-
-
- 60
- True
- True
- True
- Pause
- pause_image
- True
-
-
- False
- False
- 2
-
-
-
-
- 42
- True
- True
- True
- Fast forward 10 seconds
- fast_forward
- True
-
-
- False
- False
- 3
-
-
+
+ True
-
- 0
-
-
+
True
- False
- 6
-
- True
+
False
+ True
center
- 34
- image-x-generic-symbolic
-
-
- False
- True
- 0
-
-
-
-
- True
- False
- True
- center
- center
- vertical
-
+
True
- False
- start
- Show Title
- True
- end
- 20
-
+ crossfade
+
+
+ True
+ 6
+
+
+ True
+ False
+ center
+
+
+ 42
+ True
+ True
+ True
+ Rewind 10 seconds
+ rewind
+ True
+
+
+ False
+ False
+ 0
+
+
+
+
+ 60
+ True
+ True
+ Play
+ play_image
+ True
+
+
+ False
+ False
+ 1
+
+
+
+
+ 60
+ True
+ True
+ True
+ Pause
+ pause_image
+ True
+
+
+ False
+ False
+ 2
+
+
+
+
+ 42
+ True
+ True
+ True
+ Fast forward 10 seconds
+ fast_forward
+ True
+
+
+ False
+ False
+ 3
+
+
+
+
+
+ 0
+
+
+
+
+ True
+ False
+ 6
+ 150
+
+
+ True
+ False
+ center
+ 34
+ image-x-generic-symbolic
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ True
+ center
+ center
+ vertical
+
+
+ True
+ False
+ start
+ Show Title
+ True
+ end
+ 20
+ 0
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ start
+ Episode Title
+ True
+ end
+ 20
+ 0
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+
+
+ True
+ True
+ True
+ 1
+ False
+ 150
+
+
+ 2
+
+
+
+
+ True
+ False
+ start
+ center
+ 6
+
+
+ True
+ False
+ start
+ center
+ 0:00
+
+
+ False
+ False
+ 0
+
+
+
+
+ True
+ False
+ start
+ center
+ /
+
+
+ False
+ False
+ 1
+
+
+
+
+ True
+ False
+ start
+ center
+ 0:00
+
+
+ False
+ False
+ 2
+
+
+
+
+ 3
+
+
+
+
+
+
+ True
+ False
+ 6
+
+
+ True
+ False
+ center
+ 34
+ image-x-generic-symbolic
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ True
+ center
+ center
+ vertical
+
+
+ True
+ False
+ start
+ Show Title
+ end
+ 0
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ start
+ Episode Title
+ end
+ 0
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+
+
+ True
+
+
+ True
+ media-playback-start-symbolic
+
+
+
+
+
+
+ True
+
+
+ True
+ media-playback-pause-symbolic
+
+
+
+
+
+
+ end
+
+
+
+
-
- False
- True
- 0
-
-
-
-
- True
- False
- start
- Episode Title
- True
- end
- 20
-
-
-
- False
- True
- 1
-
+
-
- False
- True
- 1
-
-
-
-
- 1
-
-
-
-
- True
- True
- True
- 1
- False
-
-
- 2
-
-
-
-
- True
- False
- start
- center
- 6
-
-
- True
- False
- start
- center
- 0:00
-
-
- False
- False
- 0
-
-
-
-
- True
- False
- start
- center
- /
-
-
- False
- False
- 1
-
-
-
-
- True
- False
- start
- center
- 0:00
-
-
- False
- False
- 2
-
-
-
-
- 3
-
-
-
-
-
- 4
-
-
-
-
- False
- rate_button
-
-
- True
- False
- 6
- 6
- 6
- 6
- vertical
- 3
-
-
- 1.50×
- True
- True
- False
- 1.5 speed rate
- center
- center
- True
- normal_rate
-
-
- True
- True
- 0
-
-
-
-
- 1.25×
- True
- True
- False
- 1.25 speed rate
- center
- center
- True
- normal_rate
-
-
- True
- True
- 1
-
-
-
-
- 1.00×
- True
- True
- False
- Normal speed
- center
- center
- True
- True
-
-
- True
- True
- 2
-
diff --git a/podcasts-gtk/resources/gtk/style.css b/podcasts-gtk/resources/gtk/style.css
index 56641eb..94a48ab 100644
--- a/podcasts-gtk/resources/gtk/style.css
+++ b/podcasts-gtk/resources/gtk/style.css
@@ -18,3 +18,24 @@ list, border {
.player-show-label {
font-size: smaller;
}
+
+.small-label {
+ font-size: smaller;
+}
+
+.bold-label {
+ font-weight: bold;
+}
+
+progressbar.playback-progress trough {
+ border-radius: 0;
+}
+progressbar.playback-progress trough progress {
+ border-radius: 0;
+ border-right: none;
+ border-left: none;
+}
+
+actionbar.player-small revealer box {
+ border-top: none
+}
diff --git a/podcasts-gtk/resources/icons/skip-back-large-symbolic.svg b/podcasts-gtk/resources/icons/skip-back-large-symbolic.svg
new file mode 100644
index 0000000..f125fee
--- /dev/null
+++ b/podcasts-gtk/resources/icons/skip-back-large-symbolic.svg
@@ -0,0 +1,71 @@
+
+
diff --git a/podcasts-gtk/resources/icons/skip-forward-large-symbolic.svg b/podcasts-gtk/resources/icons/skip-forward-large-symbolic.svg
new file mode 100644
index 0000000..7862ed2
--- /dev/null
+++ b/podcasts-gtk/resources/icons/skip-forward-large-symbolic.svg
@@ -0,0 +1,71 @@
+
+
diff --git a/podcasts-gtk/resources/resources.xml b/podcasts-gtk/resources/resources.xml
index 006d9a9..cd58916 100644
--- a/podcasts-gtk/resources/resources.xml
+++ b/podcasts-gtk/resources/resources.xml
@@ -11,8 +11,12 @@
gtk/hamburger.ui
gtk/show_menu.ui
gtk/help-overlay.ui
+ gtk/player_dialog.ui
+ gtk/player_rate.ui
gtk/player_toolbar.ui
+ icons/skip-back-large-symbolic.svg
icons/skip-back-symbolic.svg
+ icons/skip-forward-large-symbolic.svg
icons/skip-forward-symbolic.svg
gtk/style.css
diff --git a/podcasts-gtk/src/widgets/player.rs b/podcasts-gtk/src/widgets/player.rs
index 23a24be..11acc66 100644
--- a/podcasts-gtk/src/widgets/player.rs
+++ b/podcasts-gtk/src/widgets/player.rs
@@ -22,6 +22,10 @@ use gst::ClockTime;
use gtk;
use gtk::prelude::*;
+use libhandy as hdy;
+use libhandy::prelude::HeaderBarExt;
+use libhandy::prelude::*;
+
use gio::{File, FileExt};
use glib::{SignalHandlerId, WeakRef};
@@ -70,11 +74,29 @@ struct PlayerInfo {
show: gtk::Label,
episode: gtk::Label,
cover: gtk::Image,
+ show_small: gtk::Label,
+ episode_small: gtk::Label,
+ cover_small: gtk::Image,
mpris: Arc,
episode_id: RefCell