// -*- c++ -*- // Generated by gtkmmproc -- DO NOT MODIFY! #ifndef _GTKMM_IMAGE_H #define _GTKMM_IMAGE_H #include /* $Id$ */ /* image.h * * 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 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 _GtkImage GtkImage; typedef struct _GtkImageClass GtkImageClass; #endif /* DOXYGEN_SHOULD_SKIP_THIS */ namespace Gtk { class Image_Class; } // namespace Gtk namespace Gtk { /** @addtogroup gtkmmEnums Enums and Flags */ /** * @ingroup gtkmmEnums */ enum ImageType { IMAGE_EMPTY, IMAGE_PIXMAP, IMAGE_IMAGE, IMAGE_PIXBUF, IMAGE_STOCK, IMAGE_ICON_SET, IMAGE_ANIMATION, IMAGE_ICON_NAME }; } // 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 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::Pixbuf ("pixel * buffer") from a file, and then display that. * * Gtk::Image is a subclass of Gtk::Misc, which implies that you can align it * (center, left, right) and add padding to it, using Gtk::Misc methods. * * Gtk::Image is a "no window" widget (has no Gdk::Window of its own), so by * default does not receive events. If you want to receive events on the * image, such as button clicks, place the image inside a Gtk::EventBox, then * connect to the event signals on the event box. * * @ingroup Widgets */ class Image : public Misc { public: #ifndef DOXYGEN_SHOULD_SKIP_THIS typedef Image CppObjectType; typedef Image_Class CppClassType; typedef GtkImage BaseObjectType; typedef GtkImageClass BaseClassType; #endif /* DOXYGEN_SHOULD_SKIP_THIS */ virtual ~Image(); #ifndef DOXYGEN_SHOULD_SKIP_THIS private: friend class Image_Class; static CppClassType image_class_; // noncopyable Image(const Image&); Image& operator=(const Image&); protected: explicit Image(const Glib::ConstructParams& construct_params); explicit Image(GtkImage* castitem); #endif /* DOXYGEN_SHOULD_SKIP_THIS */ public: #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 GtkObject. GtkImage* gobj() { return reinterpret_cast(gobject_); } ///Provides access to the underlying C GtkObject. const GtkImage* gobj() const { return reinterpret_cast(gobject_); } public: //C++ methods used to invoke GTK+ virtual functions: protected: //GTK+ Virtual Functions (override these to change behaviour): //Default Signal Handlers:: private: public: Image(); explicit Image(const Glib::RefPtr& pixmap, const Glib::RefPtr& mask); explicit Image(const Glib::RefPtr& image, const Glib::RefPtr& mask); explicit Image(const std::string& file); explicit Image(const Glib::RefPtr& pixbuf); Image(const Gtk::StockID& stock_id, IconSize size); Image(IconSet& icon_set, IconSize size); Image(const Glib::RefPtr& animation); /** See new_from_pixmap() for details. * @param pixmap A Gdk::Pixmap or 0. * @param mask A Gdk::Bitmap or 0. */ void set(const Glib::RefPtr& pixmap, const Glib::RefPtr& mask); /** See new_from_image() for details. * @param gdk_image A Gdk::Image or 0. * @param mask A Gdk::Bitmap or 0. */ void set(const Glib::RefPtr& gdk_image, const Glib::RefPtr& mask); /** See new_from_file() for details. * @param filename A filename or 0. */ void set(const std::string& filename); /** See new_from_pixbuf() for details. * @param pixbuf A Gdk::Pixbuf or 0. */ void set(const Glib::RefPtr& pixbuf); /** See new_from_stock() for details. * @param stock_id A stock icon name. * @param size A stock icon size. */ void set(const Gtk::StockID& stock_id, IconSize size); /** See new_from_icon_set() for details. * @param icon_set A Gtk::IconSet. * @param size A stock icon size. */ void set(IconSet& icon_set, IconSize size); /** Causes the Gtk::Image to display the given animation (or display * nothing, if you set the animation to 0). * @param animation The Gdk::PixbufAnimation. */ void set(const Glib::RefPtr& animation); /** See new_from_icon_name() for details. * * Since: 2.6 * @param icon_name An icon name. * @param size An icon size. */ void set_from_icon_name(const Glib::ustring& icon_name, IconSize size); 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_EMPTY. * @return Image representation being used. */ ImageType get_storage_type() const; void get_pixmap(Glib::RefPtr& pixmap, Glib::RefPtr& mask) const; void get_image(Glib::RefPtr& gdk_image, Glib::RefPtr& mask) const; /** Gets the Gdk::Pixbuf being displayed by the Gtk::Image. * The storage type of the image must be Gtk::IMAGE_EMPTY or * Gtk::IMAGE_PIXBUF (see get_storage_type()). * The caller of this function does not own a reference to the * returned pixbuf. * @return The displayed pixbuf, or 0 if the image is empty. */ Glib::RefPtr get_pixbuf(); /** Gets the Gdk::Pixbuf being displayed by the Gtk::Image. * The storage type of the image must be Gtk::IMAGE_EMPTY or * Gtk::IMAGE_PIXBUF (see get_storage_type()). * The caller of this function does not own a reference to the * returned pixbuf. * @return The displayed pixbuf, or 0 if the image is empty. */ Glib::RefPtr get_pixbuf() const; void get_stock(Gtk::StockID& stock_id, IconSize& size) const; void get_icon_set(IconSet& icon_set, IconSize& size) const; /** Gets the Gdk::PixbufAnimation being displayed by the Gtk::Image. * The storage type of the image must be Gtk::IMAGE_EMPTY or * Gtk::IMAGE_ANIMATION (see get_storage_type()). * The caller of this function does not own a reference to the * returned animation. * @return The displayed animation, or 0 if the image is empty. */ Glib::RefPtr get_animation(); /** Gets the Gdk::PixbufAnimation being displayed by the Gtk::Image. * The storage type of the image must be Gtk::IMAGE_EMPTY or * Gtk::IMAGE_ANIMATION (see get_storage_type()). * The caller of this function does not own a reference to the * returned animation. * @return The displayed animation, or 0 if the image is empty. */ Glib::RefPtr get_animation() const; Glib::ustring get_icon_name() const; Glib::ustring get_icon_name(IconSize& size); /** Gets the pixel size used for named icons. * @return The pixel size used for named icons. * * Since: 2.6. */ 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_from_icon_name(). * * Since: 2.6 * @param pixel_size The new pixel size. */ void set_pixel_size(int pixel_size); /** A GdkPixbuf to display. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy< Glib::RefPtr > property_pixbuf() ; /** A GdkPixbuf to display. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy_ReadOnly< Glib::RefPtr > property_pixbuf() const; /** A GdkPixmap to display. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy< Glib::RefPtr > property_pixmap() ; /** A GdkPixmap to display. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy_ReadOnly< Glib::RefPtr > property_pixmap() const; /** A GdkImage to display. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy< Glib::RefPtr > property_image() ; /** A GdkImage to display. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy_ReadOnly< Glib::RefPtr > property_image() const; /** Mask bitmap to use with GdkImage or GdkPixmap. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy< Glib::RefPtr > property_mask() ; /** Mask bitmap to use with GdkImage or GdkPixmap. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy_ReadOnly< Glib::RefPtr > property_mask() const; /** Filename to load and display. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy_WriteOnly property_file() ; /** Filename to load and display. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy_ReadOnly property_file() const; /** Stock ID for a stock image to display. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy property_stock() ; /** Stock ID for a stock image to display. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy_ReadOnly property_stock() const; /** Icon set to display. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy property_icon_set() ; /** Icon set to display. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy_ReadOnly property_icon_set() const; /** Symbolic size to use for stock icon * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy property_icon_size() ; /** Symbolic size to use for stock icon * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy_ReadOnly property_icon_size() const; /** GdkPixbufAnimation to display. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy< Glib::RefPtr > property_pixbuf_animation() ; /** GdkPixbufAnimation to display. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy_ReadOnly< Glib::RefPtr > property_pixbuf_animation() const; /** The representation being used for image data. * * You rarely need to use properties because there are get_ and set_ methods for almost all of them. * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when * the value of the property changes. */ Glib::PropertyProxy_ReadOnly property_storage_type() const; }; } /* namespace Gtk */ namespace Glib { /** @relates Gtk::Image * @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. */ Gtk::Image* wrap(GtkImage* object, bool take_copy = false); } #endif /* _GTKMM_IMAGE_H */