]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkprintoperation.c
Small documentation tweak
[~andy/gtk] / gtk / gtkprintoperation.c
index ebc7ad4565746c905bcd30947f38d16700469bec..3fd4f93dc7c0b746515f244dc74e39f08d057e9f 100644 (file)
@@ -13,9 +13,7 @@
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include "config.h"
@@ -31,7 +29,6 @@
 #include "gtkmarshalers.h"
 #include "gtkintl.h"
 #include "gtkprivate.h"
-#include "gtkmainprivate.h"
 #include "gtkmessagedialog.h"
 #include "gtktypebuiltins.h"
 
@@ -99,7 +96,7 @@
  * By default GtkPrintOperation uses an external application to do
  * print preview. To implement a custom print preview, an application
  * must connect to the preview signal. The functions
- * gtk_print_operation_print_preview_render_page(),
+ * gtk_print_operation_preview_render_page(),
  * gtk_print_operation_preview_end_preview() and
  * gtk_print_operation_preview_is_selected()
  * are useful when implementing a print preview.
@@ -251,7 +248,7 @@ gtk_print_operation_init (GtkPrintOperation *operation)
   priv->page_drawing_state = GTK_PAGE_DRAWING_STATE_READY;
 
   priv->rloop = NULL;
-  priv->unit = GTK_UNIT_PIXEL;
+  priv->unit = GTK_UNIT_NONE;
 
   appname = g_get_application_name ();
   if (appname == NULL)
@@ -551,11 +548,19 @@ preview_print_idle_done (gpointer data)
   op = GTK_PRINT_OPERATION (pop->preview);
 
   cairo_surface_finish (pop->surface);
-  /* Surface is destroyed in launch_preview */
-  _gtk_print_operation_platform_backend_launch_preview (op,
-                                                       pop->surface,
-                                                       pop->parent,
-                                                       pop->filename);
+
+  if (op->priv->status == GTK_PRINT_STATUS_FINISHED_ABORTED)
+    {
+      cairo_surface_destroy (pop->surface);
+    }
+  else
+    {
+      /* Surface is destroyed in launch_preview */
+      _gtk_print_operation_platform_backend_launch_preview (op,
+                                                           pop->surface,
+                                                           pop->parent,
+                                                           pop->filename);
+    }
 
   g_free (pop->filename);
 
@@ -581,10 +586,14 @@ preview_print_idle (gpointer data)
   op = GTK_PRINT_OPERATION (pop->preview);
   priv = op->priv;
 
-
   if (priv->page_drawing_state == GTK_PAGE_DRAWING_STATE_READY)
     {
-      if (!pop->pages_data->initialized)
+      if (priv->cancelled)
+       {
+         done = TRUE;
+          _gtk_print_operation_set_status (op, GTK_PRINT_STATUS_FINISHED_ABORTED, NULL);
+       }
+      else if (!pop->pages_data->initialized)
         {
           pop->pages_data->initialized = TRUE;
           prepare_data (pop->pages_data);
@@ -1023,7 +1032,7 @@ gtk_print_operation_class_init (GtkPrintOperationClass *class)
    /**
    * GtkPrintOperation::preview:
    * @operation: the #GtkPrintOperation on which the signal was emitted
-   * @preview: the #GtkPrintPreviewOperation for the current operation
+   * @preview: the #GtkPrintOperationPreview for the current operation
    * @context: the #GtkPrintContext that will be used
    * @parent: (allow-none): the #GtkWindow to use as window parent, or %NULL
    *
@@ -1224,7 +1233,7 @@ gtk_print_operation_class_init (GtkPrintOperationClass *class)
                                                      P_("Unit"),
                                                      P_("The unit in which distances can be measured in the context"),
                                                      GTK_TYPE_UNIT,
-                                                     GTK_UNIT_PIXEL,
+                                                     GTK_UNIT_NONE,
                                                      GTK_PARAM_READWRITE));
   
   
@@ -1391,7 +1400,7 @@ gtk_print_operation_class_init (GtkPrintOperationClass *class)
                                   PROP_EMBED_PAGE_SETUP,
                                   g_param_spec_boolean ("embed-page-setup",
                                                         P_("Embed Page Setup"),
-                                                        P_("TRUE if page setup combos are embedded in GtkPrintDialog"),
+                                                        P_("TRUE if page setup combos are embedded in GtkPrintUnixDialog"),
                                                         FALSE,
                                                         GTK_PARAM_READWRITE));
   /**
@@ -2041,14 +2050,11 @@ pdf_start_page (GtkPrintOperation *op,
                GtkPrintContext   *print_context,
                GtkPageSetup      *page_setup)
 {
-  GtkPaperSize *paper_size;
   cairo_surface_t *surface = op->priv->platform_data;
   gdouble w, h;
 
-  paper_size = gtk_page_setup_get_paper_size (page_setup);
-
-  w = gtk_paper_size_get_width (paper_size, GTK_UNIT_POINTS);
-  h = gtk_paper_size_get_height (paper_size, GTK_UNIT_POINTS);
+  w = gtk_page_setup_get_paper_width (page_setup, GTK_UNIT_POINTS);
+  h = gtk_page_setup_get_paper_height (page_setup, GTK_UNIT_POINTS);
   
   cairo_pdf_surface_set_size (surface, w, h);
 }
@@ -2137,7 +2143,7 @@ run_pdf (GtkPrintOperation  *op,
   priv->manual_reverse = FALSE;
   priv->manual_page_set = GTK_PAGE_SET_ALL;
   priv->manual_scale = 1.0;
-  priv->manual_orientation = TRUE;
+  priv->manual_orientation = FALSE;
   priv->manual_number_up = 1;
   priv->manual_number_up_layout = GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM;
   
@@ -2380,7 +2386,7 @@ gtk_print_operation_set_defer_drawing (GtkPrintOperation *op)
 /**
  * gtk_print_operation_set_embed_page_setup:
  * @op: a #GtkPrintOperation
- * @embed: %TRUE to embed page setup selection in the #GtkPrintDialog
+ * @embed: %TRUE to embed page setup selection in the #GtkPrintUnixDialog
  *
  * Embed page size combo box and orientation combo box into page setup page.
  * Selected page setup is stored as default page setup in #GtkPrintOperation.
@@ -2409,7 +2415,7 @@ gtk_print_operation_set_embed_page_setup (GtkPrintOperation  *op,
  * gtk_print_operation_get_embed_page_setup:
  * @op: a #GtkPrintOperation
  *
- * Gets the value of #GtkPrintOperation::embed-page-setup property.
+ * Gets the value of #GtkPrintOperation:embed-page-setup property.
  * 
  * Returns: whether page setup selection combos are embedded
  *
@@ -2489,6 +2495,8 @@ common_render_page (GtkPrintOperation *op,
   
   if (priv->manual_orientation)
     _gtk_print_context_rotate_according_to_orientation (print_context);
+  else
+    _gtk_print_context_reverse_according_to_orientation (print_context);
 
   if (priv->manual_number_up > 1)
     {
@@ -3039,7 +3047,7 @@ print_pages (GtkPrintOperation       *op,
       priv->manual_reverse = gtk_print_settings_get_reverse (priv->print_settings);
       priv->manual_page_set = gtk_print_settings_get_page_set (priv->print_settings);
       priv->manual_scale = gtk_print_settings_get_scale (priv->print_settings) / 100.0;
-      priv->manual_orientation = TRUE;
+      priv->manual_orientation = FALSE;
       priv->manual_number_up = gtk_print_settings_get_number_up (priv->print_settings);
       priv->manual_number_up_layout = gtk_print_settings_get_number_up_layout (priv->print_settings);
     }
@@ -3055,9 +3063,9 @@ print_pages (GtkPrintOperation       *op,
       priv->rloop = g_main_loop_new (NULL, FALSE);
 
       g_object_ref (op);
-      GDK_THREADS_LEAVE ();
+      gdk_threads_leave ();
       g_main_loop_run (priv->rloop);
-      GDK_THREADS_ENTER ();
+      gdk_threads_enter ();
       
       g_main_loop_unref (priv->rloop);
       priv->rloop = NULL;
@@ -3294,7 +3302,7 @@ gtk_print_operation_set_support_selection (GtkPrintOperation  *op,
  * gtk_print_operation_get_support_selection:
  * @op: a #GtkPrintOperation
  *
- * Gets the value of #GtkPrintOperation::support-selection property.
+ * Gets the value of #GtkPrintOperation:support-selection property.
  * 
  * Returns: whether the application supports print of selection
  *
@@ -3343,7 +3351,7 @@ gtk_print_operation_set_has_selection (GtkPrintOperation  *op,
  * gtk_print_operation_get_has_selection:
  * @op: a #GtkPrintOperation
  *
- * Gets the value of #GtkPrintOperation::has-selection property.
+ * Gets the value of #GtkPrintOperation:has-selection property.
  * 
  * Returns: whether there is a selection
  *