gimp r24766 - in trunk: . plug-ins/print



Author: neo
Date: Fri Feb  1 07:10:55 2008
New Revision: 24766
URL: http://svn.gnome.org/viewvc/gimp?rev=24766&view=rev

Log:
2008-02-01  Sven Neumann  <sven gimp org>

	* plug-ins/print/print.c: some minor cleanups and preparation 
for
	adding a dedicated Page Setup menu entry (bug #513291).



Modified:
   trunk/ChangeLog
   trunk/plug-ins/print/print.c

Modified: trunk/plug-ins/print/print.c
==============================================================================
--- trunk/plug-ins/print/print.c	(original)
+++ trunk/plug-ins/print/print.c	Fri Feb  1 07:10:55 2008
@@ -31,8 +31,10 @@
 #include "libgimp/stdplugins-intl.h"
 
 
-#define PRINT_PROC_NAME  "file-print-gtk"
-#define PLUG_IN_BINARY   "print"
+#define PLUG_IN_BINARY        "print"
+
+#define PRINT_PROC_NAME       "file-print-gtk"
+#define PAGE_SETUP_PROC_NAME  "file-print-gtk-page-setup"
 
 
 static void        query (void);
@@ -42,8 +44,9 @@
                           gint              *nreturn_vals,
                           GimpParam        **return_vals);
 
-static gboolean    print_image              (gint32             image_ID,
+static GimpPDBStatusType  print_image       (gint32             image_ID,
                                              gboolean           interactive);
+static GimpPDBStatusType  page_setup        (gint32             image_ID);
 
 static void        print_show_error         (const gchar       *message,
                                              gboolean           interactive);
@@ -89,7 +92,7 @@
                           N_("Print the image"),
                           "Print the image using the GTK+ Print API.",
                           "Bill Skaggs, Sven Neumann, Stefan RÃllin",
-                          "Bill Skaggs  <weskaggs primate ucdavis edu>",
+                          "Bill Skaggs <weskaggs primate ucdavis edu>",
                           "2006, 2007",
                           N_("_Print..."),
                           "*",
@@ -101,6 +104,20 @@
   gimp_plugin_icon_register (PRINT_PROC_NAME, GIMP_ICON_TYPE_STOCK_ID,
                              (const guint8 *) GTK_STOCK_PRINT);
 
+  gimp_install_procedure (PAGE_SETUP_PROC_NAME,
+                          N_("Adjust page size and orientation for printing"),
+                          "Adjust page size and orientation for printing for "
+                          "printing the image using the GTK+ Print API.",
+                          "Bill Skaggs, Sven Neumann, Stefan RÃllin",
+                          "Sven Neumann <sven gimp org>",
+                          "2008",
+                          N_("Page Set_up ..."),
+                          "*",
+                          GIMP_PLUGIN,
+                          G_N_ELEMENTS (print_args), 0,
+                          print_args, NULL);
+
+  gimp_plugin_menu_register (PAGE_SETUP_PROC_NAME, "<Image>/File/Send");
 }
 
 static void
@@ -112,9 +129,8 @@
 {
   static GimpParam  values[2];
   GimpRunMode       run_mode;
-  GimpPDBStatusType status = GIMP_PDB_SUCCESS;
+  GimpPDBStatusType status;
   gint32            image_ID;
-  gint32            drawable_ID;
 
   run_mode = param[0].data.d_int32;
 
@@ -123,21 +139,26 @@
   *nreturn_vals = 1;
   *return_vals  = values;
 
+  g_thread_init (NULL);
+
   values[0].type          = GIMP_PDB_STATUS;
   values[0].data.d_status = GIMP_PDB_EXECUTION_ERROR;
 
-  image_ID    = param[1].data.d_int32;
-  drawable_ID = param[2].data.d_int32;
+  image_ID = param[1].data.d_int32;
 
   if (strcmp (name, PRINT_PROC_NAME) == 0)
     {
-      g_thread_init (NULL);
-
-      gimp_ui_init (PLUG_IN_BINARY, FALSE);
-
-      if (! print_image (image_ID, run_mode == GIMP_RUN_INTERACTIVE))
+      status = print_image (image_ID, run_mode == GIMP_RUN_INTERACTIVE);
+    }
+  else if (strcmp (name, PAGE_SETUP_PROC_NAME) == 0)
+    {
+      if (run_mode == GIMP_RUN_INTERACTIVE)
+        {
+          status = page_setup (image_ID);
+        }
+      else
         {
-          status = GIMP_PDB_EXECUTION_ERROR;
+          status = GIMP_PDB_CALLING_ERROR;
         }
     }
   else
@@ -148,7 +169,7 @@
   values[0].data.d_status = status;
 }
 
-static gboolean
+static GimpPDBStatusType
 print_image (gint32    image_ID,
              gboolean  interactive)
 {
@@ -165,7 +186,7 @@
                               GIMP_EXPORT_CAN_HANDLE_ALPHA);
 
   if (export == GIMP_EXPORT_CANCEL)
-    return FALSE;
+    return GIMP_PDB_EXECUTION_ERROR;
 
   operation = gtk_print_operation_new ();
 
@@ -202,6 +223,8 @@
 
   if (interactive)
     {
+      gimp_ui_init (PLUG_IN_BINARY, FALSE);
+
       g_signal_connect_swapped (operation, "end-print",
                                 G_CALLBACK (save_print_settings),
                                 &data);
@@ -234,7 +257,17 @@
       g_error_free (error);
     }
 
-  return TRUE;
+  return GIMP_PDB_SUCCESS;
+}
+
+static GimpPDBStatusType
+page_setup (gint32 image_ID)
+{
+  gimp_ui_init (PLUG_IN_BINARY, FALSE);
+
+  gimp_message ("Page Setup is not yet implemented");
+
+  return GIMP_PDB_EXECUTION_ERROR;
 }
 
 static void



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