gtk+ r20838 - in trunk: . docs/reference docs/reference/gtk docs/reference/gtk/tmpl gtk gtk/stock-icons/16 gtk/stock-icons/24 modules/printbackends/cups



Author: matthiasc
Date: Tue Jul 15 17:34:34 2008
New Revision: 20838
URL: http://svn.gnome.org/viewvc/gtk+?rev=20838&view=rev

Log:
        Bug 384940 â handle rejecting jobs and authentication meaningfully

        Patch by Marek Kasik, icons by Mike Langlie:
        * gtk/gtk.symbols:
        * gtk/gtkprintbackend.h:
        * gtk/gtkprinter.[hc]: Add new paused and accepting-jobs properties
        and getters/setters.

        * gtk/gtkstock.h:
        * gtk/gtkiconfactory.c:
        * gtk/Makefile.am:
        * gtk/stock-icons/{16,24}/gtk-print-paused.{png,svg}: New icon.

        * modules/printbackends/cups/gtkprintbackendcups.c:
        * gtk/gtkprintunixdialog.c: Handle paused and job-rejecting
        printers.



Added:
   trunk/gtk/stock-icons/16/gtk-print-paused.png   (contents, props changed)
   trunk/gtk/stock-icons/16/gtk-print-paused.svg
   trunk/gtk/stock-icons/24/gtk-print-paused.png   (contents, props changed)
   trunk/gtk/stock-icons/24/gtk-print-paused.svg
Modified:
   trunk/ChangeLog
   trunk/docs/reference/ChangeLog
   trunk/docs/reference/gtk/Makefile.am
   trunk/docs/reference/gtk/gtk-sections.txt
   trunk/docs/reference/gtk/tmpl/gtkstock.sgml
   trunk/gtk/Makefile.am
   trunk/gtk/gtk.symbols
   trunk/gtk/gtkiconfactory.c
   trunk/gtk/gtkprintbackend.h
   trunk/gtk/gtkprinter.c
   trunk/gtk/gtkprinter.h
   trunk/gtk/gtkprintunixdialog.c
   trunk/gtk/gtkstock.h
   trunk/modules/printbackends/cups/gtkprintbackendcups.c

Modified: trunk/docs/reference/gtk/Makefile.am
==============================================================================
--- trunk/docs/reference/gtk/Makefile.am	(original)
+++ trunk/docs/reference/gtk/Makefile.am	Tue Jul 15 17:34:34 2008
@@ -242,6 +242,7 @@
 	$(top_srcdir)/gtk/stock-icons/24/gtk-preferences.png		\
 	$(top_srcdir)/gtk/stock-icons/24/gtk-print.png			\
 	$(top_srcdir)/gtk/stock-icons/24/gtk-print-error.png		\
+	$(top_srcdir)/gtk/stock-icons/24/gtk-print-paused.png		\
 	$(top_srcdir)/gtk/stock-icons/24/gtk-print-preview.png		\
 	$(top_srcdir)/gtk/stock-icons/24/gtk-print-report.png		\
 	$(top_srcdir)/gtk/stock-icons/24/gtk-print-warning.png		\

Modified: trunk/docs/reference/gtk/gtk-sections.txt
==============================================================================
--- trunk/docs/reference/gtk/gtk-sections.txt	(original)
+++ trunk/docs/reference/gtk/gtk-sections.txt	Tue Jul 15 17:34:34 2008
@@ -6441,6 +6441,8 @@
 gtk_printer_get_icon_name
 gtk_printer_get_job_count
 gtk_printer_is_active
+gtk_printer_is_paused
+gtk_printer_is_accepting_jobs
 gtk_printer_is_virtual
 gtk_printer_is_default
 gtk_printer_accepts_ps

Modified: trunk/docs/reference/gtk/tmpl/gtkstock.sgml
==============================================================================
--- trunk/docs/reference/gtk/tmpl/gtkstock.sgml	(original)
+++ trunk/docs/reference/gtk/tmpl/gtkstock.sgml	Tue Jul 15 17:34:34 2008
@@ -755,13 +755,22 @@
 
 <!-- ##### MACRO GTK_STOCK_PRINT_ERROR ##### -->
 <para>
-The "Print Error" item.
+The "Print Error" icon.
 <inlinegraphic fileref="gtk-print-error.png" format="PNG"></inlinegraphic>
 </para>
 
 @Since: 2.14
 
 
+<!-- ##### MACRO GTK_STOCK_PRINT_PAUSED ##### -->
+<para>
+The "Print Paused" icon.
+<inlinegraphic fileref="gtk-print-paused.png" format="PNG"></inlinegraphic>
+</para>
+
+ Since: 2.14
+
+
 <!-- ##### MACRO GTK_STOCK_PRINT_PREVIEW ##### -->
 <para>
 The "Print Preview" item.
@@ -772,7 +781,7 @@
 
 <!-- ##### MACRO GTK_STOCK_PRINT_REPORT ##### -->
 <para>
-The "Print Report" item.
+The "Print Report" icon.
 <inlinegraphic fileref="gtk-print-report.png" format="PNG"></inlinegraphic>
 </para>
 
@@ -781,7 +790,7 @@
 
 <!-- ##### MACRO GTK_STOCK_PRINT_WARNING ##### -->
 <para>
-The "Print Warning" item.
+The "Print Warning" icon.
 <inlinegraphic fileref="gtk-print-warning.png" format="PNG"></inlinegraphic>
 </para>
 

Modified: trunk/gtk/Makefile.am
==============================================================================
--- trunk/gtk/Makefile.am	(original)
+++ trunk/gtk/Makefile.am	Tue Jul 15 17:34:34 2008
@@ -1000,6 +1000,7 @@
 	stock-icons/16/gtk-preferences.png    		\
 	stock-icons/16/gtk-print.png  			\
 	stock-icons/16/gtk-print-error.png  		\
+	stock-icons/16/gtk-print-paused.png  		\
 	stock-icons/16/gtk-print-preview.png  		\
 	stock-icons/16/gtk-print-report.png  		\
 	stock-icons/16/gtk-print-warning.png  		\
@@ -1109,6 +1110,7 @@
 	stock-icons/24/gtk-preferences.png    		\
 	stock-icons/24/gtk-print.png  			\
 	stock-icons/24/gtk-print-error.png  		\
+	stock-icons/24/gtk-print-paused.png  		\
 	stock-icons/24/gtk-print-preview.png  		\
 	stock-icons/24/gtk-print-report.png  		\
 	stock-icons/24/gtk-print-warning.png  		\

Modified: trunk/gtk/gtk.symbols
==============================================================================
--- trunk/gtk/gtk.symbols	(original)
+++ trunk/gtk/gtk.symbols	Tue Jul 15 17:34:34 2008
@@ -2691,12 +2691,16 @@
 gtk_printer_set_has_details
 gtk_printer_set_icon_name
 gtk_printer_set_is_active
+gtk_printer_set_is_paused
+gtk_printer_set_is_accepting_jobs
 gtk_printer_set_is_default
 gtk_printer_set_is_new
 gtk_printer_set_job_count
 gtk_printer_set_location
 gtk_printer_set_state_message
 gtk_printer_is_active
+gtk_printer_is_paused
+gtk_printer_is_accepting_jobs
 gtk_printer_is_new
 gtk_printer_is_default
 #endif

Modified: trunk/gtk/gtkiconfactory.c
==============================================================================
--- trunk/gtk/gtkiconfactory.c	(original)
+++ trunk/gtk/gtkiconfactory.c	Tue Jul 15 17:34:34 2008
@@ -452,6 +452,7 @@
   register_stock_icon (factory, GTK_STOCK_PREFERENCES);
   register_stock_icon (factory, GTK_STOCK_PRINT);
   register_stock_icon (factory, GTK_STOCK_PRINT_ERROR);
+  register_stock_icon (factory, GTK_STOCK_PRINT_PAUSED);
   register_stock_icon (factory, GTK_STOCK_PRINT_PREVIEW);
   register_stock_icon (factory, GTK_STOCK_PRINT_REPORT);
   register_stock_icon (factory, GTK_STOCK_PRINT_WARNING);

Modified: trunk/gtk/gtkprintbackend.h
==============================================================================
--- trunk/gtk/gtkprintbackend.h	(original)
+++ trunk/gtk/gtkprintbackend.h	Tue Jul 15 17:34:34 2008
@@ -149,30 +149,32 @@
 
 /* Backend-only functions for GtkPrinter */
 
-GtkPrinter *gtk_printer_new               (const char      *name,
-					   GtkPrintBackend *backend,
-					   gboolean         is_virtual);
-gboolean    gtk_printer_is_new            (GtkPrinter      *printer);
-void        gtk_printer_set_is_new        (GtkPrinter      *printer,
-					   gboolean         val);
-void        gtk_printer_set_is_active     (GtkPrinter      *printer,
-					   gboolean         val);
-void        gtk_printer_set_has_details   (GtkPrinter      *printer,
-					   gboolean         val);
-void        gtk_printer_set_is_default    (GtkPrinter      *printer,
-					   gboolean         val);
-void        gtk_printer_set_icon_name     (GtkPrinter      *printer,
-					   const gchar     *icon);
-gboolean    gtk_printer_set_job_count     (GtkPrinter      *printer,
-					   gint             count);
-gboolean    gtk_printer_set_location      (GtkPrinter      *printer,
-					   const gchar     *location);
-gboolean    gtk_printer_set_description   (GtkPrinter      *printer,
-					   const gchar     *description);
-gboolean    gtk_printer_set_state_message (GtkPrinter      *printer,
-					   const gchar     *message);
-void        gtk_printer_set_is_active     (GtkPrinter      *printer,
-					   gboolean         active);
+GtkPrinter *gtk_printer_new                   (const char      *name,
+					       GtkPrintBackend *backend,
+					       gboolean         is_virtual);
+gboolean    gtk_printer_is_new                (GtkPrinter      *printer);
+void        gtk_printer_set_is_new            (GtkPrinter      *printer,
+					       gboolean         val);
+void        gtk_printer_set_is_active         (GtkPrinter      *printer,
+					       gboolean         val);
+gboolean    gtk_printer_set_is_paused         (GtkPrinter      *printer,
+					       gboolean         val);
+gboolean    gtk_printer_set_is_accepting_jobs (GtkPrinter      *printer,
+					       gboolean         val);
+void        gtk_printer_set_has_details       (GtkPrinter      *printer,
+					       gboolean         val);
+void        gtk_printer_set_is_default        (GtkPrinter      *printer,
+					       gboolean         val);
+void        gtk_printer_set_icon_name         (GtkPrinter      *printer,
+					       const gchar     *icon);
+gboolean    gtk_printer_set_job_count         (GtkPrinter      *printer,
+					       gint             count);
+gboolean    gtk_printer_set_location          (GtkPrinter      *printer,
+					       const gchar     *location);
+gboolean    gtk_printer_set_description       (GtkPrinter      *printer,
+					       const gchar     *description);
+gboolean    gtk_printer_set_state_message     (GtkPrinter      *printer,
+					       const gchar     *message);
 
 
 G_END_DECLS

Modified: trunk/gtk/gtkprinter.c
==============================================================================
--- trunk/gtk/gtkprinter.c	(original)
+++ trunk/gtk/gtkprinter.c	Tue Jul 15 17:34:34 2008
@@ -43,13 +43,15 @@
   gchar *description;
   gchar *icon_name;
 
-  guint is_active   : 1;
-  guint is_new      : 1;
-  guint is_virtual  : 1;
-  guint is_default  : 1;
-  guint has_details : 1;
-  guint accepts_pdf : 1;
-  guint accepts_ps  : 1;
+  guint is_active         : 1;
+  guint is_paused         : 1;
+  guint is_accepting_jobs : 1;
+  guint is_new            : 1;
+  guint is_virtual        : 1;
+  guint is_default        : 1;
+  guint has_details       : 1;
+  guint accepts_pdf       : 1;
+  guint accepts_ps        : 1;
 
   gchar *state_message;  
   gint job_count;
@@ -72,7 +74,9 @@
   PROP_ICON_NAME,
   PROP_JOB_COUNT,
   PROP_ACCEPTS_PDF,
-  PROP_ACCEPTS_PS
+  PROP_ACCEPTS_PS,
+  PROP_PAUSED,
+  PROP_ACCEPTING_JOBS
 };
 
 static guint signals[LAST_SIGNAL] = { 0 };
@@ -180,6 +184,37 @@
  						     GTK_PARAM_READABLE));
 
   /**
+   * GtkPrinter:paused:
+   *
+   * This property is %TRUE if this printer is paused. 
+   * A paused printer still accepts jobs, but it does 
+   * not print them.
+   *
+   * Since: 2.14
+   */
+  g_object_class_install_property (G_OBJECT_CLASS (class),
+                                   PROP_PAUSED,
+                                   g_param_spec_boolean ("paused",
+							 P_("Paused Printer"),
+							 P_("TRUE if this printer is paused"),
+							 FALSE,
+							 GTK_PARAM_READABLE));
+  /**
+   * GtkPrinter:accepting-jobs:
+   *
+   * This property is %TRUE if the printer is accepting jobs.
+   *
+   * Since: 2.14
+   */ 
+  g_object_class_install_property (G_OBJECT_CLASS (class),
+                                   PROP_ACCEPTING_JOBS,
+                                   g_param_spec_boolean ("accepting-jobs",
+							 P_("Accepting Jobs"),
+							 P_("TRUE if this printer is accepting new jobs"),
+							 TRUE,
+							 GTK_PARAM_READABLE));
+
+  /**
    * GtkPrinter::details-acquired:
    * @printer: the #GtkPrinter on which the signal is emitted
    * @success: %TRUE if the details were successfully acquired
@@ -213,6 +248,8 @@
   priv->icon_name = NULL;
 
   priv->is_active = TRUE;
+  priv->is_paused = FALSE;
+  priv->is_accepting_jobs = TRUE;
   priv->is_new = TRUE;
   priv->has_details = FALSE;
   priv->accepts_pdf = TRUE;
@@ -327,6 +364,12 @@
     case PROP_ACCEPTS_PS:
       g_value_set_boolean (value, priv->accepts_ps);
       break;
+    case PROP_PAUSED:
+      g_value_set_boolean (value, priv->is_paused);
+      break;
+    case PROP_ACCEPTING_JOBS:
+      g_value_set_boolean (value, priv->is_accepting_jobs);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -635,6 +678,79 @@
   printer->priv->is_active = val;
 }
 
+/**
+ * gtk_printer_is_paused:
+ * @printer: a #GtkPrinter
+ * 
+ * Returns whether the printer is currently paused.
+ * A paused printer still accepts jobs, but it is not
+ * printing them.
+ * 
+ * Return value: %TRUE if @printer is paused
+ *
+ * Since: 2.14
+ */
+gboolean
+gtk_printer_is_paused (GtkPrinter *printer)
+{
+  g_return_val_if_fail (GTK_IS_PRINTER (printer), TRUE);
+  
+  return printer->priv->is_paused;
+}
+
+gboolean
+gtk_printer_set_is_paused (GtkPrinter *printer,
+			   gboolean    val)
+{
+  GtkPrinterPrivate *priv;
+
+  g_return_val_if_fail (GTK_IS_PRINTER (printer), FALSE);
+
+  priv = printer->priv;
+
+  if (val == priv->is_paused)
+    return FALSE;
+
+  priv->is_paused = val;
+
+  return TRUE;
+}
+
+/**
+ * gtk_printer_is_accepting_jobs:
+ * @printer: a #GtkPrinter
+ * 
+ * Returns whether the printer is accepting jobs
+ * 
+ * Return value: %TRUE if @printer is accepting jobs
+ *
+ * Since: 2.14
+ */
+gboolean
+gtk_printer_is_accepting_jobs (GtkPrinter *printer)
+{
+  g_return_val_if_fail (GTK_IS_PRINTER (printer), TRUE);
+  
+  return printer->priv->is_accepting_jobs;
+}
+
+gboolean
+gtk_printer_set_is_accepting_jobs (GtkPrinter *printer,
+				   gboolean val)
+{
+  GtkPrinterPrivate *priv;
+
+  g_return_val_if_fail (GTK_IS_PRINTER (printer), FALSE);
+
+  priv = printer->priv;
+
+  if (val == priv->is_accepting_jobs)
+    return FALSE;
+
+  priv->is_accepting_jobs = val;
+
+  return TRUE;
+}
 
 /**
  * gtk_printer_is_virtual:

Modified: trunk/gtk/gtkprinter.h
==============================================================================
--- trunk/gtk/gtkprinter.h	(original)
+++ trunk/gtk/gtkprinter.h	Tue Jul 15 17:34:34 2008
@@ -99,6 +99,8 @@
 G_CONST_RETURN gchar    *gtk_printer_get_icon_name         (GtkPrinter      *printer);
 gint                     gtk_printer_get_job_count         (GtkPrinter      *printer);
 gboolean                 gtk_printer_is_active             (GtkPrinter      *printer);
+gboolean                 gtk_printer_is_paused             (GtkPrinter      *printer);
+gboolean                 gtk_printer_is_accepting_jobs     (GtkPrinter      *printer);
 gboolean                 gtk_printer_is_virtual            (GtkPrinter      *printer);
 gboolean                 gtk_printer_is_default            (GtkPrinter      *printer);
 gboolean                 gtk_printer_accepts_pdf           (GtkPrinter      *printer);

Modified: trunk/gtk/gtkprintunixdialog.c
==============================================================================
--- trunk/gtk/gtkprintunixdialog.c	(original)
+++ trunk/gtk/gtkprintunixdialog.c	Tue Jul 15 17:34:34 2008
@@ -96,6 +96,12 @@
 static gboolean dialog_get_reverse                 (GtkPrintUnixDialog *dialog);
 static gint     dialog_get_n_copies                (GtkPrintUnixDialog *dialog);
 
+static void     set_cell_sensitivity_func          (GtkTreeViewColumn *tree_column,
+				                    GtkCellRenderer   *cell,
+				                    GtkTreeModel      *model,
+				                    GtkTreeIter       *iter,
+				                    gpointer           data);
+
 /* GtkBuildable */
 static void gtk_print_unix_dialog_buildable_init                    (GtkBuildableIface *iface);
 static GObject *gtk_print_unix_dialog_buildable_get_internal_child  (GtkBuildable *buildable,
@@ -309,12 +315,12 @@
   gtk_dialog_add_action_widget (GTK_DIALOG (dialog), button, response_id);
 }
 
-/* Presents an overwrite confirmation dialog ("print to file" backend).
+/* This function handles error messages before printing.
  */
 static gboolean
-overwrite_confirmation_dialog (GtkPrintUnixDialog *print_dialog,
-                               gint                print_dialog_response_id,
-                               gpointer            data)
+error_dialogs (GtkPrintUnixDialog *print_dialog,
+               gint                print_dialog_response_id,
+               gpointer            data)
 {
   GtkPrintUnixDialogPrivate *priv = print_dialog->priv;
   GtkPrinterOption          *option = NULL;
@@ -330,6 +336,8 @@
     {
       printer = gtk_print_unix_dialog_get_selected_printer (print_dialog);
 
+      /* Shows overwrite confirmation dialog in the case of printing to file which
+       * already exists. */
       if (printer != NULL && gtk_printer_is_virtual (printer))
         {
           option = gtk_printer_option_set_lookup (priv->options,
@@ -418,7 +426,7 @@
 
   g_signal_connect (dialog,
                     "response",
-                    (GCallback) overwrite_confirmation_dialog,
+                    (GCallback) error_dialogs,
                     NULL);
 
   priv->preview_button = gtk_button_new_from_stock (GTK_STOCK_PRINT_PREVIEW);
@@ -568,6 +576,28 @@
   return parent_buildable_iface->get_internal_child (buildable, builder, childname);
 }
 
+/* This function controls "sensitive" property of GtkCellRenderer based on pause
+ * state of printers. */
+void set_cell_sensitivity_func (GtkTreeViewColumn *tree_column,
+                                GtkCellRenderer   *cell,
+                                GtkTreeModel      *tree_model,
+                                GtkTreeIter       *iter,
+                                gpointer           data)
+{
+  GtkPrinter *printer;
+  
+  gtk_tree_model_get (tree_model, iter, PRINTER_LIST_COL_PRINTER_OBJ, &printer, -1);
+
+  if (printer != NULL && !gtk_printer_is_accepting_jobs (printer))
+    g_object_set (cell,
+                  "sensitive", FALSE,
+                  NULL);
+  else
+    g_object_set (cell,
+                  "sensitive", TRUE,
+                  NULL);
+}
+
 static void
 printer_status_cb (GtkPrintBackend    *backend, 
 		   GtkPrinter         *printer, 
@@ -575,6 +605,7 @@
 {
   GtkPrintUnixDialogPrivate *priv = dialog->priv;
   GtkTreeIter *iter;
+  GtkTreeSelection *selection;
 
   iter = g_object_get_data (G_OBJECT (printer), "gtk-print-tree-iter");
 
@@ -585,6 +616,10 @@
                       PRINTER_LIST_COL_LOCATION, gtk_printer_get_location (printer),
                       -1);
 
+  /* When the pause state change then we need to update sensitive property
+   * of GTK_RESPONSE_OK button inside of selected_printer_changed function. */
+  selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->printer_treeview));
+  selected_printer_changed (selection, dialog);
 }
 
 static void
@@ -1410,6 +1445,21 @@
   			  PRINTER_LIST_COL_PRINTER_OBJ, &printer,
 			  -1);
     }
+
+  /* sets GTK_RESPONSE_OK button sensitive/insensitive depending on whether the printer 
+   * accepts/rejects jobs */
+  if (printer != NULL)
+    {
+      if (!gtk_printer_is_accepting_jobs (printer))
+        {
+          gtk_dialog_set_response_sensitive (GTK_DIALOG (dialog), GTK_RESPONSE_OK, FALSE);
+        }
+      else
+        {
+          if (priv->current_printer == printer && gtk_printer_has_details (printer))
+            gtk_dialog_set_response_sensitive (GTK_DIALOG (dialog), GTK_RESPONSE_OK, TRUE);
+        }
+    }
   
   if (printer != NULL && !gtk_printer_has_details (printer))
     {
@@ -1445,7 +1495,8 @@
 
   priv->printer_capabilities = 0;
   
-  gtk_dialog_set_response_sensitive (GTK_DIALOG (dialog), GTK_RESPONSE_OK, TRUE);
+  if (gtk_printer_is_accepting_jobs (printer))
+    gtk_dialog_set_response_sensitive (GTK_DIALOG (dialog), GTK_RESPONSE_OK, TRUE);
   priv->current_printer = printer;
 
   if (printer != NULL)
@@ -1659,6 +1710,7 @@
 						     "icon-name",
 						     PRINTER_LIST_COL_ICON,
 						     NULL);
+  gtk_tree_view_column_set_cell_data_func (column, renderer, set_cell_sensitivity_func, NULL, NULL);
   gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
 
   renderer = gtk_cell_renderer_text_new ();
@@ -1667,6 +1719,7 @@
 						     "text",
 						     PRINTER_LIST_COL_NAME,
 						     NULL);
+  gtk_tree_view_column_set_cell_data_func (column, renderer, set_cell_sensitivity_func, NULL, NULL);
   gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
   
   renderer = gtk_cell_renderer_text_new ();
@@ -1675,6 +1728,7 @@
 						     "text",
 						     PRINTER_LIST_COL_LOCATION,
 						     NULL);
+  gtk_tree_view_column_set_cell_data_func (column, renderer, set_cell_sensitivity_func, NULL, NULL);
   gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
 
   renderer = gtk_cell_renderer_text_new ();
@@ -1684,6 +1738,7 @@
 						     "text",
 						     PRINTER_LIST_COL_STATE,
 						     NULL);
+  gtk_tree_view_column_set_cell_data_func (column, renderer, set_cell_sensitivity_func, NULL, NULL);
   gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
   
   gtk_widget_show (treeview);

Modified: trunk/gtk/gtkstock.h
==============================================================================
--- trunk/gtk/gtkstock.h	(original)
+++ trunk/gtk/gtkstock.h	Tue Jul 15 17:34:34 2008
@@ -148,6 +148,7 @@
 #define GTK_STOCK_PREFERENCES      "gtk-preferences"
 #define GTK_STOCK_PRINT            "gtk-print"
 #define GTK_STOCK_PRINT_ERROR      "gtk-print-error"
+#define GTK_STOCK_PRINT_PAUSED     "gtk-print-paused"
 #define GTK_STOCK_PRINT_PREVIEW    "gtk-print-preview"
 #define GTK_STOCK_PRINT_REPORT     "gtk-print-report"
 #define GTK_STOCK_PRINT_WARNING    "gtk-print-warning"

Added: trunk/gtk/stock-icons/16/gtk-print-paused.png
==============================================================================
Binary file. No diff available.

Added: trunk/gtk/stock-icons/16/gtk-print-paused.svg
==============================================================================
--- (empty file)
+++ trunk/gtk/stock-icons/16/gtk-print-paused.svg	Tue Jul 15 17:34:34 2008
@@ -0,0 +1,490 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:xlink="http://www.w3.org/1999/xlink";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="16"
+   height="16"
+   id="svg4908"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   version="1.0"
+   sodipodi:docbase="/home/andreas/project/gtk/24"
+   sodipodi:docname="gtk-print-paused.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="/home/mkasik/Devel/Bugs/gtk+384940/icons/GTK/16x16/gtk-print-paused.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90"
+   sodipodi:modified="true">
+  <defs
+     id="defs4910">
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient7658"
+       id="linearGradient3441"
+       gradientUnits="userSpaceOnUse"
+       x1="43.882969"
+       y1="-42.861526"
+       x2="39.987103"
+       y2="-42.861526"
+       gradientTransform="translate(0,4.0216698)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3460"
+       id="linearGradient3456"
+       x1="44.287689"
+       y1="-39.951534"
+       x2="36.799889"
+       y2="-39.951534"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1101512,0,4.348586)" />
+    <linearGradient
+       id="linearGradient7658"
+       inkscape:collect="always">
+      <stop
+         id="stop7660"
+         offset="0"
+         style="stop-color:#d3d7cf" />
+      <stop
+         id="stop7662"
+         offset="1"
+         style="stop-color:#eeeeec" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient7658"
+       id="linearGradient3447"
+       gradientUnits="userSpaceOnUse"
+       x1="43.882969"
+       y1="-42.861526"
+       x2="39.987103"
+       y2="-42.861526" />
+    <linearGradient
+       id="linearGradient3460">
+      <stop
+         id="stop3462"
+         offset="0"
+         style="stop-color:#343533;stop-opacity:1;" />
+      <stop
+         id="stop3464"
+         offset="1"
+         style="stop-color:#343533;stop-opacity:0.5;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3460"
+       id="linearGradient3458"
+       x1="44.287689"
+       y1="-39.951534"
+       x2="36.799889"
+       y2="-39.951534"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1101512,0,4.7915781)" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3061">
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0"
+         id="stop3063" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop3065" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3061"
+       id="radialGradient2559"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.025362,0,-1.055427)"
+       cx="40.393475"
+       cy="41.613941"
+       fx="40.393475"
+       fy="41.613941"
+       r="6.0987959" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 12 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="24 : 12 : 1"
+       inkscape:persp3d-origin="12 : 8 : 1"
+       id="perspective3630" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient6093">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop6095" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop6097" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6056"
+       inkscape:collect="always">
+      <stop
+         id="stop6058"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1" />
+      <stop
+         id="stop6060"
+         offset="1"
+         style="stop-color:#d3d7cf;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6056"
+       id="linearGradient5966"
+       x1="13.84057"
+       y1="9.1469946"
+       x2="4.4762087"
+       y2="-0.6407786"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6093"
+       id="linearGradient6099"
+       x1="11.5625"
+       y1="11.125"
+       x2="11.5625"
+       y2="8.1793661"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.5,0,6)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3460"
+       id="linearGradient3683"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1101512,0,4.7915781)"
+       x1="44.287689"
+       y1="-39.951534"
+       x2="36.799889"
+       y2="-39.951534" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient7658"
+       id="linearGradient3685"
+       gradientUnits="userSpaceOnUse"
+       x1="43.882969"
+       y1="-42.861526"
+       x2="39.987103"
+       y2="-42.861526" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3460"
+       id="linearGradient3687"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1101512,0,4.348586)"
+       x1="44.287689"
+       y1="-39.951534"
+       x2="36.799889"
+       y2="-39.951534" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient7658"
+       id="linearGradient3689"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(0,4.0216698)"
+       x1="43.882969"
+       y1="-42.861526"
+       x2="39.987103"
+       y2="-42.861526" />
+    <linearGradient
+       gradientTransform="matrix(0.7142859,0,0,0.5,-0.5714286,1.9999993)"
+       gradientUnits="userSpaceOnUse"
+       y2="8.1793661"
+       x2="11.5625"
+       y1="11.125"
+       x1="11.5625"
+       id="linearGradient2586"
+       xlink:href="#linearGradient6093"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientTransform="matrix(0.6923078,0,0,0.7231216,-0.3076923,-0.5846825)"
+       gradientUnits="userSpaceOnUse"
+       y2="-0.6407786"
+       x2="4.4762087"
+       y1="9.1469946"
+       x1="13.84057"
+       id="linearGradient2584"
+       xlink:href="#linearGradient6056"
+       inkscape:collect="always" />
+    <inkscape:perspective
+       id="perspective2569"
+       inkscape:persp3d-origin="8 : 5.3333333 : 1"
+       inkscape:vp_z="16 : 8 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 8 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3460"
+       id="linearGradient2437"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1101512,0,4.7915781)"
+       x1="44.287689"
+       y1="-39.951534"
+       x2="36.799889"
+       y2="-39.951534" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient7658"
+       id="linearGradient2439"
+       gradientUnits="userSpaceOnUse"
+       x1="43.882969"
+       y1="-42.861526"
+       x2="39.987103"
+       y2="-42.861526" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3460"
+       id="linearGradient2441"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1101512,0,4.348586)"
+       x1="44.287689"
+       y1="-39.951534"
+       x2="36.799889"
+       y2="-39.951534" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient7658"
+       id="linearGradient2443"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(0,4.0216698)"
+       x1="43.882969"
+       y1="-42.861526"
+       x2="39.987103"
+       y2="-42.861526" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient7658"
+       id="linearGradient2446"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6995928,0,0,0.9030326,-17.378453,29.075599)"
+       x1="43.882969"
+       y1="-42.861526"
+       x2="39.987103"
+       y2="-42.861526" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3460"
+       id="linearGradient2449"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6558683,0,0,0.728113,-15.618892,18.520083)"
+       x1="44.287689"
+       y1="-39.951534"
+       x2="36.799889"
+       y2="-39.951534" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient7658"
+       id="linearGradient2452"
+       gradientUnits="userSpaceOnUse"
+       x1="43.882969"
+       y1="-42.861526"
+       x2="39.987103"
+       y2="-42.861526"
+       gradientTransform="matrix(0.6558683,0,0,0.6558683,-15.618892,15.667983)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3460"
+       id="linearGradient2455"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6558683,0,0,0.728113,-15.618892,18.810627)"
+       x1="44.287689"
+       y1="-39.951534"
+       x2="36.799889"
+       y2="-39.951534" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient7658"
+       id="linearGradient2457"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7014147,0,0,0.9184803,-17.458402,27.116392)"
+       x1="43.882969"
+       y1="-42.861526"
+       x2="39.987103"
+       y2="-42.861526" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="28.870159"
+     inkscape:cx="10.240631"
+     inkscape:cy="5.0417817"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     width="24px"
+     height="24px"
+     inkscape:window-width="1214"
+     inkscape:window-height="926"
+     inkscape:window-x="2"
+     inkscape:window-y="0"
+     inkscape:snap-global="false">
+    <inkscape:grid
+       type="xygrid"
+       id="grid2600" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata4913">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <g
+       inkscape:label="Layer 1"
+       id="g2588"
+       transform="translate(0,-3.124997e-2)">
+      <path
+         sodipodi:nodetypes="ccccccccc"
+         id="rect4923"
+         d="M 2.6650374,7.5 L 13.334962,7.5 L 15.5,10.027675 L 15.5,14.821727 C 15.5,15.214803 15.178132,15.53125 14.77832,15.53125 L 1.2216791,15.53125 C 0.82186963,15.53125 0.49999997,15.214803 0.49999997,14.821727 L 0.49999997,10.027675 L 2.6650374,7.5 z"
+         style="opacity:1;fill:#babdb6;fill-opacity:1;stroke:#555753;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
+      <path
+         sodipodi:nodetypes="ccccccc"
+         id="path5915"
+         d="M 1.5,14.53125 L 1.5,10.424446 L 3.0764563,8.5 L 12.892294,8.5 L 14.5,10.424446 L 14.5,14.53125 L 1.5,14.53125 z"
+         style="opacity:0.49456524;fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <path
+         sodipodi:nodetypes="ccccccc"
+         id="rect5952"
+         d="M 4.1994739,0.50000003 L 11.800527,0.50000003 C 12.188035,0.50000003 12.499999,0.82585053 12.499999,1.2306065 L 12.499999,8.4999998 L 3.5,8.4999998 L 3.5,1.2306065 C 3.5,0.82585053 3.8119654,0.50000003 4.1994739,0.50000003 z"
+         style="opacity:1;fill:url(#linearGradient5966);fill-opacity:1;stroke:#797c76;stroke-width:0.99999982;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
+      <rect
+         ry="0.3157346"
+         rx="0.3157346"
+         y="1.5"
+         x="4.5"
+         height="7"
+         width="7"
+         id="rect5968"
+         style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.99999988;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <rect
+         ry="0"
+         rx="0"
+         y="3"
+         x="5"
+         height="0.99999994"
+         width="6"
+         id="rect5975"
+         style="opacity:0.26630435;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <rect
+         ry="0"
+         rx="0"
+         y="5"
+         x="5"
+         height="0.99999994"
+         width="6"
+         id="rect5979"
+         style="opacity:0.26630435;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <rect
+         y="6"
+         x="3"
+         height="2.0000002"
+         width="10"
+         id="rect6091"
+         style="opacity:0.19565214;fill:url(#linearGradient6099);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <path
+         id="path5911"
+         d="M 2,10.492194 L 14,10.492194"
+         style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <path
+         sodipodi:nodetypes="cc"
+         id="path5913"
+         d="M 3.016466,8.5 L 12.983534,8.5"
+         style="fill:none;fill-rule:evenodd;stroke:#555753;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <path
+         sodipodi:nodetypes="cc"
+         id="path4922"
+         d="M 3.03125,12.5 L 13,12.5"
+         style="fill:none;fill-rule:evenodd;stroke:#555753;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    </g>
+    <g
+       id="g2473">
+      <path
+         transform="matrix(0.6448281,0,0,0.6292846,-14.498837,-15.243863)"
+         d="M 46.49227,41.613941 A 6.0987959,6.2534757 0 1 1 34.294679,41.613941 A 6.0987959,6.2534757 0 1 1 46.49227,41.613941 z"
+         sodipodi:ry="6.2534757"
+         sodipodi:rx="6.0987959"
+         sodipodi:cy="41.613941"
+         sodipodi:cx="40.393475"
+         id="path2155"
+         style="fill:#61635f;fill-opacity:1;stroke:#555753;stroke-width:1.02960598;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1"
+         sodipodi:type="arc" />
+      <path
+         transform="matrix(0.5373509,0,0,0.5244034,-10.157457,-10.879337)"
+         d="M 46.49227,41.613941 A 6.0987959,6.2534757 0 1 1 34.294679,41.613941 A 6.0987959,6.2534757 0 1 1 46.49227,41.613941 z"
+         sodipodi:ry="6.2534757"
+         sodipodi:rx="6.0987959"
+         sodipodi:cy="41.613941"
+         sodipodi:cx="40.393475"
+         id="path3046"
+         style="opacity:0.11442787;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.23553479;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1"
+         sodipodi:type="arc" />
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path3048"
+         d="M 11.550546,7.3358741 C 9.5607277,7.3358741 7.9432692,8.9520274 7.9432699,10.94315 C 11.000296,13.818432 12.85442,8.9866238 15.157821,10.94315 C 15.157821,8.9520261 13.540364,7.3358754 11.550546,7.3358741 z"
+         style="opacity:0.1243781;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.23553479;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1" />
+      <g
+         id="g2459">
+        <rect
+           style="opacity:0.76119403;fill:url(#linearGradient2455);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1;display:inline"
+           id="rect3406"
+           width="4.9041333"
+           height="2.3370304"
+           x="8.5200682"
+           y="-14.030796"
+           transform="matrix(0,1,-1,0,0,0)" />
+        <rect
+           style="fill:url(#linearGradient2457);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1;display:inline"
+           id="rect3408"
+           width="4.7148356"
+           height="2.1843958"
+           x="8.6069241"
+           y="-13.952147"
+           transform="matrix(0,1,-1,0,0,0)" />
+        <rect
+           style="opacity:0.76119403;fill:url(#linearGradient2449);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1;display:inline"
+           id="rect3434"
+           width="4.9041333"
+           height="2.3370304"
+           x="8.5200682"
+           y="-11.393109"
+           transform="matrix(0,1,-1,0,0,0)" />
+        <rect
+           style="fill:url(#linearGradient2446);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1;display:inline"
+           id="rect3436"
+           width="4.702589"
+           height="2.1476567"
+           x="8.6191702"
+           y="-11.302214"
+           transform="matrix(0,1,-1,0,0,0)" />
+      </g>
+    </g>
+  </g>
+</svg>

Added: trunk/gtk/stock-icons/24/gtk-print-paused.png
==============================================================================
Binary file. No diff available.

Added: trunk/gtk/stock-icons/24/gtk-print-paused.svg
==============================================================================
--- (empty file)
+++ trunk/gtk/stock-icons/24/gtk-print-paused.svg	Tue Jul 15 17:34:34 2008
@@ -0,0 +1,460 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:xlink="http://www.w3.org/1999/xlink";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="24"
+   height="24"
+   id="svg4908"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   version="1.0"
+   sodipodi:docbase="/home/andreas/project/gtk/24"
+   sodipodi:docname="gtk-print-pause.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="/home/andreas/project/gtk/24/gtk-print.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90"
+   sodipodi:modified="true">
+  <defs
+     id="defs4910">
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient7658"
+       id="linearGradient3441"
+       gradientUnits="userSpaceOnUse"
+       x1="43.882969"
+       y1="-42.861526"
+       x2="39.987103"
+       y2="-42.861526"
+       gradientTransform="translate(0,4.0216698)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3460"
+       id="linearGradient3456"
+       x1="44.287689"
+       y1="-39.951534"
+       x2="36.799889"
+       y2="-39.951534"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1101512,0,4.348586)" />
+    <linearGradient
+       id="linearGradient7658"
+       inkscape:collect="always">
+      <stop
+         id="stop7660"
+         offset="0"
+         style="stop-color:#d3d7cf" />
+      <stop
+         id="stop7662"
+         offset="1"
+         style="stop-color:#eeeeec" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient7658"
+       id="linearGradient3447"
+       gradientUnits="userSpaceOnUse"
+       x1="43.882969"
+       y1="-42.861526"
+       x2="39.987103"
+       y2="-42.861526" />
+    <linearGradient
+       id="linearGradient3460">
+      <stop
+         id="stop3462"
+         offset="0"
+         style="stop-color:#343533;stop-opacity:1;" />
+      <stop
+         id="stop3464"
+         offset="1"
+         style="stop-color:#343533;stop-opacity:0.5;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3460"
+       id="linearGradient3458"
+       x1="44.287689"
+       y1="-39.951534"
+       x2="36.799889"
+       y2="-39.951534"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1101512,0,4.7915781)" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3061">
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0"
+         id="stop3063" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop3065" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3061"
+       id="radialGradient2559"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.025362,0,-1.055427)"
+       cx="40.393475"
+       cy="41.613941"
+       fx="40.393475"
+       fy="41.613941"
+       r="6.0987959" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 12 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="24 : 12 : 1"
+       inkscape:persp3d-origin="12 : 8 : 1"
+       id="perspective3630" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient6093">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop6095" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop6097" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient6057">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop6059" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="stop6061" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient6009">
+      <stop
+         style="stop-color:#edeeec;stop-opacity:1;"
+         offset="0"
+         id="stop6011" />
+      <stop
+         style="stop-color:#d4d7d2;stop-opacity:1"
+         offset="1"
+         id="stop6013" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6056"
+       inkscape:collect="always">
+      <stop
+         id="stop6058"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1" />
+      <stop
+         id="stop6060"
+         offset="1"
+         style="stop-color:#d3d7cf;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6056"
+       id="linearGradient5966"
+       x1="13.84057"
+       y1="9.1469946"
+       x2="4.4762087"
+       y2="-0.6407786"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6009"
+       id="linearGradient6015"
+       x1="19.959274"
+       y1="14.042688"
+       x2="20.003927"
+       y2="17.972033"
+       gradientUnits="userSpaceOnUse" />
+    <filter
+       inkscape:collect="always"
+       x="-0.061363636"
+       width="1.1227273"
+       y="-0.27"
+       height="1.54"
+       id="filter6053">
+      <feGaussianBlur
+         inkscape:collect="always"
+         stdDeviation="0.675"
+         id="feGaussianBlur6055" />
+    </filter>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6057"
+       id="linearGradient6063"
+       x1="21.027927"
+       y1="15.601459"
+       x2="21.027927"
+       y2="18.950628"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6093"
+       id="linearGradient6099"
+       x1="11.5625"
+       y1="11.125"
+       x2="11.5625"
+       y2="8.1793661"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.5,0,6)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3460"
+       id="linearGradient3683"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1101512,0,4.7915781)"
+       x1="44.287689"
+       y1="-39.951534"
+       x2="36.799889"
+       y2="-39.951534" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient7658"
+       id="linearGradient3685"
+       gradientUnits="userSpaceOnUse"
+       x1="43.882969"
+       y1="-42.861526"
+       x2="39.987103"
+       y2="-42.861526" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3460"
+       id="linearGradient3687"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.1101512,0,4.348586)"
+       x1="44.287689"
+       y1="-39.951534"
+       x2="36.799889"
+       y2="-39.951534" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient7658"
+       id="linearGradient3689"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(0,4.0216698)"
+       x1="43.882969"
+       y1="-42.861526"
+       x2="39.987103"
+       y2="-42.861526" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="16"
+     inkscape:cx="12.34558"
+     inkscape:cy="11.36666"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     width="24px"
+     height="24px"
+     inkscape:window-width="647"
+     inkscape:window-height="702"
+     inkscape:window-x="0"
+     inkscape:window-y="29" />
+  <metadata
+     id="metadata4913">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <g
+       id="g3632">
+      <rect
+         ry="1.4601421"
+         rx="1.4601421"
+         y="19"
+         x="1"
+         height="5"
+         width="22"
+         id="rect6019"
+         style="opacity:0.23913042;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter6053)" />
+      <rect
+         ry="1.4601421"
+         rx="1.4601421"
+         y="19.579716"
+         x="2.5"
+         height="2.9202843"
+         width="18.906809"
+         id="rect5895"
+         style="opacity:1;fill:#babdb6;fill-opacity:1;stroke:#555753;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <path
+         sodipodi:nodetypes="ccccccccc"
+         id="rect4923"
+         d="M 4.5310526,10.532094 L 19.468949,10.532094 L 22.500002,14.131469 L 22.500002,19.489649 C 22.500002,20.049384 22.049386,20.5 21.489651,20.5 L 2.5103509,20.5 C 1.9506166,20.5 1.5000001,20.049384 1.5000001,19.489649 L 1.5000001,14.131469 L 4.5310526,10.532094 z "
+         style="fill:url(#linearGradient6015);fill-opacity:1.0;stroke:#555753;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;opacity:1" />
+      <rect
+         ry="0.31573462"
+         rx="0.31573462"
+         y="14"
+         x="2"
+         height="6"
+         width="20"
+         id="rect5972"
+         style="opacity:0.23913043;fill:url(#linearGradient6063);fill-opacity:1.0;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <path
+         sodipodi:nodetypes="ccccccc"
+         id="path6071"
+         d="M 2.5,14.446516 L 2.5,19.534838 L 21.522081,19.534838 L 21.522081,14.446516 L 18.988038,11.477919 L 4.9216374,11.477919 L 2.5,14.446516 z "
+         style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;opacity:0.3423913" />
+      <path
+         sodipodi:nodetypes="cc"
+         id="path5970"
+         d="M 3.5310529,14.5 L 20.5,14.5"
+         style="opacity:0.38586957;fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
+      <rect
+         y="16.5"
+         x="4.5"
+         height="2"
+         width="14.999998"
+         id="rect6065"
+         style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:#888a85;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <path
+         sodipodi:nodetypes="ccccccc"
+         id="rect5952"
+         d="M 6.5103508,1.5 L 17.48965,1.5 C 18.049384,1.5 18.500001,1.9506165 18.500001,2.5103509 L 18.500001,12.563146 L 5.5,12.563146 L 5.5,2.5103509 C 5.5,1.9506165 5.9506165,1.5 6.5103508,1.5 z "
+         style="fill:url(#linearGradient5966);fill-opacity:1;stroke:#888a85;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;opacity:1" />
+      <rect
+         ry="0.3157346"
+         rx="0.31573462"
+         y="2.4999998"
+         x="6.5"
+         height="10"
+         width="11"
+         id="rect5968"
+         style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.99999982;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <rect
+         ry="0"
+         rx="0"
+         y="4"
+         x="8"
+         height="0.99999976"
+         width="8"
+         id="rect5975"
+         style="opacity:0.26630435;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <rect
+         ry="0"
+         rx="0"
+         y="6"
+         x="8"
+         height="0.99999976"
+         width="8"
+         id="rect5979"
+         style="opacity:0.26630435;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <rect
+         ry="0"
+         rx="0"
+         y="8"
+         x="8"
+         height="0.99999976"
+         width="8"
+         id="rect5987"
+         style="opacity:0.26630435;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <path
+         id="path6069"
+         d="M 4.541708,12.5 L 19.5,12.5"
+         style="fill:none;fill-rule:evenodd;stroke:#888a85;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
+      <rect
+         y="10"
+         x="5"
+         height="2"
+         width="14"
+         id="rect6091"
+         style="opacity:0.19565214;fill:url(#linearGradient6099);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+    </g>
+    <g
+       id="g3472"
+       transform="matrix(0.9567392,0,0,0.9567392,-22.044959,-21.966195)">
+      <path
+         transform="matrix(0.983167,0,0,0.959468,1.7825924,0.5718055)"
+         d="M 46.49227,41.613941 A 6.0987959,6.2534757 0 1 1 34.294679,41.613941 A 6.0987959,6.2534757 0 1 1 46.49227,41.613941 z"
+         sodipodi:ry="6.2534757"
+         sodipodi:rx="6.0987959"
+         sodipodi:cy="41.613941"
+         sodipodi:cx="40.393475"
+         id="path2155"
+         style="fill:#61635f;fill-opacity:1;stroke:#555753;stroke-width:1.02960597999999992;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.20000057000000004;stroke-opacity:1"
+         sodipodi:type="arc" />
+      <path
+         transform="matrix(0.819297,0,0,0.799556,8.4018784,7.2263815)"
+         d="M 46.49227,41.613941 A 6.0987959,6.2534757 0 1 1 34.294679,41.613941 A 6.0987959,6.2534757 0 1 1 46.49227,41.613941 z"
+         sodipodi:ry="6.2534757"
+         sodipodi:rx="6.0987959"
+         sodipodi:cy="41.613941"
+         sodipodi:cx="40.393475"
+         id="path3046"
+         style="opacity:0.11442786;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.23553479000000022;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.20000057000000004;stroke-opacity:1"
+         sodipodi:type="arc" />
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path3048"
+         d="M 41.499991,34.999048 C 38.466123,34.999048 35.99999,37.463191 35.999991,40.499048 C 40.661027,44.88298 43.488004,37.51594 46.999991,40.499048 C 46.999991,37.463189 44.53386,34.99905 41.499991,34.999048 z"
+         style="opacity:0.12437811;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.23553479000000022;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.20000057000000004;stroke-opacity:1" />
+      <g
+         id="g3466">
+        <rect
+           style="opacity:0.76119403;fill:url(#linearGradient3683);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1;display:inline"
+           id="rect3406"
+           width="7.4773145"
+           height="3.5632617"
+           x="36.804585"
+           y="-45.28162"
+           transform="matrix(0,1,-1,0,0,0)" />
+        <rect
+           style="fill:url(#linearGradient3685);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1;display:inline"
+           id="rect3408"
+           width="6.7218947"
+           height="2.3782718"
+           x="37.161076"
+           y="-44.713577"
+           transform="matrix(0,1,-1,0,0,0)" />
+        <rect
+           style="opacity:0.76119403;fill:url(#linearGradient3687);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1;display:inline"
+           id="rect3434"
+           width="7.4773145"
+           height="3.5632617"
+           x="36.804585"
+           y="-41.259949"
+           transform="matrix(0,1,-1,0,0,0)" />
+        <rect
+           style="fill:url(#linearGradient3689);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1;display:inline"
+           id="rect3436"
+           width="6.7218947"
+           height="2.3782718"
+           x="37.161076"
+           y="-40.691906"
+           transform="matrix(0,1,-1,0,0,0)" />
+      </g>
+    </g>
+  </g>
+</svg>

Modified: trunk/modules/printbackends/cups/gtkprintbackendcups.c
==============================================================================
--- trunk/modules/printbackends/cups/gtkprintbackendcups.c	(original)
+++ trunk/modules/printbackends/cups/gtkprintbackendcups.c	Tue Jul 15 17:34:34 2008
@@ -1058,6 +1058,7 @@
       const gchar *reason_msg = NULL;
       gchar *reason_msg_desc = NULL;
       gchar *tmp_msg = NULL;
+      gchar *tmp_msg2 = NULL;
       gint printer_state_reason_level = 0; /* 0 - none, 1 - report, 2 - warning, 3 - error */
       gboolean interested_in = FALSE;
       gboolean found = FALSE;
@@ -1093,6 +1094,8 @@
           N_("Printer '%s' may not be connected."),
           N_("There is a problem on printer '%s'.")
         };
+      gboolean is_paused = FALSE;
+      gboolean is_accepting_jobs = TRUE;
       
       /* Skip leading attributes until we hit a printer...
        */
@@ -1127,6 +1130,12 @@
               {
                 if (strcmp (attr->values[i].string.text, "none") != 0)
                   {
+                    /* Sets is_paused flag for paused printer. */
+                    if (strcmp (attr->values[i].string.text, "paused") == 0)
+                      {
+                        is_paused = TRUE;
+                      }
+
                     interested_in = FALSE;
                     for (j = 0; j < G_N_ELEMENTS (reasons); j++)
                         if (strncmp (attr->values[i].string.text, reasons[j], strlen (reasons[j])) == 0)
@@ -1166,6 +1175,13 @@
           state = attr->values[0].integer;
         else if (strcmp (attr->name, "queued-job-count") == 0)
           job_count = attr->values[0].integer;
+        else if (strcmp (attr->name, "printer-is-accepting-jobs") == 0)
+          {
+            if (attr->values[0].boolean == 1)
+              is_accepting_jobs = TRUE;
+            else
+              is_accepting_jobs = FALSE;
+          }
         else
 	  {
 	    GTK_NOTE (PRINTING,
@@ -1262,6 +1278,9 @@
       else
 	g_object_ref (printer);
 
+      gtk_printer_set_is_paused (printer, is_paused);
+      gtk_printer_set_is_accepting_jobs (printer, is_accepting_jobs);
+
       if (!gtk_printer_is_active (printer))
         {
 	  gtk_printer_set_is_active (printer, TRUE);
@@ -1288,6 +1307,19 @@
       status_changed |= gtk_printer_set_location (printer, location);
       status_changed |= gtk_printer_set_description (printer, description);
 
+      if (state_msg != NULL && strlen (state_msg) == 0)
+        {
+          if (is_paused && !is_accepting_jobs)
+            tmp_msg2 = g_strdup ( N_("Paused ; Rejecting Jobs"));
+          if (is_paused && is_accepting_jobs)
+            tmp_msg2 = g_strdup ( N_("Paused"));
+          if (!is_paused && !is_accepting_jobs)
+            tmp_msg2 = g_strdup ( N_("Rejecting Jobs"));
+
+          if (tmp_msg2 != NULL)
+            state_msg = tmp_msg2;
+        }
+
       /* Set description of the reason and combine it with printer-state-message. */
       if ( (reason_msg != NULL))
         {
@@ -1317,10 +1349,14 @@
         }
 
       status_changed |= gtk_printer_set_state_message (printer, state_msg);
+      status_changed |= gtk_printer_set_is_accepting_jobs (printer, is_accepting_jobs);
 
       if (tmp_msg != NULL)
         g_free (tmp_msg);
 
+      if (tmp_msg2 != NULL)
+        g_free (tmp_msg2);
+
       if (reason_msg_desc != NULL)
         g_free (reason_msg_desc);
 
@@ -1330,6 +1366,8 @@
         gtk_printer_set_icon_name (printer, "gtk-print-error");
       else if (printer_state_reason_level == 2)
         gtk_printer_set_icon_name (printer, "gtk-print-warning");
+      else if (gtk_printer_is_paused (printer))
+        gtk_printer_set_icon_name (printer, "gtk-print-paused");
       else
         gtk_printer_set_icon_name (printer, "gtk-print");
 
@@ -1376,7 +1414,8 @@
       "printer-state-message",
       "printer-state-reasons",
       "printer-state",
-      "queued-job-count"
+      "queued-job-count",
+      "printer-is-accepting-jobs"
     };
  
   if (cups_backend->list_printers_pending ||



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