// Generated by gmmproc 2.84.0 -- DO NOT MODIFY! #ifndef _GTKMM_IMAGE_H #define _GTKMM_IMAGE_H #include #include /* Copyright (C) 1998-2002 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, see . */ #include #include #include #ifndef DOXYGEN_SHOULD_SKIP_THIS using GtkImage = struct _GtkImage; using GtkImageClass = struct _GtkImageClass; #endif /* DOXYGEN_SHOULD_SKIP_THIS */ #ifndef DOXYGEN_SHOULD_SKIP_THIS namespace Gtk { class GTKMM_API Image_Class; } // namespace Gtk #endif //DOXYGEN_SHOULD_SKIP_THIS namespace Gtk { /** A widget displaying an image. * * The %Gtk::Image widget displays an image. Various kinds of object can be * displayed as an image; most typically, you would load a Gdk::Texture (which * implements Gdk::Paintable) from a file, and then display that. * * %Gtk::Image displays its image as an icon, with a size that is determined * by the application. See Gtk::Picture if you want to show an image * at its actual size. * * The %Image widget looks like this: * @image html image1.png * * @ingroup Widgets */ class GTKMM_API Image : public Widget { public: #ifndef DOXYGEN_SHOULD_SKIP_THIS typedef Image CppObjectType; typedef Image_Class CppClassType; typedef GtkImage BaseObjectType; typedef GtkImageClass BaseClassType; #endif /* DOXYGEN_SHOULD_SKIP_THIS */ Image(Image&& src) noexcept; Image& operator=(Image&& src) noexcept; // noncopyable Image(const Image&) = delete; Image& operator=(const Image&) = delete; ~Image() noexcept override; #ifndef DOXYGEN_SHOULD_SKIP_THIS private: friend GTKMM_API class Image_Class; static CppClassType image_class_; protected: explicit Image(const Glib::ConstructParams& construct_params); explicit Image(GtkImage* castitem); #endif /* DOXYGEN_SHOULD_SKIP_THIS */ public: /** 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. GtkImage* gobj() { return reinterpret_cast(gobject_); } /// Provides access to the underlying C GObject. const GtkImage* gobj() const { return reinterpret_cast(gobject_); } private: public: /** @addtogroup gtkmmEnums gtkmm Enums and Flags */ /** * @var Type::EMPTY * There is no image displayed by the widget. * * @var Type::ICON_NAME * The widget contains a named icon. * * @var Type::GICON * The widget contains a `Gio::Icon`. * * @var Type::PAINTABLE * The widget contains a `Gdk::Paintable`. */ /** Describes the image data representation used by a Gtk::Image. * * If you want to get the image from the widget, you can only get the * currently-stored representation; for instance, if the Gtk::Image::get_storage_type() * returns Gtk::Image::Type::PAINTABLE, then you can call Gtk::Image::get_paintable(). * * For empty images, you can request any storage type (call any of the "get" * functions), but they will all return nullptr values. * * @ingroup gtkmmEnums */ enum class Type { EMPTY, ICON_NAME, GICON, PAINTABLE }; Image(); /** Creates an Image widget displaying the file @a filename. * If the file isn't found or can't be loaded, the resulting Gtk::Image will display a "broken image" icon. * * If you need to detect failures to load the file, use Gdk::Pixbuf::create_from_file() to load the file yourself, * then create the GtkImage from the pixbuf. * * The storage type (get_storage_type()) of the returned image is not defined. * It will be whatever is appropriate for displaying the file. */ explicit Image(const std::string& file); #ifndef GTKMM_DISABLE_DEPRECATED // gtk_image_new_from_pixbuf() does more than just call g_object_new(). // GtkImage has no "pixbuf" property. /** Creates a new Image widget displaying @a pixbuf. * Note that this just creates an GtkImage from the pixbuf. The Gtk::Image created will not react to state changes. * Should you want that, you should use the default constructor and set_from_icon_name(). * * @deprecated 4.12: Use Gdk::Texture::create_for_pixbuf(), the default constructor * and set(const Glib::RefPtr& paintable) instead. */ explicit Image(const Glib::RefPtr& pixbuf); #endif // GTKMM_DISABLE_DEPRECATED /** Creates a new Gtk::Image displaying @a paintable. * * The Gtk::Image will track changes to the @a paintable and update * its size and contents in response to it. * * @newin{3,94} * * @param paintable A Gdk::Paintable, or an emtpy Glib::RefPtr. */ explicit Image(const Glib::RefPtr& paintable); /** Creates a `Gtk::Image` displaying an icon from the current icon theme. * * If the icon name isn’t known, a “broken image” icon will be * displayed instead. If the current icon theme is changed, the icon * will be updated appropriately. * * @newin{3,24} * * @param icon An icon. */ explicit Image(const Glib::RefPtr& gicon); // We don't wrap gtk_image_new_from_resource() and gtk_image_new_from_icon_name() // to avoid a clash with the from_filename constructor. // But we do wrap gtk_image_set_from_resource() and gtk_image_set_from_icon_name(). /** See the Image::Image(const std::string& file) constructor for details. * * @param filename A filename. */ void set(const std::string& filename); /** Sets a `Gtk::Image` to show a resource. * * See new_from_resource() for details. * * @param resource_path A resource path. */ void set_from_resource(const std::string& resource_path); #ifndef GTKMM_DISABLE_DEPRECATED /** See the Image::Image(const Glib::RefPtr& pixbuf) constructor for details. * * @deprecated Use Gdk::Texture::create_for_pixbuf() and set(const Glib::RefPtr& paintable) instead. * * @param pixbuf A #Gdk::Pixbuf. */ void set(const Glib::RefPtr& pixbuf); #endif // GTKMM_DISABLE_DEPRECATED /** Sets a `Gtk::Image` to show a `Gdk::Paintable`. * * See new_from_paintable() for details. * * @param paintable A `Gdk::Paintable`. */ void set(const Glib::RefPtr& paintable); /** Sets a `Gtk::Image` to show a `Gio::Icon`. * * See new_from_gicon() for details. * * @param icon An icon. */ void set(const Glib::RefPtr& icon); // Don't just refer to a constructor for this one, because there is no such // constructor, to avoid ambiguity with the filename constructor. /** Causes the %Image to display an icon from the current icon theme. * If the icon name isn't known, a "broken image" icon will be * displayed instead. If the current icon theme is changed, the icon * will be updated appropriately. * * @param icon_name An icon name. */ void set_from_icon_name(const Glib::ustring& icon_name); /** Resets the image to be empty. */ void clear(); /** Gets the type of representation being used by the `Gtk::Image` * to store image data. * * If the `Gtk::Image` has no image data, the return value will * be Gtk::Image::Type::EMPTY. * * @return Image representation being used. */ Type get_storage_type() const; /** Gets the image `Gdk::Paintable` being displayed by the `Gtk::Image`. * * The storage type of the image must be Gtk::Image::Type::EMPTY or * Gtk::Image::Type::PAINTABLE (see get_storage_type()). * The caller of this function does not own a reference to the * returned paintable. * * @return The displayed paintable. */ Glib::RefPtr get_paintable(); /** Gets the image `Gdk::Paintable` being displayed by the `Gtk::Image`. * * The storage type of the image must be Gtk::Image::Type::EMPTY or * Gtk::Image::Type::PAINTABLE (see get_storage_type()). * The caller of this function does not own a reference to the * returned paintable. * * @return The displayed paintable. */ Glib::RefPtr get_paintable() const; /** Suggests an icon size to the theme for named icons. * * @param icon_size The new icon size. */ void set_icon_size(IconSize icon_size); /** Gets the icon size used by the @a image when rendering icons. * * @return The image size used by icons. */ IconSize get_icon_size() const; /** Gets the `Gio::Icon` being displayed by the `Gtk::Image`. * * The storage type of the image must be Gtk::Image::Type::EMPTY or * Gtk::Image::Type::GICON (see get_storage_type()). * The caller of this function does not own a reference to the * returned `Gio::Icon`. * * @return A `Gio::Icon`. */ Glib::RefPtr get_gicon(); /** Gets the `Gio::Icon` being displayed by the `Gtk::Image`. * * The storage type of the image must be Gtk::Image::Type::EMPTY or * Gtk::Image::Type::GICON (see get_storage_type()). * The caller of this function does not own a reference to the * returned `Gio::Icon`. * * @return A `Gio::Icon`. */ Glib::RefPtr get_gicon() const; /** Gets the icon name and size being displayed by the `Gtk::Image`. * * The storage type of the image must be Gtk::Image::Type::EMPTY or * Gtk::Image::Type::ICON_NAME (see get_storage_type()). * The returned string is owned by the `Gtk::Image` and should not * be freed. * * @return The icon name. */ Glib::ustring get_icon_name() const; /** Gets the pixel size used for named icons. * * @return The pixel size used for named icons. */ int get_pixel_size() const; /** Sets the pixel size to use for named icons. * * If the pixel size is set to a value != -1, it is used instead * of the icon size set by set_icon_size(). * * @param pixel_size The new pixel size. */ void set_pixel_size(int pixel_size); /** A path to the file to display. * * Default value: "" * * @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< Glib::ustring > property_file() ; /** A path to the file to display. * * Default value: "" * * @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_file() const; /** The symbolic size to display icons at. * * Default value: Gtk::IconSize::INHERIT * * @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< IconSize > property_icon_size() ; /** The symbolic size to display icons at. * * Default value: Gtk::IconSize::INHERIT * * @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< IconSize > property_icon_size() const; /** The size in pixels to display icons at. * * If set to a value != -1, this property overrides the * property_icon_size() property for images of type * `Gtk::Image::Type::ICON_NAME`. * * Default value: -1 * * @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< int > property_pixel_size() ; /** The size in pixels to display icons at. * * If set to a value != -1, this property overrides the * property_icon_size() property for images of type * `Gtk::Image::Type::ICON_NAME`. * * Default value: -1 * * @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< int > property_pixel_size() const; /** The name of the icon in the icon theme. * * If the icon theme is changed, the image will be updated automatically. * * Default value: "" * * @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< Glib::ustring > property_icon_name() ; /** The name of the icon in the icon theme. * * If the icon theme is changed, the image will be updated automatically. * * Default value: "" * * @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_icon_name() const; /** The representation being used for image data. * * Default value: Gtk::Image::Type::EMPTY * * @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< Type > property_storage_type() const; /** The `Gio::Icon` displayed in the GtkImage. * * For themed icons, If the icon theme is changed, the image will be updated * automatically. * * @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< Glib::RefPtr > property_gicon() ; /** The `Gio::Icon` displayed in the GtkImage. * * For themed icons, If the icon theme is changed, the image will be updated * automatically. * * @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 > property_gicon() const; /** Whether the icon displayed in the `Gtk::Image` will use * standard icon names fallback. * * The value of this property is only relevant for images of type * Gtk::Image::Type::ICON_NAME and Gtk::Image::Type::GICON. * * Default value: false * * @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_use_fallback() ; /** Whether the icon displayed in the `Gtk::Image` will use * standard icon names fallback. * * The value of this property is only relevant for images of type * Gtk::Image::Type::ICON_NAME and Gtk::Image::Type::GICON. * * Default value: false * * @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_use_fallback() const; /** A path to a resource file to display. * * Default value: "" * * @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< std::string > property_resource() ; /** A path to a resource file to display. * * Default value: "" * * @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< std::string > property_resource() const; /** The `Gdk::Paintable` to display. * * @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< Glib::RefPtr > property_paintable() ; /** The `Gdk::Paintable` to display. * * @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 > property_paintable() const; public: public: //C++ methods used to invoke GTK+ virtual functions: protected: //GTK+ Virtual Functions (override these to change behaviour): //Default Signal Handlers:: }; } //namespace Gtk #ifndef DOXYGEN_SHOULD_SKIP_THIS namespace Glib { template <> class GTKMM_API Value : public Glib::Value_Enum { public: static GType value_type() G_GNUC_CONST; }; } // namespace Glib #endif /* DOXYGEN_SHOULD_SKIP_THIS */ 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::Image */ GTKMM_API Gtk::Image* wrap(GtkImage* object, bool take_copy = false); } //namespace Glib #endif /* _GTKMM_IMAGE_H */