diff options
author | Matthias Clasen <mclasen@redhat.com> | 2007-09-07 20:03:22 +0000 |
---|---|---|
committer | Matthias Clasen <matthiasc@src.gnome.org> | 2007-09-07 20:03:22 +0000 |
commit | 1a869c046a022bef25bba9f054ce7d93e6ee19cc (patch) | |
tree | b1a43e2e1992715c0811f194e4d5371a7f8786d4 /gtk/gtkprintunixdialog.c | |
parent | 1e8598508370616825c165c4b3e03da66d35cbf6 (diff) | |
download | gtk+-1a869c046a022bef25bba9f054ce7d93e6ee19cc.tar.gz |
Add an internal child name for the notebook, so that GtkBuilder can be
2007-09-07 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkprintunixdialog.c: Add an internal child name for
the notebook, so that GtkBuilder can be used to add custom tabs.
(#472951, Christian Persch)
svn path=/trunk/; revision=18757
Diffstat (limited to 'gtk/gtkprintunixdialog.c')
-rw-r--r-- | gtk/gtkprintunixdialog.c | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/gtk/gtkprintunixdialog.c b/gtk/gtkprintunixdialog.c index 66b65c8bdb..f5cc16809e 100644 --- a/gtk/gtkprintunixdialog.c +++ b/gtk/gtkprintunixdialog.c @@ -47,6 +47,7 @@ #include "gtkalignment.h" #include "gtklabel.h" #include "gtkeventbox.h" +#include "gtkbuildable.h" #include "gtkprintbackend.h" #include "gtkprinter-private.h" @@ -91,6 +92,12 @@ static gboolean dialog_get_collate (GtkPrintUnixDialog *dialog); static gboolean dialog_get_reverse (GtkPrintUnixDialog *dialog); static gint dialog_get_n_copies (GtkPrintUnixDialog *dialog); +/* GtkBuildable */ +static void gtk_print_unix_dialog_buildable_init (GtkBuildableIface *iface); +static GObject *gtk_print_unix_dialog_buildable_get_internal_child (GtkBuildable *buildable, + GtkBuilder *builder, + const gchar *childname); + enum { PROP_0, PROP_PAGE_SETUP, @@ -193,7 +200,11 @@ struct GtkPrintUnixDialogPrivate gint current_page; }; -G_DEFINE_TYPE (GtkPrintUnixDialog, gtk_print_unix_dialog, GTK_TYPE_DIALOG) +G_DEFINE_TYPE_WITH_CODE (GtkPrintUnixDialog, gtk_print_unix_dialog, GTK_TYPE_DIALOG, + G_IMPLEMENT_INTERFACE (GTK_TYPE_BUILDABLE, + gtk_print_unix_dialog_buildable_init)) + +static GtkBuildableIface *parent_buildable_iface; static gboolean is_default_printer (GtkPrintUnixDialog *dialog, @@ -391,6 +402,25 @@ printer_removed_cb (GtkPrintBackend *backend, } static void +gtk_print_unix_dialog_buildable_init (GtkBuildableIface *iface) +{ + parent_buildable_iface = g_type_interface_peek_parent (iface); + + iface->get_internal_child = gtk_print_unix_dialog_buildable_get_internal_child; +} + +static GObject * +gtk_print_unix_dialog_buildable_get_internal_child (GtkBuildable *buildable, + GtkBuilder *builder, + const gchar *childname) +{ + if (strcmp (childname, "notebook") == 0) + return G_OBJECT (GTK_PRINT_UNIX_DIALOG (buildable)->priv->notebook); + + return parent_buildable_iface->get_internal_child (buildable, builder, childname); +} + +static void printer_status_cb (GtkPrintBackend *backend, GtkPrinter *printer, GtkPrintUnixDialog *dialog) |