* 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>
+#include "config.h"
#include <unistd.h>
#include <sys/types.h>
#include <glib/gi18n-lib.h>
-#include "gtkprintoperation.h"
+#include <gtk/gtkprintbackend.h>
+#include <gtk/gtkunixprint.h>
+#include <gtk/gtkprinter-private.h>
-#include "gtkprintbackend.h"
#include "gtkprintbackendtest.h"
-#include "gtkprinter.h"
-#include "gtkprinter-private.h"
typedef struct _GtkPrintBackendTestClass GtkPrintBackendTestClass;
static void
gtk_print_backend_test_register_type (GTypeModule *module)
{
- static const GTypeInfo print_backend_test_info =
+ const GTypeInfo print_backend_test_info =
{
sizeof (GtkPrintBackendTestClass),
NULL, /* base_init */
if (locale_name != NULL)
{
- path = g_build_filename (g_get_current_dir (), locale_name, NULL);
+ gchar *current_dir = g_get_current_dir ();
+ path = g_build_filename (current_dir, locale_name, NULL);
g_free (locale_name);
uri = g_filename_to_uri (path, NULL, NULL);
g_free (path);
+ g_free (current_dir);
}
}
else
surface = cairo_pdf_surface_create_for_stream (_cairo_write, cache_io, width, height);
- /* TODO: DPI from settings object? */
- cairo_surface_set_fallback_resolution (surface, 300, 300);
+ cairo_surface_set_fallback_resolution (surface,
+ 2.0 * gtk_print_settings_get_printer_lpi (settings),
+ 2.0 * gtk_print_settings_get_printer_lpi (settings));
return surface;
}
int i;
/* make 100 of these printers */
- for (i=0; i<100; i++)
+ for (i = 0; i < 100; i++)
{
char *name;
+
name = g_strdup_printf ("%s %i", _("Print to Test Printer"), i);
printer = g_object_new (GTK_TYPE_PRINTER,
"name", name,
"backend", backend,
"is-virtual", FALSE, /* treat printer like a real one*/
NULL);
- g_free(name);
+ g_free (name);
+
+ g_message ("TEST Backend: Adding printer %d\n", i);
gtk_printer_set_has_details (printer, FALSE);
- gtk_printer_set_icon_name (printer, "gtk-delete"); /* use a delete icon just for fun */
+ gtk_printer_set_icon_name (printer, "edit-delete"); /* use a delete icon just for fun */
gtk_printer_set_is_active (printer, TRUE);
gtk_print_backend_add_printer (GTK_PRINT_BACKEND (backend), printer);
GtkPrinterOptionSet *set;
GtkPrinterOption *option;
const gchar *n_up[] = { "1" };
- const gchar *format_names[N_FORMATS] = { N_("PDF"), N_("Postscript") };
- const gchar *supported_formats[N_FORMATS];
- gchar *display_format_names[N_FORMATS];
- gint n_formats = 0;
OutputFormat format;
- gchar *uri;
- gint current_format = 0;
format = format_from_settings (settings);
{
gdouble scale;
- print_job->print_pages = gtk_print_settings_get_print_pages (settings);
- print_job->page_ranges = NULL;
- print_job->num_page_ranges = 0;
-
- if (print_job->print_pages == GTK_PRINT_PAGES_RANGES)
- print_job->page_ranges =
- gtk_print_settings_get_page_ranges (settings,
- &print_job->num_page_ranges);
+ gtk_print_job_set_pages (print_job, gtk_print_settings_get_print_pages (settings));
+ gtk_print_job_set_page_ranges (print_job, NULL, 0);
- print_job->collate = gtk_print_settings_get_collate (settings);
- print_job->reverse = gtk_print_settings_get_reverse (settings);
- print_job->num_copies = gtk_print_settings_get_n_copies (settings);
+ if (gtk_print_job_get_pages (print_job) == GTK_PRINT_PAGES_RANGES)
+ {
+ GtkPageRange *page_ranges;
+ gint num_page_ranges;
+ page_ranges = gtk_print_settings_get_page_ranges (settings, &num_page_ranges);
+ gtk_print_job_set_page_ranges (print_job, page_ranges, num_page_ranges);
+ }
+
+ gtk_print_job_set_collate (print_job, gtk_print_settings_get_collate (settings));
+ gtk_print_job_set_reverse (print_job, gtk_print_settings_get_reverse (settings));
+ gtk_print_job_set_num_copies (print_job, gtk_print_settings_get_n_copies (settings));
scale = gtk_print_settings_get_scale (settings);
if (scale != 100.0)
- print_job->scale = scale/100.0;
+ gtk_print_job_set_scale (print_job, scale/100.0);
- print_job->page_set = gtk_print_settings_get_page_set (settings);
- print_job->rotate_to_orientation = TRUE;
+ gtk_print_job_set_page_set (print_job, gtk_print_settings_get_page_set (settings));
+ gtk_print_job_set_rotate (print_job, TRUE);
}
static gboolean
-test_printer_details_aquired_cb (GtkPrinter *printer)
+test_printer_details_acquired_cb (GtkPrinter *printer)
{
gboolean success;
gint weight;
- /* weight twords success */
- weight = g_random_int_range(0, 100);
+ /* weight towards success */
+ weight = g_random_int_range (0, 100);
success = FALSE;
if (weight < 75)
gtk_printer_set_has_details (printer, success);
g_signal_emit_by_name (printer, "details-acquired", success);
- return FALSE;
+ return G_SOURCE_REMOVE;
}
static void
gint weight;
gint time;
/* set the timer to succeed or fail at a random time interval */
- /* weight twords the shorter end */
- weight = g_random_int_range(0, 100);
+ /* weight towards the shorter end */
+ weight = g_random_int_range (0, 100);
if (weight < 50)
- time = g_random_int_range(0, 2);
+ time = g_random_int_range (0, 2);
else if (weight < 75)
- time = g_random_int_range(1, 5);
+ time = g_random_int_range (1, 5);
else
- time = g_random_int_range(1, 10);
+ time = g_random_int_range (1, 10);
g_message ("Gathering details in %i seconds", time);
else
time *= 1000;
- g_timeout_add(time,
- (GSourceFunc) test_printer_details_aquired_cb,
- printer
- );
+ g_timeout_add (time, (GSourceFunc) test_printer_details_acquired_cb, printer);
}