]> Pileus Git - ~andy/gtk/blobdiff - gdk/gdkvisual.h
gdk: prevent NULL pointer access when debugging is enabled
[~andy/gtk] / gdk / gdkvisual.h
index 5fa4ad919c7d7c97bf3d397540aee53a16d1277b..c15808e8e987cb96d52b1ede4aeb5aa33fd2a3cb 100644 (file)
@@ -12,9 +12,7 @@
  * 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., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  */
 
 /*
  * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
  */
 
+#ifndef __GDK_VISUAL_H__
+#define __GDK_VISUAL_H__
+
 #if !defined (__GDK_H_INSIDE__) && !defined (GDK_COMPILATION)
 #error "Only <gdk/gdk.h> can be included directly."
 #endif
 
-#ifndef __GDK_VISUAL_H__
-#define __GDK_VISUAL_H__
-
 #include <gdk/gdktypes.h>
 
 G_BEGIN_DECLS
 
 #define GDK_TYPE_VISUAL              (gdk_visual_get_type ())
 #define GDK_VISUAL(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_VISUAL, GdkVisual))
-#define GDK_VISUAL_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_VISUAL, GdkVisualClass))
 #define GDK_IS_VISUAL(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_VISUAL))
-#define GDK_IS_VISUAL_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_VISUAL))
-#define GDK_VISUAL_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_VISUAL, GdkVisualClass))
-
-typedef struct _GdkVisualPrivate  GdkVisualPrivate;
-typedef struct _GdkVisualClass    GdkVisualClass;
 
 /**
  * GdkVisualType:
@@ -84,75 +76,29 @@ typedef enum
  *
  * The #GdkVisual structure contains information about
  * a particular visual.
- *
- * <example id="rgbmask">
- * <title>Constructing a pixel value from components</title>
- * <programlisting>
- * guint
- * pixel_from_rgb (GdkVisual *visual,
- *                 guchar r, guchar b, guchar g)
- * {
- *   return ((r >> (16 - visual->red_prec))   << visual->red_shift) |
- *          ((g >> (16 - visual->green_prec)) << visual->green_shift) |
- *          ((r >> (16 - visual->blue_prec))  << visual->blue_shift);
- * }
- * </programlisting>
- * </example>
  */
-struct _GdkVisual
-{
-  /*< private >*/
-  GObject parent_instance;
-
-  GdkVisualType GSEAL (type);      /* Type of visual this is (PseudoColor, TrueColor, etc) */
-  gint GSEAL (depth);              /* Bit depth of this visual */
-  GdkByteOrder GSEAL (byte_order);
-  gint GSEAL (colormap_size);      /* Size of a colormap for this visual */
-  gint GSEAL (bits_per_rgb);       /* Number of significant bits per red, green and blue. */
-
-  /* The red, green and blue masks, shifts and precisions refer
-   * to value needed to calculate pixel values in TrueColor and DirectColor
-   * visuals. The "mask" is the significant bits within the pixel. The
-   * "shift" is the number of bits left we must shift a primary for it
-   * to be in position (according to the "mask"). "prec" refers to how
-   * much precision the pixel value contains for a particular primary.
-   */
-  guint32 GSEAL (red_mask);
-  gint GSEAL (red_shift);
-  gint GSEAL (red_prec);
-
-  guint32 GSEAL (green_mask);
-  gint GSEAL (green_shift);
-  gint GSEAL (green_prec);
-
-  guint32 GSEAL (blue_mask);
-  gint GSEAL (blue_shift);
-  gint GSEAL (blue_prec);
-
-  GdkVisualPrivate *priv;
-};
 
 GType         gdk_visual_get_type            (void) G_GNUC_CONST;
 
 #ifndef GDK_MULTIHEAD_SAFE
-gint         gdk_visual_get_best_depth      (void);
-GdkVisualType gdk_visual_get_best_type      (void);
-GdkVisual*    gdk_visual_get_system         (void);
-GdkVisual*    gdk_visual_get_best           (void);
-GdkVisual*    gdk_visual_get_best_with_depth (gint          depth);
+gint          gdk_visual_get_best_depth      (void);
+GdkVisualType gdk_visual_get_best_type       (void);
+GdkVisual*    gdk_visual_get_system          (void);
+GdkVisual*    gdk_visual_get_best            (void);
+GdkVisual*    gdk_visual_get_best_with_depth (gint           depth);
 GdkVisual*    gdk_visual_get_best_with_type  (GdkVisualType  visual_type);
-GdkVisual*    gdk_visual_get_best_with_both  (gint          depth,
-                                             GdkVisualType  visual_type);
+GdkVisual*    gdk_visual_get_best_with_both  (gint           depth,
+                                              GdkVisualType  visual_type);
 
-void gdk_query_depths      (gint           **depths,
-                            gint            *count);
+void gdk_query_depths       (gint           **depths,
+                             gint            *count);
 void gdk_query_visual_types (GdkVisualType  **visual_types,
-                            gint            *count);
+                             gint            *count);
 
 GList* gdk_list_visuals (void);
 #endif
 
-GdkScreen *gdk_visual_get_screen (GdkVisual *visual);
+GdkScreen    *gdk_visual_get_screen (GdkVisual *visual);
 
 GdkVisualType gdk_visual_get_visual_type         (GdkVisual *visual);
 gint          gdk_visual_get_depth               (GdkVisual *visual);