static void zoom_one_button_clicked (GtkWidget *button, SoliPrintPreview *preview) { set_zoom_factor (preview, 1); gtk_widget_grab_focus (GTK_WIDGET (preview->layout)); }
static void preview_ready (GtkPrintOperationPreview *gtk_preview, GtkPrintContext *context, SoliPrintPreview *preview) { init_last_page_label (preview); goto_page (preview, 0); set_zoom_factor (preview, 1.0); /* let the default gtklayout handler clear the background */ g_signal_connect_after (preview->layout, "draw", G_CALLBACK (preview_draw), preview); gtk_widget_queue_draw (GTK_WIDGET (preview->layout)); }
static void set_zoom_fit_to_size (SoliPrintPreview *preview) { GtkAdjustment *hadj, *vadj; gdouble width, height; gdouble paper_width, paper_height; gdouble zoomx, zoomy; get_adjustments (preview, &hadj, &vadj); width = gtk_adjustment_get_page_size (hadj); height = gtk_adjustment_get_page_size (vadj); width /= preview->n_columns; paper_width = get_paper_width (preview); paper_height = get_paper_height (preview); zoomx = MAX (1, width - 2 * PAGE_PAD) / paper_width; zoomy = MAX (1, height - 2 * PAGE_PAD) / paper_height; set_zoom_factor (preview, zoomx <= zoomy ? zoomx : zoomy); }
static void zoom_out (SoliPrintPreview *preview) { set_zoom_factor (preview, preview->scale * ZOOM_OUT_FACTOR); }
static void zoom_in (GeditPrintPreview *preview) { set_zoom_factor (preview, preview->scale * ZOOM_IN_FACTOR); }