Synopsis#include <gdk/gdk.h> GdkGC; GdkGCValues; enum GdkGCValuesMask; enum GdkFunction; GdkGC* gdk_gc_new (GdkDrawable *drawable); GdkGC* gdk_gc_new_with_values (GdkDrawable *drawable, GdkGCValues *values, GdkGCValuesMask values_mask); GdkScreen* gdk_gc_get_screen (GdkGC *gc); GdkGC* gdk_gc_ref (GdkGC *gc); void gdk_gc_unref (GdkGC *gc); #define gdk_gc_destroy void gdk_gc_set_values (GdkGC *gc, GdkGCValues *values, GdkGCValuesMask values_mask); void gdk_gc_get_values (GdkGC *gc, GdkGCValues *values); void gdk_gc_set_foreground (GdkGC *gc, const GdkColor *color); void gdk_gc_set_background (GdkGC *gc, const GdkColor *color); void gdk_gc_set_rgb_fg_color (GdkGC *gc, const GdkColor *color); void gdk_gc_set_rgb_bg_color (GdkGC *gc, const GdkColor *color); void gdk_gc_set_font (GdkGC *gc, GdkFont *font); void gdk_gc_set_function (GdkGC *gc, GdkFunction function); void gdk_gc_set_fill (GdkGC *gc, GdkFill fill); enum GdkFill; void gdk_gc_set_tile (GdkGC *gc, GdkPixmap *tile); void gdk_gc_set_stipple (GdkGC *gc, GdkPixmap *stipple); void gdk_gc_set_ts_origin (GdkGC *gc, gint x, gint y); void gdk_gc_set_clip_origin (GdkGC *gc, gint x, gint y); void gdk_gc_set_clip_mask (GdkGC *gc, GdkBitmap *mask); void gdk_gc_set_clip_rectangle (GdkGC *gc, const GdkRectangle *rectangle); void gdk_gc_set_clip_region (GdkGC *gc, const GdkRegion *region); void gdk_gc_set_subwindow (GdkGC *gc, GdkSubwindowMode mode); enum GdkSubwindowMode; void gdk_gc_set_exposures (GdkGC *gc, gboolean exposures); void gdk_gc_set_line_attributes (GdkGC *gc, gint line_width, GdkLineStyle line_style, GdkCapStyle cap_style, GdkJoinStyle join_style); enum GdkLineStyle; enum GdkCapStyle; enum GdkJoinStyle; void gdk_gc_set_dashes (GdkGC *gc, gint dash_offset, gint8 dash_list[], gint n); void gdk_gc_copy (GdkGC *dst_gc, GdkGC *src_gc); void gdk_gc_set_colormap (GdkGC *gc, GdkColormap *colormap); GdkColormap* gdk_gc_get_colormap (GdkGC *gc); void gdk_gc_offset (GdkGC *gc, gint x_offset, gint y_offset); DescriptionAll drawing operations in GDK take a graphics context (GC) argument. A graphics context encapsulates information about the way things are drawn, such as the foreground color or line width. By using graphics contexts, the number of arguments to each drawing call is greatly reduced, and communication overhead is minimized, since identical arguments do not need to be passed repeatedly.
Most values of a graphics context can be set at
creation time by using DetailsGdkGCtypedef struct _GdkGC GdkGC; The GdkGC structure represents a graphics context. It is an opaque structure with no user-visible elements. GdkGCValuestypedef struct { GdkColor foreground; GdkColor background; GdkFont *font; GdkFunction function; GdkFill fill; GdkPixmap *tile; GdkPixmap *stipple; GdkPixmap *clip_mask; GdkSubwindowMode subwindow_mode; gint ts_x_origin; gint ts_y_origin; gint clip_x_origin; gint clip_y_origin; gint graphics_exposures; gint line_width; GdkLineStyle line_style; GdkCapStyle cap_style; GdkJoinStyle join_style; } GdkGCValues; The GdkGCValues structure holds a set of values used to create or modify a graphics context.
enum GdkGCValuesMasktypedef enum { GDK_GC_FOREGROUND = 1 << 0, GDK_GC_BACKGROUND = 1 << 1, GDK_GC_FONT = 1 << 2, GDK_GC_FUNCTION = 1 << 3, GDK_GC_FILL = 1 << 4, GDK_GC_TILE = 1 << 5, GDK_GC_STIPPLE = 1 << 6, GDK_GC_CLIP_MASK = 1 << 7, GDK_GC_SUBWINDOW = 1 << 8, GDK_GC_TS_X_ORIGIN = 1 << 9, GDK_GC_TS_Y_ORIGIN = 1 << 10, GDK_GC_CLIP_X_ORIGIN = 1 << 11, GDK_GC_CLIP_Y_ORIGIN = 1 << 12, GDK_GC_EXPOSURES = 1 << 13, GDK_GC_LINE_WIDTH = 1 << 14, GDK_GC_LINE_STYLE = 1 << 15, GDK_GC_CAP_STYLE = 1 << 16, GDK_GC_JOIN_STYLE = 1 << 17 } GdkGCValuesMask; A set of bit flags used to indicate which fields GdkGCValues structure are set.
enum GdkFunctiontypedef enum { GDK_COPY, GDK_INVERT, GDK_XOR, GDK_CLEAR, GDK_AND, GDK_AND_REVERSE, GDK_AND_INVERT, GDK_NOOP, GDK_OR, GDK_EQUIV, GDK_OR_REVERSE, GDK_COPY_INVERT, GDK_OR_INVERT, GDK_NAND, GDK_NOR, GDK_SET } GdkFunction;
Determines how the bit values for the source pixels are combined with
the bit values for destination pixels to produce the final result. The
sixteen values here correspond to the 16 different possible 2x2 truth
tables. Only a couple of these values are usually useful; for colored
images, only
gdk_gc_new ()GdkGC* gdk_gc_new (GdkDrawable *drawable); Create a new graphics context with default values.
gdk_gc_new_with_values ()GdkGC* gdk_gc_new_with_values (GdkDrawable *drawable, GdkGCValues *values, GdkGCValuesMask values_mask); Create a new GC with the given initial values.
gdk_gc_get_screen ()GdkScreen* gdk_gc_get_screen (GdkGC *gc);
Gets the GdkScreen for which
Since 2.2 gdk_gc_ref ()GdkGC* gdk_gc_ref (GdkGC *gc); Warning
Deprecated function; use
gdk_gc_unref ()void gdk_gc_unref (GdkGC *gc); Warning
Decrement the reference count of
gdk_gc_destroy#define gdk_gc_destroy gdk_gc_unref Warning
This function is obsolete and should not be used. gdk_gc_set_values ()void gdk_gc_set_values (GdkGC *gc, GdkGCValues *values, GdkGCValuesMask values_mask);
Sets attributes of a graphics context in bulk. For each flag set in
gdk_gc_get_values ()void gdk_gc_get_values (GdkGC *gc, GdkGCValues *values);
Retrieves the current values from a graphics context. Note that
only the pixel values of the
gdk_gc_set_foreground ()void gdk_gc_set_foreground (GdkGC *gc, const GdkColor *color);
Sets the foreground color for a graphics context.
Note that this function uses
gdk_gc_set_background ()void gdk_gc_set_background (GdkGC *gc, const GdkColor *color);
Sets the background color for a graphics context.
Note that this function uses
gdk_gc_set_rgb_fg_color ()void gdk_gc_set_rgb_fg_color (GdkGC *gc, const GdkColor *color); Set the foreground color of a GC using an unallocated color. The pixel value for the color will be determined using GdkRGB. If the colormap for the GC has not previously been initialized for GdkRGB, then for pseudo-color colormaps (colormaps with a small modifiable number of colors), a colorcube will be allocated in the colormap. Calling this function for a GC without a colormap is an error.
gdk_gc_set_rgb_bg_color ()void gdk_gc_set_rgb_bg_color (GdkGC *gc, const GdkColor *color); Set the background color of a GC using an unallocated color. The pixel value for the color will be determined using GdkRGB. If the colormap for the GC has not previously been initialized for GdkRGB, then for pseudo-color colormaps (colormaps with a small modifiable number of colors), a colorcube will be allocated in the colormap. Calling this function for a GC without a colormap is an error.
gdk_gc_set_font ()void gdk_gc_set_font (GdkGC *gc, GdkFont *font); Warning
Sets the font for a graphics context. (Note that
all text-drawing functions in GDK take a
gdk_gc_set_function ()void gdk_gc_set_function (GdkGC *gc, GdkFunction function); Determines how the current pixel values and the pixel values being drawn are combined to produce the final pixel values.
gdk_gc_set_fill ()void gdk_gc_set_fill (GdkGC *gc, GdkFill fill); Set the fill mode for a graphics context.
enum GdkFilltypedef enum { GDK_SOLID, GDK_TILED, GDK_STIPPLED, GDK_OPAQUE_STIPPLED } GdkFill; Determines how primitives are drawn.
gdk_gc_set_tile ()void gdk_gc_set_tile (GdkGC *gc, GdkPixmap *tile);
Set a tile pixmap for a graphics context.
This will only be used if the fill mode
is
gdk_gc_set_stipple ()void gdk_gc_set_stipple (GdkGC *gc, GdkPixmap *stipple);
Set the stipple bitmap for a graphics context. The
stipple will only be used if the fill mode is
gdk_gc_set_ts_origin ()void gdk_gc_set_ts_origin (GdkGC *gc, gint x, gint y); Set the origin when using tiles or stipples with the GC. The tile or stipple will be aligned such that the upper left corner of the tile or stipple will coincide with this point.
gdk_gc_set_clip_origin ()void gdk_gc_set_clip_origin (GdkGC *gc, gint x, gint y); Sets the origin of the clip mask. The coordinates are interpreted relative to the upper-left corner of the destination drawable of the current operation.
gdk_gc_set_clip_mask ()void gdk_gc_set_clip_mask (GdkGC *gc, GdkBitmap *mask);
Sets the clip mask for a graphics context from a bitmap.
The clip mask is interpreted relative to the clip
origin. (See
gdk_gc_set_clip_rectangle ()void gdk_gc_set_clip_rectangle (GdkGC *gc, const GdkRectangle *rectangle);
Sets the clip mask for a graphics context from a
rectangle. The clip mask is interpreted relative to the clip
origin. (See
gdk_gc_set_clip_region ()void gdk_gc_set_clip_region (GdkGC *gc, const GdkRegion *region);
Sets the clip mask for a graphics context from a region structure.
The clip mask is interpreted relative to the clip origin. (See
gdk_gc_set_subwindow ()void gdk_gc_set_subwindow (GdkGC *gc, GdkSubwindowMode mode); Sets how drawing with this GC on a window will affect child windows of that window.
enum GdkSubwindowModetypedef enum { GDK_CLIP_BY_CHILDREN = 0, GDK_INCLUDE_INFERIORS = 1 } GdkSubwindowMode; Determines how drawing onto a window will affect child windows of that window. gdk_gc_set_exposures ()void gdk_gc_set_exposures (GdkGC *gc, gboolean exposures);
Sets whether copying non-visible portions of a drawable
using this graphics context generate exposure events
for the corresponding regions of the destination
drawable. (See
gdk_gc_set_line_attributes ()void gdk_gc_set_line_attributes (GdkGC *gc, gint line_width, GdkLineStyle line_style, GdkCapStyle cap_style, GdkJoinStyle join_style); Sets various attributes of how lines are drawn. See the corresponding members of GdkGCValues for full explanations of the arguments.
enum GdkLineStyletypedef enum { GDK_LINE_SOLID, GDK_LINE_ON_OFF_DASH, GDK_LINE_DOUBLE_DASH } GdkLineStyle; Determines how lines are drawn.
enum GdkCapStyletypedef enum { GDK_CAP_NOT_LAST, GDK_CAP_BUTT, GDK_CAP_ROUND, GDK_CAP_PROJECTING } GdkCapStyle; Determines how the end of lines are drawn.
enum GdkJoinStyletypedef enum { GDK_JOIN_MITER, GDK_JOIN_ROUND, GDK_JOIN_BEVEL } GdkJoinStyle; Determines how the joins between segments of a polygon are drawn. gdk_gc_set_dashes ()void gdk_gc_set_dashes (GdkGC *gc, gint dash_offset, gint8 dash_list[], gint n);
Sets the way dashed-lines are drawn. Lines will be
drawn with alternating on and off segments of the
lengths specified in
The
gdk_gc_copy ()void gdk_gc_copy (GdkGC *dst_gc, GdkGC *src_gc); Copy the set of values from one graphics context onto another graphics context.
gdk_gc_set_colormap ()void gdk_gc_set_colormap (GdkGC *gc, GdkColormap *colormap); Sets the colormap for the GC to the given colormap. The depth of the colormap's visual must match the depth of the drawable for which the GC was created.
gdk_gc_get_colormap ()GdkColormap* gdk_gc_get_colormap (GdkGC *gc); Retrieves the colormap for a given GC, if it exists. A GC will have a colormap if the drawable for which it was created has a colormap, or if a colormap was set explicitely with gdk_gc_set_colormap.
gdk_gc_offset ()void gdk_gc_offset (GdkGC *gc, gint x_offset, gint y_offset); Offset attributes such as the clip and tile-stipple origins of the GC so that drawing at x - x_offset, y - y_offset with the offset GC has the same effect as drawing at x, y with the original GC.
|