summaryrefslogtreecommitdiff
path: root/gtk/gtkprintunixdialog.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2007-09-07 20:03:22 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2007-09-07 20:03:22 +0000
commit1a869c046a022bef25bba9f054ce7d93e6ee19cc (patch)
treeb1a43e2e1992715c0811f194e4d5371a7f8786d4 /gtk/gtkprintunixdialog.c
parent1e8598508370616825c165c4b3e03da66d35cbf6 (diff)
downloadgtk+-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.c32
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)