-/*--------------------------------------------------------------------------*/
-/* PRIVATE. "Create custom widget" callback */
-/*--------------------------------------------------------------------------*/
-static GObject *
-create_custom_widget_cb (GtkPrintOperation *operation,
- gpointer user_data)
-{
- GladeXML *gui;
- glPrintOp *op = GL_PRINT_OP (operation);
- glLabel *label = GL_LABEL (user_data);
- GtkWidget *vbox;
- glMerge *merge = NULL;
-
- gui = glade_xml_new (GLABELS_GLADE_DIR "print-custom-widget.glade",
- "print_custom_widget_vbox", NULL);
-
- if (!gui) {
- g_warning ("Could not open print-op.glade, reinstall glabels!");
- return NULL;
- }
-
- vbox = glade_xml_get_widget (gui, "print_custom_widget_vbox");
-
- /* ----- Simple print control ----- */
- op->priv->simple_frame = glade_xml_get_widget (gui, "simple_frame");
- op->priv->copies_vbox = glade_xml_get_widget (gui, "copies_vbox");
- op->priv->copies = gl_wdgt_print_copies_new (label);
- gtk_box_pack_start (GTK_BOX(op->priv->copies_vbox),
- op->priv->copies, FALSE, FALSE, 0);
-
- /* ----- Merge print control ----- */
- op->priv->merge_frame = glade_xml_get_widget (gui, "merge_frame");
- op->priv->prmerge_vbox = glade_xml_get_widget (gui, "prmerge_vbox");
- op->priv->prmerge = gl_wdgt_print_merge_new (label);
- gtk_box_pack_start (GTK_BOX(op->priv->prmerge_vbox),
- op->priv->prmerge, FALSE, FALSE, 0);
-
- /* ----- Options ----------------- */
- op->priv->outline_check = glade_xml_get_widget (gui, "outline_check");
- op->priv->reverse_check = glade_xml_get_widget (gui, "reverse_check");
- op->priv->crop_marks_check = glade_xml_get_widget (gui, "crop_marks_check");
-
- g_object_unref (gui);
-
- /* ---- Activate either simple or merge print control widgets. ---- */
- merge = gl_label_get_merge (op->priv->label);
- if (merge == NULL) {
-
- gl_wdgt_print_copies_set_range (GL_WDGT_PRINT_COPIES (op->priv->copies),
- op->priv->n_sheets,
- op->priv->first,
- op->priv->last);
-
- gtk_widget_show_all (op->priv->simple_frame);
- gtk_widget_hide_all (op->priv->merge_frame);
-
- } else {
-
- gint n_records = gl_merge_get_record_count( merge );
- gl_wdgt_print_merge_set_copies (GL_WDGT_PRINT_MERGE (op->priv->prmerge),
- op->priv->n_copies,
- op->priv->first,
- n_records,
- op->priv->collate_flag);
- g_object_unref (G_OBJECT(merge));
-
- gtk_widget_hide_all (op->priv->simple_frame);
- gtk_widget_show_all (op->priv->merge_frame);
- }
-
- /* --- Set options --- */
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (op->priv->outline_check),
- op->priv->outline_flag);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (op->priv->reverse_check),
- op->priv->reverse_flag);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (op->priv->crop_marks_check),
- op->priv->crop_marks_flag);
-
- /* --- Do we need to force the outline flag --- */
- if (op->priv->force_outline_flag)