1
0
Fork 0
mirror of https://gitlab.gnome.org/GNOME/calls.git synced 2024-12-04 20:07:36 +00:00

sip-account-widget: compose with GtkBin instead of subclassing GtkBox

Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
This commit is contained in:
Anton Lazarev 2023-08-26 22:25:49 -07:00
parent 2141c1ffc2
commit 9fa0539ad6
3 changed files with 228 additions and 223 deletions

View file

@ -51,7 +51,7 @@ static GParamSpec *props[PROP_LAST_PROP];
struct _CallsSipAccountWidget {
GtkBox parent;
GtkBin parent;
/* Header bar */
GtkWidget *header_add;
@ -87,7 +87,7 @@ struct _CallsSipAccountWidget {
gboolean port_self_change;
};
G_DEFINE_TYPE (CallsSipAccountWidget, calls_sip_account_widget, GTK_TYPE_BOX)
G_DEFINE_TYPE (CallsSipAccountWidget, calls_sip_account_widget, GTK_TYPE_BIN)
static gboolean

View file

@ -32,7 +32,7 @@ G_BEGIN_DECLS
#define CALLS_TYPE_SIP_ACCOUNT_WIDGET (calls_sip_account_widget_get_type ())
G_DECLARE_FINAL_TYPE (CallsSipAccountWidget, calls_sip_account_widget, CALLS, SIP_ACCOUNT_WIDGET, GtkBox)
G_DECLARE_FINAL_TYPE (CallsSipAccountWidget, calls_sip_account_widget, CALLS, SIP_ACCOUNT_WIDGET, GtkBin)
CallsSipAccountWidget *calls_sip_account_widget_new (CallsSipProvider *provider);
void calls_sip_account_widget_set_origin (CallsSipAccountWidget *self,

View file

@ -2,238 +2,243 @@
<interface>
<requires lib="gtk+" version="3.24"/>
<requires lib="libhandy" version="1.0"/>
<template class="CallsSipAccountWidget" parent="GtkBox">
<template class="CallsSipAccountWidget" parent="GtkBin">
<property name="visible">True</property>
<property name="orientation">vertical</property>
<child>
<object class="HdyHeaderBar" id="header_add">
<property name="title" translatable="yes">Add Account</property>
<property name="show-close-button">True</property>
<object class="GtkBox">
<property name="visible">True</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkButton" id="login_btn">
<property name="visible">True</property>
<property name="use-underline">True</property>
<property name="label" translatable="yes">_Log In</property>
<signal name="clicked" handler="on_login_clicked" swapped="yes"/>
<style>
<class name="suggested-action"/>
</style>
<object class="HdyHeaderBar" id="header_add">
<property name="title" translatable="yes">Add Account</property>
<property name="show-close-button">True</property>
<child>
<object class="GtkButton" id="login_btn">
<property name="visible">True</property>
<property name="use-underline">True</property>
<property name="label" translatable="yes">_Log In</property>
<signal name="clicked" handler="on_login_clicked" swapped="yes"/>
<style>
<class name="suggested-action"/>
</style>
</object>
<packing>
<property name="pack_type">end</property>
</packing>
</child>
<child>
<object class="GtkSpinner" id="spinner_add">
<property name="visible">True</property>
</object>
<packing>
<property name="pack_type">end</property>
</packing>
</child>
</object>
<packing>
<property name="pack_type">end</property>
</packing>
</child>
<child>
<object class="GtkSpinner" id="spinner_add">
<object class="HdyHeaderBar" id="header_edit">
<property name="visible">True</property>
<property name="show-close-button">True</property>
<property name="title" translatable="yes">Manage Account</property>
<child>
<object class="GtkButton" id="apply_btn">
<property name="visible">True</property>
<property name="use-underline">True</property>
<property name="label" translatable="yes">_Apply</property>
<signal name="clicked" handler="on_apply_clicked" swapped="yes"/>
<style>
<class name="suggested-action"/>
</style>
</object>
<packing>
<property name="pack_type">end</property>
</packing>
</child>
<child>
<object class="GtkButton" id="delete_btn">
<property name="visible">True</property>
<property name="use-underline">True</property>
<property name="label" translatable="yes">_Delete</property>
<signal name="clicked" handler="on_delete_clicked" swapped="yes"/>
<style>
<class name="destructive-action"/>
</style>
</object>
<packing>
<property name="pack_type">end</property>
</packing>
</child>
<child>
<object class="GtkSpinner" id="spinner_edit">
<property name="visible">True</property>
</object>
<packing>
<property name="pack_type">end</property>
</packing>
</child>
</object>
</child>
<child>
<object class="HdyPreferencesPage">
<property name="visible">True</property>
<child>
<object class="HdyPreferencesGroup">
<property name="visible">True</property>
<child>
<object class="HdyActionRow">
<property name="visible">True</property>
<property name="title" translatable="yes">Server</property>
<child>
<object class="GtkEntry" id="host">
<property name="visible">True</property>
<property name="valign">center</property>
<signal name="changed" handler="on_user_changed" swapped="yes"/>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="HdyPreferencesGroup">
<property name="visible">True</property>
<child>
<object class="HdyActionRow">
<property name="visible">True</property>
<property name="title" translatable="yes">Display Name</property>
<property name="subtitle" translatable="yes">Optional</property>
<child>
<object class="GtkEntry" id="display_name">
<property name="visible">True</property>
<property name="valign">center</property>
<signal name="changed" handler="on_user_changed" swapped="yes"/>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="HdyPreferencesGroup">
<property name="visible">True</property>
<child>
<object class="HdyActionRow">
<property name="visible">True</property>
<property name="title" translatable="yes">User ID</property>
<child>
<object class="GtkEntry" id="user">
<property name="visible">True</property>
<property name="valign">center</property>
<signal name="changed" handler="on_user_changed" swapped="yes"/>
</object>
</child>
</object>
</child>
<child>
<object class="HdyActionRow">
<property name="visible">True</property>
<property name="title" translatable="yes">Password</property>
<child>
<object class="GtkEntry" id="password">
<property name="visible">True</property>
<property name="valign">center</property>
<property name="input-purpose">password</property>
<property name="visibility">False</property>
<property name="primary_icon_sensitive">False</property>
<property name="secondary_icon_activatable">True</property>
<property name="secondary_icon_name">view-reveal-symbolic</property>
<property name="secondary_icon_sensitive">True</property>
<signal name="changed" handler="on_user_changed" swapped="yes"/>
<signal name="icon-press" handler="on_password_visibility_changed" swapped="yes"/>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="HdyPreferencesGroup">
<property name="visible">True</property>
<child>
<object class="HdyActionRow">
<property name="visible">True</property>
<property name="title" translatable="yes">Port</property>
<child>
<object class="GtkEntry" id="port">
<property name="visible">True</property>
<property name="valign">center</property>
<property name="input-purpose">digits</property>
<signal name="changed" handler="on_user_changed" swapped="yes"/>
<signal name="insert-text" handler="on_port_entry_insert_text" swapped="yes"/>
<signal name="insert-text" handler="on_port_entry_after_insert_text" swapped="yes" after="yes"/>
</object>
</child>
</object>
</child>
<child>
<object class="HdyComboRow" id="protocol">
<property name="visible">True</property>
<property name="title" translatable="yes">Transport</property>
<signal name="notify::selected-index" handler="on_user_changed" swapped="yes"/>
</object>
</child>
<child>
<object class="HdyComboRow" id="media_encryption">
<property name="visible">True</property>
<property name="title" translatable="yes">Media Encryption</property>
<signal name="notify::selected-index" handler="on_user_changed" swapped="yes"/>
</object>
</child>
</object>
</child>
<child>
<object class="HdyPreferencesGroup">
<property name="visible">True</property>
<child>
<object class="HdyActionRow">
<property name="visible">True</property>
<property name="title" translatable="yes">Use for Phone Calls</property>
<child>
<object class="GtkSwitch" id="tel_switch">
<property name="visible">True</property>
<property name="valign">center</property>
<signal name="notify::active" handler="on_user_changed" swapped="yes"/>
</object>
</child>
</object>
</child>
<child>
<object class="HdyActionRow">
<property name="visible">True</property>
<property name="title" translatable="yes">Automatically Connect</property>
<child>
<object class="GtkSwitch" id="auto_connect_switch">
<property name="visible">True</property>
<property name="valign">center</property>
<signal name="notify::active" handler="on_user_changed" swapped="yes"/>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="pack_type">end</property>
</packing>
</child>
</object>
</child>
<child>
<object class="HdyHeaderBar" id="header_edit">
<property name="visible">True</property>
<property name="show-close-button">True</property>
<property name="title" translatable="yes">Manage Account</property>
<child>
<object class="GtkButton" id="apply_btn">
<property name="visible">True</property>
<property name="use-underline">True</property>
<property name="label" translatable="yes">_Apply</property>
<signal name="clicked" handler="on_apply_clicked" swapped="yes"/>
<style>
<class name="suggested-action"/>
</style>
</object>
<packing>
<property name="pack_type">end</property>
</packing>
</child>
<child>
<object class="GtkButton" id="delete_btn">
<property name="visible">True</property>
<property name="use-underline">True</property>
<property name="label" translatable="yes">_Delete</property>
<signal name="clicked" handler="on_delete_clicked" swapped="yes"/>
<style>
<class name="destructive-action"/>
</style>
</object>
<packing>
<property name="pack_type">end</property>
</packing>
</child>
<child>
<object class="GtkSpinner" id="spinner_edit">
<property name="visible">True</property>
</object>
<packing>
<property name="pack_type">end</property>
</packing>
</child>
</object>
</child>
<child>
<object class="HdyPreferencesPage">
<property name="visible">True</property>
<child>
<object class="HdyPreferencesGroup">
<property name="visible">True</property>
<child>
<object class="HdyActionRow">
<property name="visible">True</property>
<property name="title" translatable="yes">Server</property>
<child>
<object class="GtkEntry" id="host">
<property name="visible">True</property>
<property name="valign">center</property>
<signal name="changed" handler="on_user_changed" swapped="yes"/>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="HdyPreferencesGroup">
<property name="visible">True</property>
<child>
<object class="HdyActionRow">
<property name="visible">True</property>
<property name="title" translatable="yes">Display Name</property>
<property name="subtitle" translatable="yes">Optional</property>
<child>
<object class="GtkEntry" id="display_name">
<property name="visible">True</property>
<property name="valign">center</property>
<signal name="changed" handler="on_user_changed" swapped="yes"/>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="HdyPreferencesGroup">
<property name="visible">True</property>
<child>
<object class="HdyActionRow">
<property name="visible">True</property>
<property name="title" translatable="yes">User ID</property>
<child>
<object class="GtkEntry" id="user">
<property name="visible">True</property>
<property name="valign">center</property>
<signal name="changed" handler="on_user_changed" swapped="yes"/>
</object>
</child>
</object>
</child>
<child>
<object class="HdyActionRow">
<property name="visible">True</property>
<property name="title" translatable="yes">Password</property>
<child>
<object class="GtkEntry" id="password">
<property name="visible">True</property>
<property name="valign">center</property>
<property name="input-purpose">password</property>
<property name="visibility">False</property>
<property name="primary_icon_sensitive">False</property>
<property name="secondary_icon_activatable">True</property>
<property name="secondary_icon_name">view-reveal-symbolic</property>
<property name="secondary_icon_sensitive">True</property>
<signal name="changed" handler="on_user_changed" swapped="yes"/>
<signal name="icon-press" handler="on_password_visibility_changed" swapped="yes"/>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="HdyPreferencesGroup">
<property name="visible">True</property>
<child>
<object class="HdyActionRow">
<property name="visible">True</property>
<property name="title" translatable="yes">Port</property>
<child>
<object class="GtkEntry" id="port">
<property name="visible">True</property>
<property name="valign">center</property>
<property name="input-purpose">digits</property>
<signal name="changed" handler="on_user_changed" swapped="yes"/>
<signal name="insert-text" handler="on_port_entry_insert_text" swapped="yes"/>
<signal name="insert-text" handler="on_port_entry_after_insert_text" swapped="yes" after="yes"/>
</object>
</child>
</object>
</child>
<child>
<object class="HdyComboRow" id="protocol">
<property name="visible">True</property>
<property name="title" translatable="yes">Transport</property>
<signal name="notify::selected-index" handler="on_user_changed" swapped="yes"/>
</object>
</child>
<child>
<object class="HdyComboRow" id="media_encryption">
<property name="visible">True</property>
<property name="title" translatable="yes">Media Encryption</property>
<signal name="notify::selected-index" handler="on_user_changed" swapped="yes"/>
</object>
</child>
</object>
</child>
<child>
<object class="HdyPreferencesGroup">
<property name="visible">True</property>
<child>
<object class="HdyActionRow">
<property name="visible">True</property>
<property name="title" translatable="yes">Use for Phone Calls</property>
<child>
<object class="GtkSwitch" id="tel_switch">
<property name="visible">True</property>
<property name="valign">center</property>
<signal name="notify::active" handler="on_user_changed" swapped="yes"/>
</object>
</child>
</object>
</child>
<child>
<object class="HdyActionRow">
<property name="visible">True</property>
<property name="title" translatable="yes">Automatically Connect</property>
<child>
<object class="GtkSwitch" id="auto_connect_switch">
<property name="visible">True</property>
<property name="valign">center</property>
<signal name="notify::active" handler="on_user_changed" swapped="yes"/>
</object>
</child>
</object>
</child>
</object>
</child>
<object class="GtkSizeGroup">
<widgets>
<widget name="host"/>
<widget name="display_name"/>
<widget name="user"/>
<widget name="password"/>
<widget name="port"/>
</widgets>
</object>
</child>
</template>
<object class="GtkSizeGroup">
<widgets>
<widget name="host"/>
<widget name="display_name"/>
<widget name="user"/>
<widget name="password"/>
<widget name="port"/>
</widgets>
</object>
</interface>