1
0
Fork 0
mirror of https://gitlab.gnome.org/GNOME/calls.git synced 2024-07-02 15:09:31 +00:00
Purism-Calls/src/ui/call-display.ui

488 lines
26 KiB
Plaintext
Raw Normal View History

<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.0 -->
<interface>
<requires lib="gtk+" version="3.20"/>
<template class="CallsCallDisplay" parent="GtkOverlay">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkBox">
<property name="can_focus">False</property>
<property name="halign">center</property>
<property name="margin_bottom">12</property>
<property name="margin_left">12</property>
<property name="margin_right">12</property>
<property name="margin_top">12</property>
<property name="orientation">vertical</property>
<property name="vexpand">True</property>
<property name="visible">True</property>
<property name="width_request">300</property>
<property name="sensitive" bind-source="dial_pad_revealer" bind-property="reveal-child" bind-flags="invert-boolean|bidirectional|sync-create"/>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="vexpand">True</property>
<child>
<object class="GtkLabel" id="incoming_phone_call">
<property name="visible">False</property>
<property name="can_focus">False</property>
<property name="margin_top">40</property>
<property name="margin_bottom">12</property>
<property name="label" translatable="yes">Incoming phone call</property>
</object>
</child>
<child>
2021-01-28 18:10:03 +00:00
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="vexpand">True</property>
<child>
<object class="GtkLabel" id="primary_contact_info">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_top">6</property>
<property name="margin_bottom">6</property>
<property name="ellipsize">end</property>
<attributes>
<attribute name="weight" value="bold"/>
<attribute name="scale" value="1.6"/>
</attributes>
</object>
</child>
<child>
<object class="GtkLabel" id="secondary_contact_info">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_top">4</property>
<property name="margin_bottom">4</property>
<property name="ellipsize">end</property>
</object>
</child>
2021-01-28 18:10:03 +00:00
<child>
<object class="HdyAvatar" id="avatar">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="size">100</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel" id="status">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_top">30</property>
<property name="margin_bottom">40</property>
<attributes>
<attribute name="scale" value="1.6"/>
</attributes>
</object>
</child>
<child>
<object class="GtkBox" id="controls">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">12</property>
<property name="homogeneous">True</property>
<property name="orientation">vertical</property>
<property name="vexpand">False</property>
<child>
<object class="GtkBox" id="general_controls">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">12</property>
<property name="height_request">65</property>
<property name="homogeneous">True</property>
<property name="hexpand">True</property>
<child>
<object class="GtkToggleButton" id="mute">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="no_show_all">True</property>
<property name="hexpand">True</property>
<property name="sensitive">True</property>
<signal name="toggled" handler="mute_toggled_cb" swapped="no"/>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">microphone-sensitivity-muted-symbolic</property>
<property name="icon_size">3</property>
<property name="vexpand">True</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_bottom">4</property>
<property name="wrap">True</property>
<property name="justify">center</property>
<property name="label" translatable="yes">Mute</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkToggleButton" id="speaker">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="no_show_all">True</property>
<property name="hexpand">True</property>
<property name="sensitive">True</property>
<signal name="toggled" handler="speaker_toggled_cb" swapped="no"/>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">audio-volume-high-symbolic</property>
<property name="icon_size">3</property>
<property name="vexpand">True</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_bottom">4</property>
<property name="wrap">True</property>
<property name="justify">center</property>
<property name="label" translatable="yes">Speaker</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkButton" id="add_call">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="no_show_all">True</property>
<property name="sensitive">False</property>
<signal name="clicked" handler="add_call_clicked_cb" swapped="no"/>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">new-call-symbolic</property>
<property name="icon_size">3</property>
<property name="vexpand">True</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_bottom">4</property>
<property name="wrap">True</property>
<property name="justify">center</property>
<property name="label" translatable="yes">Add call</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox" id="gsm_controls">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">12</property>
<property name="height_request">65</property>
<child>
<object class="GtkToggleButton" id="hold">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="no_show_all">True</property>
<property name="hexpand">True</property>
<property name="sensitive">False</property>
<signal name="toggled" handler="hold_toggled_cb" swapped="no"/>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">media-playback-pause-symbolic</property>
<property name="icon_size">3</property>
<property name="vexpand">True</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_bottom">4</property>
<property name="wrap">True</property>
<property name="justify">center</property>
<property name="label" translatable="yes">Hold</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkToggleButton" id="dial_pad">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="no_show_all">True</property>
<property name="active" bind-source="dial_pad_revealer" bind-property="reveal-child" bind-flags="bidirectional|sync-create"/>
<property name="hexpand">True</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">input-dialpad-symbolic</property>
<property name="icon_size">3</property>
<property name="vexpand">True</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_bottom">4</property>
<property name="wrap">True</property>
<property name="justify">center</property>
<property name="label" translatable="yes">Dial Pad</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox" id="blank">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="no_show_all">True</property>
<property name="hexpand">True</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="CallsEncryptionIndicator" id="encryption_indicator">
<property name="can_focus">False</property>
<property name="margin_top">30</property>
<property name="margin_bottom">20</property>
<property name="visible">True</property>
</object>
</child>
<child>
<object class="GtkBox" id="action_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">horizontal</property>
<property name="hexpand">True</property>
<child>
<object class="GtkButton" id="hang_up">
<property name="always_show_image">True</property>
<property name="can_focus">True</property>
<property name="halign">center</property>
<property name="height_request">65</property>
<property name="receives_default">False</property>
<property name="valign">start</property>
<property name="visible">True</property>
<property name="width_request">150</property>
<property name="hexpand">True</property>
<signal name="clicked" handler="hang_up_clicked_cb" swapped="no"/>
<style>
<class name="destructive-action"/>
<class name="image-button"/>
</style>
<child internal-child="accessible">
<object class="AtkObject" id="a11y-hang-up">
<property name="accessible-name" translatable="yes">Hang up</property>
</object>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="icon-name">call-stop-symbolic</property>
<property name="icon-size">5</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkButton" id="answer">
<property name="always_show_image">True</property>
<property name="can_focus">True</property>
<property name="halign">center</property>
<property name="height_request">65</property>
<property name="receives_default">False</property>
<property name="valign">start</property>
<property name="visible">True</property>
<property name="width_request">150</property>
<property name="hexpand">True</property>
<property name="margin_left">12</property>
<signal name="clicked" handler="answer_clicked_cb" swapped="no"/>
<style>
<class name="suggested-action"/>
<class name="image-button"/>
</style>
<child internal-child="accessible">
<object class="AtkObject" id="a11y-answer">
<property name="accessible-name" translatable="yes">Answer</property>
</object>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="icon-name">call-start-symbolic</property>
<property name="icon-size">5</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
<child type="overlay">
<object class="GtkRevealer" id="dial_pad_revealer">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">fill</property>
<property name="valign">end</property>
<property name="hexpand">True</property>
<property name="vexpand">False</property>
<property name="transition-type">slide-up</property>
<property name="reveal-child" bind-source="dial_pad" bind-property="active" bind-flags="bidirectional|sync-create"/>
<child>
<object class="GtkActionBar">
<property name="visible">True</property>
<property name="can_focus">False</property>
<style>
<class name="background"/>
</style>
<child type="center">
Replace HdyDialer with HdyKeypad and bump libhandy to 0.0.12 HdyDialer was deprecated and therefore is replaced with HdyKeypad. HdyDialer used a `gchr *` to store the entered phone number. On every button press the entire text of the display entry was replaced with the new string, which messed up selection and cursor position. HdyKeypad connects directly to a GtkEntry and inserts each button press the same way as a keyboard stroke would do. In the case of the `call display` entry every new digit is appended to the end of the input and therefore it also moves the cursor to the end of the entry. Instead of making the Entry not editable, only the events which would remove text form the entry are blocked, via the `delete-text` signal. And the signal `insert-text` is used to block unwanted chars from beeing inserted. Same as for the `call display` entry also the `new call box` entry is made editable and the signal `insert-text` is used to block unwanted chars. All other user action possible on a entry arn't blocked e.g. repositioning the cursor. The advantage of making the Entry editable is that we can show the cursor position. It also allows the user to select the position where new digits are inserted in the `new call box`. On a button press the focus is set to the Entry to give the correct feedback to the user. This centers the text on the entry, as required by the design. This also makes the delete button remove only one char at the time, to move closer to the desired UX. Related: https://source.puri.sm/Librem5/calls/issues/58 Fixes: https://source.puri.sm/Librem5/calls/issues/82
2019-09-17 12:09:33 +00:00
<object class="GtkBox" id="box_keypad">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="width_request">300</property>
<property name="margin_bottom">6</property>
<property name="margin_top">12</property>
<property name="spacing">10</property>
<child>
Replace HdyDialer with HdyKeypad and bump libhandy to 0.0.12 HdyDialer was deprecated and therefore is replaced with HdyKeypad. HdyDialer used a `gchr *` to store the entered phone number. On every button press the entire text of the display entry was replaced with the new string, which messed up selection and cursor position. HdyKeypad connects directly to a GtkEntry and inserts each button press the same way as a keyboard stroke would do. In the case of the `call display` entry every new digit is appended to the end of the input and therefore it also moves the cursor to the end of the entry. Instead of making the Entry not editable, only the events which would remove text form the entry are blocked, via the `delete-text` signal. And the signal `insert-text` is used to block unwanted chars from beeing inserted. Same as for the `call display` entry also the `new call box` entry is made editable and the signal `insert-text` is used to block unwanted chars. All other user action possible on a entry arn't blocked e.g. repositioning the cursor. The advantage of making the Entry editable is that we can show the cursor position. It also allows the user to select the position where new digits are inserted in the `new call box`. On a button press the focus is set to the Entry to give the correct feedback to the user. This centers the text on the entry, as required by the design. This also makes the delete button remove only one char at the time, to move closer to the desired UX. Related: https://source.puri.sm/Librem5/calls/issues/58 Fixes: https://source.puri.sm/Librem5/calls/issues/82
2019-09-17 12:09:33 +00:00
<object class="GtkEntry" id="keypad_entry">
<property name="visible">True</property>
Replace HdyDialer with HdyKeypad and bump libhandy to 0.0.12 HdyDialer was deprecated and therefore is replaced with HdyKeypad. HdyDialer used a `gchr *` to store the entered phone number. On every button press the entire text of the display entry was replaced with the new string, which messed up selection and cursor position. HdyKeypad connects directly to a GtkEntry and inserts each button press the same way as a keyboard stroke would do. In the case of the `call display` entry every new digit is appended to the end of the input and therefore it also moves the cursor to the end of the entry. Instead of making the Entry not editable, only the events which would remove text form the entry are blocked, via the `delete-text` signal. And the signal `insert-text` is used to block unwanted chars from beeing inserted. Same as for the `call display` entry also the `new call box` entry is made editable and the signal `insert-text` is used to block unwanted chars. All other user action possible on a entry arn't blocked e.g. repositioning the cursor. The advantage of making the Entry editable is that we can show the cursor position. It also allows the user to select the position where new digits are inserted in the `new call box`. On a button press the focus is set to the Entry to give the correct feedback to the user. This centers the text on the entry, as required by the design. This also makes the delete button remove only one char at the time, to move closer to the desired UX. Related: https://source.puri.sm/Librem5/calls/issues/58 Fixes: https://source.puri.sm/Librem5/calls/issues/82
2019-09-17 12:09:33 +00:00
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="xalign">0.5</property>
Replace HdyDialer with HdyKeypad and bump libhandy to 0.0.12 HdyDialer was deprecated and therefore is replaced with HdyKeypad. HdyDialer used a `gchr *` to store the entered phone number. On every button press the entire text of the display entry was replaced with the new string, which messed up selection and cursor position. HdyKeypad connects directly to a GtkEntry and inserts each button press the same way as a keyboard stroke would do. In the case of the `call display` entry every new digit is appended to the end of the input and therefore it also moves the cursor to the end of the entry. Instead of making the Entry not editable, only the events which would remove text form the entry are blocked, via the `delete-text` signal. And the signal `insert-text` is used to block unwanted chars from beeing inserted. Same as for the `call display` entry also the `new call box` entry is made editable and the signal `insert-text` is used to block unwanted chars. All other user action possible on a entry arn't blocked e.g. repositioning the cursor. The advantage of making the Entry editable is that we can show the cursor position. It also allows the user to select the position where new digits are inserted in the `new call box`. On a button press the focus is set to the Entry to give the correct feedback to the user. This centers the text on the entry, as required by the design. This also makes the delete button remove only one char at the time, to move closer to the desired UX. Related: https://source.puri.sm/Librem5/calls/issues/58 Fixes: https://source.puri.sm/Librem5/calls/issues/82
2019-09-17 12:09:33 +00:00
<signal name="delete-text" handler="block_delete_cb"/>
<signal name="insert-text" handler="insert_text_cb"/>
<style>
<class name="phone-number-entry"/>
</style>
</object>
</child>
<child>
Replace HdyDialer with HdyKeypad and bump libhandy to 0.0.12 HdyDialer was deprecated and therefore is replaced with HdyKeypad. HdyDialer used a `gchr *` to store the entered phone number. On every button press the entire text of the display entry was replaced with the new string, which messed up selection and cursor position. HdyKeypad connects directly to a GtkEntry and inserts each button press the same way as a keyboard stroke would do. In the case of the `call display` entry every new digit is appended to the end of the input and therefore it also moves the cursor to the end of the entry. Instead of making the Entry not editable, only the events which would remove text form the entry are blocked, via the `delete-text` signal. And the signal `insert-text` is used to block unwanted chars from beeing inserted. Same as for the `call display` entry also the `new call box` entry is made editable and the signal `insert-text` is used to block unwanted chars. All other user action possible on a entry arn't blocked e.g. repositioning the cursor. The advantage of making the Entry editable is that we can show the cursor position. It also allows the user to select the position where new digits are inserted in the `new call box`. On a button press the focus is set to the Entry to give the correct feedback to the user. This centers the text on the entry, as required by the design. This also makes the delete button remove only one char at the time, to move closer to the desired UX. Related: https://source.puri.sm/Librem5/calls/issues/58 Fixes: https://source.puri.sm/Librem5/calls/issues/82
2019-09-17 12:09:33 +00:00
<object class="HdyKeypad" id="keypad">
<property name="visible">True</property>
Replace HdyDialer with HdyKeypad and bump libhandy to 0.0.12 HdyDialer was deprecated and therefore is replaced with HdyKeypad. HdyDialer used a `gchr *` to store the entered phone number. On every button press the entire text of the display entry was replaced with the new string, which messed up selection and cursor position. HdyKeypad connects directly to a GtkEntry and inserts each button press the same way as a keyboard stroke would do. In the case of the `call display` entry every new digit is appended to the end of the input and therefore it also moves the cursor to the end of the entry. Instead of making the Entry not editable, only the events which would remove text form the entry are blocked, via the `delete-text` signal. And the signal `insert-text` is used to block unwanted chars from beeing inserted. Same as for the `call display` entry also the `new call box` entry is made editable and the signal `insert-text` is used to block unwanted chars. All other user action possible on a entry arn't blocked e.g. repositioning the cursor. The advantage of making the Entry editable is that we can show the cursor position. It also allows the user to select the position where new digits are inserted in the `new call box`. On a button press the focus is set to the Entry to give the correct feedback to the user. This centers the text on the entry, as required by the design. This also makes the delete button remove only one char at the time, to move closer to the desired UX. Related: https://source.puri.sm/Librem5/calls/issues/58 Fixes: https://source.puri.sm/Librem5/calls/issues/82
2019-09-17 12:09:33 +00:00
<property name="can_focus">False</property>
<property name="column_spacing">16</property>
<property name="row_spacing">10</property>
<property name="halign">center</property>
<property name="entry">keypad_entry</property>
</object>
</child>
<child>
<object class="GtkButton">
<property name="always_show_image">True</property>
<property name="can_focus">True</property>
<property name="halign">center</property>
<property name="height_request">65</property>
<property name="receives_default">True</property>
<property name="valign">start</property>
<property name="relief">none</property>
<property name="visible">True</property>
<property name="width_request">150</property>
<signal name="clicked" handler="hide_dial_pad_clicked_cb" swapped="yes"/>
<style>
<class name="image-button"/>
</style>
<child internal-child="accessible">
<object class="AtkObject" id="a11y-hide-dial-pad">
<property name="accessible-name" translatable="yes">Hide the dial pad</property>
</object>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="icon-name">go-down-symbolic</property>
<property name="icon-size">5</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</template>
<object class="GtkSizeGroup">
<widgets>
<widget name="mute"/>
<widget name="speaker"/>
<widget name="add_call"/>
<widget name="dial_pad"/>
<widget name="hold"/>
<widget name="blank"/>
</widgets>
</object>
</interface>