chromium/ui/gtk/printing/printing_gtk_util.h

// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef UI_GTK_PRINTING_PRINTING_GTK_UTIL_H_
#define UI_GTK_PRINTING_PRINTING_GTK_UTIL_H_

#include "printing/buildflags/buildflags.h"
#include "ui/gfx/geometry/size.h"

#if BUILDFLAG(ENABLE_OOP_PRINTING_NO_OOP_BASIC_PRINT_DIALOG)
#include "base/memory/raw_ptr.h"
#include "ui/gtk/gtk_compat.h"
#endif

namespace printing {
class PrintingContextLinux;
class PrintSettings;
}  // namespace printing

GtkPrintSettings;
GtkPageSetup;

// Obtains the paper size through Gtk.
gfx::Size GetPdfPaperSizeDeviceUnitsGtk(
    printing::PrintingContextLinux* context);

// Initializes a PrintSettings object from the provided Gtk printer objects.
void InitPrintSettingsGtk(GtkPrintSettings* settings,
                          GtkPageSetup* page_setup,
                          printing::PrintSettings* print_settings);

#if BUILDFLAG(ENABLE_OOP_PRINTING_NO_OOP_BASIC_PRINT_DIALOG)
class ScopedGKeyFile {};
#endif  // BUILDFLAG(ENABLE_OOP_PRINTING_NO_OOP_BASIC_PRINT_DIALOG)

#endif  // UI_GTK_PRINTING_PRINTING_GTK_UTIL_H_