]> git.sur5r.net Git - glabels/blobdiff - src/wdgt-print-copies.c
Imported Upstream version 3.0.0
[glabels] / src / wdgt-print-copies.c
diff --git a/src/wdgt-print-copies.c b/src/wdgt-print-copies.c
deleted file mode 100644 (file)
index 7d2f35b..0000000
+++ /dev/null
@@ -1,363 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
-
-/*
- *  (GLABELS) Label and Business Card Creation program for GNOME
- *
- *  wdgt_print_copies.c:  custom print copies widget module
- *
- *  Copyright (C) 2001  Jim Evins <evins@snaught.com>.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program 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 General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- */
-
-#include <config.h>
-
-#include "wdgt-print-copies.h"
-
-#include <glib/gi18n.h>
-#include <gtk/gtktogglebutton.h>
-#include <gtk/gtkspinbutton.h>
-#include <gtk/gtkradiobutton.h>
-#include <gtk/gtklabel.h>
-#include <gtk/gtkvbox.h>
-
-#include "hig.h"
-#include "wdgt-mini-preview.h"
-#include "marshal.h"
-
-#include "debug.h"
-
-#define WDGT_MINI_PREVIEW_HEIGHT 175
-#define WDGT_MINI_PREVIEW_WIDTH  150
-
-/*===========================================*/
-/* Private globals                           */
-/*===========================================*/
-
-/*===========================================*/
-/* Local function prototypes                 */
-/*===========================================*/
-
-static void gl_wdgt_print_copies_finalize      (GObject * object);
-
-static void gl_wdgt_print_copies_construct     (glWdgtPrintCopies * copies,
-                                               glLabel * label);
-
-static void sheets_radio_cb                    (GtkToggleButton * togglebutton,
-                                               gpointer user_data);
-static void first_spin_cb                      (GtkSpinButton * spinbutton,
-                                               gpointer user_data);
-static void last_spin_cb                       (GtkSpinButton * spinbutton,
-                                               gpointer user_data);
-
-static void
-preview_pressed (glWdgtMiniPreview *mini_preview,
-                gint first, gint last, gpointer user_data);
-
-\f
-/****************************************************************************/
-/* Boilerplate Object stuff.                                                */
-/****************************************************************************/
-G_DEFINE_TYPE (glWdgtPrintCopies, gl_wdgt_print_copies, GTK_TYPE_HBOX);
-
-static void
-gl_wdgt_print_copies_class_init (glWdgtPrintCopiesClass * class)
-{
-       GObjectClass *object_class = G_OBJECT_CLASS (class);
-
-       gl_wdgt_print_copies_parent_class = g_type_class_peek_parent (class);
-
-       object_class->finalize = gl_wdgt_print_copies_finalize;
-}
-
-static void
-gl_wdgt_print_copies_init (glWdgtPrintCopies * copies)
-{
-       copies->labels_per_sheet = 0;
-
-       copies->mini_preview = NULL;
-
-       copies->sheets_radio = NULL;
-       copies->sheets_spin = NULL;
-
-       copies->labels_radio = NULL;
-       copies->first_spin = NULL;
-       copies->last_spin = NULL;
-}
-
-static void
-gl_wdgt_print_copies_finalize (GObject * object)
-{
-       g_return_if_fail (object != NULL);
-       g_return_if_fail (GL_IS_WDGT_PRINT_COPIES (object));
-
-       G_OBJECT_CLASS (gl_wdgt_print_copies_parent_class)->finalize (object);
-}
-
-GtkWidget *
-gl_wdgt_print_copies_new (glLabel * label)
-{
-       glWdgtPrintCopies *copies;
-
-       copies = g_object_new (gl_wdgt_print_copies_get_type (), NULL);
-
-       gl_wdgt_print_copies_construct (copies, label);
-
-       return GTK_WIDGET (copies);
-}
-
-/*--------------------------------------------------------------------------*/
-/* Construct composite widget.                                              */
-/*--------------------------------------------------------------------------*/
-static void
-gl_wdgt_print_copies_construct (glWdgtPrintCopies *copies,
-                               glLabel           *label)
-{
-       const lglTemplateFrame    *frame;
-       GtkWidget                 *whbox, *wvbox, *whbox1;
-       GSList                    *radio_group = NULL;
-       GtkObject                 *adjust;
-
-       whbox = GTK_WIDGET (copies);
-
-        frame = (lglTemplateFrame *)label->template->frames->data;
-
-       copies->labels_per_sheet = lgl_template_frame_get_n_labels (frame);
-
-       /* mini_preview canvas */
-       copies->mini_preview = gl_wdgt_mini_preview_new (WDGT_MINI_PREVIEW_HEIGHT,
-                                                   WDGT_MINI_PREVIEW_WIDTH);
-       gl_wdgt_mini_preview_set_template (GL_WDGT_MINI_PREVIEW(copies->mini_preview),
-                                          label->template);
-       gtk_box_pack_start (GTK_BOX(whbox), copies->mini_preview, FALSE, FALSE, 0);
-
-       wvbox = gtk_vbox_new (FALSE, GL_HIG_PAD1);
-       gtk_box_pack_start (GTK_BOX(whbox), wvbox, FALSE, FALSE, 0);
-
-       /* Sheet controls */
-       whbox1 = gtk_hbox_new (FALSE, GL_HIG_PAD2);
-       gtk_box_pack_start (GTK_BOX(wvbox), whbox1, FALSE, FALSE, 0);
-       copies->sheets_radio =
-           gtk_radio_button_new_with_label (radio_group, _("Sheets:"));
-       gtk_box_pack_start (GTK_BOX(whbox1), copies->sheets_radio, FALSE, FALSE, 0);
-       adjust = gtk_adjustment_new (1, 1.0, 100.0, 1.0, 10.0, 0.0);
-       copies->sheets_spin = gtk_spin_button_new (GTK_ADJUSTMENT (adjust),
-                                                  1.0, 0);
-       gtk_box_pack_start (GTK_BOX(whbox1), copies->sheets_spin, FALSE, FALSE, 0);
-       gl_wdgt_mini_preview_highlight_range (GL_WDGT_MINI_PREVIEW(copies->mini_preview),
-                                             1, copies->labels_per_sheet);
-
-       /* Blank line */
-       gtk_box_pack_start (GTK_BOX(wvbox), gtk_label_new (""), FALSE, FALSE, 0);
-
-       /* Label controls */
-       whbox1 = gtk_hbox_new (FALSE, GL_HIG_PAD2);
-       gtk_box_pack_start (GTK_BOX(wvbox), whbox1, FALSE, FALSE, 0);
-       radio_group =
-           gtk_radio_button_get_group (GTK_RADIO_BUTTON (copies->sheets_radio));
-       copies->labels_radio =
-           gtk_radio_button_new_with_label (radio_group, _("Labels"));
-       gtk_box_pack_start (GTK_BOX(whbox1), copies->labels_radio, FALSE, FALSE, 0);
-       gtk_box_pack_start (GTK_BOX(whbox1), gtk_label_new (_("from:")), FALSE, FALSE, 0);
-       adjust = gtk_adjustment_new (1, 1.0, copies->labels_per_sheet, 1.0, 10.0, 0.0);
-       copies->first_spin = gtk_spin_button_new (GTK_ADJUSTMENT (adjust),
-                                                 1.0, 0);
-       gtk_box_pack_start (GTK_BOX(whbox1), copies->first_spin, FALSE, FALSE, 0);
-       gtk_box_pack_start (GTK_BOX(whbox1), gtk_label_new (_("to:")), FALSE, FALSE, 0);
-       adjust = gtk_adjustment_new (copies->labels_per_sheet, 1.0, copies->labels_per_sheet, 1.0, 10.0, 0.0);
-       copies->last_spin = gtk_spin_button_new (GTK_ADJUSTMENT (adjust),
-                                                1.0, 0);
-       gtk_box_pack_start (GTK_BOX(whbox1), copies->last_spin, FALSE, FALSE, 0);
-       gtk_widget_set_sensitive (copies->first_spin, FALSE);
-       gtk_widget_set_sensitive (copies->last_spin, FALSE);
-
-       /* Connect signals to controls */
-       g_signal_connect (G_OBJECT (copies->mini_preview), "pressed",
-                         G_CALLBACK (preview_pressed), copies);
-       g_signal_connect (G_OBJECT (copies->sheets_radio), "toggled",
-                         G_CALLBACK (sheets_radio_cb), copies);
-       g_signal_connect (G_OBJECT (copies->first_spin), "changed",
-                         G_CALLBACK (first_spin_cb), copies);
-       g_signal_connect (G_OBJECT (copies->last_spin), "changed",
-                         G_CALLBACK (last_spin_cb), copies);
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Enable/Disable appropriate controls due to radio button toggle.*/
-/*--------------------------------------------------------------------------*/
-static void
-sheets_radio_cb (GtkToggleButton * togglebutton,
-                gpointer user_data)
-{
-       glWdgtPrintCopies *copies = GL_WDGT_PRINT_COPIES (user_data);
-       gint first, last;
-
-       if (gtk_toggle_button_get_active (togglebutton)) {
-
-               gtk_widget_set_sensitive (copies->sheets_spin, TRUE);
-               gtk_widget_set_sensitive (copies->first_spin, FALSE);
-               gtk_widget_set_sensitive (copies->last_spin, FALSE);
-
-               gl_wdgt_mini_preview_highlight_range (GL_WDGT_MINI_PREVIEW(copies->mini_preview),
-                                       1, copies->labels_per_sheet);
-
-       } else {
-
-               gtk_widget_set_sensitive (copies->sheets_spin, FALSE);
-               gtk_widget_set_sensitive (copies->first_spin, TRUE);
-               gtk_widget_set_sensitive (copies->last_spin, TRUE);
-
-               first =
-                   gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON
-                                                     (copies->first_spin));
-               last =
-                   gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON
-                                                     (copies->last_spin));
-               gl_wdgt_mini_preview_highlight_range (GL_WDGT_MINI_PREVIEW(copies->mini_preview),
-                                                first, last);
-
-       }
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  modify widget due to change of first spin button               */
-/*--------------------------------------------------------------------------*/
-static void
-first_spin_cb (GtkSpinButton * spinbutton,
-              gpointer user_data)
-{
-       glWdgtPrintCopies *copies = GL_WDGT_PRINT_COPIES (user_data);
-       gint first, last;
-
-       first =
-           gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON
-                                             (copies->first_spin));
-       last =
-           gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON
-                                             (copies->last_spin));
-
-       gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (copies->last_spin))->lower = first;
-
-       gl_wdgt_mini_preview_highlight_range (GL_WDGT_MINI_PREVIEW(copies->mini_preview),
-                                              first, last);
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  modify widget due to change of last spin button                */
-/*--------------------------------------------------------------------------*/
-static void
-last_spin_cb (GtkSpinButton * spinbutton,
-             gpointer user_data)
-{
-       glWdgtPrintCopies *copies = GL_WDGT_PRINT_COPIES (user_data);
-       gint first, last;
-
-       first =
-           gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON
-                                             (copies->first_spin));
-       last =
-           gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON
-                                             (copies->last_spin));
-
-       gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (copies->first_spin))->upper = last;
-
-       gl_wdgt_mini_preview_highlight_range (GL_WDGT_MINI_PREVIEW(copies->mini_preview),
-                                              first, last);
-}
-
-/*--------------------------------------------------------------------------*/
-/* PRIVATE.  Canvas event handler, select first and last items.             */
-/*--------------------------------------------------------------------------*/
-static void
-preview_pressed (glWdgtMiniPreview *mini_preview,
-                gint first,
-                gint last,
-                gpointer user_data)
-{
-       glWdgtPrintCopies *copies = GL_WDGT_PRINT_COPIES (user_data);
-
-       gl_wdgt_print_copies_set_range (copies, 1, first, last);
-}
-
-/****************************************************************************/
-/* query selected range of labels within sheet or number of sheets.         */
-/****************************************************************************/
-void
-gl_wdgt_print_copies_get_range (glWdgtPrintCopies * copies,
-                               gint * n_sheets,
-                               gint * first_label,
-                               gint * last_label)
-{
-       gboolean sheets_active;
-
-       sheets_active =
-           gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON
-                                         (copies->sheets_radio));
-
-       if (sheets_active) {
-               *n_sheets =
-                   gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON
-                                                     (copies->sheets_spin));
-               *first_label = 1;
-               *last_label = copies->labels_per_sheet;
-       } else {
-               *n_sheets = 1;
-               *first_label =
-                   gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON
-                                                     (copies->first_spin));
-               *last_label =
-                   gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON
-                                                     (copies->last_spin));
-       }
-}
-
-/****************************************************************************/
-/* set range of labels within sheet or number of sheets                     */
-/****************************************************************************/
-void
-gl_wdgt_print_copies_set_range (glWdgtPrintCopies * copies,
-                               gint n_sheets,
-                               gint first_label,
-                               gint last_label)
-{
-       gint old_first_label;
-
-       old_first_label =
-           gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON
-                                             (copies->first_spin));
-
-       if (first_label > old_first_label) {
-               gtk_spin_button_set_value (GTK_SPIN_BUTTON (copies->last_spin),
-                                          last_label);
-               gtk_spin_button_set_value (GTK_SPIN_BUTTON (copies->first_spin),
-                                          first_label);
-       } else {
-               gtk_spin_button_set_value (GTK_SPIN_BUTTON (copies->first_spin),
-                                          first_label);
-               gtk_spin_button_set_value (GTK_SPIN_BUTTON (copies->last_spin),
-                                          last_label);
-       }
-       if ((first_label == 1) && (last_label == copies->labels_per_sheet)) {
-               gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
-                                             (copies->sheets_radio), TRUE);
-               gtk_spin_button_set_value (GTK_SPIN_BUTTON
-                                          (copies->sheets_spin), n_sheets);
-       } else {
-               gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
-                                             (copies->labels_radio), TRUE);
-               gtk_spin_button_set_value (GTK_SPIN_BUTTON
-                                          (copies->sheets_spin), 1.0);
-       }
-}