summaryrefslogtreecommitdiffstats
path: root/printing/printing_context_cairo.cc
diff options
context:
space:
mode:
authorjhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-21 19:18:05 +0000
committerjhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-21 19:18:05 +0000
commitb719142cac87c33ec2d6e99a238b5ecd48f87d68 (patch)
treecb073e88f553db6c3acab1c18c1f9e31793a80b7 /printing/printing_context_cairo.cc
parentb119a1e6bdd11040f93245e0b71d654a4883b40a (diff)
downloadchromium_src-b719142cac87c33ec2d6e99a238b5ecd48f87d68.zip
chromium_src-b719142cac87c33ec2d6e99a238b5ecd48f87d68.tar.gz
chromium_src-b719142cac87c33ec2d6e99a238b5ecd48f87d68.tar.bz2
Printing: Implement PrintingContext::UseDefaultSettings for Linux/Cairo.
BUG=none TEST=none Review URL: http://codereview.chromium.org/3389005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60087 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'printing/printing_context_cairo.cc')
-rw-r--r--printing/printing_context_cairo.cc29
1 files changed, 22 insertions, 7 deletions
diff --git a/printing/printing_context_cairo.cc b/printing/printing_context_cairo.cc
index 78b5235..d82f626 100644
--- a/printing/printing_context_cairo.cc
+++ b/printing/printing_context_cairo.cc
@@ -4,6 +4,9 @@
#include "printing/printing_context.h"
+#include <gtk/gtk.h>
+#include <gtk/gtkprintunixdialog.h>
+
#include "base/logging.h"
namespace printing {
@@ -22,22 +25,34 @@ PrintingContext::~PrintingContext() {
ResetSettings();
}
-PrintingContext::Result PrintingContext::AskUserForSettings(
+void PrintingContext::AskUserForSettings(
gfx::NativeView parent_view,
int max_pages,
- bool has_selection) {
-
+ bool has_selection,
+ PrintSettingsCallback* callback) {
NOTIMPLEMENTED();
-
- return FAILED;
+ callback->Run(OK);
}
PrintingContext::Result PrintingContext::UseDefaultSettings() {
DCHECK(!in_print_job_);
- NOTIMPLEMENTED();
+ ResetSettings();
- return FAILED;
+ 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.
+ settings_.Init(settings, page_setup, ranges_vector, false);
+
+ 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 PrintingContext::InitWithSettings(