⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gdkgc-x11.c

📁 linux下电话本所依赖的一些图形库
💻 C
📖 第 1 页 / 共 3 页
字号:
	  gdk_region_destroy (x11_gc->clip_region);	  x11_gc->clip_region = NULL;	}      x11_gc->have_clip_mask = values->clip_mask != NULL;    }  if (values_mask & GDK_GC_FOREGROUND)    x11_gc->fg_pixel = values->foreground.pixel;  if (values_mask & GDK_GC_BACKGROUND)    {      if (x11_gc->bg_pixel != values->background.pixel)	{	  x11_gc->bg_pixel = values->background.pixel;	  if (x11_gc->fill == GDK_OPAQUE_STIPPLED)	    clear_fg_picture (gc);	}    }  if (values_mask & GDK_GC_FILL)    {      if (x11_gc->fill != values->fill)	{	  clear_fg_picture (gc);	  x11_gc->fill = values->fill;	}    }    if (values_mask & GDK_GC_STIPPLE)    {      if (x11_gc->stipple != values->stipple)	{	  if (x11_gc->fill == GDK_STIPPLED || x11_gc->fill == GDK_OPAQUE_STIPPLED)	    clear_fg_picture (gc);	  if (x11_gc->stipple)	    g_object_unref (x11_gc->stipple);	  x11_gc->stipple = values->stipple;	  if (x11_gc->stipple)	    g_object_ref (x11_gc->stipple);	}    }    if (values_mask & GDK_GC_TILE)    {      if (x11_gc->tile != values->tile)	{	  if (x11_gc->fill == GDK_TILED)	    clear_fg_picture (gc);	  if (x11_gc->tile)	    g_object_unref (x11_gc->tile);	  x11_gc->tile = values->tile;	  if (x11_gc->tile)	    g_object_ref (x11_gc->tile);	}    }    gdk_x11_gc_values_to_xvalues (values, values_mask, &xvalues, &xvalues_mask);  XChangeGC (GDK_GC_XDISPLAY (gc),	     GDK_GC_XGC (gc),	     xvalues_mask,	     &xvalues);}static voidgdk_x11_gc_set_dashes (GdkGC *gc,		       gint   dash_offset,		       gint8  dash_list[],		       gint   n){  g_return_if_fail (GDK_IS_GC (gc));  g_return_if_fail (dash_list != NULL);  XSetDashes (GDK_GC_XDISPLAY (gc), GDK_GC_XGC (gc),	      dash_offset, dash_list, n);}static voidgdk_x11_gc_values_to_xvalues (GdkGCValues    *values,			      GdkGCValuesMask mask,			      XGCValues      *xvalues,			      unsigned long  *xvalues_mask){  /* Optimization for the common case (gdk_gc_new()) */  if (values == NULL || mask == 0)    return;    if (mask & GDK_GC_FOREGROUND)    {      xvalues->foreground = values->foreground.pixel;      *xvalues_mask |= GCForeground;    }  if (mask & GDK_GC_BACKGROUND)    {      xvalues->background = values->background.pixel;      *xvalues_mask |= GCBackground;    }  if ((mask & GDK_GC_FONT) && (values->font->type == GDK_FONT_FONT))    {      xvalues->font = ((XFontStruct *) (GDK_FONT_XFONT (values->font)))->fid;      *xvalues_mask |= GCFont;    }  if (mask & GDK_GC_FUNCTION)    {      switch (values->function)	{	case GDK_COPY:	  xvalues->function = GXcopy;	  break;	case GDK_INVERT:	  xvalues->function = GXinvert;	  break;	case GDK_XOR:	  xvalues->function = GXxor;	  break;	case GDK_CLEAR:	  xvalues->function = GXclear;	  break;	case GDK_AND:	  xvalues->function = GXand;	  break;	case GDK_AND_REVERSE:	  xvalues->function = GXandReverse;	  break;	case GDK_AND_INVERT:	  xvalues->function = GXandInverted;	  break;	case GDK_NOOP:	  xvalues->function = GXnoop;	  break;	case GDK_OR:	  xvalues->function = GXor;	  break;	case GDK_EQUIV:	  xvalues->function = GXequiv;	  break;	case GDK_OR_REVERSE:	  xvalues->function = GXorReverse;	  break;	case GDK_COPY_INVERT:	  xvalues->function = GXcopyInverted;	  break;	case GDK_OR_INVERT:	  xvalues->function = GXorInverted;	  break;	case GDK_NAND:	  xvalues->function = GXnand;	  break;	case GDK_SET:	  xvalues->function = GXset;	  break;	case GDK_NOR:	  xvalues->function = GXnor;	  break;	}      *xvalues_mask |= GCFunction;    }  if (mask & GDK_GC_FILL)    {      switch (values->fill)	{	case GDK_SOLID:	  xvalues->fill_style = FillSolid;	  break;	case GDK_TILED:	  xvalues->fill_style = FillTiled;	  break;	case GDK_STIPPLED:	  xvalues->fill_style = FillStippled;	  break;	case GDK_OPAQUE_STIPPLED:	  xvalues->fill_style = FillOpaqueStippled;	  break;	}      *xvalues_mask |= GCFillStyle;    }  if (mask & GDK_GC_TILE)    {      if (values->tile)	xvalues->tile = GDK_DRAWABLE_XID (values->tile);      else	xvalues->tile = None;            *xvalues_mask |= GCTile;    }  if (mask & GDK_GC_STIPPLE)    {      if (values->stipple)	xvalues->stipple = GDK_DRAWABLE_XID (values->stipple);      else	xvalues->stipple = None;            *xvalues_mask |= GCStipple;    }  if (mask & GDK_GC_CLIP_MASK)    {      if (values->clip_mask)	xvalues->clip_mask = GDK_DRAWABLE_XID (values->clip_mask);      else	xvalues->clip_mask = None;      *xvalues_mask |= GCClipMask;          }  if (mask & GDK_GC_SUBWINDOW)    {      xvalues->subwindow_mode = values->subwindow_mode;      *xvalues_mask |= GCSubwindowMode;    }  if (mask & GDK_GC_TS_X_ORIGIN)    {      xvalues->ts_x_origin = values->ts_x_origin;      *xvalues_mask |= GCTileStipXOrigin;    }  if (mask & GDK_GC_TS_Y_ORIGIN)    {      xvalues->ts_y_origin = values->ts_y_origin;      *xvalues_mask |= GCTileStipYOrigin;    }  if (mask & GDK_GC_CLIP_X_ORIGIN)    {      xvalues->clip_x_origin = values->clip_x_origin;      *xvalues_mask |= GCClipXOrigin;    }  if (mask & GDK_GC_CLIP_Y_ORIGIN)    {      xvalues->clip_y_origin = values->clip_y_origin;      *xvalues_mask |= GCClipYOrigin;    }  if (mask & GDK_GC_EXPOSURES)    {      xvalues->graphics_exposures = values->graphics_exposures;      *xvalues_mask |= GCGraphicsExposures;    }  if (mask & GDK_GC_LINE_WIDTH)    {      xvalues->line_width = values->line_width;      *xvalues_mask |= GCLineWidth;    }  if (mask & GDK_GC_LINE_STYLE)    {      switch (values->line_style)	{	case GDK_LINE_SOLID:	  xvalues->line_style = LineSolid;	  break;	case GDK_LINE_ON_OFF_DASH:	  xvalues->line_style = LineOnOffDash;	  break;	case GDK_LINE_DOUBLE_DASH:	  xvalues->line_style = LineDoubleDash;	  break;	}      *xvalues_mask |= GCLineStyle;    }  if (mask & GDK_GC_CAP_STYLE)    {      switch (values->cap_style)	{	case GDK_CAP_NOT_LAST:	  xvalues->cap_style = CapNotLast;	  break;	case GDK_CAP_BUTT:	  xvalues->cap_style = CapButt;	  break;	case GDK_CAP_ROUND:	  xvalues->cap_style = CapRound;	  break;	case GDK_CAP_PROJECTING:	  xvalues->cap_style = CapProjecting;	  break;	}      *xvalues_mask |= GCCapStyle;    }  if (mask & GDK_GC_JOIN_STYLE)    {      switch (values->join_style)	{	case GDK_JOIN_MITER:	  xvalues->join_style = JoinMiter;	  break;	case GDK_JOIN_ROUND:	  xvalues->join_style = JoinRound;	  break;	case GDK_JOIN_BEVEL:	  xvalues->join_style = JoinBevel;	  break;	}      *xvalues_mask |= GCJoinStyle;    }}/** * gdk_gc_set_clip_rectangle: * @gc: a #GdkGC. * @rectangle: the rectangle to clip to. *  * 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_origin()). **/voidgdk_gc_set_clip_rectangle (GdkGC	*gc,			   GdkRectangle *rectangle){  GdkGCX11 *x11_gc;  gboolean had_region = FALSE;    g_return_if_fail (GDK_IS_GC (gc));  x11_gc = GDK_GC_X11 (gc);  if (x11_gc->clip_region)    {      had_region = TRUE;      gdk_region_destroy (x11_gc->clip_region);    }  if (rectangle)    x11_gc->clip_region = gdk_region_rectangle (rectangle);  else    x11_gc->clip_region = NULL;  /* Unset immediately, to make sure Xlib doesn't keep the   * XID of an old clip mask cached   */  if ((had_region && !rectangle) || x11_gc->have_clip_mask)    {      XSetClipMask (GDK_GC_XDISPLAY (gc), GDK_GC_XGC (gc), None);      x11_gc->have_clip_mask = FALSE;    }  gc->clip_x_origin = 0;  gc->clip_y_origin = 0;    x11_gc->dirty_mask |= GDK_GC_DIRTY_CLIP;}/** * gdk_gc_set_clip_region: * @gc: a #GdkGC. * @region: the #GdkRegion.  *  * 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_clip_origin()). **/voidgdk_gc_set_clip_region (GdkGC	  *gc,			GdkRegion *region){  GdkGCX11 *x11_gc;  gboolean had_region = FALSE;  g_return_if_fail (GDK_IS_GC (gc));  x11_gc = GDK_GC_X11 (gc);  if (x11_gc->clip_region)    {      had_region = TRUE;      gdk_region_destroy (x11_gc->clip_region);    }  if (region)    x11_gc->clip_region = gdk_region_copy (region);  else    x11_gc->clip_region = NULL;      /* Unset immediately, to make sure Xlib doesn't keep the   * XID of an old clip mask cached   */  if ((had_region && !region) || x11_gc->have_clip_mask)    {      XSetClipMask (GDK_GC_XDISPLAY (gc), GDK_GC_XGC (gc), None);      x11_gc->have_clip_mask = FALSE;    }  gc->clip_x_origin = 0;  gc->clip_y_origin = 0;    x11_gc->dirty_mask |= GDK_GC_DIRTY_CLIP;}/** * gdk_gc_copy: * @dst_gc: the destination graphics context. * @src_gc: the source graphics context. *  * Copy the set of values from one graphics context * onto another graphics context. **/voidgdk_gc_copy (GdkGC *dst_gc, GdkGC *src_gc){  GdkGCX11 *x11_src_gc;  GdkGCX11 *x11_dst_gc;    g_return_if_fail (GDK_IS_GC_X11 (dst_gc));  g_return_if_fail (GDK_IS_GC_X11 (src_gc));  x11_dst_gc = GDK_GC_X11 (dst_gc);  x11_src_gc = GDK_GC_X11 (src_gc);    XCopyGC (GDK_GC_XDISPLAY (src_gc), GDK_GC_XGC (src_gc), ~((~1) << GCLastBit),	   GDK_GC_XGC (dst_gc));  dst_gc->clip_x_origin = src_gc->clip_x_origin;  dst_gc->clip_y_origin = src_gc->clip_y_origin;  dst_gc->ts_x_origin = src_gc->ts_x_origin;  dst_gc->ts_y_origin = src_gc->ts_y_origin;  if (src_gc->colormap)    g_object_ref (src_gc->colormap);  if (dst_gc->colormap)    g_object_unref (dst_gc->colormap);  dst_gc->colormap = src_gc->colormap;  if (x11_dst_gc->clip_region)    gdk_region_destroy (x11_dst_gc->clip_region);  if (x11_src_gc->clip_region)    x11_dst_gc->clip_region = gdk_region_copy (x11_src_gc->clip_region);  else    x11_dst_gc->clip_region = NULL;  x11_dst_gc->dirty_mask = x11_src_gc->dirty_mask;  x11_dst_gc->fg_pixel = x11_src_gc->fg_pixel;  x11_dst_gc->fill = x11_src_gc->fill;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -