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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? gdkdnd-fb.c

?? linux下電話本所依賴的一些圖形庫
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* GDK - The GIMP Drawing Kit * Copyright (C) 1995-1999 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 "gdk.h"          /* For gdk_flush() */#include "gdkdnd.h"#include "gdkproperty.h"#include "gdkinternals.h"#include "gdkprivate-fb.h"typedef struct _GdkDragContextPrivate GdkDragContextPrivate;typedef enum {  GDK_DRAG_STATUS_DRAG,  GDK_DRAG_STATUS_MOTION_WAIT,  GDK_DRAG_STATUS_ACTION_WAIT,  GDK_DRAG_STATUS_DROP} GtkDragStatus;/* Structure that holds information about a drag in progress. * this is used on both source and destination sides. */struct _GdkDragContextPrivate {  GdkAtom local_selection;    guint16 last_x;		/* Coordinates from last event */  guint16 last_y;    guint drag_status : 4;	/* current status of drag */};/* Drag Contexts */static GList *contexts;static gpointer parent_class = NULL;#define GDK_DRAG_CONTEXT_PRIVATE_DATA(ctx) ((GdkDragContextPrivate *) GDK_DRAG_CONTEXT (ctx)->windowing_data)GdkDragContext *current_dest_drag = NULL;static voidgdk_drag_context_init (GdkDragContext *dragcontext){  dragcontext->windowing_data = g_new0 (GdkDragContextPrivate, 1);  contexts = g_list_prepend (contexts, dragcontext);}static voidgdk_drag_context_finalize (GObject *object){  GdkDragContext *context = GDK_DRAG_CONTEXT (object);  GdkDragContextPrivate *private = GDK_DRAG_CONTEXT_PRIVATE_DATA (object);    g_list_free (context->targets);  if (context->source_window)    gdk_window_unref (context->source_window);    if (context->dest_window)    gdk_window_unref (context->dest_window);    if (private)    {      g_free (private);      context->windowing_data = NULL;    }    contexts = g_list_remove (contexts, context);  G_OBJECT_CLASS (parent_class)->finalize (object);}static voidgdk_drag_context_class_init (GdkDragContextClass *klass){  GObjectClass *object_class = G_OBJECT_CLASS (klass);  parent_class = g_type_class_peek_parent (klass);  object_class->finalize = gdk_drag_context_finalize;}GTypegdk_drag_context_get_type (void){  static GType object_type = 0;  if (!object_type)    {      static const GTypeInfo object_info =      {        sizeof (GdkDragContextClass),        (GBaseInitFunc) NULL,        (GBaseFinalizeFunc) NULL,        (GClassInitFunc) gdk_drag_context_class_init,        NULL,           /* class_finalize */        NULL,           /* class_data */        sizeof (GdkDragContext),        0,              /* n_preallocs */        (GInstanceInitFunc) gdk_drag_context_init,      };            object_type = g_type_register_static (G_TYPE_OBJECT,                                            "GdkDragContext",                                            &object_info,					    0);    }    return object_type;}GdkDragContext *gdk_drag_context_new        (void){  return (GdkDragContext *)g_object_new (gdk_drag_context_get_type (), NULL);}void            gdk_drag_context_ref (GdkDragContext *context){  g_object_ref (context);}void            gdk_drag_context_unref (GdkDragContext *context){  g_object_unref (context);}static GdkDragContext *gdk_drag_context_find (gboolean     is_source,		       GdkWindow   *source,		       GdkWindow   *dest){  GList *tmp_list = contexts;    GdkDragContext *context;  GdkDragContextPrivate *private;  while (tmp_list)    {      context = (GdkDragContext *)tmp_list->data;      private = GDK_DRAG_CONTEXT_PRIVATE_DATA (context);      if ((!context->is_source == !is_source) &&	  ((source == NULL) || (context->source_window && (context->source_window == source))) &&	  ((dest == NULL) || (context->dest_window && (context->dest_window == dest))))	  return context;            tmp_list = tmp_list->next;    }    return NULL;}/************************************************************* ************************** Public API *********************** *************************************************************/void_gdk_dnd_init (void){}/* Source side */static voidlocal_send_leave (GdkDragContext  *context,		  guint32          time){  GdkEvent tmp_event;    if ((current_dest_drag != NULL) &&      (current_dest_drag->protocol == GDK_DRAG_PROTO_LOCAL) &&      (current_dest_drag->source_window == context->source_window))    {      tmp_event.dnd.type = GDK_DRAG_LEAVE;      tmp_event.dnd.window = context->dest_window;      /* Pass ownership of context to the event */      tmp_event.dnd.context = current_dest_drag;      tmp_event.dnd.send_event = FALSE;      tmp_event.dnd.time = GDK_CURRENT_TIME; /* FIXME? */      current_dest_drag = NULL;            gdk_event_put (&tmp_event);    }  }static voidlocal_send_enter (GdkDragContext  *context,		  guint32          time){  GdkEvent tmp_event;  GdkDragContextPrivate *private;  GdkDragContext *new_context;  private = GDK_DRAG_CONTEXT_PRIVATE_DATA (context);    if (!private->local_selection)    private->local_selection = gdk_atom_intern ("LocalDndSelection", FALSE);  if (current_dest_drag != NULL)    {      gdk_drag_context_unref (current_dest_drag);      current_dest_drag = NULL;    }  new_context = gdk_drag_context_new ();  new_context->protocol = GDK_DRAG_PROTO_LOCAL;  new_context->is_source = FALSE;  new_context->source_window = context->source_window;  gdk_window_ref (new_context->source_window);  new_context->dest_window = context->dest_window;  gdk_window_ref (new_context->dest_window);  new_context->targets = g_list_copy (context->targets);  gdk_window_set_events (new_context->source_window,			 gdk_window_get_events (new_context->source_window) |			 GDK_PROPERTY_CHANGE_MASK); new_context->actions = context->actions;  tmp_event.dnd.type = GDK_DRAG_ENTER;  tmp_event.dnd.window = context->dest_window;  tmp_event.dnd.send_event = FALSE;  tmp_event.dnd.context = new_context;  gdk_drag_context_ref (new_context);  tmp_event.dnd.time = GDK_CURRENT_TIME; /* FIXME? */    current_dest_drag = new_context;    (GDK_DRAG_CONTEXT_PRIVATE_DATA (new_context))->local_selection =     private->local_selection;  gdk_event_put (&tmp_event);}static voidlocal_send_motion (GdkDragContext  *context,		    gint            x_root, 		    gint            y_root,		    GdkDragAction   action,		    guint32         time){  GdkEvent tmp_event;    if ((current_dest_drag != NULL) &&      (current_dest_drag->protocol == GDK_DRAG_PROTO_LOCAL) &&      (current_dest_drag->source_window == context->source_window))    {      tmp_event.dnd.type = GDK_DRAG_MOTION;      tmp_event.dnd.window = current_dest_drag->dest_window;      tmp_event.dnd.send_event = FALSE;      tmp_event.dnd.context = current_dest_drag;      gdk_drag_context_ref (current_dest_drag);      tmp_event.dnd.time = time;      current_dest_drag->suggested_action = action;      current_dest_drag->actions = current_dest_drag->suggested_action;      tmp_event.dnd.x_root = x_root;      tmp_event.dnd.y_root = y_root;      (GDK_DRAG_CONTEXT_PRIVATE_DATA (current_dest_drag))->last_x = x_root;      (GDK_DRAG_CONTEXT_PRIVATE_DATA (current_dest_drag))->last_y = y_root;      GDK_DRAG_CONTEXT_PRIVATE_DATA (context)->drag_status = GDK_DRAG_STATUS_MOTION_WAIT;            gdk_event_put (&tmp_event);    }}static voidlocal_send_drop (GdkDragContext *context, guint32 time){  GdkEvent tmp_event;    if ((current_dest_drag != NULL) &&      (current_dest_drag->protocol == GDK_DRAG_PROTO_LOCAL) &&      (current_dest_drag->source_window == context->source_window))    {      GdkDragContextPrivate *private;      private = GDK_DRAG_CONTEXT_PRIVATE_DATA (current_dest_drag);      tmp_event.dnd.type = GDK_DROP_START;      tmp_event.dnd.window = current_dest_drag->dest_window;      tmp_event.dnd.send_event = FALSE;      tmp_event.dnd.context = current_dest_drag;      gdk_drag_context_ref (current_dest_drag);      tmp_event.dnd.time = GDK_CURRENT_TIME;            tmp_event.dnd.x_root = private->last_x;      tmp_event.dnd.y_root = private->last_y;            gdk_event_put (&tmp_event);    }}static voidgdk_drag_do_leave (GdkDragContext *context, guint32 time){  if (context->dest_window)    {      switch (context->protocol)	{	case GDK_DRAG_PROTO_LOCAL:	  local_send_leave (context, time);	  break;	default:	  break;	}      gdk_window_unref (context->dest_window);      context->dest_window = NULL;    }}GdkDragContext * gdk_drag_begin (GdkWindow     *window,		GList         *targets){  GList *tmp_list;  GdkDragContext *new_context;  g_return_val_if_fail (window != NULL, NULL);  new_context = gdk_drag_context_new ();  new_context->is_source = TRUE;  new_context->source_window = window;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩伦理av电影| 精品999在线播放| 一区二区三区不卡视频在线观看| 成人av第一页| 伊人色综合久久天天| 欧美午夜免费电影| 日韩黄色免费网站| 欧美第一区第二区| 国产不卡在线播放| 一区二区三区日韩欧美| 91麻豆精品91久久久久同性| 久久99蜜桃精品| 国产精品久久久久影院亚瑟| 91免费观看视频在线| 婷婷亚洲久悠悠色悠在线播放| 欧美一级黄色片| 成人一级片网址| 一区av在线播放| 欧美sm极限捆绑bd| av影院午夜一区| 亚洲第一狼人社区| 国产日本欧洲亚洲| 欧洲精品中文字幕| 久久不见久久见免费视频7 | 国产成人精品亚洲777人妖| 国产精品国产自产拍高清av| 在线亚洲高清视频| 精品一区二区三区免费观看 | 综合分类小说区另类春色亚洲小说欧美| 一本大道久久a久久精二百| 日韩中文字幕一区二区三区| 久久精品欧美日韩精品| 欧日韩精品视频| 国精产品一区一区三区mba桃花 | 国产精品少妇自拍| 3751色影院一区二区三区| 粉嫩在线一区二区三区视频| 天天av天天翘天天综合网色鬼国产| 26uuu亚洲综合色欧美 | 99久久婷婷国产综合精品电影| 天堂成人国产精品一区| 国产精品麻豆久久久| 日韩一区二区三免费高清| 91在线丨porny丨国产| 国产在线播放一区二区三区| 午夜欧美视频在线观看| 夜夜嗨av一区二区三区网页| 久久久久久久网| 在线播放中文一区| 一本到三区不卡视频| 国产精品99久久久久久似苏梦涵| 视频精品一区二区| 亚洲精品美腿丝袜| 国产精品久久三| 国产亚洲精品免费| 欧美成人三级电影在线| 欧美在线免费视屏| 色婷婷综合久久久中文一区二区| 国产在线视频精品一区| 蜜桃一区二区三区四区| 天天色图综合网| 亚洲第一综合色| 亚洲在线观看免费视频| 亚洲欧美日韩国产中文在线| 亚洲国产精品v| 精品国产麻豆免费人成网站| 欧美精品久久天天躁| 欧美色图在线观看| 欧美吞精做爰啪啪高潮| 欧美亚洲国产怡红院影院| 色噜噜狠狠色综合欧洲selulu| 国产91精品精华液一区二区三区| 精品无码三级在线观看视频| 老司机精品视频导航| 久久精品国产精品亚洲精品| 免费观看在线综合色| 日本中文在线一区| 日韩二区三区在线观看| 日韩电影在线观看电影| 蜜臀久久99精品久久久久久9| 青草国产精品久久久久久| 蜜桃一区二区三区在线| 久久国产婷婷国产香蕉| 国产精品亚洲综合一区在线观看| 激情综合五月婷婷| 国产精品自在在线| 成人午夜av影视| 99re热视频这里只精品| 91免费视频观看| 欧美日韩国产免费一区二区 | 国产精品影视在线观看| 国产电影一区在线| www.亚洲色图.com| 欧美在线观看禁18| 日韩精品一区二区三区在线播放 | 久久99精品国产麻豆婷婷| 国产伦精一区二区三区| jlzzjlzz欧美大全| 色88888久久久久久影院野外| 欧美日韩一级大片网址| 日韩精品影音先锋| 国产精品免费视频观看| 亚洲制服丝袜av| 美国十次综合导航| 丁香啪啪综合成人亚洲小说 | 日本怡春院一区二区| 狠狠色丁香婷婷综合| 成人av午夜影院| 欧美日韩在线播放一区| 精品剧情v国产在线观看在线| 国产日韩影视精品| 亚洲一区二区三区视频在线| 免费人成黄页网站在线一区二区 | 99re视频精品| 日韩一区二区三区精品视频| 国产精品二三区| 青青草成人在线观看| 99精品视频在线免费观看| 91.麻豆视频| 国产精品理伦片| 免费看日韩精品| 99久久er热在这里只有精品15| 欧美二区乱c少妇| 国产欧美一区二区精品仙草咪| 亚州成人在线电影| kk眼镜猥琐国模调教系列一区二区| 91精品久久久久久蜜臀| 成人免费在线播放视频| 韩国女主播一区| 欧美视频一区二区在线观看| 亚洲综合丁香婷婷六月香| 国产成人av在线影院| 欧美性感一区二区三区| 久久一日本道色综合| 日韩成人伦理电影在线观看| 色综合中文综合网| 91精品一区二区三区久久久久久 | 欧美日韩久久久| 亚洲欧洲一区二区在线播放| 激情成人午夜视频| 欧美人xxxx| 亚洲你懂的在线视频| 国产91丝袜在线播放九色| 欧美一区二区黄| 亚洲综合小说图片| 99热国产精品| 日本一区二区三区四区在线视频| 精品一区二区三区av| 欧美一级视频精品观看| 亚洲一区二区三区在线看| 97精品久久久午夜一区二区三区| 久久久不卡影院| 国内精品在线播放| 日韩欧美一级精品久久| 日韩国产欧美在线观看| 欧美三级电影一区| 亚洲免费电影在线| 99精品欧美一区二区蜜桃免费| 中文字幕乱码一区二区免费| 国产一区二区三区黄视频| 精品盗摄一区二区三区| 国精产品一区一区三区mba桃花 | 欧美最新大片在线看| 亚洲柠檬福利资源导航| 91久久香蕉国产日韩欧美9色| 亚洲免费在线视频一区 二区| 99视频在线精品| 综合亚洲深深色噜噜狠狠网站| 成人小视频在线观看| 国产精品污污网站在线观看| 成人免费看片app下载| 国产精品成人在线观看| av网站一区二区三区| 亚洲精品少妇30p| 欧美三级资源在线| 日韩精品高清不卡| 精品电影一区二区| 国产.欧美.日韩| 亚洲视频一二三| 欧美在线一区二区三区| 日韩成人dvd| 久久久久久久久久看片| 成人成人成人在线视频| 亚洲精品ww久久久久久p站| 91精品国产综合久久久久| 美脚の诱脚舐め脚责91| 国产日韩欧美精品电影三级在线| av亚洲精华国产精华| 亚洲一区av在线| 欧美xxxxxxxxx| 成人av在线播放网址| 亚洲综合无码一区二区| 日韩一区二区在线观看视频播放| 国产一区二区精品在线观看| 亚洲国产精品成人综合色在线婷婷| 一本到不卡免费一区二区| 日韩激情av在线| 国产精品色眯眯| 7777精品伊人久久久大香线蕉完整版 | 成人免费看黄yyy456|