[libadwaita/ebassi/tagged-entry: 2/2] Add AdwTaggedEntry to the demo application
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libadwaita/ebassi/tagged-entry: 2/2] Add AdwTaggedEntry to the demo application
- Date: Fri, 4 Feb 2022 14:13:16 +0000 (UTC)
commit 4b2322cf3067b055f7bf658876df584e98e05d63
Author: Emmanuele Bassi <ebassi gnome org>
Date: Fri Feb 4 14:11:59 2022 +0000
Add AdwTaggedEntry to the demo application
A page for demonstrating the capabilities of the newly added
AdwTaggedEntry widget.
demo/adw-demo-window.c | 2 +
demo/adw-demo-window.ui | 8 ++++
demo/adwaita-demo.gresources.xml | 1 +
demo/meson.build | 1 +
.../tagged-entry/adw-demo-page-tagged-entry.c | 48 ++++++++++++++++++++++
.../tagged-entry/adw-demo-page-tagged-entry.h | 11 +++++
.../tagged-entry/adw-demo-page-tagged-entry.ui | 36 ++++++++++++++++
7 files changed, 107 insertions(+)
---
diff --git a/demo/adw-demo-window.c b/demo/adw-demo-window.c
index befb473e..acce97be 100644
--- a/demo/adw-demo-window.c
+++ b/demo/adw-demo-window.c
@@ -12,6 +12,7 @@
#include "pages/lists/adw-demo-page-lists.h"
#include "pages/styles/adw-demo-page-styles.h"
#include "pages/tab-view/adw-demo-page-tab-view.h"
+#include "pages/tagged-entry/adw-demo-page-tagged-entry.h"
#include "pages/toasts/adw-demo-page-toasts.h"
#include "pages/view-switcher/adw-demo-page-view-switcher.h"
#include "pages/welcome/adw-demo-page-welcome.h"
@@ -125,6 +126,7 @@ adw_demo_window_init (AdwDemoWindow *self)
g_type_ensure (ADW_TYPE_DEMO_PAGE_LISTS);
g_type_ensure (ADW_TYPE_DEMO_PAGE_STYLES);
g_type_ensure (ADW_TYPE_DEMO_PAGE_TAB_VIEW);
+ g_type_ensure (ADW_TYPE_DEMO_PAGE_TAGGED_ENTRY);
g_type_ensure (ADW_TYPE_DEMO_PAGE_TOASTS);
g_type_ensure (ADW_TYPE_DEMO_PAGE_VIEW_SWITCHER);
g_type_ensure (ADW_TYPE_DEMO_PAGE_WELCOME);
diff --git a/demo/adw-demo-window.ui b/demo/adw-demo-window.ui
index f2b4339c..287d5d91 100644
--- a/demo/adw-demo-window.ui
+++ b/demo/adw-demo-window.ui
@@ -216,6 +216,14 @@
</property>
</object>
</child>
+ <child>
+ <object class="GtkStackPage">
+ <property name="title" translatable="yes">Tagged Entries</property>
+ <property name="child">
+ <object class="AdwDemoPageTaggedEntry"/>
+ </property>
+ </object>
+ </child>
</object>
</child>
</object>
diff --git a/demo/adwaita-demo.gresources.xml b/demo/adwaita-demo.gresources.xml
index 390e7b09..2401a01f 100644
--- a/demo/adwaita-demo.gresources.xml
+++ b/demo/adwaita-demo.gresources.xml
@@ -54,6 +54,7 @@
<file preprocess="xml-stripblanks">pages/styles/adw-style-demo-window.ui</file>
<file preprocess="xml-stripblanks">pages/tab-view/adw-demo-page-tab-view.ui</file>
<file preprocess="xml-stripblanks">pages/tab-view/adw-tab-view-demo-window.ui</file>
+ <file preprocess="xml-stripblanks">pages/tagged-entry/adw-demo-page-tagged-entry.ui</file>
<file preprocess="xml-stripblanks">pages/toasts/adw-demo-page-toasts.ui</file>
<file preprocess="xml-stripblanks">pages/view-switcher/adw-demo-page-view-switcher.ui</file>
<file preprocess="xml-stripblanks">pages/view-switcher/adw-view-switcher-demo-window.ui</file>
diff --git a/demo/meson.build b/demo/meson.build
index 6af941fe..6c56872e 100644
--- a/demo/meson.build
+++ b/demo/meson.build
@@ -25,6 +25,7 @@ adwaita_demo_sources = [
'pages/styles/adw-style-demo-window.c',
'pages/tab-view/adw-demo-page-tab-view.c',
'pages/tab-view/adw-tab-view-demo-window.c',
+ 'pages/tagged-entry/adw-demo-page-tagged-entry.c',
'pages/toasts/adw-demo-page-toasts.c',
'pages/view-switcher/adw-demo-page-view-switcher.c',
'pages/view-switcher/adw-view-switcher-demo-window.c',
diff --git a/demo/pages/tagged-entry/adw-demo-page-tagged-entry.c
b/demo/pages/tagged-entry/adw-demo-page-tagged-entry.c
new file mode 100644
index 00000000..65edcd74
--- /dev/null
+++ b/demo/pages/tagged-entry/adw-demo-page-tagged-entry.c
@@ -0,0 +1,48 @@
+#include "adw-demo-page-tagged-entry.h"
+
+#include <glib/gi18n.h>
+
+struct _AdwDemoPageTaggedEntry
+{
+ AdwBin parent_instance;
+
+ AdwTaggedEntry *tagged_entry;
+ GtkWidget *add_tag_button;
+};
+
+G_DEFINE_TYPE (AdwDemoPageTaggedEntry, adw_demo_page_tagged_entry, ADW_TYPE_BIN)
+
+static guint last_tag = 0;
+
+static void
+on_add_tag_clicked (GtkButton *button,
+ AdwDemoPageTaggedEntry *self)
+{
+ char *tag_name = g_strdup_printf ("tag-%d", last_tag);
+ char *tag_label = g_strdup_printf ("Tag: %d", last_tag);
+
+ AdwTag *tag = adw_tagged_entry_add_tag (self->tagged_entry, tag_name);
+
+ adw_tag_set_label (tag, tag_label);
+
+ last_tag += 1;
+}
+
+static void
+adw_demo_page_tagged_entry_class_init (AdwDemoPageTaggedEntryClass *klass)
+{
+ GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
+
+ gtk_widget_class_set_template_from_resource (widget_class,
"/org/gnome/Adwaita1/Demo/ui/pages/tagged-entry/adw-demo-page-tagged-entry.ui");
+
+ gtk_widget_class_bind_template_child (widget_class, AdwDemoPageTaggedEntry, tagged_entry);
+ gtk_widget_class_bind_template_child (widget_class, AdwDemoPageTaggedEntry, add_tag_button);
+}
+
+static void
+adw_demo_page_tagged_entry_init (AdwDemoPageTaggedEntry *self)
+{
+ gtk_widget_init_template (GTK_WIDGET (self));
+
+ g_signal_connect (self->add_tag_button, "clicked", G_CALLBACK (on_add_tag_clicked), self);
+}
diff --git a/demo/pages/tagged-entry/adw-demo-page-tagged-entry.h
b/demo/pages/tagged-entry/adw-demo-page-tagged-entry.h
new file mode 100644
index 00000000..6d62fd96
--- /dev/null
+++ b/demo/pages/tagged-entry/adw-demo-page-tagged-entry.h
@@ -0,0 +1,11 @@
+#pragma once
+
+#include <adwaita.h>
+
+G_BEGIN_DECLS
+
+#define ADW_TYPE_DEMO_PAGE_TAGGED_ENTRY (adw_demo_page_tagged_entry_get_type())
+
+G_DECLARE_FINAL_TYPE (AdwDemoPageTaggedEntry, adw_demo_page_tagged_entry, ADW,
ADW_TYPE_DEMO_PAGE_TAGGED_ENTRY, AdwBin)
+
+G_END_DECLS
diff --git a/demo/pages/tagged-entry/adw-demo-page-tagged-entry.ui
b/demo/pages/tagged-entry/adw-demo-page-tagged-entry.ui
new file mode 100644
index 00000000..2dbfb375
--- /dev/null
+++ b/demo/pages/tagged-entry/adw-demo-page-tagged-entry.ui
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk" version="4.0"/>
+ <requires lib="libadwaita" version="1.0"/>
+ <template class="AdwDemoPageTaggedEntry" parent="AdwBin">
+ <property name="child">
+ <object class="AdwStatusPage">
+ <property name="title" translatable="yes">Tagged Entries</property>
+ <property name="description" translatable="yes">Entries with tags.</property>
+ <property name="child">
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="AdwTaggedEntry" id="tagged_entry">
+ <property name="placeholder-text" translatable="yes">Enter text here...</property>
+ <child>
+ <object class="AdwTag">
+ <property name="name">first-tag</property>
+ <property name="label">First</property>
+ <property name="show-close">0</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="add_tag_button">
+ <property name="label" translatable="yes">Add tag</property>
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
+ </property>
+ </template>
+</interface>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]