[gtk+/composite-templates-new: 7/33] Added directory with Glade catalog



commit ae1e01215d271a1f3b982469ccef192c60e2df94
Author: Tristan Van Berkom <tristanvb openismus com>
Date:   Mon Mar 25 01:40:57 2013 +0900

    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.

 gtk/Makefile.am                   |    1 +
 gtk/glade/README.glade            |   17 ++++++++++++
 gtk/glade/gtk-private-widgets.xml |   36 +++++++++++++++++++++++++
 gtk/gtk.symbols                   |    1 +
 gtk/gtkgladecatalog.c             |   52 +++++++++++++++++++++++++++++++++++++
 5 files changed, 107 insertions(+), 0 deletions(-)
---
diff --git a/gtk/Makefile.am b/gtk/Makefile.am
index 481fda2..f178460 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 0000000..f8c59c5
--- /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 0000000..1a65e25
--- /dev/null
+++ b/gtk/glade/gtk-private-widgets.xml
@@ -0,0 +1,36 @@
+<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>
diff --git a/gtk/gtk.symbols b/gtk/gtk.symbols
index 1937f11..53dcb2e 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 0000000..310aa2b
--- /dev/null
+++ b/gtk/gtkgladecatalog.c
@@ -0,0 +1,52 @@
+/* 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
+}


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]