// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "printing/printing_context_cairo.h" #include #include #include "base/logging.h" #include "printing/print_settings_initializer_gtk.h" namespace printing { // static PrintingContext* PrintingContext::Create() { return static_cast(new PrintingContextCairo); } PrintingContextCairo::PrintingContextCairo() : PrintingContext() { } PrintingContextCairo::~PrintingContextCairo() { ReleaseContext(); } void PrintingContextCairo::AskUserForSettings( gfx::NativeView parent_view, int max_pages, bool has_selection, PrintSettingsCallback* callback) { NOTIMPLEMENTED(); callback->Run(OK); } PrintingContext::Result PrintingContextCairo::UseDefaultSettings() { DCHECK(!in_print_job_); ResetSettings(); GtkWidget* dialog = gtk_print_unix_dialog_new(NULL, NULL); GtkPrintSettings* settings = gtk_print_unix_dialog_get_settings(GTK_PRINT_UNIX_DIALOG(dialog)); GtkPageSetup* page_setup = gtk_print_unix_dialog_get_page_setup(GTK_PRINT_UNIX_DIALOG(dialog)); PageRanges ranges_vector; // Nothing to initialize for default settings. PrintSettingsInitializerGtk::InitPrintSettings( settings, page_setup, ranges_vector, false, &settings_); g_object_unref(settings); // |page_setup| is owned by dialog, so it does not need to be unref'ed. gtk_widget_destroy(dialog); return OK; } PrintingContext::Result PrintingContextCairo::InitWithSettings( const PrintSettings& settings) { DCHECK(!in_print_job_); settings_ = settings; NOTIMPLEMENTED(); return FAILED; } PrintingContext::Result PrintingContextCairo::NewDocument( const string16& document_name) { DCHECK(!in_print_job_); NOTIMPLEMENTED(); return FAILED; } PrintingContext::Result PrintingContextCairo::NewPage() { if (abort_printing_) return CANCEL; DCHECK(in_print_job_); NOTIMPLEMENTED(); return FAILED; } PrintingContext::Result PrintingContextCairo::PageDone() { if (abort_printing_) return CANCEL; DCHECK(in_print_job_); NOTIMPLEMENTED(); return FAILED; } PrintingContext::Result PrintingContextCairo::DocumentDone() { if (abort_printing_) return CANCEL; DCHECK(in_print_job_); NOTIMPLEMENTED(); ResetSettings(); return FAILED; } void PrintingContextCairo::Cancel() { abort_printing_ = true; in_print_job_ = false; NOTIMPLEMENTED(); } void PrintingContextCairo::DismissDialog() { NOTIMPLEMENTED(); } void PrintingContextCairo::ReleaseContext() { // Nothing to do yet. } gfx::NativeDrawingContext PrintingContextCairo::context() const { return NULL; } } // namespace printing