summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJA <jagw40k@free.fr>2024-04-26 17:38:54 +0200
committerJA <jagw40k@free.fr>2024-04-26 17:38:54 +0200
commitd600f47de1a1677f796440d531c8fada32efbb25 (patch)
treece018eff40a6ff3df8a1ff62fa259ca5525a9b85 /src
parent64881e3db00827207326df4afafc91ea2caba1c7 (diff)
Split pavucontrol.glade into separate .ui files
and some cleanup
Diffstat (limited to 'src')
-rw-r--r--src/cardwidget.cc2
-rw-r--r--src/cardwidget.ui104
-rw-r--r--src/channelwidget.cc4
-rw-r--r--src/channelwidget.ui42
-rw-r--r--src/devicewidget.cc2
-rw-r--r--src/devicewidget.ui260
-rw-r--r--src/mainwindow.cc7
-rw-r--r--src/mainwindow.ui467
-rw-r--r--src/pavucontrol.glade1058
-rw-r--r--src/renamedialog.ui56
-rw-r--r--src/resources.gresource.xml7
-rw-r--r--src/rolewidget.cc2
-rw-r--r--src/sinkinputwidget.cc2
-rw-r--r--src/sinkwidget.cc2
-rw-r--r--src/sourceoutputwidget.cc2
-rw-r--r--src/sourcewidget.cc2
-rw-r--r--src/streamwidget.ui114
17 files changed, 1058 insertions, 1075 deletions
diff --git a/src/cardwidget.cc b/src/cardwidget.cc
index f2aa618..05e0d0b 100644
--- a/src/cardwidget.cc
+++ b/src/cardwidget.cc
@@ -60,7 +60,7 @@ CardWidget::CardWidget(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>
CardWidget* CardWidget::create() {
CardWidget* w;
- Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_resource("/org/pulseaudio/pavucontrol/ui/pavucontrol.glade", "cardWidget");
+ Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_resource("/org/pulseaudio/pavucontrol/ui/cardwidget.ui", "cardWidget");
w = Gtk::Builder::get_widget_derived<CardWidget>(x, "cardWidget");
w->reference();
return w;
diff --git a/src/cardwidget.ui b/src/cardwidget.ui
new file mode 100644
index 0000000..effd2e3
--- /dev/null
+++ b/src/cardwidget.ui
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk" version="4.0"/>
+ <object class="GtkBox" id="cardWidget">
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkBox">
+ <property name="valign">center</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">12</property>
+ <property name="margin-end">12</property>
+ <property name="margin-bottom">12</property>
+ <child>
+ <object class="GtkBox">
+ <property name="valign">center</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkImage" id="cardIconImage">
+ <property name="icon_name">gtk-missing-image</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="hexpand">1</property>
+ <child>
+ <object class="GtkLabel" id="cardNameLabel">
+ <property name="hexpand">1</property>
+ <property name="label" translatable="1">Card Name</property>
+ <property name="use_markup">1</property>
+ <property name="ellipsize">middle</property>
+ <property name="xalign">0</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="spacing">3</property>
+ <child>
+ <object class="GtkToggleButton" id="profileLockToggleButton">
+ <property name="halign">center</property>
+ <property name="focusable">1</property>
+ <property name="tooltip_text" translatable="1">Lock card to this profile</property>
+ <property name="has-frame">0</property>
+ <property name="active">1</property>
+ <child>
+ <object class="GtkImage">
+ <property name="icon_name">changes-prevent</property>
+ <property name="icon_size">normal</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="valign">center</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="label" translatable="1">&lt;b&gt;Profile:&lt;/b&gt;</property>
+ <property name="use_markup">1</property>
+ <property name="xalign">0</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="profileList">
+ <property name="hexpand">1</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox" id="codecBox">
+ <property name="halign">center</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="label" translatable="1">&lt;b&gt;Codec:&lt;/b&gt;</property>
+ <property name="use_markup">1</property>
+ <property name="xalign">0</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="codecList">
+ <property name="hexpand">1</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparator">
+ <property name="valign">center</property>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/src/channelwidget.cc b/src/channelwidget.cc
index 499bd46..746e8df 100644
--- a/src/channelwidget.cc
+++ b/src/channelwidget.cc
@@ -49,9 +49,7 @@ ChannelWidget::ChannelWidget(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Bu
ChannelWidget* ChannelWidget::createOne(MinimalStreamWidget *owner, int channelIndex, pa_channel_position channelPosition, bool can_decibel) {
ChannelWidget* w;
- Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create();
- x->add_from_resource("/org/pulseaudio/pavucontrol/ui/pavucontrol.glade", "adjustment1");
- x->add_from_resource("/org/pulseaudio/pavucontrol/ui/pavucontrol.glade", "channelWidget");
+ Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_resource("/org/pulseaudio/pavucontrol/ui/channelwidget.ui", "channelWidget");
w = Gtk::Builder::get_widget_derived<ChannelWidget>(x, "channelWidget");
w->reference();
diff --git a/src/channelwidget.ui b/src/channelwidget.ui
new file mode 100644
index 0000000..66e6775
--- /dev/null
+++ b/src/channelwidget.ui
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk" version="4.0"/>
+ <object class="GtkBox" id="channelWidget">
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="channelLabel">
+ <property name="halign">center</property>
+ <property name="label" translatable="1">&lt;b&gt;left-front&lt;/b&gt;</property>
+ <property name="use_markup">1</property>
+ <property name="xalign">1</property>
+ <property name="yalign">0</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkScale" id="volumeScale">
+ <property name="hexpand">1</property>
+ <property name="focusable">1</property>
+ <property name="adjustment">
+ <object class="GtkAdjustment">
+ <property name="upper">100</property>
+ <property name="step_increment">5</property>
+ </object>
+ </property>
+ <property name="digits">0</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="volumeLabel">
+ <property name="halign">center</property>
+ <property name="margin_start">8</property>
+ <property name="margin_end">8</property>
+ <property name="label" translatable="1">&lt;small&gt;50%&lt;/small&gt;</property>
+ <property name="use_markup">1</property>
+ <property name="justify">right</property>
+ <property name="width_chars">12</property>
+ <property name="xalign">1</property>
+ <property name="yalign">0</property>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/src/devicewidget.cc b/src/devicewidget.cc
index d7212d8..ba2821d 100644
--- a/src/devicewidget.cc
+++ b/src/devicewidget.cc
@@ -261,7 +261,7 @@ void DeviceWidget::openRenamePopup(const Glib::VariantBase& parameter) {
return;
}
- Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_resource("/org/pulseaudio/pavucontrol/ui/pavucontrol.glade", "renameDialog");
+ Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_resource("/org/pulseaudio/pavucontrol/ui/renamedialog.ui", "renameDialog");
gchar *key = g_markup_printf_escaped("%s:%s", mDeviceType.c_str(), name.c_str());
RenameWindow* renameDialog = Gtk::Builder::get_widget_derived<RenameWindow>(x, "renameDialog", description.c_str(), key);
renameDialog->set_transient_for(*mpMainWindow);
diff --git a/src/devicewidget.ui b/src/devicewidget.ui
new file mode 100644
index 0000000..7d23b4c
--- /dev/null
+++ b/src/devicewidget.ui
@@ -0,0 +1,260 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkBox" id="deviceWidget">
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkBox">
+ <property name="valign">center</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">12</property>
+ <property name="margin-end">12</property>
+ <property name="margin-bottom">12</property>
+ <child>
+ <object class="GtkBox">
+ <property name="valign">center</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkImage" id="deviceIconImage">
+ <property name="icon_name">gtk-missing-image</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="hexpand">1</property>
+ <child>
+ <object class="GtkLabel" id="deviceBoldNameLabel">
+ <property name="use_markup">1</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="deviceNameLabel">
+ <property name="label" translatable="1">Device Title</property>
+ <property name="use_markup">1</property>
+ <property name="ellipsize">end</property>
+ <property name="xalign">0</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="spacing">3</property>
+ <child>
+ <object class="GtkToggleButton" id="deviceMuteToggleButton">
+ <property name="halign">center</property>
+ <property name="focusable">1</property>
+ <property name="tooltip_text" translatable="1">Mute audio</property>
+ <property name="has-frame">0</property>
+ <child>
+ <object class="GtkImage">
+ <property name="icon_name">audio-volume-muted</property>
+ <property name="icon_size">normal</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkToggleButton" id="deviceLockToggleButton">
+ <property name="halign">center</property>
+ <property name="focusable">1</property>
+ <property name="tooltip_text" translatable="1">Lock channels together</property>
+ <property name="has-frame">0</property>
+ <property name="active">1</property>
+ <child>
+ <object class="GtkImage">
+ <property name="icon_name">changes-prevent</property>
+ <property name="icon_size">normal</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkToggleButton" id="defaultToggleButton">
+ <property name="halign">center</property>
+ <property name="focusable">1</property>
+ <property name="tooltip_text" translatable="1">Set as default</property>
+ <child>
+ <object class="GtkImage">
+ <property name="icon_name">emblem-default</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox" id="portSelect">
+ <property name="valign">center</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="label" translatable="1">&lt;b&gt;Port:&lt;/b&gt;</property>
+ <property name="use_markup">1</property>
+ <property name="xalign">0</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="portList">
+ <property name="hexpand">1</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox" id="deviceChannelsVBox">
+ <property name="valign">center</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkExpander" id="advancedOptions">
+ <property name="valign">center</property>
+ <property name="visible">0</property>
+ <property name="focusable">1</property>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkGrid" id="encodingSelect">
+ <property name="valign">center</property>
+ <property name="visible">0</property>
+ <property name="row_homogeneous">1</property>
+ <property name="column_homogeneous">1</property>
+ <child>
+ <object class="GtkCheckButton" id="encodingFormatPCM">
+ <property name="label" translatable="1">PCM</property>
+ <property name="sensitive">0</property>
+ <property name="focusable">1</property>
+ <property name="active">1</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">0</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="encodingFormatAC3">
+ <property name="label" translatable="1">AC-3</property>
+ <property name="focusable">1</property>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">0</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="encodingFormatDTS">
+ <property name="label" translatable="1">DTS</property>
+ <property name="focusable">1</property>
+ <layout>
+ <property name="column">2</property>
+ <property name="row">0</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="encodingFormatEAC3">
+ <property name="label" translatable="1">E-AC-3</property>
+ <property name="focusable">1</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">1</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="encodingFormatMPEG">
+ <property name="label" translatable="1">MPEG</property>
+ <property name="focusable">1</property>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">1</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="encodingFormatAAC">
+ <property name="label" translatable="1">AAC</property>
+ <property name="focusable">1</property>
+ <layout>
+ <property name="column">2</property>
+ <property name="row">1</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="encodingFormatTRUEHD">
+ <property name="label" translatable="1">TrueHD</property>
+ <property name="focusable">1</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">2</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="encodingFormatDTSHD">
+ <property name="label" translatable="1">DTS-HD</property>
+ <property name="focusable">1</property>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">2</property>
+ </layout>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox" id="offsetSelect">
+ <property name="valign">center</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="label" translatable="1">&lt;b&gt;Latency offset:&lt;/b&gt;</property>
+ <property name="use_markup">1</property>
+ <property name="xalign">0</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="offsetButton">
+ <property name="hexpand">1</property>
+ <property name="focusable">1</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label" translatable="1">ms</property>
+ <property name="use_markup">1</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="advancedLabel">
+ <property name="label" translatable="1">Advanced</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparator">
+ <property name="valign">center</property>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/src/mainwindow.cc b/src/mainwindow.cc
index e9c2518..dab8c1b 100644
--- a/src/mainwindow.cc
+++ b/src/mainwindow.cc
@@ -181,12 +181,7 @@ MainWindow::MainWindow(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>
MainWindow* MainWindow::create(bool maximize) {
MainWindow* w;
- Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create();
- x->add_from_resource("/org/pulseaudio/pavucontrol/ui/pavucontrol.glade", "liststore1");
- x->add_from_resource("/org/pulseaudio/pavucontrol/ui/pavucontrol.glade", "liststore2");
- x->add_from_resource("/org/pulseaudio/pavucontrol/ui/pavucontrol.glade", "liststore3");
- x->add_from_resource("/org/pulseaudio/pavucontrol/ui/pavucontrol.glade", "liststore4");
- x->add_from_resource("/org/pulseaudio/pavucontrol/ui/pavucontrol.glade", "mainWindow");
+ Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_resource("/org/pulseaudio/pavucontrol/ui/mainwindow.ui", "mainWindow");
w = Gtk::Builder::get_widget_derived<MainWindow>(x, "mainWindow");
w->get_style_context()->add_class("pavucontrol-window");
if (w && maximize)
diff --git a/src/mainwindow.ui b/src/mainwindow.ui
new file mode 100644
index 0000000..d6e92b7
--- /dev/null
+++ b/src/mainwindow.ui
@@ -0,0 +1,467 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk" version="4.0"/>
+ <object class="GtkWindow" id="mainWindow">
+ <property name="title" translatable="1">Volume Control</property>
+ <property name="default_width">500</property>
+ <property name="default_height">400</property>
+ <property name="icon_name">multimedia-volume-control</property>
+ <child>
+ <placeholder/>
+ </child>
+ <property name="child">
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkNotebook" id="notebook">
+ <property name="vexpand">1</property>
+ <property name="focusable">1</property>
+ <property name="show_border">0</property>
+ <property name="scrollable">1</property>
+ <child>
+ <object class="GtkNotebookPage">
+ <property name="child">
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkScrolledWindow">
+ <property name="vexpand">1</property>
+ <property name="focusable">1</property>
+ <property name="child">
+ <object class="GtkViewport">
+ <property name="child">
+ <object class="GtkBox" id="streamsVBox">
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel" id="noStreamsLabel">
+ <property name="vexpand">1</property>
+ <property name="sensitive">0</property>
+ <property name="label" translatable="1">&lt;i&gt;No application is currently playing audio.&lt;/i&gt;</property>
+ <property name="use_markup">1</property>
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparator">
+ <property name="valign">center</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="spacing">6</property>
+ <property name="margin-top">12</property>
+ <property name="margin-bottom">12</property>
+ <property name="margin-start">12</property>
+ <property name="margin-end">12</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="hexpand">1</property>
+ <property name="label" translatable="1">&lt;b&gt;_Show:&lt;/b&gt;</property>
+ <property name="use_markup">1</property>
+ <property name="use_underline">1</property>
+ <property name="xalign">1</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="sinkInputTypeComboBox">
+ <property name="hexpand">1</property>
+ <property name="model">
+ <object class="GtkListStore">
+ <columns>
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">All Streams</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Applications</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Virtual Streams</col>
+ </row>
+ </data>
+ </object>
+ </property>
+ <child>
+ <object class="GtkCellRendererText"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </property>
+ <property name="tab">
+ <object class="GtkLabel">
+ <property name="label" translatable="1">_Playback</property>
+ <property name="use_underline">1</property>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkNotebookPage">
+ <property name="child">
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkScrolledWindow">
+ <property name="vexpand">1</property>
+ <property name="focusable">1</property>
+ <property name="child">
+ <object class="GtkViewport">
+ <property name="child">
+ <object class="GtkBox" id="recsVBox">
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel" id="noRecsLabel">
+ <property name="vexpand">1</property>
+ <property name="sensitive">0</property>
+ <property name="label" translatable="1">&lt;i&gt;No application is currently recording audio.&lt;/i&gt;</property>
+ <property name="use_markup">1</property>
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparator">
+ <property name="valign">center</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="spacing">6</property>
+ <property name="margin-top">12</property>
+ <property name="margin-bottom">12</property>
+ <property name="margin-start">12</property>
+ <property name="margin-end">12</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="hexpand">1</property>
+ <property name="label" translatable="1">&lt;b&gt;_Show:&lt;/b&gt;</property>
+ <property name="use_markup">1</property>
+ <property name="use_underline">1</property>
+ <property name="xalign">1</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="sourceOutputTypeComboBox">
+ <property name="hexpand">1</property>
+ <property name="model">
+ <object class="GtkListStore">
+ <columns>
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">All Streams</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Applications</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Virtual Streams</col>
+ </row>
+ </data>
+ </object>
+ </property>
+ <child>
+ <object class="GtkCellRendererText"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </property>
+ <property name="tab">
+ <object class="GtkLabel">
+ <property name="label" translatable="1">_Recording</property>
+ <property name="use_underline">1</property>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkNotebookPage">
+ <property name="child">
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkScrolledWindow">
+ <property name="vexpand">1</property>
+ <property name="focusable">1</property>
+ <property name="child">
+ <object class="GtkViewport">
+ <property name="child">
+ <object class="GtkBox" id="sinksVBox">
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel" id="noSinksLabel">
+ <property name="vexpand">1</property>
+ <property name="sensitive">0</property>
+ <property name="label" translatable="1">&lt;i&gt;No output devices available&lt;/i&gt;</property>
+ <property name="use_markup">1</property>
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparator">
+ <property name="valign">center</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="spacing">6</property>
+ <property name="margin-top">12</property>
+ <property name="margin-bottom">12</property>
+ <property name="margin-start">12</property>
+ <property name="margin-end">12</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="hexpand">1</property>
+ <property name="label" translatable="1">&lt;b&gt;S_how:&lt;/b&gt;</property>
+ <property name="use_markup">1</property>
+ <property name="use_underline">1</property>
+ <property name="mnemonic_widget">sinkTypeComboBox</property>
+ <property name="xalign">1</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="sinkTypeComboBox">
+ <property name="hexpand">1</property>
+ <property name="model">
+ <object class="GtkListStore">
+ <columns>
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">All Output Devices</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Hardware Output Devices</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Virtual Output Devices</col>
+ </row>
+ </data>
+ </object>
+ </property>
+ <child>
+ <object class="GtkCellRendererText"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </property>
+ <property name="tab">
+ <object class="GtkLabel">
+ <property name="label" translatable="1">_Output Devices</property>
+ <property name="use_underline">1</property>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkNotebookPage">
+ <property name="child">
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkScrolledWindow">
+ <property name="vexpand">1</property>
+ <property name="focusable">1</property>
+ <property name="child">
+ <object class="GtkViewport">
+ <property name="child">
+ <object class="GtkBox" id="sourcesVBox">
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel" id="noSourcesLabel">
+ <property name="vexpand">1</property>
+ <property name="sensitive">0</property>
+ <property name="label" translatable="1">&lt;i&gt;No input devices available&lt;/i&gt;</property>
+ <property name="use_markup">1</property>
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparator">
+ <property name="valign">center</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="spacing">6</property>
+ <property name="margin-top">12</property>
+ <property name="margin-bottom">12</property>
+ <property name="margin-start">12</property>
+ <property name="margin-end">12</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="hexpand">1</property>
+ <property name="label" translatable="1">&lt;b&gt;Sho_w:&lt;/b&gt;</property>
+ <property name="use_markup">1</property>
+ <property name="use_underline">1</property>
+ <property name="mnemonic_widget">sourceTypeComboBox</property>
+ <property name="xalign">1</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="sourceTypeComboBox">
+ <property name="hexpand">1</property>
+ <property name="model">
+ <object class="GtkListStore">
+ <columns>
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">All Input Devices</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">All Except Monitors</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Hardware Input Devices</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Virtual Input Devices</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Monitors</col>
+ </row>
+ </data>
+ </object>
+ </property>
+ <child>
+ <object class="GtkCellRendererText"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </property>
+ <property name="tab">
+ <object class="GtkLabel">
+ <property name="label" translatable="1">_Input Devices</property>
+ <property name="use_underline">1</property>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkNotebookPage">
+ <property name="child">
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkScrolledWindow">
+ <property name="vexpand">1</property>
+ <property name="focusable">1</property>
+ <property name="child">
+ <object class="GtkViewport">
+ <property name="child">
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkBox" id="cardsVBox">
+ <property name="vexpand">1</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel" id="noCardsLabel">
+ <property name="vexpand">1</property>
+ <property name="sensitive">0</property>
+ <property name="label" translatable="1">&lt;i&gt;No cards available for configuration&lt;/i&gt;</property>
+ <property name="use_markup">1</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="vexpand-set">1</property>
+ <child>
+ <object class="GtkSeparator"/>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="showVolumeMetersCheckButton">
+ <property name="label" translatable="1">Show volume meters</property>
+ <property name="focusable">1</property>
+ <property name="active">1</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
+ </property>
+ </object>
+ </child>
+ </object>
+ </property>
+ <property name="tab">
+ <object class="GtkLabel">
+ <property name="label" translatable="1">_Configuration</property>
+ <property name="use_underline">1</property>
+ </object>
+ </property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="connectingLabel">
+ <property name="vexpand">1</property>
+ <property name="visible">0</property>
+ <property name="label">...</property>
+ <property name="use_markup">1</property>
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
+</interface>
diff --git a/src/pavucontrol.glade b/src/pavucontrol.glade
deleted file mode 100644
index 5f83859..0000000
--- a/src/pavucontrol.glade
+++ /dev/null
@@ -1,1058 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<interface>
- <requires lib="gtk" version="4.0"/>
- <object class="GtkAdjustment" id="adjustment1">
- <property name="upper">100</property>
- <property name="value">44.2408370972</property>
- <property name="step_increment">5</property>
- </object>
- <object class="GtkWindow" id="channelWindow">
- <property name="visible">1</property>
- <property name="title" translatable="1">window2</property>
- <child>
- <placeholder/>
- </child>
- <property name="child">
- <object class="GtkBox" id="channelWidget">
- <property name="spacing">6</property>
- <child>
- <object class="GtkLabel" id="channelLabel">
- <property name="halign">center</property>
- <property name="label" translatable="1">&lt;b&gt;left-front&lt;/b&gt;</property>
- <property name="use_markup">1</property>
- <property name="xalign">1</property>
- <property name="yalign">0</property>
- </object>
- </child>
- <child>
- <object class="GtkScale" id="volumeScale">
- <property name="hexpand">1</property>
- <property name="focusable">1</property>
- <property name="adjustment">adjustment1</property>
- <property name="digits">0</property>
- </object>
- </child>
- <child>
- <object class="GtkLabel" id="volumeLabel">
- <property name="halign">center</property>
- <property name="margin_start">8</property>
- <property name="margin_end">8</property>
- <property name="label" translatable="1">&lt;small&gt;50%&lt;/small&gt;</property>
- <property name="use_markup">1</property>
- <property name="justify">right</property>
- <property name="width_chars">12</property>
- <property name="xalign">1</property>
- <property name="yalign">0</property>
- </object>
- </child>
- </object>
- </property>
- </object>
- <object class="GtkWindow" id="cardWindow">
- <property name="visible">1</property>
- <property name="title" translatable="1">window1</property>
- <child>
- <placeholder/>
- </child>
- <property name="child">
- <object class="GtkBox" id="cardWidget">
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkBox">
- <property name="valign">center</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
- <property name="margin-start">12</property>
- <property name="margin-top">12</property>
- <property name="margin-end">12</property>
- <property name="margin-bottom">12</property>
- <child>
- <object class="GtkBox">
- <property name="valign">center</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkImage" id="cardIconImage">
- <property name="icon_name">gtk-missing-image</property>
- </object>
- </child>
- <child>
- <object class="GtkBox">
- <property name="hexpand">1</property>
- <child>
- <object class="GtkLabel" id="cardNameLabel">
- <property name="hexpand">1</property>
- <property name="label" translatable="1">Card Name</property>
- <property name="use_markup">1</property>
- <property name="ellipsize">middle</property>
- <property name="xalign">0</property>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkBox">
- <property name="spacing">3</property>
- <child>
- <object class="GtkToggleButton" id="profileLockToggleButton">
- <property name="halign">center</property>
- <property name="focusable">1</property>
- <property name="tooltip_text" translatable="1">Lock card to this profile</property>
- <property name="has-frame">0</property>
- <property name="active">1</property>
- <child>
- <object class="GtkImage">
- <property name="icon_name">changes-prevent</property>
- <property name="icon_size">normal</property>
- </object>
- </child>
- </object>
- </child>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkBox">
- <property name="valign">center</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkLabel">
- <property name="label" translatable="1">&lt;b&gt;Profile:&lt;/b&gt;</property>
- <property name="use_markup">1</property>
- <property name="xalign">0</property>
- </object>
- </child>
- <child>
- <object class="GtkComboBox" id="profileList">
- <property name="hexpand">1</property>
- </object>
- </child>
- <child>
- <object class="GtkBox" id="codecBox">
- <property name="halign">center</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkLabel">
- <property name="label" translatable="1">&lt;b&gt;Codec:&lt;/b&gt;</property>
- <property name="use_markup">1</property>
- <property name="xalign">0</property>
- </object>
- </child>
- <child>
- <object class="GtkComboBox" id="codecList">
- <property name="hexpand">1</property>
- </object>
- </child>
- </object>
- </child>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkSeparator">
- <property name="valign">center</property>
- </object>
- </child>
- </object>
- </property>
- </object>
- <object class="GtkWindow" id="deviceWindow">
- <property name="visible">1</property>
- <property name="title" translatable="1">window1</property>
- <child>
- <placeholder/>
- </child>
- <property name="child">
- <object class="GtkBox" id="deviceWidget">
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkBox">
- <property name="valign">center</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
- <property name="margin-start">12</property>
- <property name="margin-top">12</property>
- <property name="margin-end">12</property>
- <property name="margin-bottom">12</property>
- <child>
- <object class="GtkBox">
- <property name="valign">center</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkImage" id="deviceIconImage">
- <property name="icon_name">gtk-missing-image</property>
- </object>
- </child>
- <child>
- <object class="GtkBox">
- <property name="hexpand">1</property>
- <child>
- <object class="GtkLabel" id="deviceBoldNameLabel">
- <property name="use_markup">1</property>
- </object>
- </child>
- <child>
- <object class="GtkLabel" id="deviceNameLabel">
- <property name="label" translatable="1">Device Title</property>
- <property name="use_markup">1</property>
- <property name="ellipsize">end</property>
- <property name="xalign">0</property>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkBox">
- <property name="spacing">3</property>
- <child>
- <object class="GtkToggleButton" id="deviceMuteToggleButton">
- <property name="halign">center</property>
- <property name="focusable">1</property>
- <property name="tooltip_text" translatable="1">Mute audio</property>
- <property name="has-frame">0</property>
- <child>
- <object class="GtkImage">
- <property name="icon_name">audio-volume-muted</property>
- <property name="icon_size">normal</property>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkToggleButton" id="deviceLockToggleButton">
- <property name="halign">center</property>
- <property name="focusable">1</property>
- <property name="tooltip_text" translatable="1">Lock channels together</property>
- <property name="has-frame">0</property>
- <property name="active">1</property>
- <child>
- <object class="GtkImage">
- <property name="icon_name">changes-prevent</property>
- <property name="icon_size">normal</property>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkToggleButton" id="defaultToggleButton">
- <property name="halign">center</property>
- <property name="focusable">1</property>
- <property name="tooltip_text" translatable="1">Set as default</property>
- <child>
- <object class="GtkImage">
- <property name="icon_name">emblem-default</property>
- </object>
- </child>
- </object>
- </child>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkBox" id="portSelect">
- <property name="valign">center</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkLabel">
- <property name="label" translatable="1">&lt;b&gt;Port:&lt;/b&gt;</property>
- <property name="use_markup">1</property>
- <property name="xalign">0</property>
- </object>
- </child>
- <child>
- <object class="GtkComboBox" id="portList">
- <property name="hexpand">1</property>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkBox" id="deviceChannelsVBox">
- <property name="valign">center</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkExpander" id="advancedOptions">
- <property name="valign">center</property>
- <property name="visible">0</property>
- <property name="focusable">1</property>
- <child>
- <object class="GtkBox">
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkGrid" id="encodingSelect">
- <property name="valign">center</property>
- <property name="visible">0</property>
- <property name="row_homogeneous">1</property>
- <property name="column_homogeneous">1</property>
- <child>
- <object class="GtkCheckButton" id="encodingFormatPCM">
- <property name="label" translatable="1">PCM</property>
- <property name="sensitive">0</property>
- <property name="focusable">1</property>
- <property name="active">1</property>
- <layout>
- <property name="column">0</property>
- <property name="row">0</property>
- </layout>
- </object>
- </child>
- <child>
- <object class="GtkCheckButton" id="encodingFormatAC3">
- <property name="label" translatable="1">AC-3</property>
- <property name="focusable">1</property>
- <layout>
- <property name="column">1</property>
- <property name="row">0</property>
- </layout>
- </object>
- </child>
- <child>
- <object class="GtkCheckButton" id="encodingFormatDTS">
- <property name="label" translatable="1">DTS</property>
- <property name="focusable">1</property>
- <layout>
- <property name="column">2</property>
- <property name="row">0</property>
- </layout>
- </object>
- </child>
- <child>
- <object class="GtkCheckButton" id="encodingFormatEAC3">
- <property name="label" translatable="1">E-AC-3</property>
- <property name="focusable">1</property>
- <layout>
- <property name="column">0</property>
- <property name="row">1</property>
- </layout>
- </object>
- </child>
- <child>
- <object class="GtkCheckButton" id="encodingFormatMPEG">
- <property name="label" translatable="1">MPEG</property>
- <property name="focusable">1</property>
- <layout>
- <property name="column">1</property>
- <property name="row">1</property>
- </layout>
- </object>
- </child>
- <child>
- <object class="GtkCheckButton" id="encodingFormatAAC">
- <property name="label" translatable="1">AAC</property>
- <property name="focusable">1</property>
- <layout>
- <property name="column">2</property>
- <property name="row">1</property>
- </layout>
- </object>
- </child>
- <child>
- <object class="GtkCheckButton" id="encodingFormatTRUEHD">
- <property name="label" translatable="1">TrueHD</property>
- <property name="focusable">1</property>
- <layout>
- <property name="column">0</property>
- <property name="row">2</property>
- </layout>
- </object>
- </child>
- <child>
- <object class="GtkCheckButton" id="encodingFormatDTSHD">
- <property name="label" translatable="1">DTS-HD</property>
- <property name="focusable">1</property>
- <layout>
- <property name="column">1</property>
- <property name="row">2</property>
- </layout>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkBox" id="offsetSelect">
- <property name="valign">center</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkLabel">
- <property name="label" translatable="1">&lt;b&gt;Latency offset:&lt;/b&gt;</property>
- <property name="use_markup">1</property>
- <property name="xalign">0</property>
- </object>
- </child>
- <child>
- <object class="GtkSpinButton" id="offsetButton">
- <property name="hexpand">1</property>
- <property name="focusable">1</property>
- </object>
- </child>
- <child>
- <object class="GtkLabel">
- <property name="label" translatable="1">ms</property>
- <property name="use_markup">1</property>
- </object>
- </child>
- </object>
- </child>
- </object>
- </child>
- <child type="label">
- <object class="GtkLabel" id="advancedLabel">
- <property name="label" translatable="1">Advanced</property>
- </object>
- </child>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkSeparator">
- <property name="valign">center</property>
- </object>
- </child>
- </object>
- </property>
- </object>
- <object class="GtkListStore" id="liststore1">
- <columns>
- <column type="gchararray"/>
- </columns>
- <data>
- <row>
- <col id="0" translatable="yes">All Streams</col>
- </row>
- <row>
- <col id="0" translatable="yes">Applications</col>
- </row>
- <row>
- <col id="0" translatable="yes">Virtual Streams</col>
- </row>
- </data>
- </object>
- <object class="GtkListStore" id="liststore2">
- <columns>
- <column type="gchararray"/>
- </columns>
- <data>
- <row>
- <col id="0" translatable="yes">All Streams</col>
- </row>
- <row>
- <col id="0" translatable="yes">Applications</col>
- </row>
- <row>
- <col id="0" translatable="yes">Virtual Streams</col>
- </row>
- </data>
- </object>
- <object class="GtkListStore" id="liststore3">
- <columns>
- <column type="gchararray"/>
- </columns>
- <data>
- <row>
- <col id="0" translatable="yes">All Output Devices</col>
- </row>
- <row>
- <col id="0" translatable="yes">Hardware Output Devices</col>
- </row>
- <row>
- <col id="0" translatable="yes">Virtual Output Devices</col>
- </row>
- </data>
- </object>
- <object class="GtkListStore" id="liststore4">
- <columns>
- <column type="gchararray"/>
- </columns>
- <data>
- <row>
- <col id="0" translatable="yes">All Input Devices</col>
- </row>
- <row>
- <col id="0" translatable="yes">All Except Monitors</col>
- </row>
- <row>
- <col id="0" translatable="yes">Hardware Input Devices</col>
- </row>
- <row>
- <col id="0" translatable="yes">Virtual Input Devices</col>
- </row>
- <row>
- <col id="0" translatable="yes">Monitors</col>
- </row>
- </data>
- </object>
- <object class="GtkWindow" id="mainWindow">
- <property name="title" translatable="1">Volume Control</property>
- <property name="default_width">500</property>
- <property name="default_height">400</property>
- <property name="icon_name">multimedia-volume-control</property>
- <child>
- <placeholder/>
- </child>
- <property name="child">
- <object class="GtkBox">
- <property name="orientation">vertical</property>
- <property name="spacing">12</property>
- <child>
- <object class="GtkNotebook" id="notebook">
- <property name="vexpand">1</property>
- <property name="focusable">1</property>
- <property name="show_border">0</property>
- <property name="scrollable">1</property>
- <child>
- <object class="GtkNotebookPage">
- <property name="child">
- <object class="GtkBox">
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkScrolledWindow">
- <property name="vexpand">1</property>
- <property name="focusable">1</property>
- <property name="child">
- <object class="GtkViewport">
- <property name="child">
- <object class="GtkBox" id="streamsVBox">
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkLabel" id="noStreamsLabel">
- <property name="vexpand">1</property>
- <property name="sensitive">0</property>
- <property name="label" translatable="1">&lt;i&gt;No application is currently playing audio.&lt;/i&gt;</property>
- <property name="use_markup">1</property>
- </object>
- </child>
- </object>
- </property>
- </object>
- </property>
- </object>
- </child>
- <child>
- <object class="GtkSeparator">
- <property name="valign">center</property>
- </object>
- </child>
- <child>
- <object class="GtkBox">
- <property name="spacing">6</property>
- <property name="margin-top">12</property>
- <property name="margin-bottom">12</property>
- <property name="margin-start">12</property>
- <property name="margin-end">12</property>
- <property name="valign">center</property>
- <child>
- <object class="GtkLabel">
- <property name="hexpand">1</property>
- <property name="label" translatable="1">&lt;b&gt;_Show:&lt;/b&gt;</property>
- <property name="use_markup">1</property>
- <property name="use_underline">1</property>
- <property name="xalign">1</property>
- </object>
- </child>
- <child>
- <object class="GtkComboBox" id="sinkInputTypeComboBox">
- <property name="hexpand">1</property>
- <property name="model">liststore1</property>
- <child>
- <object class="GtkCellRendererText"/>
- <attributes>
- <attribute name="text">0</attribute>
- </attributes>
- </child>
- </object>
- </child>
- </object>
- </child>
- </object>
- </property>
- <property name="tab">
- <object class="GtkLabel">
- <property name="label" translatable="1">_Playback</property>
- <property name="use_underline">1</property>
- </object>
- </property>
- </object>
- </child>
- <child>
- <object class="GtkNotebookPage">
- <property name="child">
- <object class="GtkBox">
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkScrolledWindow">
- <property name="vexpand">1</property>
- <property name="focusable">1</property>
- <property name="child">
- <object class="GtkViewport">
- <property name="child">
- <object class="GtkBox" id="recsVBox">
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkLabel" id="noRecsLabel">
- <property name="vexpand">1</property>
- <property name="sensitive">0</property>
- <property name="label" translatable="1">&lt;i&gt;No application is currently recording audio.&lt;/i&gt;</property>
- <property name="use_markup">1</property>
- </object>
- </child>
- </object>
- </property>
- </object>
- </property>
- </object>
- </child>
- <child>
- <object class="GtkSeparator">
- <property name="valign">center</property>
- </object>
- </child>
- <child>
- <object class="GtkBox">
- <property name="spacing">6</property>
- <property name="margin-top">12</property>
- <property name="margin-bottom">12</property>
- <property name="margin-start">12</property>
- <property name="margin-end">12</property>
- <property name="valign">center</property>
- <child>
- <object class="GtkLabel">
- <property name="hexpand">1</property>
- <property name="label" translatable="1">&lt;b&gt;_Show:&lt;/b&gt;</property>
- <property name="use_markup">1</property>
- <property name="use_underline">1</property>
- <property name="xalign">1</property>
- </object>
- </child>
- <child>
- <object class="GtkComboBox" id="sourceOutputTypeComboBox">
- <property name="hexpand">1</property>
- <property name="model">liststore2</property>
- <child>
- <object class="GtkCellRendererText"/>
- <attributes>
- <attribute name="text">0</attribute>
- </attributes>
- </child>
- </object>
- </child>
- </object>
- </child>
- </object>
- </property>
- <property name="tab">
- <object class="GtkLabel">
- <property name="label" translatable="1">_Recording</property>
- <property name="use_underline">1</property>
- </object>
- </property>
- </object>
- </child>
- <child>
- <object class="GtkNotebookPage">
- <property name="child">
- <object class="GtkBox">
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkScrolledWindow">
- <property name="vexpand">1</property>
- <property name="focusable">1</property>
- <property name="child">
- <object class="GtkViewport">
- <property name="child">
- <object class="GtkBox" id="sinksVBox">
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkLabel" id="noSinksLabel">
- <property name="vexpand">1</property>
- <property name="sensitive">0</property>
- <property name="label" translatable="1">&lt;i&gt;No output devices available&lt;/i&gt;</property>
- <property name="use_markup">1</property>
- </object>
- </child>
- </object>
- </property>
- </object>
- </property>
- </object>
- </child>
- <child>
- <object class="GtkSeparator">
- <property name="valign">center</property>
- </object>
- </child>
- <child>
- <object class="GtkBox">
- <property name="spacing">6</property>
- <property name="margin-top">12</property>
- <property name="margin-bottom">12</property>
- <property name="margin-start">12</property>
- <property name="margin-end">12</property>
- <property name="valign">center</property>
- <child>
- <object class="GtkLabel">
- <property name="hexpand">1</property>
- <property name="label" translatable="1">&lt;b&gt;S_how:&lt;/b&gt;</property>
- <property name="use_markup">1</property>
- <property name="use_underline">1</property>
- <property name="mnemonic_widget">sinkTypeComboBox</property>
- <property name="xalign">1</property>
- </object>
- </child>
- <child>
- <object class="GtkComboBox" id="sinkTypeComboBox">
- <property name="hexpand">1</property>
- <property name="model">liststore3</property>
- <child>
- <object class="GtkCellRendererText"/>
- <attributes>
- <attribute name="text">0</attribute>
- </attributes>
- </child>
- </object>
- </child>
- </object>
- </child>
- </object>
- </property>
- <property name="tab">
- <object class="GtkLabel">
- <property name="label" translatable="1">_Output Devices</property>
- <property name="use_underline">1</property>
- </object>
- </property>
- </object>
- </child>
- <child>
- <object class="GtkNotebookPage">
- <property name="child">
- <object class="GtkBox">
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkScrolledWindow">
- <property name="vexpand">1</property>
- <property name="focusable">1</property>
- <property name="child">
- <object class="GtkViewport">
- <property name="child">
- <object class="GtkBox" id="sourcesVBox">
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkLabel" id="noSourcesLabel">
- <property name="vexpand">1</property>
- <property name="sensitive">0</property>
- <property name="label" translatable="1">&lt;i&gt;No input devices available&lt;/i&gt;</property>
- <property name="use_markup">1</property>
- </object>
- </child>
- </object>
- </property>
- </object>
- </property>
- </object>
- </child>
- <child>
- <object class="GtkSeparator">
- <property name="valign">center</property>
- </object>
- </child>
- <child>
- <object class="GtkBox">
- <property name="spacing">6</property>
- <property name="margin-top">12</property>
- <property name="margin-bottom">12</property>
- <property name="margin-start">12</property>
- <property name="margin-end">12</property>
- <property name="valign">center</property>
- <child>
- <object class="GtkLabel">
- <property name="hexpand">1</property>
- <property name="label" translatable="1">&lt;b&gt;Sho_w:&lt;/b&gt;</property>
- <property name="use_markup">1</property>
- <property name="use_underline">1</property>
- <property name="mnemonic_widget">sourceTypeComboBox</property>
- <property name="xalign">1</property>
- </object>
- </child>
- <child>
- <object class="GtkComboBox" id="sourceTypeComboBox">
- <property name="hexpand">1</property>
- <property name="model">liststore4</property>
- <child>
- <object class="GtkCellRendererText"/>
- <attributes>
- <attribute name="text">0</attribute>
- </attributes>
- </child>
- </object>
- </child>
- </object>
- </child>
- </object>
- </property>
- <property name="tab">
- <object class="GtkLabel">
- <property name="label" translatable="1">_Input Devices</property>
- <property name="use_underline">1</property>
- </object>
- </property>
- </object>
- </child>
- <child>
- <object class="GtkNotebookPage">
- <property name="child">
- <object class="GtkBox">
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkScrolledWindow">
- <property name="vexpand">1</property>
- <property name="focusable">1</property>
- <property name="child">
- <object class="GtkViewport">
- <property name="child">
- <object class="GtkBox">
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkBox" id="cardsVBox">
- <property name="vexpand">1</property>
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkLabel" id="noCardsLabel">
- <property name="vexpand">1</property>
- <property name="sensitive">0</property>
- <property name="label" translatable="1">&lt;i&gt;No cards available for configuration&lt;/i&gt;</property>
- <property name="use_markup">1</property>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkBox">
- <property name="orientation">vertical</property>
- <property name="vexpand-set">1</property>
- <child>
- <object class="GtkSeparator"/>
- </child>
- <child>
- <object class="GtkCheckButton" id="showVolumeMetersCheckButton">
- <property name="label" translatable="1">Show volume meters</property>
- <property name="focusable">1</property>
- <property name="active">1</property>
- </object>
- </child>
- </object>
- </child>
- </object>
- </property>
- </object>
- </property>
- </object>
- </child>
- </object>
- </property>
- <property name="tab">
- <object class="GtkLabel">
- <property name="label" translatable="1">_Configuration</property>
- <property name="use_underline">1</property>
- </object>
- </property>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkLabel" id="connectingLabel">
- <property name="vexpand">1</property>
- <property name="visible">0</property>
- <property name="label">...</property>
- <property name="use_markup">1</property>
- </object>
- </child>
- </object>
- </property>
- </object>
- <object class="GtkApplicationWindow" id="renameDialog">
- <property name="modal">1</property>
- <child>
- <object class="GtkBox">
- <property name="orientation">vertical</property>
- <property name="spacing">2</property>
- <property name="margin-start">5</property>
- <property name="margin-top">5</property>
- <property name="margin-end">5</property>
- <property name="margin-bottom">5</property>
- <child>
- <object class="GtkLabel">
- <property name="vexpand">1</property>
- <property name="label" translatable="1">&lt;b&gt;Rename device to:&lt;/b&gt;</property>
- <property name="use_markup">1</property>
- <property name="xalign">0</property>
- </object>
- </child>
- <child>
- <object class="GtkEntry" id="renameText">
- <property name="vexpand">1</property>
- <property name="focusable">1</property>
- <property name="invisible_char">●</property>
- <property name="activates_default">1</property>
- <property name="width_chars">60</property>
- </object>
- </child>
- <child>
- <object class="GtkBox">
- <property name="baseline_position">bottom</property>
- <property name="halign">GTK_ALIGN_END</property>
- <property name="homogeneous">1</property>
- <child>
- <object class="GtkButton">
- <property name="label" translatable="1">_Cancel</property>
- <property name="use_underline">1</property>
- <property name="focusable">1</property>
- <property name="action_name">window.close</property>
- </object>
- </child>
- <child>
- <object class="GtkButton" id="renameButton">
- <property name="label" translatable="1">_Ok</property>
- <property name="use_underline">1</property>
- <property name="focusable">1</property>
- <property name="action_name">win.rename</property>
- </object>
- </child>
- </object>
- </child>
- </object>
- </child>
- </object>
- <object class="GtkWindow" id="streamWindow">
- <property name="visible">1</property>
- <property name="title" translatable="1">window1</property>
- <child>
- <placeholder/>
- </child>
- <property name="child">
- <object class="GtkBox" id="streamWidget">
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkBox">
- <property name="valign">center</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
- <property name="margin-start">12</property>
- <property name="margin-top">12</property>
- <property name="margin-end">12</property>
- <property name="margin-bottom">12</property>
- <child>
- <object class="GtkBox">
- <property name="valign">center</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkImage" id="streamIconImage">
- <property name="icon_name">gtk-missing-image</property>
- </object>
- </child>
- <child>
- <object class="GtkBox">
- <property name="hexpand">1</property>
- <property name="spacing">2</property>
- <child>
- <object class="GtkLabel" id="streamBoldNameLabel">
- <property name="use_markup">1</property>
- </object>
- </child>
- <child>
- <object class="GtkLabel" id="streamNameLabel">
- <property name="label" translatable="1">Stream Title</property>
- <property name="use_markup">1</property>
- <property name="ellipsize">end</property>
- <property name="xalign">0</property>
- </object>
- </child>
- <child>
- <object class="GtkLabel" id="directionLabel">
- <property name="margin_start">4</property>
- <property name="margin_end">4</property>
- <property name="label" translatable="1">direction</property>
- <property name="use_markup">1</property>
- <property name="xalign">0</property>
- </object>
- </child>
- <child>
- <object class="GtkComboBoxText" id="deviceComboBox">
- <property name="halign">GTK_ALIGN_END</property>
- <property name="hexpand">1</property>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkBox">
- <property name="spacing">3</property>
- <child>
- <object class="GtkToggleButton" id="streamMuteToggleButton">
- <property name="halign">center</property>
- <property name="focusable">1</property>
- <property name="tooltip_text" translatable="1">Mute audio</property>
- <property name="has-frame">0</property>
- <child>
- <object class="GtkImage">
- <property name="icon_name">audio-volume-muted</property>
- <property name="icon_size">normal</property>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkToggleButton" id="streamLockToggleButton">
- <property name="halign">center</property>
- <property name="focusable">1</property>
- <property name="tooltip_text" translatable="1">Lock channels together</property>
- <property name="has-frame">0</property>
- <property name="active">1</property>
- <child>
- <object class="GtkImage">
- <property name="icon_name">changes-prevent</property>
- <property name="icon_size">normal</property>
- </object>
- </child>
- </object>
- </child>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkBox" id="streamChannelsVBox">
- <property name="valign">center</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkSeparator">
- <property name="valign">center</property>
- </object>
- </child>
- </object>
- </property>
- </object>
-</interface>
diff --git a/src/renamedialog.ui b/src/renamedialog.ui
new file mode 100644
index 0000000..9ee488a
--- /dev/null
+++ b/src/renamedialog.ui
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkApplicationWindow" id="renameDialog">
+ <property name="modal">1</property>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <property name="margin-start">5</property>
+ <property name="margin-top">5</property>
+ <property name="margin-end">5</property>
+ <property name="margin-bottom">5</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="vexpand">1</property>
+ <property name="label" translatable="1">&lt;b&gt;Rename device to:&lt;/b&gt;</property>
+ <property name="use_markup">1</property>
+ <property name="xalign">0</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkEntry" id="renameText">
+ <property name="vexpand">1</property>
+ <property name="focusable">1</property>
+ <property name="invisible_char">●</property>
+ <property name="activates_default">1</property>
+ <property name="width_chars">60</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="baseline_position">bottom</property>
+ <property name="halign">GTK_ALIGN_END</property>
+ <property name="homogeneous">1</property>
+ <child>
+ <object class="GtkButton">
+ <property name="label" translatable="1">_Cancel</property>
+ <property name="use_underline">1</property>
+ <property name="focusable">1</property>
+ <property name="action_name">window.close</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="renameButton">
+ <property name="label" translatable="1">_Ok</property>
+ <property name="use_underline">1</property>
+ <property name="focusable">1</property>
+ <property name="action_name">win.rename</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/src/resources.gresource.xml b/src/resources.gresource.xml
index 27bef9a..0ed3726 100644
--- a/src/resources.gresource.xml
+++ b/src/resources.gresource.xml
@@ -1,6 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/org/pulseaudio/pavucontrol/ui">
- <file preprocess="xml-stripblanks" compressed="true">pavucontrol.glade</file>
+ <file preprocess="xml-stripblanks" compressed="true">mainwindow.ui</file>
+ <file preprocess="xml-stripblanks" compressed="true">cardwidget.ui</file>
+ <file preprocess="xml-stripblanks" compressed="true">channelwidget.ui</file>
+ <file preprocess="xml-stripblanks" compressed="true">renamedialog.ui</file>
+ <file preprocess="xml-stripblanks" compressed="true">streamwidget.ui</file>
+ <file preprocess="xml-stripblanks" compressed="true">devicewidget.ui</file>
</gresource>
</gresources>
diff --git a/src/rolewidget.cc b/src/rolewidget.cc
index 59279e5..c2d8a21 100644
--- a/src/rolewidget.cc
+++ b/src/rolewidget.cc
@@ -38,7 +38,7 @@ RoleWidget::RoleWidget(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>
RoleWidget* RoleWidget::create() {
RoleWidget* w;
- Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_resource("/org/pulseaudio/pavucontrol/ui/pavucontrol.glade", "streamWidget");
+ Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_resource("/org/pulseaudio/pavucontrol/ui/streamwidget.ui", "streamWidget");
w = Gtk::Builder::get_widget_derived<RoleWidget>(x, "streamWidget");
w->reference();
return w;
diff --git a/src/sinkinputwidget.cc b/src/sinkinputwidget.cc
index 46fc52b..6145c2d 100644
--- a/src/sinkinputwidget.cc
+++ b/src/sinkinputwidget.cc
@@ -40,7 +40,7 @@ SinkInputWidget::SinkInputWidget(BaseObjectType* cobject, const Glib::RefPtr<Gtk
SinkInputWidget* SinkInputWidget::create(MainWindow* mainWindow) {
SinkInputWidget* w;
- Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_resource("/org/pulseaudio/pavucontrol/ui/pavucontrol.glade", "streamWidget");
+ Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_resource("/org/pulseaudio/pavucontrol/ui/streamwidget.ui", "streamWidget");
w = Gtk::Builder::get_widget_derived<SinkInputWidget>(x, "streamWidget");
w->init(mainWindow);
w->reference();
diff --git a/src/sinkwidget.cc b/src/sinkwidget.cc
index 6835d29..86bd328 100644
--- a/src/sinkwidget.cc
+++ b/src/sinkwidget.cc
@@ -104,7 +104,7 @@ SinkWidget::SinkWidget(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>
SinkWidget* SinkWidget::create(MainWindow* mainWindow) {
SinkWidget* w;
- Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_resource("/org/pulseaudio/pavucontrol/ui/pavucontrol.glade", "deviceWidget");
+ Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_resource("/org/pulseaudio/pavucontrol/ui/devicewidget.ui", "deviceWidget");
w = Gtk::Builder::get_widget_derived<SinkWidget>(x, "deviceWidget");
w->init(mainWindow, "sink");
w->reference();
diff --git a/src/sourceoutputwidget.cc b/src/sourceoutputwidget.cc
index 1cb4a22..ca6b3f8 100644
--- a/src/sourceoutputwidget.cc
+++ b/src/sourceoutputwidget.cc
@@ -46,7 +46,7 @@ SourceOutputWidget::SourceOutputWidget(BaseObjectType* cobject, const Glib::RefP
SourceOutputWidget* SourceOutputWidget::create(MainWindow* mainWindow) {
SourceOutputWidget* w;
- Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_resource("/org/pulseaudio/pavucontrol/ui/pavucontrol.glade", "streamWidget");
+ Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_resource("/org/pulseaudio/pavucontrol/ui/streamwidget.ui", "streamWidget");
w = Gtk::Builder::get_widget_derived<SourceOutputWidget>(x, "streamWidget");
w->init(mainWindow);
w->reference();
diff --git a/src/sourcewidget.cc b/src/sourcewidget.cc
index 3ae2395..2423682 100644
--- a/src/sourcewidget.cc
+++ b/src/sourcewidget.cc
@@ -32,7 +32,7 @@ SourceWidget::SourceWidget(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Buil
SourceWidget* SourceWidget::create(MainWindow* mainWindow) {
SourceWidget* w;
- Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_resource("/org/pulseaudio/pavucontrol/ui/pavucontrol.glade", "deviceWidget");
+ Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_resource("/org/pulseaudio/pavucontrol/ui/devicewidget.ui", "deviceWidget");
w = Gtk::Builder::get_widget_derived<SourceWidget>(x, "deviceWidget");
w->init(mainWindow, "source");
w->reference();
diff --git a/src/streamwidget.ui b/src/streamwidget.ui
new file mode 100644
index 0000000..023d760
--- /dev/null
+++ b/src/streamwidget.ui
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkBox" id="streamWidget">
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkBox">
+ <property name="valign">center</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">12</property>
+ <property name="margin-end">12</property>
+ <property name="margin-bottom">12</property>
+ <child>
+ <object class="GtkBox">
+ <property name="valign">center</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkImage" id="streamIconImage">
+ <property name="icon_name">gtk-missing-image</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="hexpand">1</property>
+ <property name="spacing">2</property>
+ <child>
+ <object class="GtkLabel" id="streamBoldNameLabel">
+ <property name="use_markup">1</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="streamNameLabel">
+ <property name="label" translatable="1">Stream Title</property>
+ <property name="use_markup">1</property>
+ <property name="ellipsize">end</property>
+ <property name="xalign">0</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="directionLabel">
+ <property name="margin_start">4</property>
+ <property name="margin_end">4</property>
+ <property name="label" translatable="1">direction</property>
+ <property name="use_markup">1</property>
+ <property name="xalign">0</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="deviceComboBox">
+ <property name="halign">GTK_ALIGN_END</property>
+ <property name="hexpand">1</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="spacing">3</property>
+ <child>
+ <object class="GtkToggleButton" id="streamMuteToggleButton">
+ <property name="halign">center</property>
+ <property name="focusable">1</property>
+ <property name="tooltip_text" translatable="1">Mute audio</property>
+ <property name="has-frame">0</property>
+ <child>
+ <object class="GtkImage">
+ <property name="icon_name">audio-volume-muted</property>
+ <property name="icon_size">normal</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkToggleButton" id="streamLockToggleButton">
+ <property name="halign">center</property>
+ <property name="focusable">1</property>
+ <property name="tooltip_text" translatable="1">Lock channels together</property>
+ <property name="has-frame">0</property>
+ <property name="active">1</property>
+ <child>
+ <object class="GtkImage">
+ <property name="icon_name">changes-prevent</property>
+ <property name="icon_size">normal</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox" id="streamChannelsVBox">
+ <property name="valign">center</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparator">
+ <property name="valign">center</property>
+ </object>
+ </child>
+ </object>
+</interface>