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

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

?? shooter.c

?? linux下電話本所依賴的一些圖形庫
?? C
字號:
#include <gdk/gdk.h>#include <gtk/gtk.h>#include <gdkx.h>#include <stdio.h>#include <errno.h>#include <sys/wait.h>#include <unistd.h>#include <X11/extensions/shape.h>#include <gdk-pixbuf/gdk-pixbuf.h>#include <sys/types.h>#include <sys/stat.h>#include <sys/wait.h>#include <signal.h>#include <unistd.h>#include <stdlib.h>#include <fcntl.h>#include <errno.h>#include <locale.h>#include "widgets.h"#include "shadow.h"#define MAXIMUM_WM_REPARENTING_DEPTH 4#ifndef _#define _(x) (x)#endifstatic Windowfind_toplevel_window (Window xid){  Window root, parent, *children;  int nchildren;  do    {      if (XQueryTree (GDK_DISPLAY (), xid, &root,		      &parent, &children, &nchildren) == 0)	{	  g_warning ("Couldn't find window manager window");	  return 0;	}      if (root == parent)	return xid;      xid = parent;    }  while (TRUE);}static GdkPixbuf *add_border_to_shot (GdkPixbuf *pixbuf){  GdkPixbuf *retval;  retval = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8,			   gdk_pixbuf_get_width (pixbuf) + 2,			   gdk_pixbuf_get_height (pixbuf) + 2);  /* Fill with solid black */  gdk_pixbuf_fill (retval, 0xFF);  gdk_pixbuf_copy_area (pixbuf,			0, 0,			gdk_pixbuf_get_width (pixbuf),			gdk_pixbuf_get_height (pixbuf),			retval, 1, 1);  return retval;}static GdkPixbuf *remove_shaped_area (GdkPixbuf *pixbuf,		    Window     window){  GdkPixbuf *retval;  XRectangle *rectangles;  int rectangle_count, rectangle_order;  int i;  retval = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8,			   gdk_pixbuf_get_width (pixbuf),			   gdk_pixbuf_get_height (pixbuf));    gdk_pixbuf_fill (retval, 0);  rectangles = XShapeGetRectangles (GDK_DISPLAY (), window,				    ShapeBounding, &rectangle_count, &rectangle_order);  for (i = 0; i < rectangle_count; i++)    {      int y, x;      for (y = rectangles[i].y; y < rectangles[i].y + rectangles[i].height; y++)	{	  guchar *src_pixels, *dest_pixels;	  src_pixels = gdk_pixbuf_get_pixels (pixbuf) +	    y * gdk_pixbuf_get_rowstride (pixbuf) +	    rectangles[i].x * (gdk_pixbuf_get_has_alpha (pixbuf) ? 4 : 3);	  dest_pixels = gdk_pixbuf_get_pixels (retval) +	    y * gdk_pixbuf_get_rowstride (retval) +	    rectangles[i].x * 4;	  for (x = rectangles[i].x; x < rectangles[i].x + rectangles[i].width; x++)	    {	      *dest_pixels++ = *src_pixels ++;	      *dest_pixels++ = *src_pixels ++;	      *dest_pixels++ = *src_pixels ++;	      *dest_pixels++ = 255;	      if (gdk_pixbuf_get_has_alpha (pixbuf))		src_pixels++;	    }	}    }  return retval;}static GdkPixbuf *take_window_shot (Window   child,		  gboolean include_decoration){  GdkWindow *window;  Display *disp;  Window w, xid;  gint x_orig, y_orig;  gint x = 0, y = 0;  gint width, height;  GdkPixbuf *tmp, *tmp2;  GdkPixbuf *retval;  disp = GDK_DISPLAY ();  w = GDK_ROOT_WINDOW ();  if (include_decoration)    xid = find_toplevel_window (child);  else    xid = child;  window = gdk_window_foreign_new (xid);  gdk_drawable_get_size (window, &width, &height);  gdk_window_get_origin (window, &x_orig, &y_orig);  if (x_orig < 0)    {      x = - x_orig;      width = width + x_orig;      x_orig = 0;    }  if (y_orig < 0)    {      y = - y_orig;      height = height + y_orig;      y_orig = 0;    }  if (x_orig + width > gdk_screen_width ())    width = gdk_screen_width () - x_orig;  if (y_orig + height > gdk_screen_height ())    height = gdk_screen_height () - y_orig;  tmp = gdk_pixbuf_get_from_drawable (NULL, window, NULL,				      x, y, 0, 0, width, height);  if (include_decoration)    tmp2 = remove_shaped_area (tmp, xid);  else    tmp2 = add_border_to_shot (tmp);  retval = create_shadowed_pixbuf (tmp2);  g_object_unref (tmp);  g_object_unref (tmp2);  return retval;}int main (int argc, char **argv){  GList *toplevels;  GdkPixbuf *screenshot = NULL;  GList *node;  /* If there's no DISPLAY, we silently error out.  We don't want to break   * headless builds. */  if (! gtk_init_check (&argc, &argv))    return 0;  toplevels = get_all_widgets ();  for (node = toplevels; node; node = g_list_next (node))    {      GdkWindow *window;      WidgetInfo *info;      XID id;      char *filename;      info = node->data;      gtk_widget_show (info->window);      window = info->window->window;      gtk_widget_show_now (info->window);      gtk_widget_draw (info->window, &(info->window->allocation));      while (gtk_events_pending ())	{	  gtk_main_iteration ();	}      sleep (1);      while (gtk_events_pending ())	{	  gtk_main_iteration ();	}      id = gdk_x11_drawable_get_xid (GDK_DRAWABLE (window));      screenshot = take_window_shot (id, info->include_decorations);      filename = g_strdup_printf ("./%s.png", info->name);      gdk_pixbuf_save (screenshot, filename, "png", NULL, NULL);      g_free(filename);      gtk_widget_hide (info->window);    }  return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av一二三不卡影片| 亚洲成av人片在线观看| 亚洲欧美视频一区| 亚洲成av人片在线| 国产精品一区二区久久精品爱涩 | 91精品免费观看| 精品久久久久久久久久久久久久久| 久久久久国产免费免费| 亚洲免费看黄网站| 久久精品久久综合| 不卡的电影网站| 欧美久久一二区| 中文字幕精品在线不卡| 亚洲国产日韩精品| 国产成人av福利| 欧美日韩国产综合草草| 国产欧美1区2区3区| 午夜精品久久久久久久| 国产91精品精华液一区二区三区 | 亚洲国产精品久久不卡毛片| 看片的网站亚洲| 97久久超碰精品国产| 日韩视频免费直播| 亚洲精品久久久久久国产精华液| 久久超级碰视频| 欧美在线影院一区二区| 国产视频一区二区在线观看| 亚洲一区在线视频| 国产不卡在线视频| 日韩情涩欧美日韩视频| 一区二区三区免费| 国产成人精品免费网站| 欧美一区二区三区免费视频| 亚洲人成在线播放网站岛国| 国产在线播放一区| 欧美日本高清视频在线观看| 综合分类小说区另类春色亚洲小说欧美| 老司机精品视频一区二区三区| 精品久久久久香蕉网| 亚洲自拍另类综合| 成人久久18免费网站麻豆 | 免费精品视频在线| 在线看不卡av| 国产精品美女久久久久高潮| 国产资源精品在线观看| 在线不卡免费av| 一区二区三区不卡视频| 91亚洲精华国产精华精华液| 久久午夜免费电影| 美女脱光内衣内裤视频久久影院| 91成人在线观看喷潮| 亚洲欧美一区二区在线观看| 成人在线视频一区| 久久久av毛片精品| 国产精品资源网站| 精品福利av导航| 蜜臀久久久久久久| 欧美一区二区三区公司| 日韩精品一二三| 91超碰这里只有精品国产| 亚洲夂夂婷婷色拍ww47| 色悠悠久久综合| 亚洲色图第一区| 91丨九色丨蝌蚪丨老版| 中文字幕在线观看不卡视频| 成人免费电影视频| 婷婷国产v国产偷v亚洲高清| 丁香天五香天堂综合| 99re成人在线| 亚洲欧洲av在线| 成人国产精品免费| 国产精品全国免费观看高清| 成人国产一区二区三区精品| 亚洲国产激情av| 99久久精品一区| 亚洲欧美激情小说另类| 91国偷自产一区二区使用方法| 亚洲欧美成aⅴ人在线观看| 9i在线看片成人免费| 欧美女孩性生活视频| 日本美女视频一区二区| 欧美大黄免费观看| 韩国成人精品a∨在线观看| 久久精品一区二区三区四区| 成人一区二区在线观看| 日韩毛片一二三区| 欧美综合亚洲图片综合区| 亚洲成人一区二区在线观看| 欧美丰满美乳xxx高潮www| 午夜a成v人精品| 欧美成人精品高清在线播放 | 日韩精品一区在线观看| 国内精品伊人久久久久av影院| 久久九九久精品国产免费直播| 成人av网在线| 亚洲自拍欧美精品| 欧美大尺度电影在线| 国产精品一区二区免费不卡| 国产精品久久久久久久第一福利| 91免费小视频| 视频在线在亚洲| 亚洲精品一区二区三区在线观看| 国产aⅴ精品一区二区三区色成熟| 国产精品久久久久桃色tv| 91丨九色丨国产丨porny| 无吗不卡中文字幕| 久久综合久久综合久久综合| www.视频一区| 香蕉影视欧美成人| 久久久噜噜噜久久人人看| 99久久免费精品| 欧美aa在线视频| 中文字幕欧美三区| 欧美高清视频一二三区 | 欧美激情自拍偷拍| 欧美在线观看视频一区二区三区 | 欧美精品一区男女天堂| 欧美日韩黄色一区二区| 精品在线亚洲视频| 亚洲同性gay激情无套| 日韩一区二区精品| 粗大黑人巨茎大战欧美成人| 婷婷综合五月天| 国产精品天美传媒沈樵| 6080yy午夜一二三区久久| 高清不卡在线观看| 午夜精品成人在线| 国产亚洲一区二区三区四区| 欧美性猛交xxxx乱大交退制版| 韩国一区二区视频| 亚洲主播在线播放| 国产欧美综合在线| 欧美精品视频www在线观看| 国产激情一区二区三区| 亚洲国产视频一区二区| 国产精品天干天干在线综合| 欧美一区二区三区日韩视频| 成人黄色免费短视频| 久久99蜜桃精品| 亚洲福中文字幕伊人影院| 久久久精品影视| 欧美精品一卡二卡| 99精品在线观看视频| 国产一区二区三区四区五区美女 | 欧美日韩一二三区| 成人av资源在线观看| 精品一区二区三区在线视频| 亚洲v中文字幕| 亚洲卡通欧美制服中文| 久久久久国色av免费看影院| 欧美精品tushy高清| 91久久人澡人人添人人爽欧美| 国产成都精品91一区二区三| 麻豆国产欧美日韩综合精品二区| 一二三区精品福利视频| 一区在线观看免费| 国产欧美一区二区精品婷婷| 日韩欧美一级片| 欧美一二三在线| 在线不卡免费欧美| 欧美日韩精品是欧美日韩精品| 91视频精品在这里| proumb性欧美在线观看| 国产成人精品1024| 国产伦精一区二区三区| 久久福利资源站| 日韩av不卡在线观看| 首页国产欧美日韩丝袜| 亚洲国产成人av网| 亚洲国产成人精品视频| 亚洲自拍偷拍麻豆| 亚洲韩国一区二区三区| 一二三四区精品视频| 亚洲综合成人在线| 亚洲综合成人在线视频| 玉足女爽爽91| 亚洲欧美偷拍卡通变态| 亚洲视频一区在线| 亚洲另类一区二区| 亚洲自拍与偷拍| 午夜久久福利影院| 亚洲最大成人综合| 亚洲国产色一区| 图片区小说区国产精品视频| 首页综合国产亚洲丝袜| 奇米一区二区三区| 久久成人久久爱| 国产剧情一区在线| 不卡的电视剧免费网站有什么| av亚洲精华国产精华| 99re在线精品| 欧美亚洲精品一区| 欧美高清dvd| 精品999在线播放| 国产午夜精品理论片a级大结局 | 成人sese在线| 95精品视频在线| 欧美亚洲国产怡红院影院| 国产欧美日韩麻豆91| 亚洲欧美日韩一区|