Commit a41c628a authored by Tristan Van Berkom's avatar Tristan Van Berkom

Added directory with Glade catalog

This catalog can be used to work with GTK+'s private widget types,
this patch exposes a private function gtk_glade_catalog_init() which
Glade will use for the sole purpose of initializing some private widget
types in GTK+ that are referenced from various GTK+ composite widget
xml files.
parent 3b7fc8cd
......@@ -732,6 +732,7 @@ gtk_base_c_sources = \
gtkfontchooserutils.c \
gtkfontchooserwidget.c \
gtkframe.c \
gtkgladecatalog.c \
gtkgrid.c \
gtkheaderbar.c \
gtkhsla.c \
......
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.
<glade-catalog name="gtkprivate"
version="3.10"
depends="gtk+"
library="gtk-3">
<init-function>gtk_glade_catalog_init</init-function>
<glade-widget-classes>
<!-- base GTK+ private widgets -->
<glade-widget-class name="GtkPathBar" generic-name="pathbar" title="Path Bar" icon-name="widget-gtk-toolbar"/>
<glade-widget-class name="GtkColorSwatch" generic-name="colorswatch" title="Color Swatch" icon-name="widget-gtk-colorselection"/>
<glade-widget-class name="GtkColorPlane" generic-name="colorplane" title="Color Plane" icon-name="widget-gtk-colorselection"/>
<glade-widget-class name="GtkColorScale" generic-name="colorscale" title="Color Scale" icon-name="widget-gtk-colorselection"/>
<glade-widget-class name="GtkScaleButtonScale" generic-name="scalebuttonscale" title="Scale Button Scale"/>
<glade-widget-class name="ShortcutsPaneModelFilter" generic-name="shortcutsfilter" title="Shortcuts Filter"
icon-name="widget-gtk-treemodelfilter"/>
<!-- gtkunixprint private widgets -->
<glade-widget-class name="GtkPrinterOptionWidget" generic-name="printeroptionwidget" title="Printer Option Widget"
icon-name="widget-gtk-frame">
<properties>
<property id="orientation" default="GTK_ORIENTATION_HORIZONTAL"/>
<property id="size" disabled="True"/>
</properties>
</glade-widget-class>
</glade-widget-classes>
<glade-widget-group name="gtk-private" title="Private GTK+ Classes">
<glade-widget-class-ref name="GtkPathBar"/>
<glade-widget-class-ref name="GtkColorSwatch"/>
<glade-widget-class-ref name="GtkColorPlane"/>
<glade-widget-class-ref name="GtkColorScale"/>
<glade-widget-class-ref name="GtkScaleButtonScale"/>
<glade-widget-class-ref name="ShortcutsPaneModelFilter"/>
<glade-widget-class-ref name="GtkPrinterOptionWidget"/>
</glade-widget-group>
</glade-catalog>
......@@ -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
......
/* gtkgladecatalog.c
*
* Copyright (C) 2013 Openismus GmbH
*
* Authors:
* Tristan Van Berkom <tristanvb@openismus.com>
*
* 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 <http://www.gnu.org/licenses/>.
*/
#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
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment