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

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

?? gdkdnd-win32.c

?? linux下電話本所依賴的一些圖形庫
?? C
?? 第 1 頁 / 共 3 頁
字號:
      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))    {      GdkDragContextPrivateWin32 *private;      private = GDK_DRAG_CONTEXT_PRIVATE_DATA (current_dest_drag);      /* Pass ownership of context to the event */      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;      tmp_event.dnd.time = GDK_CURRENT_TIME;            tmp_event.dnd.x_root = private->last_x;      tmp_event.dnd.y_root = private->last_y;            current_dest_drag = NULL;      gdk_event_put (&tmp_event);    }}static voidgdk_drag_do_leave (GdkDragContext *context,		   guint32         time){  if (context->dest_window)    {      GDK_NOTE (DND, g_print ("gdk_drag_do_leave\n"));      switch (context->protocol)	{	case GDK_DRAG_PROTO_LOCAL:	  local_send_leave (context, time);	  break;	default:	  break;	}      g_object_unref (context->dest_window);      context->dest_window = NULL;    }}GdkDragContext * gdk_drag_begin (GdkWindow *window,		GList     *targets){#ifndef OLE2_DND  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;  g_object_ref (window);  tmp_list = g_list_last (targets);  new_context->targets = NULL;  while (tmp_list)    {      new_context->targets = g_list_prepend (new_context->targets,					     tmp_list->data);      tmp_list = tmp_list->prev;    }  new_context->actions = 0;  return new_context;#else  source_drag_context *ctx;  GList *tmp_list;  data_object *dobj;  HRESULT hResult;  DWORD dwEffect;  HGLOBAL global;  STGMEDIUM medium;  g_return_val_if_fail (window != NULL, NULL);  GDK_NOTE (DND, g_print ("gdk_drag_begin\n"));  ctx = source_context_new ();  ctx->context->protocol = GDK_DRAG_PROTO_OLE2;  ctx->context->source_window = window;  g_object_ref (window);  tmp_list = g_list_last (targets);  ctx->context->targets = NULL;  while (tmp_list)    {      ctx->context->targets = g_list_prepend (ctx->context->targets,					      tmp_list->data);      tmp_list = tmp_list->prev;    }  ctx->context->actions = 0;  dobj = data_object_new ();  global = GlobalAlloc (GMEM_FIXED, sizeof (ctx));  memcpy (&global, ctx, sizeof (ctx));  medium.tymed = TYMED_HGLOBAL;  medium.hGlobal = global;  medium.pUnkForRelease = NULL;  dobj->ido.lpVtbl->SetData (&dobj->ido, &formats[1], &medium, TRUE);  hResult = DoDragDrop (&dobj->ido, &ctx->ids, DROPEFFECT_MOVE|DROPEFFECT_COPY, &dwEffect);  GDK_NOTE (DND, g_print ("DoDragDrop returned %s\n",			  (hResult == DRAGDROP_S_DROP ? "DRAGDROP_S_DROP" :			   (hResult == DRAGDROP_S_CANCEL ? "DRAGDROP_S_CANCEL" :			    (hResult == E_UNEXPECTED ? "E_UNEXPECTED" :			     g_strdup_printf ("%#.8lx", hResult))))));  dobj->ido.lpVtbl->Release (&dobj->ido);  ctx->ids.lpVtbl->Release (&ctx->ids);  return ctx->context;#endif}guint32gdk_drag_get_protocol_for_display (GdkDisplay      *display,				   guint32          xid,				   GdkDragProtocol *protocol){  GdkWindow *window;  GDK_NOTE (DND, g_print ("gdk_drag_get_protocol\n"));  window = gdk_window_lookup (xid);  if (GPOINTER_TO_INT (gdk_drawable_get_data (window, "gdk-dnd-registered")))    {      *protocol = GDK_DRAG_PROTO_LOCAL;      return xid;    }  return 0;}typedef struct {  gint x;  gint y;  HWND ignore;  HWND result;} find_window_enum_arg;static BOOL CALLBACKfind_window_enum_proc (HWND   hwnd,		       LPARAM lparam){  RECT rect;  POINT tl, br;  find_window_enum_arg *a = (find_window_enum_arg *) lparam;  if (hwnd == a->ignore)    return TRUE;  if (!IsWindowVisible (hwnd))    return TRUE;  tl.x = tl.y = 0;  ClientToScreen (hwnd, &tl);  GetClientRect (hwnd, &rect);  br.x = rect.right;  br.y = rect.bottom;  ClientToScreen (hwnd, &br);  if (a->x >= tl.x && a->y >= tl.y && a->x < br.x && a->y < br.y)    {      a->result = hwnd;      return FALSE;    }  else    return TRUE;}voidgdk_drag_find_window_for_screen (GdkDragContext  *context,				 GdkWindow       *drag_window,				 GdkScreen       *screen,				 gint             x_root,				 gint             y_root,				 GdkWindow      **dest_window,				 GdkDragProtocol *protocol){  find_window_enum_arg a;  a.x = x_root - _gdk_offset_x;  a.y = y_root - _gdk_offset_y;  a.ignore = drag_window ? GDK_WINDOW_HWND (drag_window) : NULL;  a.result = NULL;  EnumWindows (find_window_enum_proc, (LPARAM) &a);  if (a.result == NULL)    *dest_window = NULL;  else    {      *dest_window = gdk_win32_handle_table_lookup (GPOINTER_TO_UINT (a.result));      if (*dest_window)	{	  *dest_window = gdk_window_get_toplevel (*dest_window);	  g_object_ref (*dest_window);	}      if (context->source_window)        *protocol = GDK_DRAG_PROTO_LOCAL;      else        *protocol = GDK_DRAG_PROTO_WIN32_DROPFILES;    }  GDK_NOTE (DND,	    g_print ("gdk_drag_find_window: %p +%d+%d: %p: %p %d\n",		     (drag_window ? GDK_WINDOW_HWND (drag_window) : NULL),		     x_root, y_root,		     a.result,		     (*dest_window ? GDK_WINDOW_HWND (*dest_window) : NULL),		     *protocol));}gbooleangdk_drag_motion (GdkDragContext *context,		 GdkWindow      *dest_window,		 GdkDragProtocol protocol,		 gint            x_root, 		 gint            y_root,		 GdkDragAction   suggested_action,		 GdkDragAction   possible_actions,		 guint32         time){  GdkDragContextPrivateWin32 *private;  g_return_val_if_fail (context != NULL, FALSE);  GDK_NOTE (DND, g_print ("gdk_drag_motion\n"));  private = GDK_DRAG_CONTEXT_PRIVATE_DATA (context);    if (context->dest_window != dest_window)    {      GdkEvent temp_event;      /* Send a leave to the last destination */      gdk_drag_do_leave (context, time);      private->drag_status = GDK_DRAG_STATUS_DRAG;      /* Check if new destination accepts drags, and which protocol */      if (dest_window)	{	  context->dest_window = dest_window;	  g_object_ref (context->dest_window);	  context->protocol = protocol;	  switch (protocol)	    {	    case GDK_DRAG_PROTO_LOCAL:	      local_send_enter (context, time);	      break;	    default:	      break;	    }	  context->suggested_action = suggested_action;	}      else	{	  context->dest_window = NULL;	  context->action = 0;	}      /* Push a status event, to let the client know that       * the drag changed        */      temp_event.dnd.type = GDK_DRAG_STATUS;      temp_event.dnd.window = context->source_window;      /* We use this to signal a synthetic status. Perhaps       * we should use an extra field...       */      temp_event.dnd.send_event = TRUE;      temp_event.dnd.context = context;      temp_event.dnd.time = time;      gdk_event_put (&temp_event);    }  else    {      context->suggested_action = suggested_action;    }  /* Send a drag-motion event */  private->last_x = x_root;  private->last_y = y_root;        if (context->dest_window)    {      if (private->drag_status == GDK_DRAG_STATUS_DRAG)	{	  switch (context->protocol)	    {	    case GDK_DRAG_PROTO_LOCAL:	      local_send_motion (context, x_root, y_root, suggested_action, time);	      break;	      	    case GDK_DRAG_PROTO_NONE:	      g_warning ("GDK_DRAG_PROTO_NONE is not valid in gdk_drag_motion()");	      break;	    default:	      break;	    }	}      else	return TRUE;    }  return FALSE;}voidgdk_drag_drop (GdkDragContext *context,	       guint32         time){  g_return_if_fail (context != NULL);  GDK_NOTE (DND, g_print ("gdk_drag_drop\n"));  if (context->dest_window)    {      switch (context->protocol)	{	case GDK_DRAG_PROTO_LOCAL:	  local_send_drop (context, time);	  break;	case GDK_DRAG_PROTO_NONE:	  g_warning ("GDK_DRAG_PROTO_NONE is not valid in gdk_drag_drop()");	  break;	default:	  break;	}    }}voidgdk_drag_abort (GdkDragContext *context,		guint32         time){  g_return_if_fail (context != NULL);  GDK_NOTE (DND, g_print ("gdk_drag_abort\n"));  gdk_drag_do_leave (context, time);}/* Destination side */voidgdk_drag_status (GdkDragContext *context,		 GdkDragAction   action,		 guint32         time){  GdkDragContextPrivateWin32 *private;  GdkDragContext *src_context;  GdkEvent tmp_event;  g_return_if_fail (context != NULL);  private = GDK_DRAG_CONTEXT_PRIVATE_DATA (context);  context->action = action;  src_context = gdk_drag_context_find (TRUE,				       context->source_window,				       context->dest_window);  if (src_context)    {      GdkDragContextPrivateWin32 *private = GDK_DRAG_CONTEXT_PRIVATE_DATA (src_context);            if (private->drag_status == GDK_DRAG_STATUS_MOTION_WAIT)	private->drag_status = GDK_DRAG_STATUS_DRAG;      tmp_event.dnd.type = GDK_DRAG_STATUS;      tmp_event.dnd.window = context->source_window;      tmp_event.dnd.send_event = FALSE;      tmp_event.dnd.context = src_context;      tmp_event.dnd.time = GDK_CURRENT_TIME; /* FIXME? */      if (action == GDK_ACTION_DEFAULT)	action = 0;            src_context->action = action;            gdk_event_put (&tmp_event);    }}void gdk_drop_reply (GdkDragContext *context,		gboolean        ok,		guint32         time){  g_return_if_fail (context != NULL);  GDK_NOTE (DND, g_print ("gdk_drop_reply\n"));  if (context->dest_window)    {      switch (context->protocol)	{	case GDK_DRAG_PROTO_WIN32_DROPFILES:	  _gdk_dropfiles_store (NULL);	  break;	default:	  break;	}    }}voidgdk_drop_finish (GdkDragContext *context,		 gboolean        success,		 guint32         time){  GdkDragContextPrivateWin32 *private;  GdkDragContext *src_context;  GdkEvent tmp_event;	  g_return_if_fail (context != NULL);  GDK_NOTE (DND, g_print ("gdk_drop_finish"));  private = GDK_DRAG_CONTEXT_PRIVATE_DATA (context);  src_context = gdk_drag_context_find (TRUE,				       context->source_window,				       context->dest_window);  if (src_context)    {      tmp_event.dnd.type = GDK_DROP_FINISHED;      tmp_event.dnd.window = src_context->source_window;      tmp_event.dnd.send_event = FALSE;      tmp_event.dnd.context = src_context;      gdk_event_put (&tmp_event);    }}#ifdef OLE2_DNDstatic GdkFilterReturngdk_destroy_filter (GdkXEvent *xev,		    GdkEvent  *event,		    gpointer   data){  MSG *msg = (MSG *) xev;  if (msg->message == WM_DESTROY)    {      IDropTarget *idtp = (IDropTarget *) data;      GDK_NOTE (DND, g_print ("gdk_destroy_filter: WM_DESTROY: %p\n", msg->hwnd));#if 0      idtp->lpVtbl->Release (idtp);#endif      RevokeDragDrop (msg->hwnd);      CoLockObjectExternal (idtp, FALSE, TRUE);    }  return GDK_FILTER_CONTINUE;}#endifvoidgdk_window_register_dnd (GdkWindow *window){#ifdef OLE2_DND  target_drag_context *ctx;  HRESULT hres;#endif  g_return_if_fail (window != NULL);  if (GPOINTER_TO_INT (gdk_drawable_get_data (window, "gdk-dnd-registered")))    return;  gdk_drawable_set_data (window, "gdk-dnd-registered", GINT_TO_POINTER(TRUE), NULL);  GDK_NOTE (DND, g_print ("gdk_window_register_dnd: %p\n",			  GDK_WINDOW_HWND (window)));  /* We always claim to accept dropped files, but in fact we might not,   * of course. This function is called in such a way that it cannot know   * whether the window (widget) in question actually accepts files   * (in gtk, data of type text/uri-list) or not.   */  gdk_window_add_filter (window, gdk_dropfiles_filter, NULL);  DragAcceptFiles (GDK_WINDOW_HWND (window), TRUE);#ifdef OLE2_DND  /* Register for OLE2 d&d */  ctx = target_context_new ();  ctx->context->protocol = GDK_DRAG_PROTO_OLE2;  hres = CoLockObjectExternal ((IUnknown *) &ctx->idt, TRUE, FALSE);  if (!SUCCEEDED (hres))    OTHER_API_FAILED ("CoLockObjectExternal");  else    {      hres = RegisterDragDrop (GDK_WINDOW_HWND (window), &ctx->idt);      if (hres == DRAGDROP_E_ALREADYREGISTERED)	{	  g_print ("DRAGDROP_E_ALREADYREGISTERED\n");#if 0	  ctx->idt.lpVtbl->Release (&ctx->idt);#endif	  CoLockObjectExternal ((IUnknown *) &ctx->idt, FALSE, FALSE);	}      else if (!SUCCEEDED (hres))	OTHER_API_FAILED ("RegisterDragDrop");      else	{	  gdk_window_add_filter (window, gdk_destroy_filter, &ctx->idt);	}    }#endif}/************************************************************* * gdk_drag_get_selection: *     Returns the selection atom for the current source window *   arguments: * *   results: *************************************************************/GdkAtomgdk_drag_get_selection (GdkDragContext *context){  if (context->protocol == GDK_DRAG_PROTO_LOCAL)    return _local_dnd;  else if (context->protocol == GDK_DRAG_PROTO_WIN32_DROPFILES)    return _gdk_win32_dropfiles;  else if (context->protocol == GDK_DRAG_PROTO_OLE2)    return _gdk_ole2_dnd;  else    return GDK_NONE;}gboolean gdk_drag_drop_succeeded (GdkDragContext *context){  GdkDragContextPrivateWin32 *private;  g_return_val_if_fail (context != NULL, FALSE);  private = GDK_DRAG_CONTEXT_PRIVATE_DATA (context);  /* FIXME: Can we set drop_failed when the drop has failed? */  return !private->drop_failed;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品黑人一区二区三区久久| 一区二区三区中文字幕电影 | 91蜜桃免费观看视频| 福利一区二区在线观看| 国精品**一区二区三区在线蜜桃| 波多野结衣精品在线| 制服丝袜成人动漫| 最新久久zyz资源站| 精品中文字幕一区二区| 欧洲亚洲精品在线| 欧美激情一区二区三区不卡| 久草这里只有精品视频| 欧美影视一区在线| 亚洲乱码一区二区三区在线观看| 国产精品一区二区男女羞羞无遮挡| 欧美日韩国产乱码电影| 夜夜嗨av一区二区三区四季av| 成人激情午夜影院| 欧美国产禁国产网站cc| 国产在线视频精品一区| 91精品国产综合久久国产大片 | 国产精品久久久久久久久免费相片| 日韩精品电影在线观看| 欧美色偷偷大香| 亚洲精品久久久蜜桃| 97精品久久久午夜一区二区三区| 国产精品欧美精品| 成人午夜激情在线| 欧美国产禁国产网站cc| 99在线视频精品| 国产女同互慰高潮91漫画| 国产老妇另类xxxxx| 亚洲精品在线免费观看视频| 精品在线一区二区| 国产日韩欧美高清| av在线综合网| 亚洲线精品一区二区三区 | 成人av片在线观看| 亚洲免费三区一区二区| 色哟哟一区二区在线观看| 一区二区三区 在线观看视频 | 成人动漫一区二区| 亚洲欧洲三级电影| 日本乱人伦aⅴ精品| 一区二区三区欧美| 欧美一区午夜精品| 国产一区二区电影| 中文字幕日本乱码精品影院| 色综合亚洲欧洲| 午夜精品久久久久久久| 日韩欧美高清dvd碟片| 国产黄色成人av| 亚洲日本va午夜在线影院| 色中色一区二区| 久久精品国产亚洲一区二区三区| 亚洲精品一区二区三区福利| 波多野结衣在线aⅴ中文字幕不卡| 日韩毛片精品高清免费| 欧美日韩精品一区视频| 国产毛片一区二区| 亚洲三级理论片| 欧美一区二区福利在线| 丁香桃色午夜亚洲一区二区三区| 亚洲综合激情网| 精品日韩一区二区| 一本久久a久久免费精品不卡| 日韩制服丝袜先锋影音| 日本一区二区视频在线| 在线成人小视频| 成人国产精品免费观看视频| 午夜精品久久久久影视| 国产精品蜜臀av| 日韩欧美中文字幕公布| 色域天天综合网| 国产福利一区二区| 日韩经典一区二区| 中文字幕一区在线观看| 日韩欧美区一区二| 在线亚洲一区二区| 经典三级在线一区| 亚洲va欧美va人人爽午夜| 中文在线资源观看网站视频免费不卡| 91福利精品视频| 国产91精品在线观看| 日韩精品每日更新| 一区二区三区视频在线看| 欧美国产在线观看| 亚洲精品一区二区三区99| 欧美精品一级二级| 欧美视频在线一区| 成人综合激情网| 韩国精品在线观看| 亚洲mv大片欧洲mv大片精品| 亚洲免费在线播放| 综合色中文字幕| 国产欧美日韩不卡免费| 欧美mv和日韩mv国产网站| 欧美日韩电影在线| 欧美亚洲一区三区| 色欧美日韩亚洲| 色综合天天视频在线观看| 国产超碰在线一区| 国产一区高清在线| 韩国午夜理伦三级不卡影院| 久久91精品久久久久久秒播| 日本强好片久久久久久aaa| 五月天婷婷综合| 亚洲成av人片在线观看| 亚洲二区在线观看| 亚洲成人动漫在线免费观看| 亚洲高清免费一级二级三级| 一区二区三区中文字幕电影| 亚洲黄网站在线观看| 一区二区三区日韩精品视频| 亚洲美女视频一区| 亚洲一区二区高清| 亚洲国产精品欧美一二99| 亚洲第一综合色| 日韩精品亚洲专区| 美女网站一区二区| 久久精品国产亚洲5555| 国内外成人在线| 国产成人亚洲综合a∨婷婷| 国产成人精品免费在线| yourporn久久国产精品| 99免费精品视频| 在线观看亚洲a| 欧美嫩在线观看| 精品国产3级a| 国产精品国产三级国产aⅴ中文| 国产精品不卡在线观看| 亚洲精品欧美二区三区中文字幕| 一区二区三区国产| 日本成人在线电影网| 狠狠色丁香久久婷婷综合_中| 国产成人av电影在线| 欧洲国产伦久久久久久久| 777色狠狠一区二区三区| 欧美xxxxx牲另类人与| 欧美高清在线一区| 亚洲香肠在线观看| 国内欧美视频一区二区| 99国产精品久久| 51精品国自产在线| 国产欧美日韩另类视频免费观看 | 日本韩国一区二区三区视频| 欧美日韩国产一区| 久久久久久久免费视频了| 亚洲精品国产一区二区精华液| 亚洲成人一区二区在线观看| 久久99精品国产麻豆婷婷洗澡| av一二三不卡影片| 欧美一区二区三区日韩视频| 欧美激情资源网| 丝袜脚交一区二区| 成人激情电影免费在线观看| 91麻豆精品国产91久久久久| 亚洲国产精品av| 日本三级亚洲精品| 色一情一乱一乱一91av| 欧美成人video| 亚洲午夜久久久久中文字幕久| 国产精品一区二区黑丝| 欧美日韩免费一区二区三区 | 精品奇米国产一区二区三区| 亚洲免费色视频| 国产精品 日产精品 欧美精品| 欧美性欧美巨大黑白大战| 国产人成一区二区三区影院| 日韩主播视频在线| 色综合久久久久综合体桃花网| 欧美成人激情免费网| 香蕉成人啪国产精品视频综合网| 麻豆精品一区二区综合av| 欧美午夜不卡视频| 国产日韩av一区二区| 看国产成人h片视频| 欧美色图天堂网| 亚洲免费三区一区二区| 国产成人午夜视频| 久久亚洲综合色一区二区三区| 图片区小说区国产精品视频| 99re热这里只有精品免费视频| 日本一区二区三区dvd视频在线| 日本中文字幕一区二区视频| 在线观看av一区| 亚洲伊人色欲综合网| 91在线小视频| 中文字幕人成不卡一区| 成人激情开心网| 国产精品毛片高清在线完整版| 黄网站免费久久| 久久久美女毛片| 国产成人亚洲综合a∨婷婷 | 亚洲国产精品久久久久婷婷884 | 中文字幕日韩一区| av亚洲精华国产精华精| ...av二区三区久久精品| 99精品视频在线免费观看| 亚洲狼人国产精品|