[libhandy/hdy_password_entry: 62/62] example: Add Password entry
- From: Alexander Mikhaylenko <alexm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libhandy/hdy_password_entry: 62/62] example: Add Password entry
- Date: Fri, 22 May 2020 13:38:19 +0000 (UTC)
commit 0fa0361074547434a38cb6fa9c7689dd803cc936
Author: Ujjwal Kumar <ujjwalkumar0501 gmail com>
Date: Thu Apr 16 11:43:28 2020 +0530
example: Add Password entry
examples/hdy-demo-window.c | 12 ++++
examples/hdy-demo-window.ui | 132 ++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 144 insertions(+)
---
diff --git a/examples/hdy-demo-window.c b/examples/hdy-demo-window.c
index 2dcb7838..6a6f2660 100644
--- a/examples/hdy-demo-window.c
+++ b/examples/hdy-demo-window.c
@@ -31,6 +31,7 @@ struct _HdyDemoWindow
HdyComboRow *carousel_indicator_style_row;
HdyAvatar *avatar;
GtkFileChooserButton *avatar_filechooser;
+ HdyPasswordEntry *password_entry;
};
G_DEFINE_TYPE (HdyDemoWindow, hdy_demo_window, HDY_TYPE_APPLICATION_WINDOW)
@@ -329,6 +330,15 @@ avatar_file_remove_cb (HdyDemoWindow *self)
hdy_avatar_set_image_load_func (self->avatar, NULL, NULL, NULL);
}
+static void
+spin_button_value_changed_cb (HdyDemoWindow *self,
+ GtkSpinButton *spin_button)
+{
+ gdouble peek_duration = gtk_spin_button_get_value (spin_button);
+
+ hdy_password_entry_set_peek_duration (self->password_entry, (guint) peek_duration);
+}
+
static GdkPixbuf *
avatar_load_file (gint size, HdyDemoWindow *self)
{
@@ -409,6 +419,7 @@ hdy_demo_window_class_init (HdyDemoWindowClass *klass)
gtk_widget_class_bind_template_child (widget_class, HdyDemoWindow, carousel_indicator_style_row);
gtk_widget_class_bind_template_child (widget_class, HdyDemoWindow, avatar);
gtk_widget_class_bind_template_child (widget_class, HdyDemoWindow, avatar_filechooser);
+ gtk_widget_class_bind_template_child (widget_class, HdyDemoWindow, password_entry);
gtk_widget_class_bind_template_callback_full (widget_class, "key_pressed_cb",
G_CALLBACK(hdy_demo_window_key_pressed_cb));
gtk_widget_class_bind_template_callback_full (widget_class, "notify_visible_child_cb",
G_CALLBACK(hdy_demo_window_notify_visible_child_cb));
gtk_widget_class_bind_template_callback_full (widget_class, "notify_deck_visible_child_cb",
G_CALLBACK(hdy_demo_window_notify_deck_visible_child_cb));
@@ -425,6 +436,7 @@ hdy_demo_window_class_init (HdyDemoWindowClass *klass)
gtk_widget_class_bind_template_callback_full (widget_class, "carousel_return_clicked_cb",
G_CALLBACK(carousel_return_clicked_cb));
gtk_widget_class_bind_template_callback_full (widget_class, "avatar_file_remove_cb",
G_CALLBACK(avatar_file_remove_cb));
gtk_widget_class_bind_template_callback_full (widget_class, "avatar_file_set_cb",
G_CALLBACK(avatar_file_set_cb));
+ gtk_widget_class_bind_template_callback_full (widget_class, "spin_button_value_changed_cb",
G_CALLBACK(spin_button_value_changed_cb));
}
static void
diff --git a/examples/hdy-demo-window.ui b/examples/hdy-demo-window.ui
index 3a83086e..44399ead 100644
--- a/examples/hdy-demo-window.ui
+++ b/examples/hdy-demo-window.ui
@@ -2120,6 +2120,131 @@
<property name="title">Window</property>
</packing>
</child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <property name="can_focus">False</property>
+ <property name="valign">center</property>
+ <property name="expand">True</property>
+ <property name="margin-bottom">32</property>
+ <property name="margin-start">12</property>
+ <property name="margin-end">12</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <property name="can_focus">False</property>
+ <property name="margin-bottom">32</property>
+ <property name="expand">True</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="opacity">0.5</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Password Entry</property>
+ <property name="justify">center</property>
+ <property name="use_markup">true</property>
+ <property name="wrap">True</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ <attribute name="scale" value="2"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="HdyColumn">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="maximum-width">400</property>
+ <property name="linear-growth-width">300</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">center</property>
+ <property name="hexpand">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkListBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="expand">True</property>
+ <property name="selection-mode">none</property>
+ <style>
+ <class name="preferences"/>
+ </style>
+ <child>
+ <object class="HdyActionRow">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="title" translatable="yes">Password</property>
+ <property name="activatable">False</property>.
+ <child>
+ <object class="HdyPasswordEntry" id="password_entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="valign">center</property>
+ <property name="peek-duration">500</property>
+ <property name="show-peek-icon"
bind-source="password_show_peek_icon" bind-property="state" bind-flags="sync-create"/>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="HdyActionRow">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="title" translatable="yes">Show peek icon</property>
+ <property
name="activatable_widget">password_show_peek_icon</property>
+ <child>
+ <object class="GtkSwitch" id="password_show_peek_icon">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="valign">center</property>
+ <property name="state">True</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="HdyActionRow">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="title" translatable="yes">Peek duration</property>
+ <property name="activatable">False</property>.
+ <child>
+ <object class="GtkSpinButton" id="peek_duration">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="valign">center</property>
+ <property name="numeric">True</property>
+ <property name="update-policy">GTK_UPDATE_IF_VALID</property>
+ <property name="adjustment">peek_duration_adjustment</property>
+ <signal name="value-changed" swapped="yes"
handler="spin_button_value_changed_cb"/>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="name">passwordentry</property>
+ <property name="title">Password Entry</property>
+ </packing>
+ </child>
</object>
</child>
</object>
@@ -2184,4 +2309,11 @@
<mime-type>image/gif</mime-type>
</mime-types>
</object>
+ <object class="GtkAdjustment" id="peek_duration_adjustment">
+ <property name="lower">500</property>
+ <property name="upper">65000</property>
+ <property name="value">500</property>
+ <property name="page-increment">100</property>
+ <property name="step-increment">100</property>
+ </object>
</interface>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]