diff options
Diffstat (limited to 'libs/gtkmm2/gdk/gdkmm/visual.h')
-rw-r--r-- | libs/gtkmm2/gdk/gdkmm/visual.h | 253 |
1 files changed, 253 insertions, 0 deletions
diff --git a/libs/gtkmm2/gdk/gdkmm/visual.h b/libs/gtkmm2/gdk/gdkmm/visual.h new file mode 100644 index 0000000000..66f3cd5807 --- /dev/null +++ b/libs/gtkmm2/gdk/gdkmm/visual.h @@ -0,0 +1,253 @@ +// -*- c++ -*- +// Generated by gtkmmproc -- DO NOT MODIFY! +#ifndef _GDKMM_VISUAL_H +#define _GDKMM_VISUAL_H + +#include <glibmm.h> + +/* $Id$ */ + +/* bitmap.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 <glibmm/object.h> +#include <gdkmm/screen.h> +#include <gdk/gdkvisual.h> + + +#ifndef DOXYGEN_SHOULD_SKIP_THIS +typedef struct _GdkVisual GdkVisual; +typedef struct _GdkVisualClass GdkVisualClass; +#endif /* DOXYGEN_SHOULD_SKIP_THIS */ + + +namespace Gdk +{ class Visual_Class; } // namespace Gdk +namespace Gdk +{ + +class Screen; + + +/** @addtogroup gdkmmEnums Enums and Flags */ + +/** + * @ingroup gdkmmEnums + */ +enum VisualType +{ + VISUAL_STATIC_GRAY, + VISUAL_GRAYSCALE, + VISUAL_STATIC_COLOR, + VISUAL_PSEUDO_COLOR, + VISUAL_TRUE_COLOR, + VISUAL_DIRECT_COLOR +}; + +} // namespace Gdk + + +#ifndef DOXYGEN_SHOULD_SKIP_THIS +namespace Glib +{ + +template <> +class Value<Gdk::VisualType> : public Glib::Value_Enum<Gdk::VisualType> +{ +public: + static GType value_type() G_GNUC_CONST; +}; + +} // namespace Glib +#endif /* DOXYGEN_SHOULD_SKIP_THIS */ + + +namespace Gdk +{ + + +/** A Gdk::Visual describes a particular video hardware display format. + * It includes information about the number of bits used for each color, the way the bits are translated into an RGB value + * for display, and the way the bits are stored in memory. For example, a piece of display hardware might support 24-bit + * color, 16-bit color, or 8-bit color; meaning 24/16/8-bit pixel sizes. For a given pixel size, pixels can be in different + * formats; for example the "red" element of an RGB pixel may be in the top 8 bits of the pixel, or may be in the lower 4 + * bits. + * + * Usually you can avoid thinking about visuals in GTK+. Visuals are useful to interpret the contents of a GdkImage, but + * you should avoid Gdk::Image precisely because its contents depend on the display hardware; use Gdk::Pixbuf instead, for + * all but the most low-level purposes. Also, anytime you provide a Gdk::Colormap, the visual is implied as part of the + * colormap (Gdk::Colormap::get_visual()), so you won't have to provide a visual in addition. + * + * There are several standard visuals. The visual returned by get_system() is the system's default visual. get_visual() + * returns the visual most suited to displaying full-color image data. If you use the calls in Gdk::RGB, you should create + * your windows using this visual (and the colormap returned by Gdk::Rgb::get_colormap()). + * + * A number of methods are provided for determining the "best" available visual. For the purposes of making this + * determination, higher bit depths are considered better, and for visuals of the same bit depth, GDK_VISUAL_PSEUDO_COLOR + * is preferred at 8bpp, otherwise, the visual types are ranked in the order of (highest to lowest) GDK_VISUAL_DIRECT_COLOR, + * GDK_VISUAL_TRUE_COLOR, GDK_VISUAL_PSEUDO_COLOR, GDK_VISUAL_STATIC_COLOR, GDK_VISUAL_GRAYSCALE, then + * GDK_VISUAL_STATIC_GRAY. + */ + +class Visual : public Glib::Object +{ + +#ifndef DOXYGEN_SHOULD_SKIP_THIS + +public: + typedef Visual CppObjectType; + typedef Visual_Class CppClassType; + typedef GdkVisual BaseObjectType; + typedef GdkVisualClass BaseClassType; + +private: friend class Visual_Class; + static CppClassType visual_class_; + +private: + // noncopyable + Visual(const Visual&); + Visual& operator=(const Visual&); + +protected: + explicit Visual(const Glib::ConstructParams& construct_params); + explicit Visual(GdkVisual* castitem); + +#endif /* DOXYGEN_SHOULD_SKIP_THIS */ + +public: + virtual ~Visual(); + +#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. + GdkVisual* gobj() { return reinterpret_cast<GdkVisual*>(gobject_); } + + ///Provides access to the underlying C GObject. + const GdkVisual* gobj() const { return reinterpret_cast<GdkVisual*>(gobject_); } + + ///Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. + GdkVisual* gobj_copy(); + +private: + +protected: + + Visual(); + +public: + + /** Get the system'sdefault visual for the default GDK screen. + * This is the visual for the root window of the display. + * The return value should not be freed. + * @return System visual. + */ + static Glib::RefPtr<Visual> get_system(); + + /** Get the visual with the most available colors for the default + * GDK screen. The return value should not be freed. + * @return Best visual. + */ + static Glib::RefPtr<Visual> get_best(); + + /** Get the best visual with depth @a depth for the default GDK screen. + * Color visuals and visuals with mutable colormaps are preferred + * over grayscale or fixed-colormap visuals. The return value should not + * be freed. <tt>0</tt> may be returned if no visual supports @a depth . + * @param depth A bit depth. + * @return Best visual for the given depth. + */ + static Glib::RefPtr<Visual> get_best(int depth); + + /** Get the best visual of the given @a visual_type for the default GDK screen. + * Visuals with higher color depths are considered better. The return value + * should not be freed. <tt>0</tt> may be returned if no visual has type + * @a visual_type . + * @param visual_type A visual type. + * @return Best visual of the given type. + */ + static Glib::RefPtr<Visual> get_best(VisualType visual_type); + + /** Combines gdk_visual_get_best_with_depth() and gdk_visual_get_best_with_type(). + * @param depth A bit depth. + * @param visual_type A visual type. + * @return Best visual with both @a depth and @a visual_type , or <tt>0</tt> if none. + */ + static Glib::RefPtr<Visual> get_best(int depth, VisualType visual_type); + + + /** Get the best available depth for the default GDK screen. "Best" + * means "largest," i.e. 32 preferred over 24 preferred over 8 bits + * per pixel. + * @return Best available depth. + */ + static int get_best_depth(); + + /** Return the best available visual type for the default GDK screen. + * @return Best visual type. + */ + static VisualType get_best_type(); + + + /** Gets the screen to which this visual belongs + * @return The screen to which this visual belongs. + * + * Since: 2.2. + */ + Glib::RefPtr<Screen> get_screen(); + + /** Gets the screen to which this visual belongs + * @return The screen to which this visual belongs. + * + * Since: 2.2. + */ + Glib::RefPtr<const Screen> get_screen() const; + + +public: + +public: + //C++ methods used to invoke GTK+ virtual functions: + +protected: + //GTK+ Virtual Functions (override these to change behaviour): + + //Default Signal Handlers:: + + +}; + +} //namespace Gdk + + +namespace Glib +{ + /** @relates Gdk::Visual + * @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. + */ + Glib::RefPtr<Gdk::Visual> wrap(GdkVisual* object, bool take_copy = false); +} + + +#endif /* _GDKMM_VISUAL_H */ + |