diff --git a/gtk/Makefile.am b/gtk/Makefile.am index 481fda2155..f1784606ba 100644 --- a/gtk/Makefile.am +++ b/gtk/Makefile.am @@ -732,6 +732,7 @@ gtk_base_c_sources = \ gtkfontchooserutils.c \ gtkfontchooserwidget.c \ gtkframe.c \ + gtkgladecatalog.c \ gtkgrid.c \ gtkheaderbar.c \ gtkhsla.c \ diff --git a/gtk/glade/README.glade b/gtk/glade/README.glade new file mode 100644 index 0000000000..f8c59c5bbf --- /dev/null +++ b/gtk/glade/README.glade @@ -0,0 +1,17 @@ +The catalog in this directory defines some widgets that are private +to GTK+ and is needed to edit .ui files defining composite classes +in GTK+. + +In order to edit any composite classes in GTK+, startup Glade +in the following way, example: + + cd /path/to/gtk+/ + GLADE_CATALOG_SEARCH_PATH=`pwd`/gtk/glade glade gtk/gtkfilechooserdefault.ui + +Documentation for updating this catalog can be found here: + https://developer.gnome.org/gladeui/stable/ + +Note also that when including private GTK+ widgets as components, it is +important to call g_type_ensure () to register the type explicitly +before calling gtk_container_init_template(), otherwise GtkBuilder will +not be able to properly load the type. diff --git a/gtk/glade/gtk-private-widgets.xml b/gtk/glade/gtk-private-widgets.xml new file mode 100644 index 0000000000..1a65e252e2 --- /dev/null +++ b/gtk/glade/gtk-private-widgets.xml @@ -0,0 +1,36 @@ + + gtk_glade_catalog_init + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gtk/gtk.symbols b/gtk/gtk.symbols index 1937f11fd1..53dcb2e331 100644 --- a/gtk/gtk.symbols +++ b/gtk/gtk.symbols @@ -1193,6 +1193,7 @@ gtk_get_major_version gtk_get_micro_version gtk_get_minor_version gtk_get_option_group +gtk_glade_catalog_init gtk_grab_add gtk_grab_get_current gtk_grab_remove diff --git a/gtk/gtkgladecatalog.c b/gtk/gtkgladecatalog.c new file mode 100644 index 0000000000..310aa2b84c --- /dev/null +++ b/gtk/gtkgladecatalog.c @@ -0,0 +1,52 @@ +/* gtkgladecatalog.c + * + * Copyright (C) 2013 Openismus GmbH + * + * Authors: + * Tristan Van Berkom + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library. If not, see . + */ + +#include "gtkpathbar.h" +#include "gtkcolorswatchprivate.h" +#include "gtkcolorplaneprivate.h" +#include "gtkcolorscaleprivate.h" + +#ifdef G_OS_UNIX +# include "gtkprinteroptionwidget.h" +#endif + +/* Some forward declarations of internal types */ +GType _gtk_scale_button_scale_get_type (void); +GType _shortcuts_pane_model_filter_get_type (void); + +/* This function is referred to in gtk/glade/gtk-private-widgets.xml + * and is used to ensure the private types for use in Glade while + * editing UI files that define GTK+'s various composite widget classes. + */ +void +gtk_glade_catalog_init (const gchar *catalog_name) +{ + g_type_ensure (GTK_TYPE_PATH_BAR); + g_type_ensure (GTK_TYPE_COLOR_SWATCH); + g_type_ensure (GTK_TYPE_COLOR_PLANE); + g_type_ensure (GTK_TYPE_COLOR_SCALE); + g_type_ensure (_gtk_scale_button_scale_get_type ()); + g_type_ensure (_shortcuts_pane_model_filter_get_type ()); + +#ifdef G_OS_UNIX + g_type_ensure (GTK_TYPE_PRINTER_OPTION_WIDGET); +#endif +}