byte bye ui files
This commit is contained in:
parent
577b3c5c4d
commit
fefe040b6c
17 changed files with 416 additions and 496 deletions
32
src/artist_list.blp
Normal file
32
src/artist_list.blp
Normal file
|
@ -0,0 +1,32 @@
|
|||
using Gtk 4.0;
|
||||
using Adw 1;
|
||||
|
||||
template $WaveletArtistList: Adw.NavigationPage {
|
||||
title: _("Artists");
|
||||
|
||||
Adw.ToolbarView {
|
||||
[top]
|
||||
Adw.HeaderBar {}
|
||||
|
||||
Stack stack {
|
||||
StackPage {
|
||||
name: "loading";
|
||||
|
||||
child: Adw.Spinner {};
|
||||
}
|
||||
|
||||
StackPage {
|
||||
name: "ready";
|
||||
|
||||
child: ScrolledWindow {
|
||||
ListView list_view {
|
||||
factory: BuilderListItemFactory {
|
||||
resource: "/eu/callcc/Wavelet/artist_list_artist.ui";
|
||||
};
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<requires lib="Adw" version="1.0"/>
|
||||
<template class="WaveletArtistList" parent="AdwNavigationPage">
|
||||
<property name="title" translatable="true">Artists</property>
|
||||
<child>
|
||||
<object class="AdwToolbarView">
|
||||
<child type="top">
|
||||
<object class="AdwHeaderBar"></object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStack" id="stack">
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">loading</property>
|
||||
<property name="child">
|
||||
<object class="AdwSpinner"/>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">ready</property>
|
||||
<property name="child">
|
||||
<object class="GtkScrolledWindow">
|
||||
<child>
|
||||
<object class="GtkListView" id="list_view">
|
||||
<property name="factory">
|
||||
<object class="GtkBuilderListItemFactory">
|
||||
<property name="resource">/eu/callcc/Wavelet/artist_list_artist.ui</property>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
9
src/artist_list_artist.blp
Normal file
9
src/artist_list_artist.blp
Normal file
|
@ -0,0 +1,9 @@
|
|||
using Gtk 4.0;
|
||||
|
||||
template ListItem {
|
||||
child: Label {
|
||||
halign: start;
|
||||
label: bind template.item as <$WaveletArtist>.name;
|
||||
};
|
||||
}
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<requires lib="Adw" version="1.0"/>
|
||||
<template class="GtkListItem">
|
||||
<property name="child">
|
||||
<object class="GtkLabel">
|
||||
<property name="halign">start</property>
|
||||
<binding name="label">
|
||||
<lookup type="WaveletArtist" name="name">
|
||||
<lookup name="item">GtkListItem</lookup>
|
||||
</lookup>
|
||||
</binding>
|
||||
</object>
|
||||
</property>
|
||||
</template>
|
||||
</interface>
|
|
@ -18,9 +18,40 @@ wavelet_deps = [
|
|||
dependency('sqlite3'),
|
||||
]
|
||||
|
||||
blueprints = custom_target('blueprints',
|
||||
input: files(
|
||||
'artist_list.blp',
|
||||
'artist_list_artist.blp',
|
||||
'play_queue.blp',
|
||||
'play_queue_song.blp',
|
||||
'setup.blp',
|
||||
'song_list.blp',
|
||||
'song_list_song.blp',
|
||||
'window.blp',
|
||||
),
|
||||
output: [
|
||||
'artist_list.ui',
|
||||
'artist_list_artist.ui',
|
||||
'play_queue.ui',
|
||||
'play_queue_song.ui',
|
||||
'setup.ui',
|
||||
'song_list.ui',
|
||||
'song_list_song.ui',
|
||||
'window.ui',
|
||||
],
|
||||
command: [
|
||||
find_program('blueprint-compiler'),
|
||||
'batch-compile',
|
||||
'@OUTDIR@',
|
||||
'@CURRENT_SOURCE_DIR@',
|
||||
'@INPUT@',
|
||||
],
|
||||
)
|
||||
|
||||
wavelet_sources += gnome.compile_resources('wavelet-resources',
|
||||
'wavelet.gresource.xml',
|
||||
c_name: 'wavelet'
|
||||
c_name: 'wavelet',
|
||||
dependencies: blueprints,
|
||||
)
|
||||
|
||||
executable('wavelet', wavelet_sources,
|
||||
|
|
24
src/play_queue.blp
Normal file
24
src/play_queue.blp
Normal file
|
@ -0,0 +1,24 @@
|
|||
using Gtk 4.0;
|
||||
using Adw 1;
|
||||
|
||||
template $WaveletPlayQueue: Adw.NavigationPage {
|
||||
title: _("Play queue");
|
||||
|
||||
Adw.ToolbarView {
|
||||
[top]
|
||||
Adw.HeaderBar {}
|
||||
|
||||
ScrolledWindow {
|
||||
ListView list_view {
|
||||
styles [
|
||||
"view",
|
||||
]
|
||||
|
||||
factory: BuilderListItemFactory {
|
||||
resource: "/eu/callcc/Wavelet/play_queue_song.ui";
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<requires lib="Adw" version="1.0"/>
|
||||
<template class="WaveletPlayQueue" parent="AdwNavigationPage">
|
||||
<property name="title" translatable="true">Play queue</property>
|
||||
<child>
|
||||
<object class="AdwToolbarView">
|
||||
<child type="top">
|
||||
<object class="AdwHeaderBar"></object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow">
|
||||
<child>
|
||||
<object class="GtkListView" id="list_view">
|
||||
<style><class name="view"/></style>
|
||||
<property name="factory">
|
||||
<object class="GtkBuilderListItemFactory">
|
||||
<property name="resource">/eu/callcc/Wavelet/play_queue_song.ui</property>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
9
src/play_queue_song.blp
Normal file
9
src/play_queue_song.blp
Normal file
|
@ -0,0 +1,9 @@
|
|||
using Gtk 4.0;
|
||||
|
||||
template ListItem {
|
||||
child: Label {
|
||||
halign: start;
|
||||
label: bind template.item as <$WaveletSong>.name;
|
||||
};
|
||||
}
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<requires lib="Adw" version="1.0"/>
|
||||
<template class="GtkListItem">
|
||||
<property name="child">
|
||||
<object class="GtkLabel">
|
||||
<property name="halign">start</property>
|
||||
<binding name="label">
|
||||
<lookup type="WaveletSong" name="name">
|
||||
<lookup name="item">GtkListItem</lookup>
|
||||
</lookup>
|
||||
</binding>
|
||||
</object>
|
||||
</property>
|
||||
</template>
|
||||
</interface>
|
45
src/setup.blp
Normal file
45
src/setup.blp
Normal file
|
@ -0,0 +1,45 @@
|
|||
using Gtk 4.0;
|
||||
using Adw 1;
|
||||
|
||||
template $WaveletSetup: Adw.NavigationPage {
|
||||
title: _("Setup");
|
||||
|
||||
Adw.ToolbarView {
|
||||
[top]
|
||||
Adw.HeaderBar {}
|
||||
|
||||
Adw.Clamp {
|
||||
child: Adw.PreferencesGroup {
|
||||
title: "Authentication";
|
||||
|
||||
Adw.EntryRow server_url {
|
||||
title: "Server URL";
|
||||
input-purpose: url;
|
||||
}
|
||||
|
||||
Adw.EntryRow username {
|
||||
title: "Username";
|
||||
}
|
||||
|
||||
Adw.PasswordEntryRow password {
|
||||
title: "Password";
|
||||
}
|
||||
|
||||
Adw.ActionRow status {
|
||||
title: "Status";
|
||||
subtitle: "Not connected";
|
||||
|
||||
styles [
|
||||
"property",
|
||||
]
|
||||
}
|
||||
|
||||
Adw.ButtonRow validate {
|
||||
title: "Connect and save";
|
||||
sensitive: false;
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
53
src/setup.ui
53
src/setup.ui
|
@ -1,53 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<requires lib="Adw" version="1.0"/>
|
||||
<template class="WaveletSetup" parent="AdwNavigationPage">
|
||||
<property name="title" translatable="true">Setup</property>
|
||||
<child>
|
||||
<object class="AdwToolbarView">
|
||||
<child type="top">
|
||||
<object class="AdwHeaderBar"></object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="AdwClamp">
|
||||
<property name="child">
|
||||
<object class="AdwPreferencesGroup">
|
||||
<property name="title">Authentication</property>
|
||||
<child>
|
||||
<object class="AdwEntryRow" id="server_url">
|
||||
<property name="title">Server URL</property>
|
||||
<property name="input-purpose">url</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="AdwEntryRow" id="username">
|
||||
<property name="title">Username</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="AdwPasswordEntryRow" id="password">
|
||||
<property name="title">Password</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="AdwActionRow" id="status">
|
||||
<property name="title">Status</property>
|
||||
<property name="subtitle">Not connected</property>
|
||||
<style><class name="property"/></style>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="AdwButtonRow" id="validate">
|
||||
<property name="title">Connect and save</property>
|
||||
<property name="sensitive">False</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
56
src/song_list.blp
Normal file
56
src/song_list.blp
Normal file
|
@ -0,0 +1,56 @@
|
|||
using Gtk 4.0;
|
||||
using Adw 1;
|
||||
|
||||
template $WaveletSongList: Adw.NavigationPage {
|
||||
title: _("Songs");
|
||||
|
||||
Adw.ToolbarView {
|
||||
[top]
|
||||
Adw.HeaderBar {}
|
||||
|
||||
Stack stack {
|
||||
StackPage {
|
||||
name: "loading";
|
||||
|
||||
child: Adw.Spinner {};
|
||||
}
|
||||
|
||||
StackPage {
|
||||
name: "ready";
|
||||
|
||||
child: ScrolledWindow {
|
||||
ColumnView column_view {
|
||||
ColumnViewColumn title_column {
|
||||
title: "Title";
|
||||
resizable: true;
|
||||
|
||||
factory: SignalListItemFactory {};
|
||||
}
|
||||
|
||||
ColumnViewColumn album_column {
|
||||
title: "Album";
|
||||
resizable: true;
|
||||
|
||||
factory: SignalListItemFactory {};
|
||||
}
|
||||
|
||||
ColumnViewColumn artist_column {
|
||||
title: "Artist";
|
||||
resizable: true;
|
||||
|
||||
factory: SignalListItemFactory {};
|
||||
}
|
||||
|
||||
ColumnViewColumn track_column {
|
||||
title: "#";
|
||||
resizable: true;
|
||||
|
||||
factory: SignalListItemFactory {};
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,76 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<requires lib="Adw" version="1.0"/>
|
||||
<template class="WaveletSongList" parent="AdwNavigationPage">
|
||||
<property name="title" translatable="true">Songs</property>
|
||||
<child>
|
||||
<object class="AdwToolbarView">
|
||||
<child type="top">
|
||||
<object class="AdwHeaderBar"></object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStack" id="stack">
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">loading</property>
|
||||
<property name="child">
|
||||
<object class="AdwSpinner"/>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">ready</property>
|
||||
<property name="child">
|
||||
<object class="GtkScrolledWindow">
|
||||
<child>
|
||||
<object class="GtkColumnView" id="column_view">
|
||||
<child>
|
||||
<object class="GtkColumnViewColumn" id="title_column">
|
||||
<property name="title">Title</property>
|
||||
<property name="resizable">True</property>
|
||||
<property name="factory">
|
||||
<object class="GtkSignalListItemFactory"/>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkColumnViewColumn" id="album_column">
|
||||
<property name="title">Album</property>
|
||||
<property name="resizable">True</property>
|
||||
<property name="factory">
|
||||
<object class="GtkSignalListItemFactory"/>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkColumnViewColumn" id="artist_column">
|
||||
<property name="title">Artist</property>
|
||||
<property name="resizable">True</property>
|
||||
<property name="factory">
|
||||
<object class="GtkSignalListItemFactory"/>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkColumnViewColumn" id="track_column">
|
||||
<property name="title">#</property>
|
||||
<property name="resizable">True</property>
|
||||
<property name="factory">
|
||||
<object class="GtkSignalListItemFactory"/>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</template>
|
||||
</interface>
|
9
src/song_list_song.blp
Normal file
9
src/song_list_song.blp
Normal file
|
@ -0,0 +1,9 @@
|
|||
using Gtk 4.0;
|
||||
|
||||
template ListItem {
|
||||
child: Label {
|
||||
halign: start;
|
||||
label: bind template.item as <$WaveletSong>.title;
|
||||
};
|
||||
}
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<requires lib="Adw" version="1.0"/>
|
||||
<template class="GtkListItem">
|
||||
<property name="child">
|
||||
<object class="GtkLabel">
|
||||
<property name="halign">start</property>
|
||||
<binding name="label">
|
||||
<lookup type="WaveletSong" name="title">
|
||||
<lookup name="item">GtkListItem</lookup>
|
||||
</lookup>
|
||||
</binding>
|
||||
</object>
|
||||
</property>
|
||||
</template>
|
||||
</interface>
|
200
src/window.blp
Normal file
200
src/window.blp
Normal file
|
@ -0,0 +1,200 @@
|
|||
using Gtk 4.0;
|
||||
using Adw 1;
|
||||
|
||||
template $WaveletWindow: Adw.ApplicationWindow {
|
||||
title: _("Wavelet");
|
||||
default-width: 800;
|
||||
default-height: 600;
|
||||
|
||||
content: Box {
|
||||
orientation: vertical;
|
||||
|
||||
Adw.OverlaySplitView {
|
||||
vexpand: true;
|
||||
|
||||
[sidebar]
|
||||
Adw.NavigationPage {
|
||||
width-request: 100;
|
||||
title: _("Wavelet");
|
||||
|
||||
Adw.ToolbarView {
|
||||
[top]
|
||||
Adw.HeaderBar {}
|
||||
|
||||
content: Box {
|
||||
orientation: vertical;
|
||||
|
||||
ListBox sidebar {
|
||||
styles [
|
||||
"navigation-sidebar",
|
||||
]
|
||||
|
||||
ListBoxRow sidebar_setup {
|
||||
Label {
|
||||
xalign: 0;
|
||||
label: "Setup";
|
||||
}
|
||||
}
|
||||
|
||||
ListBoxRow sidebar_play_queue {
|
||||
Label {
|
||||
xalign: 0;
|
||||
label: "Play queue";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Separator {}
|
||||
|
||||
ListBox {
|
||||
selection-mode: none;
|
||||
|
||||
styles [
|
||||
"navigation-sidebar",
|
||||
]
|
||||
|
||||
Adw.ButtonRow {
|
||||
title: "Shuffle all tracks";
|
||||
start-icon-name: "media-playlist-shuffle";
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
[content]
|
||||
Stack stack {
|
||||
StackPage {
|
||||
name: "setup";
|
||||
title: "Setup";
|
||||
|
||||
child: $WaveletSetup setup {};
|
||||
}
|
||||
|
||||
StackPage {
|
||||
name: "artist_list";
|
||||
title: "Artists";
|
||||
|
||||
child: $WaveletArtistList artist_list {};
|
||||
}
|
||||
|
||||
StackPage {
|
||||
name: "song_list";
|
||||
title: "Songs";
|
||||
|
||||
child: $WaveletSongList song_list {};
|
||||
}
|
||||
|
||||
StackPage {
|
||||
name: "play_queue";
|
||||
title: "Play queue";
|
||||
|
||||
child: $WaveletPlayQueue play_queue {};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[bottom]
|
||||
Box {
|
||||
orientation: horizontal;
|
||||
|
||||
styles [
|
||||
"toolbar",
|
||||
]
|
||||
|
||||
Image {
|
||||
height-request: 100;
|
||||
width-request: 100;
|
||||
}
|
||||
|
||||
Box {
|
||||
orientation: vertical;
|
||||
valign: center;
|
||||
|
||||
Label {
|
||||
halign: start;
|
||||
label: "Title";
|
||||
}
|
||||
|
||||
Label {
|
||||
halign: start;
|
||||
label: "Artist - Album - Year";
|
||||
}
|
||||
|
||||
Box {
|
||||
halign: start;
|
||||
orientation: horizontal;
|
||||
|
||||
Label {
|
||||
label: "00:00";
|
||||
}
|
||||
|
||||
Scale {
|
||||
orientation: horizontal;
|
||||
width-request: 200;
|
||||
|
||||
adjustment: Adjustment {
|
||||
lower: 0;
|
||||
upper: 100;
|
||||
value: 0;
|
||||
};
|
||||
}
|
||||
|
||||
Label {
|
||||
label: "99:99";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Separator {
|
||||
styles [
|
||||
"spacer",
|
||||
]
|
||||
|
||||
hexpand: true;
|
||||
}
|
||||
|
||||
Button {
|
||||
icon-name: "media-skip-backward";
|
||||
valign: center;
|
||||
}
|
||||
|
||||
Button {
|
||||
icon-name: "media-playback-start";
|
||||
valign: center;
|
||||
}
|
||||
|
||||
Button {
|
||||
icon-name: "media-skip-forward";
|
||||
valign: center;
|
||||
}
|
||||
|
||||
Button {
|
||||
icon-name: "non-starred";
|
||||
valign: center;
|
||||
}
|
||||
|
||||
Button {
|
||||
icon-name: "audio-volume-high";
|
||||
valign: center;
|
||||
}
|
||||
|
||||
Scale {
|
||||
orientation: horizontal;
|
||||
width-request: 130;
|
||||
|
||||
adjustment: Adjustment {
|
||||
lower: 0;
|
||||
upper: 100;
|
||||
value: 100;
|
||||
};
|
||||
}
|
||||
|
||||
Button {
|
||||
icon-name: "media-playlist-consecutive";
|
||||
valign: center;
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
241
src/window.ui
241
src/window.ui
|
@ -1,241 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<requires lib="Adw" version="1.0"/>
|
||||
<template class="WaveletWindow" parent="AdwApplicationWindow">
|
||||
<property name="title" translatable="yes">Wavelet</property>
|
||||
|
||||
<property name="default-width">800</property>
|
||||
<property name="default-height">600</property>
|
||||
<property name="content">
|
||||
<object class="GtkBox">
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="AdwOverlaySplitView">
|
||||
<property name="vexpand">true</property>
|
||||
<child type="sidebar">
|
||||
<object class="AdwNavigationPage">
|
||||
<property name="width-request">100</property>
|
||||
<property name="title" translatable="true">Wavelet</property>
|
||||
<child>
|
||||
<object class="AdwToolbarView">
|
||||
<child type="top">
|
||||
<object class="AdwHeaderBar">
|
||||
</object>
|
||||
</child>
|
||||
<property name="content">
|
||||
<object class="GtkBox">
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkListBox" id="sidebar">
|
||||
<style><class name="navigation-sidebar"/></style>
|
||||
<child>
|
||||
<object class="GtkListBoxRow" id="sidebar_setup">
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="xalign">0</property>
|
||||
<property name="label">Setup</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkListBoxRow" id="sidebar_play_queue">
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="xalign">0</property>
|
||||
<property name="label">Play queue</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparator">
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkListBox">
|
||||
<property name="selection-mode">none</property>
|
||||
<style><class name="navigation-sidebar"/></style>
|
||||
<child>
|
||||
<object class="AdwButtonRow">
|
||||
<property name="title">Shuffle all tracks</property>
|
||||
<property name="start-icon-name">media-playlist-shuffle</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child type="content">
|
||||
<object class="GtkStack" id="stack">
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">setup</property>
|
||||
<property name="title">Setup</property>
|
||||
<property name="child">
|
||||
<object class="WaveletSetup" id="setup"/>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">artist_list</property>
|
||||
<property name="title">Artists</property>
|
||||
<property name="child">
|
||||
<object class="WaveletArtistList" id="artist_list"/>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">song_list</property>
|
||||
<property name="title">Songs</property>
|
||||
<property name="child">
|
||||
<object class="WaveletSongList" id="song_list"/>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">play_queue</property>
|
||||
<property name="title">Play queue</property>
|
||||
<property name="child">
|
||||
<object class="WaveletPlayQueue" id="play_queue"/>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child type="bottom">
|
||||
<object class="GtkBox">
|
||||
<property name="orientation">0</property>
|
||||
<style>
|
||||
<class name="toolbar"/>
|
||||
</style>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="height-request">100</property>
|
||||
<property name="width-request">100</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="orientation">1</property>
|
||||
<property name="valign">3</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="halign">1</property>
|
||||
<property name="label">Title</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="halign">1</property>
|
||||
<property name="label">Artist - Album - Year</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="halign">1</property>
|
||||
<property name="orientation">0</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="label">00:00</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkScale">
|
||||
<property name="orientation">0</property>
|
||||
<property name="width-request">200</property>
|
||||
<property name="adjustment">
|
||||
<object class="GtkAdjustment">
|
||||
<property name="lower">0</property>
|
||||
<property name="upper">100</property>
|
||||
<property name="value">0</property>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="label">99:99</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparator">
|
||||
<style>
|
||||
<class name="spacer"/>
|
||||
</style>
|
||||
<property name="hexpand">true</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="icon-name">media-skip-backward</property>
|
||||
<property name="valign">3</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="icon-name">media-playback-start</property>
|
||||
<property name="valign">3</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="icon-name">media-skip-forward</property>
|
||||
<property name="valign">3</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="icon-name">non-starred</property>
|
||||
<property name="valign">3</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="icon-name">audio-volume-high</property>
|
||||
<property name="valign">3</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkScale">
|
||||
<property name="orientation">0</property>
|
||||
<property name="width-request">130</property>
|
||||
<property name="adjustment">
|
||||
<object class="GtkAdjustment">
|
||||
<property name="lower">0</property>
|
||||
<property name="upper">100</property>
|
||||
<property name="value">100</property>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="icon-name">media-playlist-consecutive</property>
|
||||
<property name="valign">3</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
</template>
|
||||
</interface>
|
Loading…
Reference in a new issue