meson.build | 1 po/POTFILES.in | 7 src/cardwidget.cc | 2 src/cardwidget.ui | 104 ++++ src/channelwidget.cc | 4 src/channelwidget.ui | 42 + src/devicewidget.cc | 2 src/devicewidget.ui | 260 ++++++++++ src/mainwindow.cc | 7 src/mainwindow.ui | 467 +++++++++++++++++++ src/meson.build | 10 src/pavucontrol.glade | 1058 -------------------------------------------- src/pavucontrol.gladep | 8 src/pavucontrol.h | 4 src/renamedialog.ui | 56 ++ src/resources.gresource.xml | 11 src/rolewidget.cc | 2 src/sinkinputwidget.cc | 2 src/sinkwidget.cc | 2 src/sourceoutputwidget.cc | 2 src/sourcewidget.cc | 2 src/streamwidget.ui | 114 ++++ 22 files changed, 1077 insertions(+), 1090 deletions(-)
New commits: commit d600f47de1a1677f796440d531c8fada32efbb25 Author: JA <jagw...@free.fr> Date: Fri Apr 26 17:38:54 2024 +0200 Split pavucontrol.glade into separate .ui files and some cleanup diff --git a/po/POTFILES.in b/po/POTFILES.in index a939fc8..18fa730 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -1,6 +1,11 @@ src/org.pulseaudio.pavucontrol.appdata.xml.in src/pavucontrol.desktop.in -src/pavucontrol.glade +src/mainwindow.ui +src/cardwidget.ui +src/channelwidget.ui +src/renamedialog.ui +src/streamwidget.ui +src/devicewidget.ui src/pavucontrol.cc src/cardwidget.cc src/channelwidget.cc 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"><b>Profile:</b></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"><b>Codec:</b></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"><b>left-front</b></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"><small>50%</small></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"><b>Port:</b></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"><b>Latency offset:</b></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"><i>No application is currently playing audio.</i></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"><b>_Show:</b></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"><i>No application is currently recording audio.</i></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"><b>_Show:</b></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"><i>No output devices available</i></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"><b>S_how:</b></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"><i>No input devices available</i></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"><b>Sho_w:</b></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"><i>No cards available for configuration</i></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"><b>left-front</b></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"><small>50%</small></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"><b>Profile:</b></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"><b>Codec:</b></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"><b>Port:</b></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"><b>Latency offset:</b></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"><i>No application is currently playing audio.</i></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"><b>_Show:</b></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"><i>No application is currently recording audio.</i></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"><b>_Show:</b></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"><i>No output devices available</i></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"><b>S_how:</b></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"><i>No input devices available</i></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"><b>Sho_w:</b></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"><i>No cards available for configuration</i></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"><b>Rename device to:</b></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"><b>Rename device to:</b></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> commit 64881e3db00827207326df4afafc91ea2caba1c7 Author: JA <jagw...@free.fr> Date: Fri Apr 26 17:13:28 2024 +0200 Embed ui file as resource and clean it up Remove a lot of unrequired ids, and fix meson dependency name diff --git a/meson.build b/meson.build index 10384da..af6467b 100644 --- a/meson.build +++ b/meson.build @@ -39,7 +39,6 @@ cdata.set_quoted('PACKAGE_STRING', 'pavucontrol') cdata.set_quoted('PACKAGE_VERSION', meson.project_version()) cdata.set_quoted('GETTEXT_PACKAGE', 'pavucontrol') cdata.set_quoted('LOCALEDIR', localedir) -cdata.set_quoted('GLADE_FILE', join_paths(datadir, 'pavucontrol', 'pavucontrol.glade')) cdata.set('HAVE_LIBCANBERRA', canberragtk_dep.found()) diff --git a/src/cardwidget.cc b/src/cardwidget.cc index bdacdaa..f2aa618 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_file(GLADE_FILE, "cardWidget"); + Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_resource("/org/pulseaudio/pavucontrol/ui/pavucontrol.glade", "cardWidget"); w = Gtk::Builder::get_widget_derived<CardWidget>(x, "cardWidget"); w->reference(); return w; diff --git a/src/channelwidget.cc b/src/channelwidget.cc index 87c494b..499bd46 100644 --- a/src/channelwidget.cc +++ b/src/channelwidget.cc @@ -50,8 +50,8 @@ 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_file(GLADE_FILE, "adjustment1"); - x->add_from_file(GLADE_FILE, "channelWidget"); + x->add_from_resource("/org/pulseaudio/pavucontrol/ui/pavucontrol.glade", "adjustment1"); + x->add_from_resource("/org/pulseaudio/pavucontrol/ui/pavucontrol.glade", "channelWidget"); w = Gtk::Builder::get_widget_derived<ChannelWidget>(x, "channelWidget"); w->reference(); diff --git a/src/devicewidget.cc b/src/devicewidget.cc index e149ceb..d7212d8 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_file(GLADE_FILE, "renameDialog"); + Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_resource("/org/pulseaudio/pavucontrol/ui/pavucontrol.glade", "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/mainwindow.cc b/src/mainwindow.cc index 9bee3b1..e9c2518 100644 --- a/src/mainwindow.cc +++ b/src/mainwindow.cc @@ -182,11 +182,11 @@ 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_file(GLADE_FILE, "liststore1"); - x->add_from_file(GLADE_FILE, "liststore2"); - x->add_from_file(GLADE_FILE, "liststore3"); - x->add_from_file(GLADE_FILE, "liststore4"); - x->add_from_file(GLADE_FILE, "mainWindow"); + 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"); w = Gtk::Builder::get_widget_derived<MainWindow>(x, "mainWindow"); w->get_style_context()->add_class("pavucontrol-window"); if (w && maximize) diff --git a/src/meson.build b/src/meson.build index 97eeb00..ba8fa76 100644 --- a/src/meson.build +++ b/src/meson.build @@ -1,3 +1,10 @@ +gnome = import('gnome') +resources = gnome.compile_resources('resources', + 'resources.gresource.xml', + source_dir: '.', + c_name: 'resources' +) + pavucontrol_sources = [ 'cardwidget.cc', 'channelwidget.cc', @@ -12,6 +19,7 @@ pavucontrol_sources = [ 'sourceoutputwidget.cc', 'sourcewidget.cc', 'streamwidget.cc', + resources ] pavucontrol_deps = [gtkmm_dep, sigcpp_dep, canberragtk_dep, libpulse_dep, libpulsemlglib_dep] @@ -30,8 +38,6 @@ executable('pavucontrol', dependencies : pavucontrol_deps, ) -install_data('pavucontrol.glade') - desktop_file = i18n.merge_file( input : 'org.pulseaudio.pavucontrol.desktop.in', output : 'org.pulseaudio.pavucontrol.desktop', diff --git a/src/pavucontrol.glade b/src/pavucontrol.glade index 25591fd..5f83859 100644 --- a/src/pavucontrol.glade +++ b/src/pavucontrol.glade @@ -58,7 +58,7 @@ <object class="GtkBox" id="cardWidget"> <property name="orientation">vertical</property> <child> - <object class="GtkBox" id="vbox7"> + <object class="GtkBox"> <property name="valign">center</property> <property name="orientation">vertical</property> <property name="spacing">6</property> @@ -67,7 +67,7 @@ <property name="margin-end">12</property> <property name="margin-bottom">12</property> <child> - <object class="GtkBox" id="hbox9"> + <object class="GtkBox"> <property name="valign">center</property> <property name="spacing">6</property> <child> @@ -76,7 +76,7 @@ </object> </child> <child> - <object class="GtkBox" id="hbox11"> + <object class="GtkBox"> <property name="hexpand">1</property> <child> <object class="GtkLabel" id="cardNameLabel"> @@ -90,7 +90,7 @@ </object> </child> <child> - <object class="GtkBox" id="hbox14"> + <object class="GtkBox"> <property name="spacing">3</property> <child> <object class="GtkToggleButton" id="profileLockToggleButton"> @@ -100,7 +100,7 @@ <property name="has-frame">0</property> <property name="active">1</property> <child> - <object class="GtkImage" id="image4"> + <object class="GtkImage"> <property name="icon_name">changes-prevent</property> <property name="icon_size">normal</property> </object> @@ -112,11 +112,11 @@ </object> </child> <child> - <object class="GtkBox" id="hbox1"> + <object class="GtkBox"> <property name="valign">center</property> <property name="spacing">6</property> <child> - <object class="GtkLabel" id="label1"> + <object class="GtkLabel"> <property name="label" translatable="1"><b>Profile:</b></property> <property name="use_markup">1</property> <property name="xalign">0</property> @@ -132,7 +132,7 @@ <property name="halign">center</property> <property name="spacing">6</property> <child> - <object class="GtkLabel" id="label51"> + <object class="GtkLabel"> <property name="label" translatable="1"><b>Codec:</b></property> <property name="use_markup">1</property> <property name="xalign">0</property> @@ -150,7 +150,7 @@ </object> </child> <child> - <object class="GtkSeparator" id="hseparator5"> + <object class="GtkSeparator"> <property name="valign">center</property> </object> </child> @@ -167,7 +167,7 @@ <object class="GtkBox" id="deviceWidget"> <property name="orientation">vertical</property> <child> - <object class="GtkBox" id="vbox26"> + <object class="GtkBox"> <property name="valign">center</property> <property name="orientation">vertical</property> <property name="spacing">6</property> @@ -176,7 +176,7 @@ <property name="margin-end">12</property> <property name="margin-bottom">12</property> <child> - <object class="GtkBox" id="hbox2"> + <object class="GtkBox"> <property name="valign">center</property> <property name="spacing">6</property> <child> @@ -185,7 +185,7 @@ </object> </child> <child> - <object class="GtkBox" id="hbox12"> + <object class="GtkBox"> <property name="hexpand">1</property> <child> <object class="GtkLabel" id="deviceBoldNameLabel"> @@ -203,7 +203,7 @@ </object> </child> <child> - <object class="GtkBox" id="hbox10"> + <object class="GtkBox"> <property name="spacing">3</property> <child> <object class="GtkToggleButton" id="deviceMuteToggleButton"> @@ -212,7 +212,7 @@ <property name="tooltip_text" translatable="1">Mute audio</property> <property name="has-frame">0</property> <child> - <object class="GtkImage" id="image20"> + <object class="GtkImage"> <property name="icon_name">audio-volume-muted</property> <property name="icon_size">normal</property> </object> @@ -227,7 +227,7 @@ <property name="has-frame">0</property> <property name="active">1</property> <child> - <object class="GtkImage" id="image18"> + <object class="GtkImage"> <property name="icon_name">changes-prevent</property> <property name="icon_size">normal</property> </object> @@ -240,7 +240,7 @@ <property name="focusable">1</property> <property name="tooltip_text" translatable="1">Set as default</property> <child> - <object class="GtkImage" id="image2"> + <object class="GtkImage"> <property name="icon_name">emblem-default</property> </object> </child> @@ -255,7 +255,7 @@ <property name="valign">center</property> <property name="spacing">6</property> <child> - <object class="GtkLabel" id="label2"> + <object class="GtkLabel"> <property name="label" translatable="1"><b>Port:</b></property> <property name="use_markup">1</property> <property name="xalign">0</property> @@ -287,7 +287,7 @@ <property name="visible">0</property> <property name="focusable">1</property> <child> - <object class="GtkBox" id="vbox1"> + <object class="GtkBox"> <property name="orientation">vertical</property> <child> <object class="GtkGrid" id="encodingSelect"> @@ -384,7 +384,7 @@ <property name="valign">center</property> <property name="spacing">6</property> <child> - <object class="GtkLabel" id="label3"> + <object class="GtkLabel"> <property name="label" translatable="1"><b>Latency offset:</b></property> <property name="use_markup">1</property> <property name="xalign">0</property> @@ -397,7 +397,7 @@ </object> </child> <child> - <object class="GtkLabel" id="label4"> + <object class="GtkLabel"> <property name="label" translatable="1">ms</property> <property name="use_markup">1</property> </object> @@ -416,7 +416,7 @@ </object> </child> <child> - <object class="GtkSeparator" id="hseparator2"> + <object class="GtkSeparator"> <property name="valign">center</property> </object> </child> @@ -502,7 +502,7 @@ <placeholder/> </child> <property name="child"> - <object class="GtkBox" id="vbox20"> + <object class="GtkBox"> <property name="orientation">vertical</property> <property name="spacing">12</property> <child> @@ -514,14 +514,14 @@ <child> <object class="GtkNotebookPage"> <property name="child"> - <object class="GtkBox" id="vbox32"> + <object class="GtkBox"> <property name="orientation">vertical</property> <child> - <object class="GtkScrolledWindow" id="scrolledwindow5"> + <object class="GtkScrolledWindow"> <property name="vexpand">1</property> <property name="focusable">1</property> <property name="child"> - <object class="GtkViewport" id="viewport1"> + <object class="GtkViewport"> <property name="child"> <object class="GtkBox" id="streamsVBox"> <property name="orientation">vertical</property> @@ -540,12 +540,12 @@ </object> </child> <child> - <object class="GtkSeparator" id="hseparator1"> + <object class="GtkSeparator"> <property name="valign">center</property> </object> </child> <child> - <object class="GtkBox" id="hbox5"> + <object class="GtkBox"> <property name="spacing">6</property> <property name="margin-top">12</property> <property name="margin-bottom">12</property> @@ -553,7 +553,7 @@ <property name="margin-end">12</property> <property name="valign">center</property> <child> - <object class="GtkLabel" id="label5"> + <object class="GtkLabel"> <property name="hexpand">1</property> <property name="label" translatable="1"><b>_Show:</b></property> <property name="use_markup">1</property> @@ -566,7 +566,7 @@ <property name="hexpand">1</property> <property name="model">liststore1</property> <child> - <object class="GtkCellRendererText" id="cellrenderertext1"/> + <object class="GtkCellRendererText"/> <attributes> <attribute name="text">0</attribute> </attributes> @@ -578,7 +578,7 @@ </object> </property> <property name="tab"> - <object class="GtkLabel" id="label34"> + <object class="GtkLabel"> <property name="label" translatable="1">_Playback</property> <property name="use_underline">1</property> </object> @@ -588,14 +588,14 @@ <child> <object class="GtkNotebookPage"> <property name="child"> - <object class="GtkBox" id="vbox2"> + <object class="GtkBox"> <property name="orientation">vertical</property> <child> - <object class="GtkScrolledWindow" id="scrolledwindow2"> + <object class="GtkScrolledWindow"> <property name="vexpand">1</property> <property name="focusable">1</property> <property name="child"> - <object class="GtkViewport" id="viewport5"> + <object class="GtkViewport"> <property name="child"> <object class="GtkBox" id="recsVBox"> <property name="orientation">vertical</property> @@ -614,12 +614,12 @@ </object> </child> <child> - <object class="GtkSeparator" id="hseparator3"> + <object class="GtkSeparator"> <property name="valign">center</property> </object> </child> <child> - <object class="GtkBox" id="hbox7"> + <object class="GtkBox"> <property name="spacing">6</property> <property name="margin-top">12</property> <property name="margin-bottom">12</property> @@ -627,7 +627,7 @@ <property name="margin-end">12</property> <property name="valign">center</property> <child> - <object class="GtkLabel" id="label8"> + <object class="GtkLabel"> <property name="hexpand">1</property> <property name="label" translatable="1"><b>_Show:</b></property> <property name="use_markup">1</property> @@ -640,7 +640,7 @@ <property name="hexpand">1</property> <property name="model">liststore2</property> <child> - <object class="GtkCellRendererText" id="cellrenderertext2"/> + <object class="GtkCellRendererText"/> <attributes> <attribute name="text">0</attribute> </attributes> @@ -652,7 +652,7 @@ </object> </property> <property name="tab"> - <object class="GtkLabel" id="label6"> + <object class="GtkLabel"> <property name="label" translatable="1">_Recording</property> <property name="use_underline">1</property> </object> @@ -662,14 +662,14 @@ <child> <object class="GtkNotebookPage"> <property name="child"> - <object class="GtkBox" id="vbox30"> + <object class="GtkBox"> <property name="orientation">vertical</property> <child> - <object class="GtkScrolledWindow" id="scrolledwindow8"> + <object class="GtkScrolledWindow"> <property name="vexpand">1</property> <property name="focusable">1</property> <property name="child"> - <object class="GtkViewport" id="viewport4"> + <object class="GtkViewport"> <property name="child"> <object class="GtkBox" id="sinksVBox"> <property name="orientation">vertical</property> @@ -688,12 +688,12 @@ </object> </child> <child> - <object class="GtkSeparator" id="hseparator4"> + <object class="GtkSeparator"> <property name="valign">center</property> </object> </child> <child> - <object class="GtkBox" id="hbox3"> + <object class="GtkBox"> <property name="spacing">6</property> <property name="margin-top">12</property> <property name="margin-bottom">12</property> @@ -701,7 +701,7 @@ <property name="margin-end">12</property> <property name="valign">center</property> <child> - <object class="GtkLabel" id="label4826"> + <object class="GtkLabel"> <property name="hexpand">1</property> <property name="label" translatable="1"><b>S_how:</b></property> <property name="use_markup">1</property> @@ -715,7 +715,7 @@ <property name="hexpand">1</property> <property name="model">liststore3</property> <child> - <object class="GtkCellRendererText" id="cellrenderertext3"/> + <object class="GtkCellRendererText"/> <attributes> <attribute name="text">0</attribute> </attributes> @@ -727,7 +727,7 @@ </object> </property> <property name="tab"> - <object class="GtkLabel" id="label4711"> + <object class="GtkLabel"> <property name="label" translatable="1">_Output Devices</property> <property name="use_underline">1</property> </object> @@ -737,14 +737,14 @@ <child> <object class="GtkNotebookPage"> <property name="child"> - <object class="GtkBox" id="vbox31"> + <object class="GtkBox"> <property name="orientation">vertical</property> <child> - <object class="GtkScrolledWindow" id="scrolledwindow7"> + <object class="GtkScrolledWindow"> <property name="vexpand">1</property> <property name="focusable">1</property> <property name="child"> - <object class="GtkViewport" id="viewport3"> + <object class="GtkViewport"> <property name="child"> <object class="GtkBox" id="sourcesVBox"> <property name="orientation">vertical</property> @@ -763,12 +763,12 @@ </object> </child> <child> - <object class="GtkSeparator" id="hseparator6"> + <object class="GtkSeparator"> <property name="valign">center</property> </object> </child> <child> - <object class="GtkBox" id="hbox4"> + <object class="GtkBox"> <property name="spacing">6</property> <property name="margin-top">12</property> <property name="margin-bottom">12</property> @@ -776,7 +776,7 @@ <property name="margin-end">12</property> <property name="valign">center</property> <child> - <object class="GtkLabel" id="label4827"> + <object class="GtkLabel"> <property name="hexpand">1</property> <property name="label" translatable="1"><b>Sho_w:</b></property> <property name="use_markup">1</property> @@ -790,7 +790,7 @@ <property name="hexpand">1</property> <property name="model">liststore4</property> <child> - <object class="GtkCellRendererText" id="cellrenderertext4"/> + <object class="GtkCellRendererText"/> <attributes> <attribute name="text">0</attribute> </attributes> @@ -802,7 +802,7 @@ </object> </property> <property name="tab"> - <object class="GtkLabel" id="label4717"> + <object class="GtkLabel"> <property name="label" translatable="1">_Input Devices</property> <property name="use_underline">1</property> </object> @@ -812,16 +812,16 @@ <child> <object class="GtkNotebookPage"> <property name="child"> - <object class="GtkBox" id="vbox3"> + <object class="GtkBox"> <property name="orientation">vertical</property> <child> - <object class="GtkScrolledWindow" id="scrolledwindow1"> + <object class="GtkScrolledWindow"> <property name="vexpand">1</property> <property name="focusable">1</property> <property name="child"> - <object class="GtkViewport" id="viewport2"> + <object class="GtkViewport"> <property name="child"> - <object class="GtkBox" id="vbox4"> + <object class="GtkBox"> <property name="orientation">vertical</property> <child> <object class="GtkBox" id="cardsVBox"> @@ -838,11 +838,11 @@ </object> </child> <child> - <object class="GtkBox" id="vbox5"> + <object class="GtkBox"> <property name="orientation">vertical</property> <property name="vexpand-set">1</property> <child> - <object class="GtkSeparator" id="hseparator7"/> + <object class="GtkSeparator"/> </child> <child> <object class="GtkCheckButton" id="showVolumeMetersCheckButton"> @@ -862,7 +862,7 @@ </object> </property> <property name="tab"> - <object class="GtkLabel" id="label7"> + <object class="GtkLabel"> <property name="label" translatable="1">_Configuration</property> <property name="use_underline">1</property> </object> @@ -885,7 +885,7 @@ <object class="GtkApplicationWindow" id="renameDialog"> <property name="modal">1</property> <child> - <object class="GtkBox" id="dialog-vbox1"> + <object class="GtkBox"> <property name="orientation">vertical</property> <property name="spacing">2</property> <property name="margin-start">5</property> @@ -893,7 +893,7 @@ <property name="margin-end">5</property> <property name="margin-bottom">5</property> <child> - <object class="GtkLabel" id="label9"> + <object class="GtkLabel"> <property name="vexpand">1</property> <property name="label" translatable="1"><b>Rename device to:</b></property> <property name="use_markup">1</property> @@ -910,7 +910,7 @@ </object> </child> <child> - <object class="GtkBox" id="dialog-action_area1"> + <object class="GtkBox"> <property name="baseline_position">bottom</property> <property name="halign">GTK_ALIGN_END</property> <property name="homogeneous">1</property> @@ -945,7 +945,7 @@ <object class="GtkBox" id="streamWidget"> <property name="orientation">vertical</property> <child> - <object class="GtkBox" id="vbox6"> + <object class="GtkBox"> <property name="valign">center</property> <property name="orientation">vertical</property> <property name="spacing">6</property> @@ -954,7 +954,7 @@ <property name="margin-end">12</property> <property name="margin-bottom">12</property> <child> - <object class="GtkBox" id="hbox6"> + <object class="GtkBox"> <property name="valign">center</property> <property name="spacing">6</property> <child> @@ -963,7 +963,7 @@ </object> </child> <child> - <object class="GtkBox" id="hbox8"> + <object class="GtkBox"> <property name="hexpand">1</property> <property name="spacing">2</property> <child> @@ -997,7 +997,7 @@ </object> </child> <child> - <object class="GtkBox" id="hbox13"> + <object class="GtkBox"> <property name="spacing">3</property> <child> <object class="GtkToggleButton" id="streamMuteToggleButton"> @@ -1006,7 +1006,7 @@ <property name="tooltip_text" translatable="1">Mute audio</property> <property name="has-frame">0</property> <child> - <object class="GtkImage" id="image1"> + <object class="GtkImage"> <property name="icon_name">audio-volume-muted</property> <property name="icon_size">normal</property> </object> @@ -1021,7 +1021,7 @@ <property name="has-frame">0</property> <property name="active">1</property> <child> - <object class="GtkImage" id="image3"> + <object class="GtkImage"> <property name="icon_name">changes-prevent</property> <property name="icon_size">normal</property> </object> @@ -1048,7 +1048,7 @@ </object> </child> <child> - <object class="GtkSeparator" id="hseparator8"> + <object class="GtkSeparator"> <property name="valign">center</property> </object> </child> diff --git a/src/pavucontrol.gladep b/src/pavucontrol.gladep deleted file mode 100644 index 183077b..0000000 --- a/src/pavucontrol.gladep +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*--> -<!DOCTYPE glade-project SYSTEM "http://glade.gnome.org/glade-project-2.0.dtd"> - -<glade-project> - <name></name> - <program_name></program_name> - <gnome_support>FALSE</gnome_support> -</glade-project> diff --git a/src/pavucontrol.h b/src/pavucontrol.h index d7e81a8..f7bf6cc 100644 --- a/src/pavucontrol.h +++ b/src/pavucontrol.h @@ -31,10 +31,6 @@ #include <pulse/pulseaudio.h> #include <pulse/glib-mainloop.h> -#ifndef GLADE_FILE -#define GLADE_FILE "pavucontrol.glade" -#endif - /* Can be removed when PulseAudio 0.9.23 or newer is required */ #ifndef PA_VOLUME_UI_MAX # define PA_VOLUME_UI_MAX (pa_sw_volume_from_dB(+11.0)) diff --git a/src/resources.gresource.xml b/src/resources.gresource.xml new file mode 100644 index 0000000..27bef9a --- /dev/null +++ b/src/resources.gresource.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<gresources> + <gresource prefix="/org/pulseaudio/pavucontrol/ui"> + <file preprocess="xml-stripblanks" compressed="true">pavucontrol.glade</file> + </gresource> +</gresources> diff --git a/src/rolewidget.cc b/src/rolewidget.cc index cff0880..59279e5 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_file(GLADE_FILE, "streamWidget"); + Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_resource("/org/pulseaudio/pavucontrol/ui/pavucontrol.glade", "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 732205f..46fc52b 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_file(GLADE_FILE, "streamWidget"); + Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_resource("/org/pulseaudio/pavucontrol/ui/pavucontrol.glade", "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 0af4957..6835d29 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_file(GLADE_FILE, "deviceWidget"); + Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_resource("/org/pulseaudio/pavucontrol/ui/pavucontrol.glade", "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 d164552..1cb4a22 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_file(GLADE_FILE, "streamWidget"); + Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_resource("/org/pulseaudio/pavucontrol/ui/pavucontrol.glade", "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 ebcf7fb..3ae2395 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_file(GLADE_FILE, "deviceWidget"); + Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_resource("/org/pulseaudio/pavucontrol/ui/pavucontrol.glade", "deviceWidget"); w = Gtk::Builder::get_widget_derived<SourceWidget>(x, "deviceWidget"); w->init(mainWindow, "source"); w->reference();