* 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"
* 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.
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)
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);
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);
/**
* 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
*
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));
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));
/**
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);
}
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;
/**
* 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.
* 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
*
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)
{
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);
}
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;
* 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
*
* 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
*