blob: b1c939c5139abd6f34fccea5b0ba448ed7581abe [file] [log] [blame]
// 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
typedef struct _GtkPrintSettings GtkPrintSettings;
typedef struct _GtkPageSetup 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 {
public:
explicit ScopedGKeyFile(GKeyFile* key_file);
~ScopedGKeyFile();
GKeyFile* get() { return key_file_; }
private:
raw_ptr<GKeyFile> key_file_;
};
#endif // BUILDFLAG(ENABLE_OOP_PRINTING_NO_OOP_BASIC_PRINT_DIALOG)
#endif // UI_GTK_PRINTING_PRINTING_GTK_UTIL_H_