// Generated by gmmproc 2.54.0 -- DO NOT MODIFY!
#ifndef _GTKMM_PRINTJOB_H
#define _GTKMM_PRINTJOB_H
#include <glibmm/ustring.h>
#include <sigc++/sigc++.h>
/* Copyright (C) 2006 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include <glibmm/object.h>
#include <gtkmm/pagesetup.h>
#include <gtkmm/printer.h>
#include <gtkmm/printoperation.h>
#include <gtkmm/printsettings.h>
#include <cairomm/surface.h>
#ifndef DOXYGEN_SHOULD_SKIP_THIS
using GtkPrintJob = struct _GtkPrintJob;
using GtkPrintJobClass = struct _GtkPrintJobClass;
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
#ifndef DOXYGEN_SHOULD_SKIP_THIS
namespace Gtk
{ class PrintJob_Class; } // namespace Gtk
#endif //DOXYGEN_SHOULD_SKIP_THIS
namespace Gtk
{
/** A PrintJob object represents a job that is sent to a printer. You only need to deal
* directly with print jobs if you use the non-portable PrintUnixDialog API.
*
* Use get_surface() to obtain the cairo surface onto which the pages must be drawn.
* Use send() to send the finished job to the printer.If you don't use cairo then
* PrintJob also supports printing of manually generated postscript, via set_source_file().
*
* @newin{2,10}
*
* @ingroup Printing
*/
class PrintJob : public Glib::Object
{
#ifndef DOXYGEN_SHOULD_SKIP_THIS
public:
using CppObjectType = PrintJob;
using CppClassType = PrintJob_Class;
using BaseObjectType = GtkPrintJob;
using BaseClassType = GtkPrintJobClass;
// noncopyable
PrintJob(const PrintJob&) = delete;
PrintJob& operator=(const PrintJob&) = delete;
private: friend class PrintJob_Class;
static CppClassType printjob_class_;
protected:
explicit PrintJob(const Glib::ConstructParams& construct_params);
explicit PrintJob(GtkPrintJob* castitem);
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
public:
PrintJob(PrintJob&& src) noexcept;
PrintJob& operator=(PrintJob&& src) noexcept;
~PrintJob() noexcept override;
/** Get the GType for this class, for use with the underlying GObject type system.
*/
static GType get_type() G_GNUC_CONST;
#ifndef DOXYGEN_SHOULD_SKIP_THIS
static GType get_base_type() G_GNUC_CONST;
#endif
///Provides access to the underlying C GObject.
GtkPrintJob* gobj() { return reinterpret_cast<GtkPrintJob*>(gobject_); }
///Provides access to the underlying C GObject.
const GtkPrintJob* gobj() const { return reinterpret_cast<GtkPrintJob*>(gobject_); }
///Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.
GtkPrintJob* gobj_copy();
private:
//This is not available on Win32.
//This source file will not be compiled on Win32,
//and no class defined in it will be registered by wrap_init().
protected:
explicit PrintJob(const Glib::ustring& title, const Glib::RefPtr<Printer>& printer, const Glib::RefPtr<PrintSettings>& settings, const Glib::RefPtr<PageSetup>& page_setup);
public:
static Glib::RefPtr<PrintJob> create(const Glib::ustring& title, const Glib::RefPtr<Printer>& printer, const Glib::RefPtr<PrintSettings>& settings, const Glib::RefPtr<PageSetup>& page_setup);
/** Gets the Gtk::PrintSettings of the print job.
*
* @newin{2,10}
*
* @return The settings of @a job.
*/
Glib::RefPtr<PrintSettings> get_settings();
/** Gets the Gtk::PrintSettings of the print job.
*
* @newin{2,10}
*
* @return The settings of @a job.
*/
Glib::RefPtr<const PrintSettings> get_settings() const;
/** Gets the Gtk::Printer of the print job.
*
* @newin{2,10}
*
* @return The printer of @a job.
*/
Glib::RefPtr<Printer> get_printer();
/** Gets the Gtk::Printer of the print job.
*
* @newin{2,10}
*
* @return The printer of @a job.
*/
Glib::RefPtr<const Printer> get_printer() const;
/** Gets the job title.
*
* @newin{2,10}
*
* @return The title of @a job.
*/
Glib::ustring get_title() const;
/** Gets the status of the print job.
*
* @newin{2,10}
*
* @return The status of @a job.
*/
PrintStatus get_status() const;
/** Make the Gtk::PrintJob send an existing document to the
* printing system. The file can be in any format understood
* by the platforms printing system (typically PostScript,
* but on many platforms PDF may work too). See
* Gtk::Printer::accepts_pdf() and Gtk::Printer::accepts_ps().
*
* @newin{2,10}
*
* @param filename The file to be printed.
* @return <tt>false</tt> if an error occurred.
*/
void set_source_file(const std::string& filename);
/** Gets a cairo surface onto which the pages of
* the print job should be rendered.
*
* @newin{2,10}
*
* @return The cairo surface of @a job.
*/
Cairo::RefPtr<Cairo::Surface> get_surface();
/** Gets a cairo surface onto which the pages of
* the print job should be rendered.
*
* @newin{2,10}
*
* @return The cairo surface of @a job.
*/
Cairo::RefPtr<const Cairo::Surface> get_surface() const;
/** If track_status is <tt>true</tt>, the print job will try to continue report
* on the status of the print job in the printer queues and printer. This
* can allow your application to show things like “out of paper” issues,
* and when the print job actually reaches the printer.
*
* This function is often implemented using some form of polling, so it should
* not be enabled unless needed.
*
* @newin{2,10}
*
* @param track_status <tt>true</tt> to track status after printing.
*/
void set_track_print_status(bool track_status = true);
/** Returns wheter jobs will be tracked after printing.
* For details, see set_track_print_status().
*
* @newin{2,10}
*
* @return <tt>true</tt> if print job status will be reported after printing.
*/
bool get_track_print_status() const;
/** For example,
* void on_print_job_complete(const Glib::RefPtr<PrintJob>& job);
*
* @throws exception
*/
typedef sigc::slot< void, const Glib::RefPtr<PrintJob>& > SlotPrintJobComplete;
/** Sends the print job off to the printer.
* @param slot A function to call when the job completes or an error occurs.
*/
void send(const SlotPrintJobComplete& slot);
/** Gets the Gtk::PrintPages setting for this job.
*
* @newin{3,0}
*
* @return The Gtk::PrintPages setting.
*/
PrintPages get_pages() const;
/** Sets the Gtk::PrintPages setting for this job.
*
* @newin{3,0}
*
* @param pages The Gtk::PrintPages setting.
*/
void set_pages(PrintPages pages);
std::vector<PrintSettings::PageRange> get_page_ranges() const;
void set_page_ranges(const std::vector<PrintSettings::PageRange>& ranges);
/** Gets the Gtk::PageSet setting for this job.
*
* @newin{3,0}
*
* @return The Gtk::PageSet setting.
*/
PageSet get_page_set() const;
/** Sets the Gtk::PageSet setting for this job.
*
* @newin{3,0}
*
* @param page_set A Gtk::PageSet setting.
*/
void set_page_set(PageSet page_set);
/** Gets the number of copies of this job.
*
* @newin{3,0}
*
* @return The number of copies.
*/
int get_num_copies() const;
/** Sets the number of copies for this job.
*
* @newin{3,0}
*
* @param num_copies The number of copies.
*/
void set_num_copies(int num_copies);
/** Gets the scale for this job (where 1.0 means unscaled).
*
* @newin{3,0}
*
* @return The scale.
*/
double get_scale() const;
/** Sets the scale for this job (where 1.0 means unscaled).
*
* @newin{3,0}
*
* @param scale The scale.
*/
void set_scale(double scale);
/** Gets the n-up setting for this job.
*
* @newin{3,0}
*
* @return The n-up setting.
*/
guint get_n_up() const;
/** Sets the n-up setting for this job.
*
* @newin{3,0}
*
* @param n_up The n-up value.
*/
void set_n_up(guint n_up);
/** Gets the n-up layout setting for this job.
*
* @newin{3,0}
*
* @return The n-up layout.
*/
NumberUpLayout get_n_up_layout() const;
/** Sets the n-up layout setting for this job.
*
* @newin{3,0}
*
* @param layout The n-up layout setting.
*/
void set_n_up_layout(NumberUpLayout layout);
/** Gets whether the job is printed rotated.
*
* @newin{3,0}
*
* @return Whether the job is printed rotated.
*/
bool get_rotate() const;
/** Sets whether this job is printed rotated.
*
* @newin{3,0}
*
* @param rotate Whether to print rotated.
*/
void set_rotate(bool rotate = true);
/** Gets whether this job is printed collated.
*
* @newin{3,0}
*
* @return Whether the job is printed collated.
*/
bool get_collate() const;
/** Sets whether this job is printed collated.
*
* @newin{3,0}
*
* @param collate Whether the job is printed collated.
*/
void set_collate(bool collate = true);
/** Gets whether this job is printed reversed.
*
* @newin{3,0}
*
* @return Whether the job is printed reversed.
*/
bool get_reverse() const;
/** Sets whether this job is printed reversed.
*
* @newin{3,0}
*
* @param reverse Whether the job is printed reversed.
*/
void set_reverse(bool reverse = true);
/**
* @par Slot Prototype:
* <tt>void on_my_%status_changed()</tt>
*
* Flags: Run Last
*
* Gets emitted when the status of a job changes. The signal handler
* can use Gtk::PrintJob::get_status() to obtain the new status.
*
* @newin{2,10}
*/
Glib::SignalProxy< void > signal_status_changed();
/** Title of the print job.
*
* @return A PropertyProxy_ReadOnly that allows you to get the value of the property,
* or receive notification when the value of the property changes.
*/
Glib::PropertyProxy_ReadOnly< Glib::ustring > property_title() const;
/** Printer to print the job to.
*
* @return A PropertyProxy_ReadOnly that allows you to get the value of the property,
* or receive notification when the value of the property changes.
*/
Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Printer> > property_printer() const;
/** Printer settings.
*
* @return A PropertyProxy_ReadOnly that allows you to get the value of the property,
* or receive notification when the value of the property changes.
*/
Glib::PropertyProxy_ReadOnly< Glib::RefPtr<PrintSettings> > property_settings() const;
/** Page Setup.
*
* @return A PropertyProxy_ReadOnly that allows you to get the value of the property,
* or receive notification when the value of the property changes.
*/
Glib::PropertyProxy_ReadOnly< Glib::RefPtr<PageSetup> > property_page_setup() const;
/** TRUE if the print job will continue to emit status-changed signals after the print data has been sent to the printer or print server.
*
* @return A PropertyProxy that allows you to get or set the value of the property,
* or receive notification when the value of the property changes.
*/
Glib::PropertyProxy< bool > property_track_print_status() ;
/** TRUE if the print job will continue to emit status-changed signals after the print data has been sent to the printer or print server.
*
* @return A PropertyProxy_ReadOnly that allows you to get the value of the property,
* or receive notification when the value of the property changes.
*/
Glib::PropertyProxy_ReadOnly< bool > property_track_print_status() const;
public:
public:
//C++ methods used to invoke GTK+ virtual functions:
protected:
//GTK+ Virtual Functions (override these to change behaviour):
//Default Signal Handlers::
/// This is a default handler for the signal signal_status_changed().
virtual void on_status_changed();
};
} // namespace Gtk
namespace Glib
{
/** A Glib::wrap() method for this object.
*
* @param object The C instance.
* @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
* @result A C++ instance that wraps this C instance.
*
* @relates Gtk::PrintJob
*/
Glib::RefPtr<Gtk::PrintJob> wrap(GtkPrintJob* object, bool take_copy = false);
}
#endif /* _GTKMM_PRINTJOB_H */