Commit f94c05c0 authored by Alexander Mikhaylenko's avatar Alexander Mikhaylenko
Browse files

Rename to libadwaita

parent 6fda4587
......@@ -124,19 +124,8 @@ build-flatpak:
stage: build
before_script: []
variables:
MANIFEST_PATH: 'examples/sm.puri.Handy.Demo.json'
MANIFEST_PATH: 'examples/org.gnome.Adwaita.Demo.json'
RUNTIME_REPO: 'https://nightly.gnome.org/gnome-nightly.flatpakrepo'
FLATPAK_MODULE: 'libhandy'
APP_ID: 'sm.puri.Handy.Demo'
BUNDLE: 'sm.puri.Handy.Demo.flatpak'
build-flatpak-glade:
extends: '.flatpak'
stage: build
before_script: []
variables:
MANIFEST_PATH: 'glade/sm.puri.Handy.Glade.json'
RUNTIME_REPO: 'https://nightly.gnome.org/gnome-nightly.flatpakrepo'
FLATPAK_MODULE: 'libhandy'
APP_ID: 'sm.puri.Handy.Glade'
BUNDLE: 'sm.puri.Handy.Glade.flatpak'
FLATPAK_MODULE: 'libadwaita'
APP_ID: 'org.gnome.Adwaita.Demo'
BUNDLE: 'org.gnome.Adwaita.Demo.flatpak'
# What problem did you encounter?
## In what part of libhandy did you experience the problem? Note that multiple boxes may be checked.
## In what part of libadwaita did you experience the problem? Note that multiple boxes may be checked.
- [ ] build system
- [ ] documentation
- [ ] example application
- [ ] HdyActionRow
- [ ] HdyCarousel
- [ ] HdyClamp
- [ ] HdyComboRow
- [ ] HdyEnumValueObject
- [ ] HdyExpanderRow
- [ ] HdyHeaderBar
- [ ] HdyKeypad
- [ ] HdyLeaflet
- [ ] HdyPreferencesGroup
- [ ] HdyPreferencesPage
- [ ] HdyPreferencesRow
- [ ] HdyPreferencesWindow
- [ ] HdySearchBar
- [ ] HdySqueezer
- [ ] HdySwipeable
- [ ] HdySwipeGroup
- [ ] HdyTitleBar
- [ ] HdyValueObject
- [ ] HdyViewSwitcher
- [ ] HdyViewSwitcherBar
- [ ] AdwActionRow
- [ ] AdwCarousel
- [ ] AdwClamp
- [ ] AdwComboRow
- [ ] AdwEnumValueObject
- [ ] AdwExpanderRow
- [ ] AdwHeaderBar
- [ ] AdwKeypad
- [ ] AdwLeaflet
- [ ] AdwPreferencesGroup
- [ ] AdwPreferencesPage
- [ ] AdwPreferencesRow
- [ ] AdwPreferencesWindow
- [ ] AdwSearchBar
- [ ] AdwSqueezer
- [ ] AdwSwipeable
- [ ] AdwSwipeGroup
- [ ] AdwTitleBar
- [ ] AdwValueObject
- [ ] AdwViewSwitcher
- [ ] AdwViewSwitcherBar
- [ ] somewhere else (please elaborate)
## What is the actual behaviour?
......
......@@ -151,8 +151,8 @@ Internal headers (for consistency, whether they need to be installed or not)
should contain the following guard to prevent users from directly including
them:
```c
#if !defined(_HANDY_INSIDE) && !defined(HANDY_COMPILATION)
#error "Only <handy.h> can be included directly."
#if !defined(_ADWAITA_INSIDE) && !defined(ADWAITA_COMPILATION)
#error "Only <adwaita.h> can be included directly."
#endif
```
......@@ -241,16 +241,18 @@ Static functions don't need the class prefix. E.g. with a type foo_bar:
```c
static void
grab_focus_cb (HdyDialer *dialer,
gpointer unused)
selection_changed_cb (AdwViewSwitcher *self,
guint position,
guint n_items)
```
*Bad*:
```c
static void
hdy_dialer_grab_focus_cb (HdyDialer *dialer,
gpointer unused)
adw_view_switcher_selection_changed_cb (AdwViewSwitcher *self,
guint position,
guint n_items)
```
Note however that virtual methods like
......@@ -331,5 +333,5 @@ GdkPixbuf *pixbuf = gtk_icon_info_load_icon (info, NULL);
g_object_unref (pixbuf);
```
Using the above is fine since libhandy doesn't target any older glib versions
Using the above is fine since libadwaita doesn't target any older glib versions
or non GCC/Clang compilers at the moment.
# Handy
[![Pipeline status](https://gitlab.gnome.org/GNOME/libhandy/badges/master/build.svg)](https://gitlab.gnome.org/GNOME/libhandy/commits/master)
[![Code coverage](https://gitlab.gnome.org/GNOME/libhandy/badges/master/coverage.svg)](https://gitlab.gnome.org/GNOME/libhandy/commits/master)
# Adwaita
[![Pipeline status](https://gitlab.gnome.org/exalm/libadwaita/badges/master/build.svg)](https://gitlab.gnome.org/exalm/libadwaita/commits/master)
[![Code coverage](https://gitlab.gnome.org/exalm/libadwaita/badges/master/coverage.svg)](https://gitlab.gnome.org/exalm/libadwaita/commits/master)
The aim of the Handy library is to help with developing UI for mobile devices
The aim of the Adwaita library is to help with developing UI for mobile devices
using GTK/GNOME.
## License
libhandy is licensed under the LGPL-2.1+.
libadwaita is licensed under the LGPL-2.1+.
## Build dependencies
To build libhandy you need to first install the build-deps defined by [the debian/control file](https://gitlab.gnome.org/GNOME/libhandy/blob/master/debian/control#L6).
To build libadwaita you need to first install the build-deps defined by [the debian/control file](https://gitlab.gnome.org/GNOME/libadwaita/blob/master/debian/control#L6).
If you are running a Debian based distribution, you can easily install all those the dependencies making use of the following command
......@@ -21,7 +21,7 @@ sudo apt-get build-dep .
## Building
We use the Meson (and thereby Ninja) build system for libhandy. The quickest
We use the Meson (and thereby Ninja) build system for libadwaita. The quickest
way to get going is to do the following:
```sh
......@@ -34,7 +34,7 @@ For build options see [meson_options.txt](./meson_options.txt). E.g. to enable d
```sh
meson . _build -Dgtk_doc=true
ninja -C _build libhandy-doc
ninja -C _build libadwaita-doc
```
## Usage
......@@ -52,20 +52,11 @@ needs several environment variables so use \_build/run to set them:
_build/run examples/example.py
```
### Glade
To be able to use Handy's widgets in the glade interface designer without
installing the library use:
```sh
_build/run glade
```
## Documentation
The documentation can be found online
[here](https://gnome.pages.gitlab.gnome.org/libhandy).
[here](https://gnome.pages.gitlab.gnome.org/libadwaita).
## Getting in touch
Matrix room: [#libhandy:talk.puri.sm](https://gnome.element.io/#/room/#libhandy:talk.puri.sm)
Matrix room: [#libadwaita:gnome.org](https://gnome.element.io/#/room/#libadwaita:gnome.org)
......@@ -912,7 +912,7 @@ libhandy (0.0.8) experimental; urgency=medium
and 'under' child transitions.
[ maxice8 ]
* meson: pass -DHANDY_COMPILATION to GIR compiler.
* meson: pass -DADWAITA_COMPILATION to GIR compiler.
Fixes cross compilation of GIR in Void Linux.
-- Guido Günther <agx@sigxcpu.org> Fri, 15 Feb 2019 11:27:35 +0100
......
......@@ -12,7 +12,7 @@
<releaseinfo>
<para>This document is the API reference for &package_name; &package_version;.</para>
<para>
<ulink type="http" url="&package_url;">Handy</ulink> is a library to help you write apps for GTK/GNOME based mobile phones.
<ulink type="http" url="&package_url;">Adwaitay</ulink> is a library to help you write apps for GTK/GNOME based mobile phones.
</para>
<para>
If you find any issues in this API reference, please report it using
......@@ -35,50 +35,50 @@
<chapter id="core-api">
<title>Widgets and Objects</title>
<xi:include href="xml/hdy-action-row.xml"/>
<xi:include href="xml/hdy-animation.xml"/>
<xi:include href="xml/hdy-application-window.xml"/>
<xi:include href="xml/hdy-avatar.xml"/>
<xi:include href="xml/hdy-carousel.xml"/>
<xi:include href="xml/hdy-carousel-indicator-dots.xml"/>
<xi:include href="xml/hdy-carousel-indicator-lines.xml"/>
<xi:include href="xml/hdy-clamp.xml"/>
<xi:include href="xml/hdy-combo-row.xml"/>
<xi:include href="xml/hdy-enum-value-object.xml"/>
<xi:include href="xml/hdy-expander-row.xml"/>
<xi:include href="xml/hdy-flap.xml"/>
<xi:include href="xml/hdy-header-bar.xml"/>
<xi:include href="xml/hdy-header-group.xml"/>
<xi:include href="xml/hdy-keypad.xml"/>
<xi:include href="xml/hdy-leaflet.xml"/>
<xi:include href="xml/hdy-navigation-direction.xml"/>
<xi:include href="xml/hdy-preferences-group.xml"/>
<xi:include href="xml/hdy-preferences-page.xml"/>
<xi:include href="xml/hdy-preferences-row.xml"/>
<xi:include href="xml/hdy-preferences-window.xml"/>
<xi:include href="xml/hdy-search-bar.xml"/>
<xi:include href="xml/hdy-squeezer.xml"/>
<xi:include href="xml/hdy-status-page.xml"/>
<xi:include href="xml/hdy-swipeable.xml"/>
<xi:include href="xml/hdy-swipe-group.xml"/>
<xi:include href="xml/hdy-swipe-tracker.xml"/>
<xi:include href="xml/hdy-title-bar.xml"/>
<xi:include href="xml/hdy-value-object.xml"/>
<xi:include href="xml/hdy-view-switcher.xml"/>
<xi:include href="xml/hdy-view-switcher-bar.xml"/>
<xi:include href="xml/hdy-view-switcher-title.xml"/>
<xi:include href="xml/hdy-window.xml"/>
<xi:include href="xml/hdy-window-handle.xml"/>
<xi:include href="xml/adw-action-row.xml"/>
<xi:include href="xml/adw-animation.xml"/>
<xi:include href="xml/adw-application-window.xml"/>
<xi:include href="xml/adw-avatar.xml"/>
<xi:include href="xml/adw-carousel.xml"/>
<xi:include href="xml/adw-carousel-indicator-dots.xml"/>
<xi:include href="xml/adw-carousel-indicator-lines.xml"/>
<xi:include href="xml/adw-clamp.xml"/>
<xi:include href="xml/adw-combo-row.xml"/>
<xi:include href="xml/adw-enum-value-object.xml"/>
<xi:include href="xml/adw-expander-row.xml"/>
<xi:include href="xml/adw-flap.xml"/>
<xi:include href="xml/adw-header-bar.xml"/>
<xi:include href="xml/adw-header-group.xml"/>
<xi:include href="xml/adw-keypad.xml"/>
<xi:include href="xml/adw-leaflet.xml"/>
<xi:include href="xml/adw-navigation-direction.xml"/>
<xi:include href="xml/adw-preferences-group.xml"/>
<xi:include href="xml/adw-preferences-page.xml"/>
<xi:include href="xml/adw-preferences-row.xml"/>
<xi:include href="xml/adw-preferences-window.xml"/>
<xi:include href="xml/adw-search-bar.xml"/>
<xi:include href="xml/adw-squeezer.xml"/>
<xi:include href="xml/adw-status-page.xml"/>
<xi:include href="xml/adw-swipeable.xml"/>
<xi:include href="xml/adw-swipe-group.xml"/>
<xi:include href="xml/adw-swipe-tracker.xml"/>
<xi:include href="xml/adw-title-bar.xml"/>
<xi:include href="xml/adw-value-object.xml"/>
<xi:include href="xml/adw-view-switcher.xml"/>
<xi:include href="xml/adw-view-switcher-bar.xml"/>
<xi:include href="xml/adw-view-switcher-title.xml"/>
<xi:include href="xml/adw-window.xml"/>
<xi:include href="xml/adw-window-handle.xml"/>
</chapter>
<chapter id="helpers">
<title>Helpers</title>
<xi:include href="xml/hdy-version.xml"/>
<xi:include href="xml/hdy-main.xml"/>
<xi:include href="xml/adw-version.xml"/>
<xi:include href="xml/adw-main.xml"/>
</chapter>
<chapter id="migrating">
<title>Migrating from Previous Versions of Handy</title>
<title>Migrating from Previous Versions of Adwaita</title>
<xi:include href="hdy-migrating-0-0-to-1.xml"/>
</chapter>
......
......@@ -41,9 +41,9 @@
</para>
<informalexample><programlisting>
PKG_CHECK_MODULES(LIBHANDY, [&package_ver_str;])
AC_SUBST(LIBHANDY_CFLAGS)
AC_SUBST(LIBHANDY_LIBS)
PKG_CHECK_MODULES(LIBADWAITA, [&package_ver_str;])
AC_SUBST(LIBADWAITA_CFLAGS)
AC_SUBST(LIBADWAITA_LIBS)
</programlisting></informalexample>
<para>
......@@ -138,8 +138,8 @@
<informalexample>
<programlisting>
git clone https://gitlab.gnome.org/GNOME/libhandy.git
cd libhandy
git clone https://gitlab.gnome.org/GNOME/libadwaita.git
cd libadwaita
meson . _build
ninja -C _build test
ninja -C _build install
......@@ -152,7 +152,7 @@
<informalexample>
<programlisting>
gcc $(pkg-config --cflags --libs gtk+-3.0) $(pkg-config --cflags --libs libhandy-1) main.c -o main
gcc $(pkg-config --cflags --libs gtk+-3.0) $(pkg-config --cflags --libs libadwaita-1) main.c -o main
</programlisting>
</informalexample>
</refsect2>
......
......@@ -6,23 +6,23 @@ private_headers = [
'config.h',
'gtkprogresstrackerprivate.h',
'gtk-window-private.h',
'hdy-animation-private.h',
'hdy-carousel-box-private.h',
'hdy-css-private.h',
'hdy-enums.h',
'hdy-enums-private.h',
'hdy-enum-value-object-private.h',
'hdy-main-private.h',
'hdy-nothing-private.h',
'hdy-keypad-button-private.h',
'hdy-preferences-group-private.h',
'hdy-preferences-page-private.h',
'hdy-shadow-helper-private.h',
'hdy-swipe-tracker-private.h',
'hdy-types.h',
'hdy-view-switcher-button-private.h',
'hdy-window-handle-controller-private.h',
'hdy-window-mixin-private.h',
'adw-animation-private.h',
'adw-carousel-box-private.h',
'adw-css-private.h',
'adw-enums.h',
'adw-enums-private.h',
'adw-enum-value-object-private.h',
'adw-main-private.h',
'adw-nothing-private.h',
'adw-keypad-button-private.h',
'adw-preferences-group-private.h',
'adw-preferences-page-private.h',
'adw-shadow-helper-private.h',
'adw-swipe-tracker-private.h',
'adw-types.h',
'adw-view-switcher-button-private.h',
'adw-window-handle-controller-private.h',
'adw-window-mixin-private.h',
]
images = [
......@@ -46,15 +46,15 @@ glib_prefix = dependency('glib-2.0').get_pkgconfig_variable('prefix')
glib_docpath = glib_prefix / 'share' / 'gtk-doc' / 'html'
docpath = get_option('datadir') / 'gtk-doc' / 'html'
gnome.gtkdoc('libhandy',
gnome.gtkdoc('libadwaita',
module_version: apiversion,
main_xml: 'handy-docs.xml',
main_xml: 'adwaita-docs.xml',
src_dir: [
meson.source_root() / 'src',
meson.build_root() / 'src',
],
dependencies: libhandy_dep,
gobject_typesfile: 'libhandy.types',
dependencies: libadwaita_dep,
gobject_typesfile: 'libadwaita.types',
scan_args: [
'--rebuild-types',
'--ignore-headers=' + ' '.join(private_headers),
......
......@@ -18,12 +18,12 @@
<refsect2>
<title>Widgets</title>
<para role="gallery">
<link linkend="HdyAvatar">
<link linkend="AdwAvatar">
<inlinegraphic fileref="avatar.png" format="PNG"></inlinegraphic>
</link>
</para>
<para role="gallery">
<link linkend="HdyKeypad">
<link linkend="AdwKeypad">
<inlinegraphic fileref="keypad.png" format="PNG"></inlinegraphic>
</link>
</para>
......@@ -31,26 +31,26 @@
<link>
<inlinegraphic fileref="list.png" format="PNG" scale="60"></inlinegraphic>
</link>
<link linkend="HdySearchBar">
<link linkend="AdwSearchBar">
<inlinegraphic fileref="search.png" format="PNG"></inlinegraphic>
</link>
</para>
<para role="gallery">
<link linkend="HdyHeaderBar">
<link linkend="AdwHeaderBar">
<inlinegraphic fileref="header-bar.png" format="PNG"></inlinegraphic>
</link>
<link linkend="HdyPreferencesWindow">
<link linkend="AdwPreferencesWindow">
<inlinegraphic fileref="preferences-window.png" format="PNG"></inlinegraphic>
</link>
</para>
</refsect2>
<refsect2>
<title>HdyViewSwitcher</title>
<title>AdwViewSwitcher</title>
<para role="gallery">
<link linkend="HdyViewSwitcher">
<link linkend="AdwViewSwitcher">
<inlinegraphic fileref="view-switcher.png" format="PNG"></inlinegraphic>
</link>
<link linkend="HdyViewSwitcherBar">
<link linkend="AdwViewSwitcherBar">
<inlinegraphic fileref="view-switcher-bar.png" format="PNG"></inlinegraphic>
</link>
</para>
......
ent_conf = configuration_data()
ent_conf.set('PACKAGE', 'Handy')
ent_conf.set('PACKAGE_BUGREPORT', 'https://gitlab.gnome.org/GNOME/libhandy/issues')
ent_conf.set('PACKAGE_NAME', 'Handy')
ent_conf.set('PACKAGE_STRING', 'libhandy')
ent_conf.set('PACKAGE_TARNAME', 'libhandy-' + meson.project_version())
ent_conf.set('PACKAGE_URL', 'https://gitlab.gnome.org/GNOME/libhandy')
ent_conf.set('PACKAGE', 'Adwaita')
ent_conf.set('PACKAGE_BUGREPORT', 'https://gitlab.gnome.org/GNOME/libadwaita/-/issues')
ent_conf.set('PACKAGE_NAME', 'Adwaita')
ent_conf.set('PACKAGE_STRING', 'libadwaita')
ent_conf.set('PACKAGE_TARNAME', 'libadwaita-' + meson.project_version())
ent_conf.set('PACKAGE_URL', 'https://gitlab.gnome.org/GNOME/libadwaita')
ent_conf.set('PACKAGE_VERSION', meson.project_version())
ent_conf.set('PACKAGE_API_VERSION', apiversion)
ent_conf.set('PACKAGE_API_NAME', package_api_name)
......
#include "hdy-demo-preferences-window.h"
#include "adw-demo-preferences-window.h"
struct _HdyDemoPreferencesWindow
struct _AdwDemoPreferencesWindow
{
HdyPreferencesWindow parent_instance;
AdwPreferencesWindow parent_instance;
GtkWidget *subpage1;
GtkWidget *subpage2;
};
G_DEFINE_TYPE (HdyDemoPreferencesWindow, hdy_demo_preferences_window, HDY_TYPE_PREFERENCES_WINDOW)
G_DEFINE_TYPE (AdwDemoPreferencesWindow, adw_demo_preferences_window, ADW_TYPE_PREFERENCES_WINDOW)
HdyDemoPreferencesWindow *
hdy_demo_preferences_window_new (void)
AdwDemoPreferencesWindow *
adw_demo_preferences_window_new (void)
{
return g_object_new (HDY_TYPE_DEMO_PREFERENCES_WINDOW, NULL);
return g_object_new (ADW_TYPE_DEMO_PREFERENCES_WINDOW, NULL);
}
static void
return_to_preferences_cb (HdyDemoPreferencesWindow *self)
return_to_preferences_cb (AdwDemoPreferencesWindow *self)
{
hdy_preferences_window_close_subpage (HDY_PREFERENCES_WINDOW (self));
adw_preferences_window_close_subpage (ADW_PREFERENCES_WINDOW (self));
}
static void
subpage1_activated_cb (HdyDemoPreferencesWindow *self)
subpage1_activated_cb (AdwDemoPreferencesWindow *self)
{
hdy_preferences_window_present_subpage (HDY_PREFERENCES_WINDOW (self), self->subpage1);
adw_preferences_window_present_subpage (ADW_PREFERENCES_WINDOW (self), self->subpage1);
}
static void
subpage2_activated_cb (HdyDemoPreferencesWindow *self)
subpage2_activated_cb (AdwDemoPreferencesWindow *self)
{
hdy_preferences_window_present_subpage (HDY_PREFERENCES_WINDOW (self), self->subpage2);
adw_preferences_window_present_subpage (ADW_PREFERENCES_WINDOW (self), self->subpage2);
}
static void
hdy_demo_preferences_window_class_init (HdyDemoPreferencesWindowClass *klass)
adw_demo_preferences_window_class_init (AdwDemoPreferencesWindowClass *klass)
{
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
gtk_widget_class_set_template_from_resource (widget_class, "/sm/puri/Handy/Demo/ui/hdy-demo-preferences-window.ui");
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/Adwaita/Demo/ui/adw-demo-preferences-window.ui");
gtk_widget_class_bind_template_child (widget_class, HdyDemoPreferencesWindow, subpage1);
gtk_widget_class_bind_template_child (widget_class, HdyDemoPreferencesWindow, subpage2);
gtk_widget_class_bind_template_child (widget_class, AdwDemoPreferencesWindow, subpage1);
gtk_widget_class_bind_template_child (widget_class, AdwDemoPreferencesWindow, subpage2);
gtk_widget_class_bind_template_callback (widget_class, return_to_preferences_cb);
gtk_widget_class_bind_template_callback (widget_class, subpage1_activated_cb);
......@@ -50,7 +50,7 @@ hdy_demo_preferences_window_class_init (HdyDemoPreferencesWindowClass *klass)
}
static void
hdy_demo_preferences_window_init (HdyDemoPreferencesWindow *self)
adw_demo_preferences_window_init (AdwDemoPreferencesWindow *self)
{
gtk_widget_init_template (GTK_WIDGET (self));
}
#pragma once
#include <adwaita.h>
G_BEGIN_DECLS
#define ADW_TYPE_DEMO_PREFERENCES_WINDOW (adw_demo_preferences_window_get_type())
G_DECLARE_FINAL_TYPE (AdwDemoPreferencesWindow, adw_demo_preferences_window, ADW, DEMO_PREFERENCES_WINDOW, AdwPreferencesWindow)
AdwDemoPreferencesWindow *adw_demo_preferences_window_new (void);
G_END_DECLS
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk+" version="3.0"/>
<template class="HdyDemoPreferencesWindow" parent="HdyPreferencesWindow">
<template class="AdwDemoPreferencesWindow" parent="AdwPreferencesWindow">
<property name="can-swipe-back">True</property>
<child>
<object class="HdyPreferencesPage">
<object class="AdwPreferencesPage">
<property name="icon_name">preferences-window-layout-symbolic</property>
<property name="title">Layout</property>
<child>
<object class="HdyPreferencesGroup">
<object class="AdwPreferencesGroup">
<child>
<object class="HdyPreferencesRow">
<object class="AdwPreferencesRow">
<property name="title" bind-source="welcome_label" bind-property="label" bind-flags="sync-create"/>
<child>
<object class="GtkLabel" id="welcome_label">
......@@ -27,17 +27,17 @@
</object>
</child>
<child>
<object class="HdyPreferencesGroup">
<object class="AdwPreferencesGroup">
<property name="description" translatable="yes">Preferences are organized in pages, this example has the following pages:</property>
<property name="title" translatable="yes">Pages</property>
<child>
<object class="HdyActionRow">
<object class="AdwActionRow">
<property name="title" translatable="yes">L_ayout</property>
<property name="use_underline">True</property>
</object>
</child>
<child>
<object class="HdyActionRow">
<object class="AdwActionRow">
<property name="title" translatable="yes">S_earch</property>
<property name="use_underline">True</property>
</object>
......@@ -45,36 +45,36 @@
</object>
</child>
<child>
<object class="HdyPreferencesGroup">
<object class="AdwPreferencesGroup">
<property name="description" translatable="yes">Preferences are grouped together, a group can have a title and a description. Descriptions will be wrapped if they are too long. This page has the following groups:</property>
<property name="title" translatable="yes">Groups</property>
<child>
<object class="HdyActionRow">
<object class="AdwActionRow">
<property name="title" translatable="yes">An untitled group</property>
</object>
</child>
<child>
<object class="HdyActionRow">
<object class="AdwActionRow">
<property name="title" translatable="yes">Pages</property>
</object>
</child>
<child>
<object class="HdyActionRow">
<object class="AdwActionRow">
<property name="title" translatable="yes">Groups</property>
</object>
</child>
<child>
<object class="HdyActionRow">
<object class="AdwActionRow">
<property name="title" translatable="yes">Preferences</property>
</object>
</child>
</object>
</child>
<child>