// -*- c++ -*- // Generated by gtkmmproc -- DO NOT MODIFY! #ifndef _GTKMM_PRINTSETTINGS_H #define _GTKMM_PRINTSETTINGS_H #include /* 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 Library General Public * License as published by the Free Software Foundation; either * version 2 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #include #include #ifndef DOXYGEN_SHOULD_SKIP_THIS typedef struct _GtkPrintSettings GtkPrintSettings; typedef struct _GtkPrintSettingsClass GtkPrintSettingsClass; #endif /* DOXYGEN_SHOULD_SKIP_THIS */ namespace Gtk { class PrintSettings_Class; } // namespace Gtk namespace Gtk { /** @addtogroup gtkmmEnums Enums and Flags */ /** * @ingroup gtkmmEnums */ enum PrintDuplex { PRINT_DUPLEX_SIMPLEX, PRINT_DUPLEX_HORIZONTAL, PRINT_DUPLEX_VERTICAL }; } // namespace Gtk #ifndef DOXYGEN_SHOULD_SKIP_THIS namespace Glib { template <> class Value : public Glib::Value_Enum { public: static GType value_type() G_GNUC_CONST; }; } // namespace Glib #endif /* DOXYGEN_SHOULD_SKIP_THIS */ namespace Gtk { /** * @ingroup gtkmmEnums */ enum PrintQuality { PRINT_QUALITY_LOW, PRINT_QUALITY_NORMAL, PRINT_QUALITY_HIGH, PRINT_QUALITY_DRAFT }; } // namespace Gtk #ifndef DOXYGEN_SHOULD_SKIP_THIS namespace Glib { template <> class Value : public Glib::Value_Enum { public: static GType value_type() G_GNUC_CONST; }; } // namespace Glib #endif /* DOXYGEN_SHOULD_SKIP_THIS */ namespace Gtk { /** * @ingroup gtkmmEnums */ enum PrintPages { PRINT_PAGES_ALL, PRINT_PAGES_CURRENT, PRINT_PAGES_RANGES }; } // namespace Gtk #ifndef DOXYGEN_SHOULD_SKIP_THIS namespace Glib { template <> class Value : public Glib::Value_Enum { public: static GType value_type() G_GNUC_CONST; }; } // namespace Glib #endif /* DOXYGEN_SHOULD_SKIP_THIS */ namespace Gtk { /** * @ingroup gtkmmEnums */ enum PageSet { PAGE_SET_ALL, PAGE_SET_EVEN, PAGE_SET_ODD }; } // namespace Gtk #ifndef DOXYGEN_SHOULD_SKIP_THIS namespace Glib { template <> class Value : public Glib::Value_Enum { public: static GType value_type() G_GNUC_CONST; }; } // namespace Glib #endif /* DOXYGEN_SHOULD_SKIP_THIS */ namespace Gtk { /** A PrintSettings object represents the settings of a print dialog in a system-independent way. * The main use for this object is that once you've printed you can get a settings object that * represents the settings the user chose, and the next time you print you can pass that object * in so that the user doesn't have to re-set all his settings. * * It's also possible to enumerate the settings so that you can easily save the settings for the * next time your app runs, or even store them in a document. The predefined keys try to use shared * values as much as possible so that moving such a document between systems still works. * * @newin2p10 * * @ingroup Printing */ class PrintSettings : public Glib::Object { #ifndef DOXYGEN_SHOULD_SKIP_THIS public: typedef PrintSettings CppObjectType; typedef PrintSettings_Class CppClassType; typedef GtkPrintSettings BaseObjectType; typedef GtkPrintSettingsClass BaseClassType; private: friend class PrintSettings_Class; static CppClassType printsettings_class_; private: // noncopyable PrintSettings(const PrintSettings&); PrintSettings& operator=(const PrintSettings&); protected: explicit PrintSettings(const Glib::ConstructParams& construct_params); explicit PrintSettings(GtkPrintSettings* castitem); #endif /* DOXYGEN_SHOULD_SKIP_THIS */ public: virtual ~PrintSettings(); #ifndef DOXYGEN_SHOULD_SKIP_THIS static GType get_type() G_GNUC_CONST; static GType get_base_type() G_GNUC_CONST; #endif ///Provides access to the underlying C GObject. GtkPrintSettings* gobj() { return reinterpret_cast(gobject_); } ///Provides access to the underlying C GObject. const GtkPrintSettings* gobj() const { return reinterpret_cast(gobject_); } ///Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. GtkPrintSettings* gobj_copy(); private: protected: PrintSettings(); #if 0 //TODO: Reimplement, or add _construct_from_* functions in GTK+. GtkPrintSettings *gtk_print_settings_new_from_file (const gchar *file_name, GError **error); GtkPrintSettings *gtk_print_settings_new_from_key_file (GKeyFile *key_file, const gchar *group_name, GError **error); #endif public: static Glib::RefPtr create(); /** Print settings keys. */ class Keys { public: static const Glib::ustring PRINTER; static const Glib::ustring ORIENTATION; static const Glib::ustring PAPER_FORMAT; static const Glib::ustring PAPER_WIDTH; static const Glib::ustring PAPER_HEIGHT; static const Glib::ustring NUM_COPIES; static const Glib::ustring DEFAULT_SOURCE; static const Glib::ustring QUALITY; static const Glib::ustring RESOLUTION; static const Glib::ustring USE_COLOR; static const Glib::ustring DUPLEX; static const Glib::ustring COLLATE; static const Glib::ustring REVERSE; static const Glib::ustring MEDIA_TYPE; static const Glib::ustring DITHER; static const Glib::ustring SCALE; static const Glib::ustring PRINT_PAGES; static const Glib::ustring PAGE_RANGES; static const Glib::ustring PAGE_SET; static const Glib::ustring FINISHINGS; static const Glib::ustring NUMBER_UP; static const Glib::ustring OUTPUT_BIN; static const Glib::ustring OUTPUT_FILE_FORMAT; static const Glib::ustring OUTPUT_URI; static const Glib::ustring WIN32_DRIVER_VERSION; static const Glib::ustring WIN32_DRIVER_EXTRA; }; /** This function saves the print settings from @a settings to @a file_name . * @a throws FileError * @param file_name The file to save to. * @return true on success * * @newin2p12. */ #ifdef GLIBMM_EXCEPTIONS_ENABLED bool save_to_file(const std::string& file_name) const; #else bool save_to_file(const std::string& file_name, std::auto_ptr& error) const; #endif //GLIBMM_EXCEPTIONS_ENABLED /** This function adds the print settings from @a settings to @a key_file . * * @newin2p12 * @param key_file The Glib::KeyFile to save the print settings to. * @param group_name The group to add the settings to in @a key_file . */ void save_to_key_file(Glib::KeyFile& key_file, const Glib::ustring& group_name) const; /** This function adds the print settings from @a settings to @a key_file, * in the "Print Settings" group. * * @newin2p12 * @param key_file The Glib::KeyFile to save the print settings to. */ void save_to_key_file(Glib::KeyFile& key_file); //TODO: add a @see link? /** Return value: true, if @a key has a value * @param key A key. * @return true, if @a key has a value * * @newin2p10. */ bool has_key(const Glib::ustring& key) const; /** Looks up the string value associated with @a key . * @param key A key. * @return The string value for @a key * * @newin2p10. */ Glib::ustring get(const Glib::ustring& key) const; /** Associates @a value with @a key . * * @newin2p10 * @param key A key. * @param value A string value, or 0. */ void set(const Glib::ustring& key, const Glib::ustring& value); /** Removes any value associated with @a key . * This has the same effect as setting the value to 0. * * @newin2p10 * @param key A key. */ void unset(const Glib::ustring& key); /** For example, * void on_foreach_setting(const Glib::ustring& key, const Glib::ustring& value); */ typedef sigc::slot SlotForeach; /** Calls a function for each print setting. * @param slot The callback to call for each print setting. */ void setting_foreach(const SlotForeach& slot); /** Return value: true, if @a key maps to a true value. * @param key A key. * @return true, if @a key maps to a true value. * * @newin2p10. */ bool get_bool(const Glib::ustring& key) const; /** Sets @a key to a boolean value. * * @newin2p10 * @param key A key. * @param value A boolean. */ void set_bool(const Glib::ustring& key, bool value = true); /** Return value: the double value of @a key * @param key A key. * @return The double value of @a key * * @newin2p10. */ double get_double(const Glib::ustring& key) const; /** Return value: the floating point number associated with @a key * @param key A key. * @param def The default value. * @return The floating point number associated with @a key * * @newin2p10. */ double get_double_with_default(const Glib::ustring& key, double def) const; /** Sets @a key to a double value. * * @newin2p10 * @param key A key. * @param value A double value. */ void set_double(const Glib::ustring& key, double value); /** Return value: the length value of @a key , converted to @a unit * @param key A key. * @param unit The unit of the return value. * @return The length value of @a key , converted to @a unit * * @newin2p10. */ double get_length(const Glib::ustring& key, Unit unit) const; /** Associates a length in units of @a unit with @a key . * * @newin2p10 * @param key A key. * @param value A length. * @param unit The unit of @a length . */ void set_length(const Glib::ustring& key, double value, Unit unit); /** Return value: the integer value of @a key * @param key A key. * @return The integer value of @a key * * @newin2p10. */ int get_int(const Glib::ustring& key) const; /** Return value: the integer value of @a key * @param key A key. * @param def The default value. * @return The integer value of @a key * * @newin2p10. */ int get_int_with_default(const Glib::ustring& key, int def) const; /** Sets @a key to an integer value. * * @newin2p10 * @param key A key. * @param value An integer. */ void set_int(const Glib::ustring& key, int value); // helpers: /** Convenience function to obtain the value of * Gtk::PRINT_SETTINGS_PRINTER. * @return The printer name * * @newin2p10. */ Glib::ustring get_printer() const; /** Convenience function to set Gtk::PRINT_SETTINGS_PRINTER * to @a printer . * * @newin2p10 * @param printer The printer name. */ void set_printer(const Glib::ustring& name); /** Get the value of Gtk::PRINT_SETTINGS_ORIENTATION, * converted to a Gtk::PageOrientation. * @return The orientation * * @newin2p10. */ PageOrientation get_orientation() const; /** Sets the value of Gtk::PRINT_SETTINGS_ORIENTATION. * * @newin2p10 * @param orientation A page orientation. */ void set_orientation(PageOrientation orientation); /** Gets the value of Gtk::PRINT_SETTINGS_PAPER_FORMAT, * converted to a Gtk::PaperSize. * @return The paper size * * @newin2p10. */ PaperSize get_paper_size(); /** Gets the value of Gtk::PRINT_SETTINGS_PAPER_FORMAT, * converted to a Gtk::PaperSize. * @return The paper size * * @newin2p10. */ const PaperSize get_paper_size() const; /** Sets the value of Gtk::PRINT_SETTINGS_PAPER_FORMAT, * Gtk::PRINT_SETTINGS_PAPER_WIDTH and * Gtk::PRINT_SETTINGS_PAPER_HEIGHT. * * @newin2p10 * @param paper_size A paper size. */ void set_paper_size(const PaperSize& paper_size); /** Gets the value of Gtk::PRINT_SETTINGS_PAPER_WIDTH, * converted to @a unit . * @param unit The unit for the return value. * @return The paper width, in units of @a unit * * @newin2p10. */ double get_paper_width(Unit unit) const; /** Sets the value of Gtk::PRINT_SETTINGS_PAPER_WIDTH. * * @newin2p10 * @param width The paper width. * @param unit The units of @a width . */ void set_paper_width(double width, Unit unit); /** Gets the value of Gtk::PRINT_SETTINGS_PAPER_HEIGHT, * converted to @a unit . * @param unit The unit for the return value. * @return The paper height, in units of @a unit * * @newin2p10. */ double get_paper_height(Unit unit) const; /** Sets the value of Gtk::PRINT_SETTINGS_PAPER_HEIGHT. * * @newin2p10 * @param height The paper height. * @param unit The units of @a height . */ void set_paper_height(double height, Unit unit); /** Gets the value of Gtk::PRINT_SETTINGS_USE_COLOR. * @return Whether to use color * * @newin2p10. */ bool get_use_color() const; /** Sets the value of Gtk::PRINT_SETTINGS_USE_COLOR. * * @newin2p10 * @param use_color Whether to use color. */ void set_use_color(bool use_color = true); /** Gets the value of Gtk::PRINT_SETTINGS_COLLATE. * @return Whether to collate the printed pages * * @newin2p10. */ bool get_collate() const; /** Sets the value of Gtk::PRINT_SETTINGS_COLLATE. * * @newin2p10 * @param collate Whether to collate the output. */ void set_collate(bool collate = true); /** Gets the value of Gtk::PRINT_SETTINGS_REVERSE. * @return Whether to reverse the order of the printed pages * * @newin2p10. */ bool get_reverse() const; /** Sets the value of Gtk::PRINT_SETTINGS_REVERSE. * * @newin2p10 * @param reverse Whether to reverse the output. */ void set_reverse(bool reverse = true); /** Gets the value of Gtk::PRINT_SETTINGS_DUPLEX. * @return Whether to print the output in duplex. * * @newin2p10. */ PrintDuplex get_duplex() const; /** Sets the value of Gtk::PRINT_SETTINGS_DUPLEX. * * @newin2p10 * @param duplex A Gtk::PrintDuplex value. */ void set_duplex(PrintDuplex duplex); /** Gets the value of Gtk::PRINT_SETTINGS_QUALITY. * @return The print quality * * @newin2p10. */ PrintQuality get_quality() const; /** Sets the value of Gtk::PRINT_SETTINGS_QUALITY. * * @newin2p10 * @param quality A Gtk::PrintQuality value. */ void set_quality(PrintQuality quality); /** Gets the value of Gtk::PRINT_SETTINGS_N_COPIES. * @return The number of copies to print * * @newin2p10. */ int get_n_copies() const; /** Sets the value of Gtk::PRINT_SETTINGS_N_COPIES. * * @newin2p10 * @param num_copies The number of copies. */ void set_n_copies(int num_copies); /** Gets the value of Gtk::PRINT_SETTINGS_NUMBER_UP. * @return The number of pages per sheet * * @newin2p10. */ int get_number_up() const; /** Sets the value of Gtk::PRINT_SETTINGS_NUMBER_UP. * * @newin2p10 * @param number_up The number of pages per sheet. */ void set_number_up(int number_up); /** Gets the value of Gtk::PRINT_SETTINGS_RESOLUTION. * @return The resolution in dpi * * @newin2p10. */ int get_resolution() const; /** Sets the value of Gtk::PRINT_SETTINGS_RESOLUTION. * * @newin2p10 * @param resolution The resolution in dpi. */ void set_resolution(int resolution); /** Gets the value of Gtk::PRINT_SETTINGS_SCALE. * @return The scale in percent * * @newin2p10. */ double get_scale() const; /** Sets the value of Gtk::PRINT_SETTINGS_SCALE. * * @newin2p10 * @param scale The scale in percent. */ void set_scale(double scale); /** Gets the value of Gtk::PRINT_SETTINGS_PRINT_PAGES. * @return Which pages to print * * @newin2p10. */ PrintPages get_print_pages() const; /** Sets the value of Gtk::PRINT_SETTINGS_PRINT_PAGES. * * @newin2p10 * @param pages A Gtk::PrintPages value. */ void set_print_pages(PrintPages print_pages); //This corresponds to GtkPageRange. class PageRange { public: PageRange(); PageRange(int start, int end); int start; int end; }; Glib::ArrayHandle get_page_ranges() const; void set_page_ranges(const Glib::ArrayHandle& page_ranges); /** Gets the value of Gtk::PRINT_SETTINGS_PAGE_SET. * @return The set of pages to print * * @newin2p10. */ PageSet get_page_set() const; /** Sets the value of Gtk::PRINT_SETTINGS_PAGE_SET. * * @newin2p10 * @param page_set A Gtk::PageSet value. */ void set_page_set(PageSet page_set); /** Gets the value of Gtk::PRINT_SETTINGS_DEFAULT_SOURCE. * @return The default source * * @newin2p10. */ Glib::ustring get_default_source() const; /** Sets the value of Gtk::PRINT_SETTINGS_DEFAULT_SOURCE. * * @newin2p10 * @param default_source The default source. */ void set_default_source(const Glib::ustring& default_source); /** Gets the value of Gtk::PRINT_SETTINGS_MEDIA_TYPE. * * The set of media types is defined in PWG 5101.1-2002 PWG. * <!-- FIXME link here --> * @return The media type * * @newin2p10. */ Glib::ustring get_media_type() const; /** Sets the value of Gtk::PRINT_SETTINGS_MEDIA_TYPE. * * The set of media types is defined in PWG 5101.1-2002 PWG. * <!-- FIXME link here --> * * @newin2p10 * @param media_type The media type. */ void set_media_type(const Glib::ustring& media_type); /** Gets the value of Gtk::PRINT_SETTINGS_DITHER. * @return The dithering that is used * * @newin2p10. */ Glib::ustring get_dither() const; /** Sets the value of Gtk::PRINT_SETTINGS_DITHER. * * @newin2p10 * @param dither The dithering that is used. */ void set_dither(const Glib::ustring& dither); /** Gets the value of Gtk::PRINT_SETTINGS_FINISHINGS. * @return The finishings * * @newin2p10. */ Glib::ustring get_finishings() const; /** Sets the value of Gtk::PRINT_SETTINGS_FINISHINGS. * * @newin2p10 * @param finishings The finishings. */ void set_finishings(const Glib::ustring& finishings); /** Gets the value of Gtk::PRINT_SETTINGS_OUTPUT_BIN. * @return The output bin * * @newin2p10. */ Glib::ustring get_output_bin() const; /** Sets the value of Gtk::PRINT_SETTINGS_OUTPUT_BIN. * * @newin2p10 * @param output_bin The output bin. */ void set_output_bin(const Glib::ustring& output_bin); //There are no properties. public: public: //C++ methods used to invoke GTK+ virtual functions: #ifdef GLIBMM_VFUNCS_ENABLED #endif //GLIBMM_VFUNCS_ENABLED protected: //GTK+ Virtual Functions (override these to change behaviour): #ifdef GLIBMM_VFUNCS_ENABLED #endif //GLIBMM_VFUNCS_ENABLED //Default Signal Handlers:: #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED }; } // 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::PrintSettings */ Glib::RefPtr wrap(GtkPrintSettings* object, bool take_copy = false); } #endif /* _GTKMM_PRINTSETTINGS_H */