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

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

?? 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;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲丰满少妇videoshd| 99re热视频这里只精品| 不卡区在线中文字幕| 日韩一级片网站| 亚洲视频综合在线| 国产精品99久久久| 日韩视频在线你懂得| 一区二区三区高清不卡| 成人午夜看片网址| 久久综合狠狠综合久久综合88| 亚洲一区影音先锋| 91在线国内视频| 欧美激情中文字幕| 激情六月婷婷久久| 欧美一区二区三区四区五区| 亚洲大片一区二区三区| 日本高清成人免费播放| 国产精品天美传媒沈樵| 国产精品亚洲专一区二区三区 | 福利视频网站一区二区三区| 日韩一区二区三区视频在线 | 国产精一区二区三区| 欧美一区永久视频免费观看| 亚洲一线二线三线视频| 色综合天天综合色综合av| 国产亚洲一区二区三区四区| 国产一区二区三区四区五区美女 | 欧美三级在线播放| 尤物av一区二区| 91免费在线播放| 国产精品国产三级国产aⅴ中文 | 久久色中文字幕| 国产一区二区三区观看| 久久久精品国产99久久精品芒果| 国产自产2019最新不卡| 国产亚洲欧美日韩日本| 成人午夜视频在线观看| 亚洲人成影院在线观看| 91成人免费网站| 亚洲国产精品久久久久秋霞影院| 欧美日韩欧美一区二区| 青青草国产精品97视觉盛宴| 日韩女优av电影在线观看| 蜜臀av性久久久久蜜臀aⅴ流畅| 日韩一区二区三区在线| 国产一区欧美一区| 亚洲欧美一区二区不卡| 欧美日韩视频在线第一区 | 精品国产亚洲在线| 国产aⅴ精品一区二区三区色成熟| 国产欧美一二三区| 91丝袜呻吟高潮美腿白嫩在线观看| 亚洲乱码中文字幕| 在线不卡一区二区| 国产精品99久久久久久久女警| 一区在线观看免费| 欧美猛男男办公室激情| 精品一二三四区| 亚洲欧美日韩国产中文在线| 欧美伦理电影网| 国产精品亚洲第一| 亚洲综合色丁香婷婷六月图片| 日韩欧美在线网站| 91欧美激情一区二区三区成人| 日韩影院精彩在线| 久久精品亚洲精品国产欧美kt∨| 99久久免费视频.com| 婷婷国产v国产偷v亚洲高清| 国产丝袜美腿一区二区三区| 欧美三日本三级三级在线播放| 激情欧美日韩一区二区| 亚洲影院理伦片| 国产日韩欧美高清在线| 欧美精品三级日韩久久| 成人动漫精品一区二区| 蜜桃视频一区二区三区| 亚洲精品中文字幕在线观看| 精品久久一区二区| 欧美性色黄大片| 丰满白嫩尤物一区二区| 蜜臀a∨国产成人精品| 亚洲人成人一区二区在线观看| 欧美一区二区视频在线观看2022 | 欧美日本乱大交xxxxx| 国产99久久久国产精品潘金| 日本欧美一区二区在线观看| 中文字幕一区二区三区乱码在线| 日韩欧美精品在线| 欧美日韩专区在线| 99久久99精品久久久久久| 国产一区二区精品久久91| 亚洲成人三级小说| 一区二区三区四区激情| 日本一区二区三区四区在线视频 | 欧美成人女星排名| 欧美亚洲高清一区| 色综合天天综合在线视频| 国产成人免费网站| 韩日av一区二区| 蜜桃av一区二区三区电影| 天天免费综合色| 亚洲成在线观看| 亚洲成人免费在线| 亚洲高清一区二区三区| 亚洲韩国一区二区三区| 亚洲免费在线观看视频| 中文字幕在线观看不卡| 成人免费视频在线观看| 国产精品黄色在线观看| 国产精品久久久久久妇女6080 | 成人av集中营| 成人免费va视频| 99久久精品国产一区二区三区| 成人亚洲精品久久久久软件| 成人天堂资源www在线| 国产一区二区三区观看| 国产盗摄女厕一区二区三区| 懂色av一区二区三区免费看| 丁香另类激情小说| 91麻豆精品视频| 在线看不卡av| 欧美一区在线视频| 欧美精品一区在线观看| 日本一区二区高清| 成人免费在线视频| 亚洲福利视频一区| 男人的天堂久久精品| 国内国产精品久久| 成人高清免费观看| 欧美在线一二三| 91精品国产综合久久国产大片| 欧美一级欧美三级| 久久久久高清精品| 亚洲欧美一区二区不卡| 天天做天天摸天天爽国产一区 | 日韩一区精品视频| 精品午夜一区二区三区在线观看| 国产精品一二三区在线| 日本乱码高清不卡字幕| 正在播放亚洲一区| 久久久久国产精品人| 亚洲色大成网站www久久九九| 亚洲福中文字幕伊人影院| 另类综合日韩欧美亚洲| 成人性生交大片免费| 欧美久久一二区| 国产欧美视频一区二区| 亚洲午夜精品一区二区三区他趣| 久久精品国产色蜜蜜麻豆| 春色校园综合激情亚洲| 欧美日韩国产成人在线免费| 国产欧美精品在线观看| 亚洲靠逼com| 久久疯狂做爰流白浆xx| 韩国一区二区三区| 99精品视频免费在线观看| 成人美女视频在线观看18| 在线不卡免费欧美| 亚洲国产精品激情在线观看| 亚洲免费观看高清完整版在线 | 久久在线观看免费| 亚洲一区二区三区不卡国产欧美| 日韩精品视频网| 国产一区日韩二区欧美三区| 丰满岳乱妇一区二区三区| 欧美一区二区免费视频| 中文字幕高清不卡| 图片区小说区区亚洲影院| 国产精品亚洲成人| 欧美日韩成人在线一区| 国产农村妇女精品| 日韩影院免费视频| 欧美午夜精品一区二区三区| 精品毛片乱码1区2区3区| 亚洲品质自拍视频| 国产一区二区三区香蕉| 欧美一级专区免费大片| 成人免费小视频| 激情六月婷婷久久| 国产成a人亚洲| 久久免费国产精品| 性做久久久久久| 波多野结衣亚洲一区| 久久久久久久久久看片| 午夜欧美视频在线观看| 99精品久久只有精品| 欧美伦理影视网| 日日夜夜免费精品视频| 99热在这里有精品免费| 精品欧美一区二区在线观看| 天堂蜜桃一区二区三区| 91美女在线看| 国产亚洲精品中文字幕| 久久精品国产网站| 91麻豆精品国产91久久久久久| 国产精品久久午夜| 国产一区二区调教| 欧美v亚洲v综合ⅴ国产v| 久久国产综合精品| 91精品一区二区三区久久久久久|