pidgin/resources/Prefs/vv.ui

Sun, 10 Aug 2025 23:44:08 +0800

author
Gong Zhile <gongzl@stu.hebust.edu.cn>
date
Sun, 10 Aug 2025 23:44:08 +0800
branch
purple_conversation_find_message_by_id
changeset 43309
099e1dfb856b
parent 43194
77aadc520684
permissions
-rw-r--r--

Add Purple.Conversation.find_message_by_id

The method was added so that a protocol or plugin could easily lookup
for the reference for a message. This will be especially useful when a
protocol received a quoted message but only with an id.

<?xml version="1.0" encoding="UTF-8"?>
<!--
Pidgin - Internet Messenger
Copyright (C) Pidgin Developers <devel@pidgin.im>

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, see <https://www.gnu.org/licenses/>.
-->
<interface>
  <requires lib="gtk" version="4.0"/>
  <requires lib="Adw" version="1.0"/>
  <!-- interface-license-type gplv2 -->
  <!-- interface-name Pidgin -->
  <!-- interface-description Internet Messenger -->
  <!-- interface-copyright Pidgin Developers <devel@pidgin.im> -->
  <object class="GtkAdjustment" id="adjustment1">
    <property name="upper">100</property>
    <property name="step-increment">1</property>
    <property name="page-increment">10</property>
  </object>
  <object class="GtkAdjustment" id="adjustment2">
    <property name="upper">100</property>
    <property name="step-increment">1</property>
    <property name="page-increment">10</property>
  </object>
  <object class="GtkBuilderListItemFactory" id="element-info-factory">
    <property name="bytes">
<![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<interface>
  <template class="GtkListItem">
    <property name="child">
      <object class="GtkLabel">
        <property name="xalign">0</property>
        <binding name="label">
          <lookup name="name" type="PurpleMediaElementInfo">
            <lookup name="item">GtkListItem</lookup>
          </lookup>
        </binding>
      </object>
    </property>
  </template>
</interface>
]]>
    </property>
  </object>
  <template class="PidginVVPrefs" parent="AdwPreferencesPage">
    <property name="icon-name">audio-card-symbolic</property>
    <property name="title" translatable="yes">Voice/Video</property>
    <child>
      <object class="AdwPreferencesGroup">
        <property name="title" translatable="yes">Audio</property>
        <child>
          <object class="AdwComboRow" id="voice.input">
            <property name="title" translatable="yes" context="Input for Audio">Input Device</property>
            <property name="factory">element-info-factory</property>
            <property name="model">
              <object class="GListStore">
                <property name="item-type">PurpleMediaElementInfo</property>
              </object>
            </property>
          </object>
        </child>
        <child>
          <object class="AdwComboRow" id="voice.output">
            <property name="title" translatable="yes" context="Device for Audio Output">Output Device</property>
            <property name="factory">element-info-factory</property>
            <property name="model">
              <object class="GListStore">
                <property name="item-type">PurpleMediaElementInfo</property>
              </object>
            </property>
          </object>
        </child>
        <child>
          <object class="AdwActionRow">
            <property name="activatable-widget">voice.volume</property>
            <property name="title" translatable="yes">Volume</property>
            <child>
              <object class="GtkVolumeButton" id="voice.volume">
                <property name="focusable">1</property>
                <property name="focus-on-click">0</property>
                <property name="receives-default">1</property>
                <property name="orientation">vertical</property>
                <property name="valign">center</property>
                <property name="adjustment">adjustment2</property>
                <signal name="value-changed" handler="volume_changed_cb" swapped="no"/>
              </object>
            </child>
          </object>
        </child>
        <child>
          <object class="AdwActionRow" id="voice.threshold_row">
            <property name="activatable-widget">voice.threshold</property>
            <property name="title" translatable="yes">Silence threshold</property>
            <child>
              <object class="GtkScale" id="voice.threshold">
                <property name="focusable">1</property>
                <property name="hexpand">1</property>
                <property name="valign">center</property>
                <property name="adjustment">adjustment1</property>
                <property name="round-digits">0</property>
                <property name="digits">0</property>
                <signal name="value-changed" handler="threshold_value_changed_cb" object="PidginVVPrefs" swapped="no"/>
              </object>
            </child>
          </object>
        </child>
        <child>
          <object class="AdwPreferencesRow">
            <property name="margin-bottom">12</property>
            <property name="margin-end">12</property>
            <property name="margin-start">12</property>
            <property name="margin-top">12</property>
            <child>
              <object class="GtkBox">
                <property name="orientation">vertical</property>
                <property name="spacing">6</property>
                <child>
                  <object class="GtkToggleButton" id="voice.test">
                    <property name="label" translatable="yes">Test Audio</property>
                    <property name="focusable">1</property>
                    <property name="receives-default">1</property>
                    <signal name="toggled" handler="toggle_voice_test_cb" object="PidginVVPrefs" swapped="no"/>
                  </object>
                </child>
                <child>
                  <object class="GtkBox">
                    <property name="spacing">6</property>
                    <child>
                      <object class="GtkLevelBar" id="voice.level">
                        <property name="hexpand">1</property>
                        <!-- Keep this maximum in sync with MAX_AUDIO_LEVEL in
                             pidgin/prefs/pidginvvprefs.c -->
                        <property name="max-value">19</property>
                        <property name="mode">discrete</property>
                        <property name="valign">center</property>
                      </object>
                    </child>
                    <child>
                      <object class="GtkLabel" id="voice.drop">
                      </object>
                    </child>
                  </object>
                </child>
              </object>
            </child>
          </object>
        </child>
      </object>
    </child>
    <child>
      <object class="AdwPreferencesGroup">
        <property name="title" translatable="yes">Video</property>
        <child>
          <object class="AdwComboRow" id="video.input">
            <property name="title" translatable="yes" context="Device for Video Input">Input Device</property>
            <property name="factory">element-info-factory</property>
            <property name="model">
              <object class="GListStore">
                <property name="item-type">PurpleMediaElementInfo</property>
              </object>
            </property>
          </object>
        </child>
        <child>
          <object class="AdwComboRow" id="video.output">
            <property name="title" translatable="yes" context="Device for Video Output">Output Device</property>
            <property name="factory">element-info-factory</property>
            <property name="model">
              <object class="GListStore">
                <property name="item-type">PurpleMediaElementInfo</property>
              </object>
            </property>
          </object>
        </child>
        <child>
          <object class="AdwPreferencesRow">
            <property name="margin-bottom">12</property>
            <property name="margin-end">12</property>
            <property name="margin-start">12</property>
            <property name="margin-top">12</property>
            <child>
              <object class="GtkBox">
                <property name="orientation">vertical</property>
                <property name="spacing">6</property>
                <child>
                  <object class="GtkToggleButton" id="video.test">
                    <property name="label" translatable="yes">Test Video</property>
                    <property name="focusable">1</property>
                    <property name="receives-default">1</property>
                    <signal name="toggled" handler="toggle_video_test_cb" object="PidginVVPrefs" swapped="no"/>
                  </object>
                </child>
                <child>
                  <object class="GtkPicture" id="video.frame">
                    <property name="keep-aspect-ratio">1</property>
                  </object>
                </child>
              </object>
            </child>
          </object>
        </child>
      </object>
    </child>
  </template>
</interface>

mercurial