亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gdkgc-x11.c

?? linux下電話本所依賴的一些圖形庫
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* GDK - The GIMP Drawing Kit * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser 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 * 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. *//* * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS * file for a list of people on the GTK+ Team.  See the ChangeLog * files for a list of changes.  These files are distributed with * GTK+ at ftp://ftp.gtk.org/pub/gtk/.  */#include <config.h>#include "gdkgc.h"#include "gdkprivate-x11.h"#include "gdkregion-generic.h"#include "gdkx.h"#include "gdkalias.h"#include <string.h>typedef enum {  GDK_GC_DIRTY_CLIP = 1 << 0,  GDK_GC_DIRTY_TS = 1 << 1} GdkGCDirtyValues;static void gdk_x11_gc_values_to_xvalues (GdkGCValues    *values,					  GdkGCValuesMask mask,					  XGCValues      *xvalues,					  unsigned long  *xvalues_mask);static void gdk_x11_gc_get_values (GdkGC           *gc,				   GdkGCValues     *values);static void gdk_x11_gc_set_values (GdkGC           *gc,				   GdkGCValues     *values,				   GdkGCValuesMask  values_mask);static void gdk_x11_gc_set_dashes (GdkGC           *gc,				   gint             dash_offset,				   gint8            dash_list[],				   gint             n);static void gdk_gc_x11_class_init (GdkGCX11Class *klass);static void gdk_gc_x11_finalize   (GObject           *object);static gpointer parent_class = NULL;GType_gdk_gc_x11_get_type (void){  static GType object_type = 0;  if (!object_type)    {      static const GTypeInfo object_info =      {        sizeof (GdkGCX11Class),        (GBaseInitFunc) NULL,        (GBaseFinalizeFunc) NULL,        (GClassInitFunc) gdk_gc_x11_class_init,        NULL,           /* class_finalize */        NULL,           /* class_data */        sizeof (GdkGCX11),        0,              /* n_preallocs */        (GInstanceInitFunc) NULL,      };            object_type = g_type_register_static (GDK_TYPE_GC,                                            "GdkGCX11",                                            &object_info, 0);    }    return object_type;}static voidgdk_gc_x11_class_init (GdkGCX11Class *klass){  GObjectClass *object_class = G_OBJECT_CLASS (klass);  GdkGCClass *gc_class = GDK_GC_CLASS (klass);    parent_class = g_type_class_peek_parent (klass);  object_class->finalize = gdk_gc_x11_finalize;  gc_class->get_values = gdk_x11_gc_get_values;  gc_class->set_values = gdk_x11_gc_set_values;  gc_class->set_dashes = gdk_x11_gc_set_dashes;}static voidgdk_gc_x11_finalize (GObject *object){  GdkGCX11 *x11_gc = GDK_GC_X11 (object);    if (x11_gc->clip_region)    gdk_region_destroy (x11_gc->clip_region);    if (x11_gc->fg_picture != None)    XRenderFreePicture (GDK_GC_XDISPLAY (x11_gc), x11_gc->fg_picture);  if (x11_gc->stipple)    g_object_unref (x11_gc->stipple);  if (x11_gc->tile)    g_object_unref (x11_gc->tile);    XFreeGC (GDK_GC_XDISPLAY (x11_gc), GDK_GC_XGC (x11_gc));  G_OBJECT_CLASS (parent_class)->finalize (object);}GdkGC *_gdk_x11_gc_new (GdkDrawable      *drawable,		 GdkGCValues      *values,		 GdkGCValuesMask   values_mask){  GdkGC *gc;  GdkGCX11 *private;    XGCValues xvalues;  unsigned long xvalues_mask;  /* NOTICE that the drawable here has to be the impl drawable,   * not the publically-visible drawables.   */  g_return_val_if_fail (GDK_IS_DRAWABLE_IMPL_X11 (drawable), NULL);  gc = g_object_new (_gdk_gc_x11_get_type (), NULL);  private = GDK_GC_X11 (gc);  private->dirty_mask = 0;  private->have_clip_mask = FALSE;  private->clip_region = NULL;      private->screen = GDK_DRAWABLE_IMPL_X11 (drawable)->screen;  private->depth = gdk_drawable_get_depth (drawable);  if (values_mask & (GDK_GC_CLIP_X_ORIGIN | GDK_GC_CLIP_Y_ORIGIN))    {      values_mask &= ~(GDK_GC_CLIP_X_ORIGIN | GDK_GC_CLIP_Y_ORIGIN);      private->dirty_mask |= GDK_GC_DIRTY_CLIP;    }  if (values_mask & (GDK_GC_TS_X_ORIGIN | GDK_GC_TS_Y_ORIGIN))    {      values_mask &= ~(GDK_GC_TS_X_ORIGIN | GDK_GC_TS_Y_ORIGIN);      private->dirty_mask |= GDK_GC_DIRTY_TS;    }  if (values_mask & GDK_GC_FOREGROUND)    private->fg_pixel = values->foreground.pixel;  if (values_mask & GDK_GC_BACKGROUND)    private->bg_pixel = values->background.pixel;  if (values_mask & GDK_GC_FILL)    private->fill = values->fill;    if (values_mask & GDK_GC_STIPPLE)    {      private->stipple = values->stipple;      if (private->stipple)	g_object_ref (private->stipple);    }    if (values_mask & GDK_GC_TILE)    {      private->tile = values->tile;      if (private->tile)	g_object_ref (private->tile);    }    if ((values_mask & GDK_GC_CLIP_MASK) && values->clip_mask)    private->have_clip_mask = TRUE;  xvalues.function = GXcopy;  xvalues.fill_style = FillSolid;  xvalues.arc_mode = ArcPieSlice;  xvalues.subwindow_mode = ClipByChildren;  xvalues.graphics_exposures = False;  xvalues_mask = GCFunction | GCFillStyle | GCArcMode | GCSubwindowMode | GCGraphicsExposures;  gdk_x11_gc_values_to_xvalues (values, values_mask, &xvalues, &xvalues_mask);    private->xgc = XCreateGC (GDK_GC_XDISPLAY (gc),                            GDK_DRAWABLE_IMPL_X11 (drawable)->xid,                            xvalues_mask, &xvalues);  return gc;}GC_gdk_x11_gc_flush (GdkGC *gc){  Display *xdisplay = GDK_GC_XDISPLAY (gc);  GdkGCX11 *private = GDK_GC_X11 (gc);  GC xgc = private->xgc;  if (private->dirty_mask & GDK_GC_DIRTY_CLIP)    {      if (!private->clip_region)	XSetClipOrigin (xdisplay, xgc,			gc->clip_x_origin, gc->clip_y_origin);      else	{	  XRectangle *rectangles;          gint n_rects;          _gdk_region_get_xrectangles (private->clip_region,                                       gc->clip_x_origin,                                       gc->clip_y_origin,                                       &rectangles,                                       &n_rects);	  	  XSetClipRectangles (xdisplay, xgc, 0, 0,                              rectangles,                              n_rects, YXBanded);          	  g_free (rectangles);	}    }  if (private->dirty_mask & GDK_GC_DIRTY_TS)    {      XSetTSOrigin (xdisplay, xgc,		    gc->ts_x_origin, gc->ts_y_origin);    }  private->dirty_mask = 0;  return xgc;}static voidgdk_x11_gc_get_values (GdkGC       *gc,		       GdkGCValues *values){  XGCValues xvalues;    if (XGetGCValues (GDK_GC_XDISPLAY (gc), GDK_GC_XGC (gc),		    GCForeground | GCBackground | GCFont |		    GCFunction | GCTile | GCStipple | /* GCClipMask | */		    GCSubwindowMode | GCGraphicsExposures |		    GCTileStipXOrigin | GCTileStipYOrigin |		    GCClipXOrigin | GCClipYOrigin |		    GCLineWidth | GCLineStyle | GCCapStyle |		    GCFillStyle | GCJoinStyle, &xvalues))    {      values->foreground.pixel = xvalues.foreground;      values->background.pixel = xvalues.background;      values->font = gdk_font_lookup_for_display (GDK_GC_DISPLAY (gc),						  xvalues.font);      switch (xvalues.function)	{	case GXcopy:	  values->function = GDK_COPY;	  break;	case GXinvert:	  values->function = GDK_INVERT;	  break;	case GXxor:	  values->function = GDK_XOR;	  break;	case GXclear:	  values->function = GDK_CLEAR;	  break;	case GXand:	  values->function = GDK_AND;	  break;	case GXandReverse:	  values->function = GDK_AND_REVERSE;	  break;	case GXandInverted:	  values->function = GDK_AND_INVERT;	  break;	case GXnoop:	  values->function = GDK_NOOP;	  break;	case GXor:	  values->function = GDK_OR;	  break;	case GXequiv:	  values->function = GDK_EQUIV;	  break;	case GXorReverse:	  values->function = GDK_OR_REVERSE;	  break;	case GXcopyInverted:	  values->function =GDK_COPY_INVERT;	  break;	case GXorInverted:	  values->function = GDK_OR_INVERT;	  break;	case GXnand:	  values->function = GDK_NAND;	  break;	case GXset:	  values->function = GDK_SET;	  break;	case GXnor:	  values->function = GDK_NOR;	  break;	}      switch (xvalues.fill_style)	{	case FillSolid:	  values->fill = GDK_SOLID;	  break;	case FillTiled:	  values->fill = GDK_TILED;	  break;	case FillStippled:	  values->fill = GDK_STIPPLED;	  break;	case FillOpaqueStippled:	  values->fill = GDK_OPAQUE_STIPPLED;	  break;	}      values->tile = gdk_pixmap_lookup_for_display (GDK_GC_DISPLAY (gc),						    xvalues.tile);      values->stipple = gdk_pixmap_lookup_for_display (GDK_GC_DISPLAY (gc),						       xvalues.stipple);      values->clip_mask = NULL;      values->subwindow_mode = xvalues.subwindow_mode;      values->ts_x_origin = xvalues.ts_x_origin;      values->ts_y_origin = xvalues.ts_y_origin;      values->clip_x_origin = xvalues.clip_x_origin;      values->clip_y_origin = xvalues.clip_y_origin;      values->graphics_exposures = xvalues.graphics_exposures;      values->line_width = xvalues.line_width;      switch (xvalues.line_style)	{	case LineSolid:	  values->line_style = GDK_LINE_SOLID;	  break;	case LineOnOffDash:	  values->line_style = GDK_LINE_ON_OFF_DASH;	  break;	case LineDoubleDash:	  values->line_style = GDK_LINE_DOUBLE_DASH;	  break;	}      switch (xvalues.cap_style)	{	case CapNotLast:	  values->cap_style = GDK_CAP_NOT_LAST;	  break;	case CapButt:	  values->cap_style = GDK_CAP_BUTT;	  break;	case CapRound:	  values->cap_style = GDK_CAP_ROUND;	  break;	case CapProjecting:	  values->cap_style = GDK_CAP_PROJECTING;	  break;	}      switch (xvalues.join_style)	{	case JoinMiter:	  values->join_style = GDK_JOIN_MITER;	  break;	case JoinRound:	  values->join_style = GDK_JOIN_ROUND;	  break;	case JoinBevel:	  values->join_style = GDK_JOIN_BEVEL;	  break;	}    }  else    {      memset (values, 0, sizeof (GdkGCValues));    }}static voidclear_fg_picture (GdkGC *gc){  GdkGCX11 *x11_gc = GDK_GC_X11 (gc);  if (x11_gc->fg_picture != None)    {      XRenderFreePicture (GDK_GC_XDISPLAY (x11_gc), x11_gc->fg_picture);      x11_gc->fg_picture = None;    }}static voidgdk_x11_gc_set_values (GdkGC           *gc,		       GdkGCValues     *values,		       GdkGCValuesMask  values_mask){  GdkGCX11 *x11_gc;  XGCValues xvalues;  unsigned long xvalues_mask = 0;  x11_gc = GDK_GC_X11 (gc);  if (values_mask & (GDK_GC_CLIP_X_ORIGIN | GDK_GC_CLIP_Y_ORIGIN))    {      values_mask &= ~(GDK_GC_CLIP_X_ORIGIN | GDK_GC_CLIP_Y_ORIGIN);      x11_gc->dirty_mask |= GDK_GC_DIRTY_CLIP;    }  if (values_mask & (GDK_GC_TS_X_ORIGIN | GDK_GC_TS_Y_ORIGIN))    {      values_mask &= ~(GDK_GC_TS_X_ORIGIN | GDK_GC_TS_Y_ORIGIN);      x11_gc->dirty_mask |= GDK_GC_DIRTY_TS;    }  if (values_mask & GDK_GC_CLIP_MASK)    {      if (x11_gc->clip_region)	{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品伦理在线| 美腿丝袜一区二区三区| 亚洲高清视频在线| 国产成人在线观看| 91精品中文字幕一区二区三区| 久久久久国产精品麻豆ai换脸| 亚洲mv大片欧洲mv大片精品| 国产91丝袜在线观看| 精品美女在线播放| 午夜激情一区二区| 91免费视频网址| 欧美激情一区二区三区不卡| 久久电影网电视剧免费观看| 欧美三级午夜理伦三级中视频| 亚洲精品在线电影| 日韩国产欧美三级| 欧洲亚洲精品在线| 国产精品乱码久久久久久| 精品一区二区免费在线观看| 欧美三级日韩三级国产三级| 亚洲激情中文1区| 成a人片亚洲日本久久| 国产精品情趣视频| 国产91丝袜在线播放| 精品国产乱码久久久久久闺蜜| 无吗不卡中文字幕| 欧美三级在线看| 亚洲成人你懂的| 欧美天天综合网| 亚洲一区二区三区四区五区中文| 91视频免费看| 亚洲激情第一区| 色婷婷久久久亚洲一区二区三区| 成人欧美一区二区三区| 91在线精品一区二区三区| 国产精品三级视频| www.欧美.com| 亚洲人成影院在线观看| 99re视频精品| 一区二区三区**美女毛片| 99久久亚洲一区二区三区青草| 国产精品美女www爽爽爽| av激情亚洲男人天堂| 亚洲精品中文字幕乱码三区| 欧美中文字幕久久| 亚洲成人第一页| 欧美一级专区免费大片| 免费在线观看成人| 久久嫩草精品久久久精品| 国产成人午夜精品影院观看视频 | 丝袜美腿成人在线| 日韩午夜激情av| 国产麻豆视频一区| 国产精品女同一区二区三区| 99久久久国产精品免费蜜臀| 亚洲一区在线观看免费| 欧美一区二区美女| 激情丁香综合五月| 国产精品亲子伦对白| 色婷婷精品久久二区二区蜜臂av| 亚洲线精品一区二区三区 | 国产精品网站在线| 日本乱人伦一区| 久草在线在线精品观看| 欧美国产欧美综合| 欧美老肥妇做.爰bbww视频| 黄色日韩三级电影| 一区在线中文字幕| 91精品午夜视频| caoporn国产精品| 蜜桃av一区二区三区电影| 久久精品日产第一区二区三区高清版| 93久久精品日日躁夜夜躁欧美| 亚洲成年人影院| 国产精品五月天| 51精品视频一区二区三区| 国产在线不卡一卡二卡三卡四卡| **欧美大码日韩| 精品久久久久久久久久久久久久久 | 91一区二区三区在线播放| 水野朝阳av一区二区三区| 国产精品三级av在线播放| 4438x成人网最大色成网站| 成人高清免费在线播放| 免费在线视频一区| 一区二区免费看| 国产日韩欧美高清| 欧美一区二区三区人| 色狠狠一区二区三区香蕉| 国产成人丝袜美腿| 日韩av一区二区三区| 一区二区三区精品| 国产精品嫩草99a| 精品久久人人做人人爱| 欧美日韩五月天| 91在线观看免费视频| 国产iv一区二区三区| 极品美女销魂一区二区三区 | 18欧美乱大交hd1984| 精品处破学生在线二十三| 91精品婷婷国产综合久久| 日本高清不卡在线观看| 国产99久久久国产精品潘金网站| 麻豆国产精品777777在线| 亚洲国产精品久久不卡毛片| 亚洲欧洲精品一区二区三区| 久久精品一区二区三区av| 欧美成人a∨高清免费观看| 欧美精品日日鲁夜夜添| 欧美视频一区二区三区在线观看| 99r国产精品| 97精品久久久久中文字幕| 日本电影欧美片| 色综合久久中文综合久久97| 成人av在线资源网站| 成人免费毛片a| 99久久精品99国产精品| eeuss鲁片一区二区三区在线看| 成人在线综合网站| 国产999精品久久久久久绿帽| 国产乱码精品一区二区三| 国产精品一区二区黑丝| 国产suv一区二区三区88区| 高清成人在线观看| 99久久精品免费精品国产| 91丨九色丨蝌蚪丨老版| 91久久免费观看| 欧美色倩网站大全免费| 欧美精品tushy高清| 制服丝袜亚洲色图| 日韩你懂的在线观看| 久久久精品国产99久久精品芒果| 国产日产欧美一区二区视频| 中文字幕一区av| 亚洲国产一区二区三区青草影视| 亚洲国产精品久久人人爱蜜臀| 亚洲电影一区二区三区| 奇米色一区二区| 国产91精品免费| 色视频欧美一区二区三区| 欧美日韩中文国产| 精品国产成人在线影院| 国产欧美综合在线观看第十页| 《视频一区视频二区| 日韩精品国产精品| 福利电影一区二区三区| 在线免费观看日本欧美| 日韩欧美区一区二| 国产精品视频麻豆| 亚洲国产va精品久久久不卡综合 | 亚洲一区在线播放| 精品一区二区日韩| 91麻豆精品秘密| 精品播放一区二区| 亚洲精品乱码久久久久| 美女国产一区二区| 色网站国产精品| 久久久亚洲高清| 偷拍自拍另类欧美| 丁香天五香天堂综合| 欧美精品久久99久久在免费线| xvideos.蜜桃一区二区| 亚洲一区二区三区中文字幕在线| 国内精品在线播放| 欧美日韩一区中文字幕| 26uuu国产电影一区二区| 亚洲制服丝袜av| 成人午夜av电影| 精品福利在线导航| 亚洲电影在线免费观看| 成人动漫视频在线| 精品久久久久久久一区二区蜜臀| 亚洲精品国产无天堂网2021| 国产不卡视频一区二区三区| 欧美三级中文字| 亚洲区小说区图片区qvod| 国产综合久久久久久鬼色| 欧美老人xxxx18| 亚洲一区二区欧美激情| 99久久国产免费看| 国产精品亲子伦对白| 国产一区欧美日韩| 2020国产精品| 麻豆精品久久精品色综合| 欧美日韩五月天| 亚洲电影激情视频网站| 色偷偷成人一区二区三区91| 中文字幕日本乱码精品影院| 成人av小说网| 国产欧美日韩精品在线| 国产一区二区三区免费看| 欧美成人女星排行榜| 日韩成人精品视频| 欧美一区二区三区在线看| 午夜精品福利在线| 3atv在线一区二区三区| 五月天视频一区| 91精品免费在线观看| 美女精品一区二区| 欧美成人精品福利|