diff options
author | Matthias Clasen <mclasen@redhat.com> | 2014-11-02 17:51:18 -0500 |
---|---|---|
committer | Tristan Van Berkom <tristan@upstairslabs.com> | 2014-11-07 17:20:22 +0900 |
commit | 961733bce5c00703d67727b83f006f6622ff783c (patch) | |
tree | b24c36c7d56f023476725b9c1feec630c08b1803 /plugins | |
parent | 15b4f639031995ef4e0c0a7c600b23533786b239 (diff) | |
download | glade-961733bce5c00703d67727b83f006f6622ff783c.tar.gz |
Add a headerbar editor
Among other things, this lets us undoably remove a custom title
widget.
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/gtk+/Makefile.am | 3 | ||||
-rw-r--r-- | plugins/gtk+/glade-gtk-header-bar.c | 12 | ||||
-rw-r--r-- | plugins/gtk+/glade-gtk-resources.gresource.xml | 1 | ||||
-rw-r--r-- | plugins/gtk+/glade-header-bar-editor.c | 168 | ||||
-rw-r--r-- | plugins/gtk+/glade-header-bar-editor.h | 57 | ||||
-rw-r--r-- | plugins/gtk+/glade-header-bar-editor.ui | 306 | ||||
-rw-r--r-- | plugins/gtk+/gtk+.xml.in | 18 |
7 files changed, 562 insertions, 3 deletions
diff --git a/plugins/gtk+/Makefile.am b/plugins/gtk+/Makefile.am index 3b4701d1..fbff8bc5 100644 --- a/plugins/gtk+/Makefile.am +++ b/plugins/gtk+/Makefile.am @@ -119,6 +119,7 @@ libgladegtk_la_SOURCES = \ glade-gtk-widget.c \ glade-gtk-window.c \ glade-gtk-header-bar.c \ + glade-header-bar-editor.c \ glade-icon-factory-editor.c \ glade-icon-sources.c \ glade-icon-view-editor.c \ @@ -195,6 +196,7 @@ noinst_HEADERS = \ glade-gtk-menu-shell.h \ glade-gtk-notebook.h \ glade-gtk-tree-view.h \ + glade-header-bar-editor.h \ glade-icon-factory-editor.h \ glade-icon-sources.h \ glade-icon-view-editor.h \ @@ -273,6 +275,7 @@ UI_FILES = \ glade-font-chooser-editor.ui \ glade-font-chooser-widget-editor.ui \ glade-grid-editor.ui \ + glade-header-bar-editor.ui \ glade-icon-view-editor.ui \ glade-image-editor.ui \ glade-label-editor.ui \ diff --git a/plugins/gtk+/glade-gtk-header-bar.c b/plugins/gtk+/glade-gtk-header-bar.c index 5d8ef44a..55ede2f7 100644 --- a/plugins/gtk+/glade-gtk-header-bar.c +++ b/plugins/gtk+/glade-gtk-header-bar.c @@ -3,6 +3,8 @@ #include <gladeui/glade.h> #include "glade-gtk.h" +#include "glade-header-bar-editor.h" + static gint glade_gtk_header_bar_get_num_children (GObject *hb, GtkPackType type) { @@ -324,3 +326,13 @@ glade_gtk_header_bar_replace_child (GladeWidgetAdaptor * adaptor, G_OBJECT (current), G_OBJECT (new_widget)); } + +GladeEditable * +glade_gtk_header_bar_create_editable (GladeWidgetAdaptor * adaptor, + GladeEditorPageType type) +{ + if (type == GLADE_PAGE_GENERAL) + return (GladeEditable *) glade_header_bar_editor_new (); + else + return GWA_GET_CLASS (GTK_TYPE_CONTAINER)->create_editable (adaptor, type); +} diff --git a/plugins/gtk+/glade-gtk-resources.gresource.xml b/plugins/gtk+/glade-gtk-resources.gresource.xml index d0698d05..4052b025 100644 --- a/plugins/gtk+/glade-gtk-resources.gresource.xml +++ b/plugins/gtk+/glade-gtk-resources.gresource.xml @@ -21,6 +21,7 @@ <file compressed="true" preprocess="xml-stripblanks">glade-font-chooser-editor.ui</file> <file compressed="true" preprocess="xml-stripblanks">glade-font-chooser-widget-editor.ui</file> <file compressed="true" preprocess="xml-stripblanks">glade-grid-editor.ui</file> + <file compressed="true" preprocess="xml-stripblanks">glade-header-bar-editor.ui</file> <file compressed="true" preprocess="xml-stripblanks">glade-icon-view-editor.ui</file> <file compressed="true" preprocess="xml-stripblanks">glade-image-editor.ui</file> <file compressed="true" preprocess="xml-stripblanks">glade-label-editor.ui</file> diff --git a/plugins/gtk+/glade-header-bar-editor.c b/plugins/gtk+/glade-header-bar-editor.c new file mode 100644 index 00000000..344edb18 --- /dev/null +++ b/plugins/gtk+/glade-header-bar-editor.c @@ -0,0 +1,168 @@ +/* + * Copyright (C) 2014 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Authors: + * Matthias Clasen <mclasen@redhat.com> + */ + +#include <config.h> +#include <gladeui/glade.h> +#include <glib/gi18n-lib.h> +#include <gdk/gdkkeysyms.h> + +#include "glade-header-bar-editor.h" + +static void glade_header_bar_editor_editable_init (GladeEditableIface * iface); +static void glade_header_bar_editor_grab_focus (GtkWidget * widget); + +static void use_custom_title_toggled (GtkWidget *widget, GladeHeaderBarEditor * editor); + +struct _GladeHeaderBarEditorPrivate +{ + GtkWidget *embed; + GtkWidget *use_custom_title_check; +}; + +static GladeEditableIface *parent_editable_iface; + +G_DEFINE_TYPE_WITH_CODE (GladeHeaderBarEditor, glade_header_bar_editor, GLADE_TYPE_EDITOR_SKELETON, + G_ADD_PRIVATE (GladeHeaderBarEditor) + G_IMPLEMENT_INTERFACE (GLADE_TYPE_EDITABLE, + glade_header_bar_editor_editable_init)) + +static void +glade_header_bar_editor_class_init (GladeHeaderBarEditorClass * klass) +{ + GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); + + widget_class->grab_focus = glade_header_bar_editor_grab_focus; + + gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/gladegtk/glade-header-bar-editor.ui"); + gtk_widget_class_bind_template_child_private (widget_class, GladeHeaderBarEditor, embed); + gtk_widget_class_bind_template_child_private (widget_class, GladeHeaderBarEditor, use_custom_title_check); + gtk_widget_class_bind_template_callback (widget_class, use_custom_title_toggled); +} + +static void +glade_header_bar_editor_init (GladeHeaderBarEditor * self) +{ + self->priv = glade_header_bar_editor_get_instance_private (self); + + gtk_widget_init_template (GTK_WIDGET (self)); +} + +static void +glade_header_bar_editor_grab_focus (GtkWidget * widget) +{ + GladeHeaderBarEditor *editor = GLADE_HEADER_BAR_EDITOR (widget); + + gtk_widget_grab_focus (editor->priv->embed); +} + +static void +glade_header_bar_editor_load (GladeEditable *editable, + GladeWidget *gwidget) +{ + GladeHeaderBarEditor *editor = GLADE_HEADER_BAR_EDITOR (editable); + GladeHeaderBarEditorPrivate *priv = editor->priv; + + /* Chain up to default implementation */ + parent_editable_iface->load (editable, gwidget); + + if (gwidget) + { + gboolean setting; + + glade_widget_property_get (gwidget, "use-custom-title", &setting); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->use_custom_title_check), setting); + } +} + +static void +glade_header_bar_editor_editable_init (GladeEditableIface * iface) +{ + parent_editable_iface = g_type_interface_peek_parent (iface); + + iface->load = glade_header_bar_editor_load; +} + +static void +use_custom_title_toggled (GtkWidget *widget, + GladeHeaderBarEditor *editor) +{ + GladeHeaderBarEditorPrivate *priv = editor->priv; + GladeWidget *gwidget = glade_editable_loaded_widget (GLADE_EDITABLE (editor)); + GladeWidget *gtitle = NULL; + GtkWidget *headerbar; + GtkWidget *title; + GladeProperty *property; + gboolean use_custom_title; + + if (glade_editable_loading (GLADE_EDITABLE (editor)) || !gwidget) + return; + + /* Get new desired property state */ + use_custom_title = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->use_custom_title_check)); + + headerbar = (GtkWidget *)glade_widget_get_object (gwidget); + title = gtk_header_bar_get_custom_title (GTK_HEADER_BAR (headerbar)); + + if (title && !GLADE_IS_PLACEHOLDER (title)) + gtitle = glade_widget_get_from_gobject (title); + + glade_editable_block (GLADE_EDITABLE (editor)); + + if (use_custom_title) + glade_command_push_group (_("Setting %s to use a custom title"), + glade_widget_get_name (gwidget)); + else + glade_command_push_group (_("Setting %s to use the standard title"), + glade_widget_get_name (gwidget)); + + if (gtitle) + { + GList list; + list.prev = list.next = NULL; + list.data = gtitle; + glade_command_delete (&list); + } + + property = glade_widget_get_property (gwidget, "use-custom-title"); + glade_command_set_property (property, use_custom_title); + + if (use_custom_title) + { + property = glade_widget_get_property (gwidget, "title"); + glade_command_set_property (property, NULL); + property = glade_widget_get_property (gwidget, "subtitle"); + glade_command_set_property (property, NULL); + property = glade_widget_get_property (gwidget, "has-subtitle"); + glade_command_set_property (property, TRUE); + } + + glade_command_pop_group (); + + glade_editable_unblock (GLADE_EDITABLE (editor)); + + glade_editable_load (GLADE_EDITABLE (editor), gwidget); +} + +GtkWidget * +glade_header_bar_editor_new (void) +{ + return g_object_new (GLADE_TYPE_HEADER_BAR_EDITOR, NULL); +} diff --git a/plugins/gtk+/glade-header-bar-editor.h b/plugins/gtk+/glade-header-bar-editor.h new file mode 100644 index 00000000..865b5161 --- /dev/null +++ b/plugins/gtk+/glade-header-bar-editor.h @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2014 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Authors: + * Matthias Clasen <mclasen@redhat.com> + */ +#ifndef _GLADE_HEADER_BAR_EDITOR_H_ +#define _GLADE_HEADER_BAR_EDITOR_H_ + +#include <gtk/gtk.h> +#include <gladeui/glade.h> + +G_BEGIN_DECLS + +#define GLADE_TYPE_HEADER_BAR_EDITOR (glade_header_bar_editor_get_type ()) +#define GLADE_HEADER_BAR_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GLADE_TYPE_HEADER_BAR_EDITOR, GladeHeaderBarEditor)) +#define GLADE_HEADER_BAR_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GLADE_TYPE_HEADER_BAR_EDITOR, GladeHeaderBarEditorClass)) +#define GLADE_IS_HEADER_BAR_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GLADE_TYPE_HEADER_BAR_EDITOR)) +#define GLADE_IS_HEADER_BAR_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GLADE_TYPE_HEADER_BAR_EDITOR)) +#define GLADE_HEADER_BAR_EDITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GLADE_TYPE_HEADER_BAR_EDITOR, GladeHeaderBarEditorClass)) + +typedef struct _GladeHeaderBarEditor GladeHeaderBarEditor; +typedef struct _GladeHeaderBarEditorClass GladeHeaderBarEditorClass; +typedef struct _GladeHeaderBarEditorPrivate GladeHeaderBarEditorPrivate; + +struct _GladeHeaderBarEditor +{ + GladeEditorSkeleton parent; + + GladeHeaderBarEditorPrivate *priv; +}; + +struct _GladeHeaderBarEditorClass +{ + GladeEditorSkeletonClass parent; +}; + +GType glade_header_bar_editor_get_type (void) G_GNUC_CONST; +GtkWidget *glade_header_bar_editor_new (void); + +G_END_DECLS + +#endif /* _GLADE_HEADER_BAR_EDITOR_H_ */ diff --git a/plugins/gtk+/glade-header-bar-editor.ui b/plugins/gtk+/glade-header-bar-editor.ui new file mode 100644 index 00000000..365f19af --- /dev/null +++ b/plugins/gtk+/glade-header-bar-editor.ui @@ -0,0 +1,306 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Generated with glade 3.16.0 + +libgladegtk - Glade UI Designer Gtk+ support plugin +Copyright (C) 2014 Red Hat, Inc. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Author: Matthias Clasen <mclasen@redhat.com> + +--> +<interface domain="glade"> + <requires lib="gtk+" version="3.10"/> + <requires lib="gladeui" version="0.0"/> + <template class="GladeHeaderBarEditor" parent="GladeEditorSkeleton"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <child> + <object class="GtkGrid" id="grid"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="row_spacing">6</property> + <property name="column_spacing">6</property> + <child> + <object class="GladeEditorTable" id="embed"> + <property name="visible">True</property> + <property name="can_focus">False</property> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">0</property> + <property name="width">6</property> + <property name="height">1</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="title"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">start</property> + <property name="valign">center</property> + <property name="label" translatable="yes">Headerbar Attributes</property> + <attributes> + <attribute name="weight" value="bold"/> + </attributes> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">1</property> + <property name="width">6</property> + <property name="height">1</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="use_custom_title_check"> + <property name="label" translatable="yes">Custom title</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="tooltip-text" translatable="yes">Whether the headerbar should use a custom title widget.</property> + <property name="margin_left">12</property> + <property name="xalign">0</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="use_custom_title_toggled"/> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">2</property> + <property name="width">6</property> + </packing> + </child> + <child> + <object class="GladePropertyLabel" id="title_label"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="margin_left">12</property> + <property name="hexpand">False</property> + <property name="property_name">title</property> + <property name="sensitive" bind-source="use_custom_title_check" bind-property="active" bind-flags="invert-boolean"/> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">3</property> + <property name="width">2</property> + </packing> + </child> + <child> + <object class="GladePropertyShell" id="title_editor"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">False</property> + <property name="property_name">title</property> + <property name="sensitive" bind-source="use_custom_title_check" bind-property="active" bind-flags="invert-boolean"/> + </object> + <packing> + <property name="left_attach">2</property> + <property name="top_attach">3</property> + <property name="width">4</property> + </packing> + </child> + <child> + <object class="GladePropertyLabel" id="subtitle_label"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="margin_left">12</property> + <property name="hexpand">False</property> + <property name="property_name">subtitle</property> + <property name="sensitive" bind-source="use_custom_title_check" bind-property="active" bind-flags="invert-boolean"/> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">4</property> + <property name="width">2</property> + </packing> + </child> + <child> + <object class="GladePropertyShell" id="subtitle_editor"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">False</property> + <property name="property_name">subtitle</property> + <property name="sensitive" bind-source="use_custom_title_check" bind-property="active" bind-flags="invert-boolean"/> + </object> + <packing> + <property name="left_attach">2</property> + <property name="top_attach">4</property> + <property name="width">4</property> + </packing> + </child> + <child> + <object class="GladePropertyShell" id="has_subtitle_editor"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">False</property> + <property name="property_name">has-subtitle</property> + <property name="editor_type">GladeEpropCheck</property> + <property name="sensitive" bind-source="use_custom_title_check" bind-property="active" bind-flags="invert-boolean"/> + </object> + <packing> + <property name="left_attach">2</property> + <property name="top_attach">5</property> + <property name="width">4</property> + </packing> + </child> + <child> + <object class="GladePropertyShell" id="show_decoration_editor"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">False</property> + <property name="margin_left">12</property> + <property name="property_name">show-close-button</property> + <property name="editor_type">GladeEpropCheck</property> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">6</property> + <property name="width">6</property> + </packing> + </child> + <child> + <object class="GladePropertyLabel" id="decoration_layout_label"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="margin_left">12</property> + <property name="hexpand">False</property> + <property name="property_name">decoration-layout</property> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">7</property> + <property name="width">2</property> + </packing> + </child> + <child> + <object class="GladePropertyShell" id="decoration_layout_editor"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">False</property> + <property name="property_name">decoration-layout</property> + </object> + <packing> + <property name="left_attach">2</property> + <property name="top_attach">7</property> + <property name="width">4</property> + </packing> + </child> + <child> + <object class="GladePropertyLabel" id="spacing_label"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="margin_left">12</property> + <property name="hexpand">False</property> + <property name="property_name">spacing</property> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">8</property> + <property name="width">2</property> + </packing> + </child> + <child> + <object class="GladePropertyShell" id="spacing_editor"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">False</property> + <property name="property_name">spacing</property> + </object> + <packing> + <property name="left_attach">2</property> + <property name="top_attach">8</property> + <property name="width">4</property> + </packing> + </child> + <child> + <object class="GladePropertyLabel" id="start_size_label"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="margin_left">12</property> + <property name="hexpand">False</property> + <property name="property_name">start-size</property> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">9</property> + <property name="width">2</property> + </packing> + </child> + <child> + <object class="GladePropertyShell" id="start_size_editor"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">False</property> + <property name="property_name">start-size</property> + </object> + <packing> + <property name="left_attach">2</property> + <property name="top_attach">9</property> + <property name="width">4</property> + </packing> + </child> + <child> + <object class="GladePropertyLabel" id="end_size_label"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="margin_left">12</property> + <property name="hexpand">False</property> + <property name="property_name">end-size</property> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">10</property> + <property name="width">2</property> + </packing> + </child> + <child> + <object class="GladePropertyShell" id="end_size_editor"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">False</property> + <property name="property_name">end-size</property> + </object> + <packing> + <property name="left_attach">2</property> + <property name="top_attach">10</property> + <property name="width">4</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child-editors> + <editor id="embed"/> + <editor id="title_label"/> + <editor id="title_editor"/> + <editor id="subtitle_label"/> + <editor id="subtitle_editor"/> + <editor id="has_subtitle_editor"/> + <editor id="show_decoration_editor"/> + <editor id="decoration_layout_label"/> + <editor id="decoration_layout_editor"/> + <editor id="spacing_label"/> + <editor id="spacing_editor"/> + <editor id="start_size_label"/> + <editor id="start_size_editor"/> + <editor id="end_size_label"/> + <editor id="end_size_editor"/> + </child-editors> + </template> +</interface> diff --git a/plugins/gtk+/gtk+.xml.in b/plugins/gtk+/gtk+.xml.in index b3a2ebe3..3ffb238d 100644 --- a/plugins/gtk+/gtk+.xml.in +++ b/plugins/gtk+/gtk+.xml.in @@ -2409,22 +2409,34 @@ <add-child-function>glade_gtk_header_bar_add_child</add-child-function> <remove-child-function>glade_gtk_header_bar_remove_child</remove-child-function> <replace-child-function>glade_gtk_header_bar_replace_child</replace-child-function> + <create-editable-function>glade_gtk_header_bar_create_editable</create-editable-function> <special-child-type>type</special-child-type> <properties> + <property id="title" custom-layout="True"/> + <property id="subtitle" custom-layout="True"/> + <property id="has-subtitle" _name="Reserve space for subtitle" custom-layout="True"> + <_tooltip>Keep the headerbar height the same as the subtitle changes dynamically.</_tooltip> + </property> + <property id="show-close-button" _name="Show window controls" custom-layout="True"> + <_tooltip>Whether to show window controls, e.g. a close button</_tooltip> + </property> + <property id="spacing" custom-layout="True"/> + <property id="decoration-layout" _name="Decoration Layout" optional="True" optional-default="False" custom-layout="True"/> + <property id="decoration-layout-set" disabled="True"/> <property id="custom-title" disabled="True"/> - <property id="use-custom-title" _name="Custom Title" default="FALSE" visible="True" save="False"> + <property id="use-custom-title" _name="Custom Title" default="FALSE" visible="True" save="False" custom-layout="True"> <parameter-spec> <type>GParamBoolean</type> </parameter-spec> </property> - <property visible="True" save="False" id="start-size" default="1" _name="Number of items at the start"> + <property visible="True" save="False" id="start-size" default="1" _name="Number of items at the start" custom-layout="True"> <parameter-spec> <type>GParamInt</type> <min>0</min> </parameter-spec> <_tooltip>The number of items at the start</_tooltip> </property> - <property visible="True" save="False" id="end-size" default="1" _name="Number of items at the end"> + <property visible="True" save="False" id="end-size" default="1" _name="Number of items at the end" custom-layout="True"> <parameter-spec> <type>GParamInt</type> <min>0</min> |