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

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

?? gdkinput.c

?? linux下電話本所依賴的一些圖形庫
?? C
字號:
/* 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/.  *//* This file should really be one level up, in the backend-independent * GDK, and the x11/gdkinput.c could also be removed. *  * That stuff in x11/gdkinput.c which really *is* X11-dependent should * be in x11/gdkinput-x11.c. */#include <config.h>#include "gdkdisplay.h"#include "gdkinput.h"#include "gdkprivate.h"/* When ther necessary stuff is in * gdkinput.h, gdkinternals.h and * gdkprivate.h, these includes shouldn't be here. */#include <windows.h>#ifdef HAVE_WINTAB#include <wintab.h>#endif#include "gdkinput-win32.h"static GdkDeviceAxis gdk_input_core_axes[] = {  { GDK_AXIS_X, 0, 0 },  { GDK_AXIS_Y, 0, 0 }};/* Global variables  */gint              _gdk_input_ignore_core;GList            *_gdk_input_devices;GList            *_gdk_input_windows;void_gdk_init_input_core (GdkDisplay *display){  display->core_pointer = g_object_new (GDK_TYPE_DEVICE, NULL);    display->core_pointer->name = "Core Pointer";  display->core_pointer->source = GDK_SOURCE_MOUSE;  display->core_pointer->mode = GDK_MODE_SCREEN;  display->core_pointer->has_cursor = TRUE;  display->core_pointer->num_axes = 2;  display->core_pointer->axes = gdk_input_core_axes;  display->core_pointer->num_keys = 0;  display->core_pointer->keys = NULL;}static voidgdk_device_finalize (GObject *object){  g_error ("A GdkDevice object was finalized. This should not happen");}static voidgdk_device_class_init (GObjectClass *class){  class->finalize = gdk_device_finalize;}GTypegdk_device_get_type (void){  static GType object_type = 0;  if (!object_type)    {      static const GTypeInfo object_info =      {        sizeof (GdkDeviceClass),        (GBaseInitFunc) NULL,        (GBaseFinalizeFunc) NULL,        (GClassInitFunc) gdk_device_class_init,        NULL,           /* class_finalize */        NULL,           /* class_data */        sizeof (GdkDevicePrivate),        0,              /* n_preallocs */        (GInstanceInitFunc) NULL,      };            object_type = g_type_register_static (G_TYPE_OBJECT,                                            "GdkDevice",                                            &object_info, 0);    }    return object_type;}GList *gdk_devices_list (void){#ifdef HAVE_WINTAB  _gdk_input_wintab_init_check ();#endif /* HAVE_WINTAB */  return _gdk_input_devices;}GList *gdk_display_list_devices (GdkDisplay *dpy){#ifdef HAVE_WINTAB  _gdk_input_wintab_init_check ();#endif /* HAVE_WINTAB */  return _gdk_input_devices;}voidgdk_device_set_source (GdkDevice      *device,		       GdkInputSource  source){  g_return_if_fail (device != NULL);  device->source = source;}voidgdk_device_set_key (GdkDevice      *device,		    guint           index,		    guint           keyval,		    GdkModifierType modifiers){  g_return_if_fail (device != NULL);  g_return_if_fail (index < device->num_keys);  device->keys[index].keyval = keyval;  device->keys[index].modifiers = modifiers;}voidgdk_device_set_axis_use (GdkDevice   *device,			 guint        index,			 GdkAxisUse   use){  g_return_if_fail (device != NULL);  g_return_if_fail (index < device->num_axes);  device->axes[index].use = use;  switch (use)    {    case GDK_AXIS_X:    case GDK_AXIS_Y:      device->axes[index].min = 0.;      device->axes[index].max = 0.;      break;    case GDK_AXIS_XTILT:    case GDK_AXIS_YTILT:      device->axes[index].min = -1.;      device->axes[index].max = 1;      break;    default:      device->axes[index].min = 0.;      device->axes[index].max = 1;      break;    }}gbooleangdk_device_get_history  (GdkDevice         *device,			 GdkWindow         *window,			 guint32            start,			 guint32            stop,			 GdkTimeCoord    ***events,			 gint              *n_events){  g_return_val_if_fail (window != NULL, FALSE);  g_return_val_if_fail (GDK_IS_WINDOW (window), FALSE);  g_return_val_if_fail (events != NULL, FALSE);  g_return_val_if_fail (n_events != NULL, FALSE);  if (n_events)    *n_events = 0;  if (events)    *events = NULL;  if (GDK_WINDOW_DESTROYED (window))    return FALSE;      if (GDK_IS_CORE (device))    return FALSE;  else    return _gdk_device_get_history (device, window, start, stop, events, n_events);}GdkTimeCoord ** _gdk_device_allocate_history (GdkDevice *device,			      gint       n_events){  GdkTimeCoord **result = g_new (GdkTimeCoord *, n_events);  gint i;  for (i=0; i<n_events; i++)    result[i] = g_malloc (sizeof (GdkTimeCoord) -			  sizeof (double) * (GDK_MAX_TIMECOORD_AXES - device->num_axes));  return result;}void gdk_device_free_history (GdkTimeCoord **events,			 gint           n_events){  gint i;    for (i=0; i<n_events; i++)    g_free (events[i]);  g_free (events);}GdkInputWindow *_gdk_input_window_find(GdkWindow *window){  GList *tmp_list;  for (tmp_list=_gdk_input_windows; tmp_list; tmp_list=tmp_list->next)    if (((GdkInputWindow *)(tmp_list->data))->window == window)      return (GdkInputWindow *)(tmp_list->data);  return NULL;      /* Not found */}/* FIXME: this routine currently needs to be called between creation   and the corresponding configure event (because it doesn't get the   root_relative_geometry).  This should work with   gtk_window_set_extension_events, but will likely fail in other   cases */voidgdk_input_set_extension_events (GdkWindow *window, gint mask,				GdkExtensionMode mode){  GdkWindowObject *window_private;  GList *tmp_list;  GdkInputWindow *iw;  g_return_if_fail (window != NULL);  g_return_if_fail (GDK_IS_WINDOW (window));  window_private = (GdkWindowObject*) window;  if (GDK_WINDOW_DESTROYED (window))    return;  if (mode == GDK_EXTENSION_EVENTS_NONE)    mask = 0;  if (mask != 0)    {#ifdef HAVE_WINTAB      _gdk_input_wintab_init_check ();#endif /* HAVE_WINTAB */      iw = g_new(GdkInputWindow,1);      iw->window = window;      iw->mode = mode;      iw->obscuring = NULL;      iw->num_obscuring = 0;      iw->grabbed = FALSE;      _gdk_input_windows = g_list_append(_gdk_input_windows,iw);      window_private->extension_events = mask;      /* Add enter window events to the event mask */      if (g_list_length (_gdk_input_devices) > 1)	gdk_window_set_events (window,			       gdk_window_get_events (window) | 			       GDK_ENTER_NOTIFY_MASK);    }  else    {      iw = _gdk_input_window_find (window);      if (iw)	{	  _gdk_input_windows = g_list_remove(_gdk_input_windows,iw);	  g_free(iw);	}      window_private->extension_events = 0;    }  for (tmp_list = _gdk_input_devices; tmp_list; tmp_list = tmp_list->next)    {      GdkDevicePrivate *gdkdev = tmp_list->data;      if (!GDK_IS_CORE (gdkdev))	{	  if (mask != 0 && gdkdev->info.mode != GDK_MODE_DISABLED	      && (gdkdev->info.has_cursor || mode == GDK_EXTENSION_EVENTS_ALL))	    _gdk_input_enable_window (window,gdkdev);	  else	    _gdk_input_disable_window (window,gdkdev);	}    }}void_gdk_input_window_destroy (GdkWindow *window){  GdkInputWindow *input_window;  input_window = _gdk_input_window_find (window);  g_return_if_fail (input_window != NULL);  _gdk_input_windows = g_list_remove (_gdk_input_windows,input_window);  g_free(input_window);}void_gdk_input_exit (void){  GList *tmp_list;  GdkDevicePrivate *gdkdev;  for (tmp_list = _gdk_input_devices; tmp_list; tmp_list = tmp_list->next)    {      gdkdev = (GdkDevicePrivate *)(tmp_list->data);      if (!GDK_IS_CORE (gdkdev))	{	  gdk_device_set_mode (&gdkdev->info, GDK_MODE_DISABLED);	  g_free(gdkdev->info.name);	  g_free(gdkdev->axes);	  g_free(gdkdev->info.axes);	  g_free(gdkdev->info.keys);	  g_free(gdkdev);	}    }  g_list_free(_gdk_input_devices);  for (tmp_list = _gdk_input_windows; tmp_list; tmp_list = tmp_list->next)    g_free(tmp_list->data);  g_list_free(_gdk_input_windows);}gbooleangdk_device_get_axis (GdkDevice  *device,		     gdouble    *axes,		     GdkAxisUse  use,		     gdouble    *value){  gint i;    g_return_val_if_fail (device != NULL, FALSE);  if (axes == NULL)    return FALSE;    for (i=0; i<device->num_axes; i++)    if (device->axes[i].use == use)      {	if (value)	  *value = axes[i];	return TRUE;      }    return FALSE;}gbooleangdk_device_set_mode (GdkDevice   *device,		     GdkInputMode mode){  GList *tmp_list;  GdkDevicePrivate *gdkdev;  GdkInputMode old_mode;  GdkInputWindow *input_window;  if (GDK_IS_CORE (device))    return FALSE;  gdkdev = (GdkDevicePrivate *)device;  if (device->mode == mode)    return TRUE;  old_mode = device->mode;  device->mode = mode;  if (mode == GDK_MODE_WINDOW)    {      device->has_cursor = FALSE;      for (tmp_list = _gdk_input_windows; tmp_list; tmp_list = tmp_list->next)	{	  input_window = (GdkInputWindow *)tmp_list->data;	  if (input_window->mode != GDK_EXTENSION_EVENTS_CURSOR)	    _gdk_input_enable_window (input_window->window, gdkdev);	  else	    if (old_mode != GDK_MODE_DISABLED)	      _gdk_input_disable_window (input_window->window, gdkdev);	}    }  else if (mode == GDK_MODE_SCREEN)    {      device->has_cursor = TRUE;      for (tmp_list = _gdk_input_windows; tmp_list; tmp_list = tmp_list->next)	_gdk_input_enable_window (((GdkInputWindow *)tmp_list->data)->window,				  gdkdev);    }  else  /* mode == GDK_MODE_DISABLED */    {      for (tmp_list = _gdk_input_windows; tmp_list; tmp_list = tmp_list->next)	{	  input_window = (GdkInputWindow *)tmp_list->data;	  if (old_mode != GDK_MODE_WINDOW ||	      input_window->mode != GDK_EXTENSION_EVENTS_CURSOR)	    _gdk_input_disable_window (input_window->window, gdkdev);	}    }  return TRUE;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产亚洲a| 99综合影院在线| 国产精品69毛片高清亚洲| 成人网男人的天堂| 成人激情小说乱人伦| 欧美在线视频你懂得| 日韩欧美亚洲另类制服综合在线| 久久精品视频一区二区三区| 亚洲精品国产成人久久av盗摄| 久久se精品一区精品二区| 91在线视频免费观看| 日韩视频一区二区三区在线播放 | 欧美经典一区二区| 综合久久久久久久| 一区二区国产视频| 国产麻豆一精品一av一免费 | 亚洲欧美韩国综合色| 美女一区二区三区| 欧美日韩一卡二卡| 中文字幕一区二区三区av| 蜜臀a∨国产成人精品| 91亚洲国产成人精品一区二三| 日韩欧美二区三区| 亚洲欧洲美洲综合色网| 国产在线精品一区二区三区不卡 | 国产美女在线精品| 欧美午夜精品免费| 国产精品动漫网站| 国产成人午夜电影网| 日韩欧美一二三区| 日韩高清一区二区| 欧美亚洲国产bt| 亚洲综合在线电影| 99久久精品免费精品国产| 国产欧美一区二区三区在线老狼| 一区二区三区色| 不卡电影免费在线播放一区| 精品国产一区二区三区久久久蜜月| 亚洲1区2区3区4区| 欧美三级中文字幕在线观看| 亚洲色图在线播放| 99re这里只有精品视频首页| 国产精品视频麻豆| 成人教育av在线| 亚洲欧美综合色| av亚洲精华国产精华精华| 欧美精品一区在线观看| 日本sm残虐另类| 欧美一区二区在线视频| 天堂在线一区二区| 91精品久久久久久久久99蜜臂| 五月天激情小说综合| 欧美日韩一区二区三区免费看| 亚洲夂夂婷婷色拍ww47| 欧美亚洲尤物久久| 日韩福利视频网| 日韩欧美黄色影院| 国产乱妇无码大片在线观看| 欧美一区二区免费视频| 久久精品99国产精品| 国产亚洲精品中文字幕| 国产91精品在线观看| 1区2区3区欧美| 在线观看日韩国产| 亚洲图片欧美综合| 在线电影欧美成精品| 婷婷中文字幕一区三区| 日韩欧美国产1| 国产v日产∨综合v精品视频| 国产精品久久久久四虎| 欧美中文字幕一区二区三区| 视频在线观看一区二区三区| 精品久久久久av影院| 国产成人精品aa毛片| 一区二区三区在线观看视频| 91精品免费在线观看| 国产sm精品调教视频网站| 亚洲日本在线a| 欧美日韩精品欧美日韩精品一| 蜜臀久久久久久久| 欧美高清一级片在线观看| 欧洲亚洲国产日韩| 国产美女av一区二区三区| 亚洲欧洲美洲综合色网| 91精品视频网| 99久久精品国产网站| 三级在线观看一区二区| 国产精品热久久久久夜色精品三区 | 中文字幕一区二区三区四区不卡| 欧美综合亚洲图片综合区| 国产在线一区观看| 亚洲成av人片一区二区梦乃| 久久精品免费在线观看| 欧美午夜寂寞影院| www.亚洲人| 韩国精品主播一区二区在线观看| 自拍偷拍欧美激情| 久久精品网站免费观看| 欧美日产国产精品| 91麻豆免费看片| 国产在线视频一区二区三区| 亚洲午夜久久久久久久久电影网| 国产午夜精品久久久久久久| 欧美电影影音先锋| 94-欧美-setu| 国产一区二区三区视频在线播放| 最近日韩中文字幕| 久久久一区二区| 欧美一区二区免费视频| 色一区在线观看| 成人av中文字幕| 久久99精品一区二区三区三区| 一级特黄大欧美久久久| 国产精品青草综合久久久久99| 精品国产不卡一区二区三区| 91在线免费看| 国产精品1024| 香蕉成人伊视频在线观看| 亚洲人成伊人成综合网小说| 国产欧美视频在线观看| 精品久久久久久久久久久久久久久 | 久久久av毛片精品| 欧美成人高清电影在线| 在线观看一区二区视频| 色综合天天综合网天天看片| 粉嫩av一区二区三区| 国产成人免费视频网站| 国产精品一区一区三区| 精品综合久久久久久8888| 美女脱光内衣内裤视频久久影院| 日韩成人av影视| 奇米888四色在线精品| 日韩国产精品91| 亚洲18影院在线观看| 天天综合色天天综合色h| 亚洲成人av在线电影| 日韩高清不卡一区| 久久99精品国产.久久久久| 久久精品国产澳门| 国产精品综合网| 久久99精品一区二区三区三区| 免费在线观看视频一区| 蜜桃一区二区三区在线观看| 激情久久五月天| 国产成人精品免费看| 一本大道综合伊人精品热热| 欧美性猛片xxxx免费看久爱| 4438成人网| 久久久三级国产网站| 136国产福利精品导航| 亚洲欧美色图小说| 日韩精品一二三四| 国产精品18久久久久久久网站| 懂色av噜噜一区二区三区av| 91丨九色丨尤物| 91精品婷婷国产综合久久| 337p粉嫩大胆噜噜噜噜噜91av | wwww国产精品欧美| 中文字幕一区视频| 狠狠色综合色综合网络| 欧美午夜在线观看| 国产精品美女一区二区| 日韩av中文在线观看| 色婷婷久久综合| 国产欧美一区二区精品婷婷| 三级影片在线观看欧美日韩一区二区 | 国产精品久99| 久久99国产精品免费| 欧美性淫爽ww久久久久无| 国产精品色一区二区三区| 久久99精品久久久久久国产越南| 欧美午夜精品一区二区蜜桃| 国产精品久久久久一区 | 欧亚一区二区三区| 国产精品福利影院| 国产91丝袜在线观看| 337p日本欧洲亚洲大胆精品| 亚洲va韩国va欧美va| 在线观看国产91| 亚洲日本丝袜连裤袜办公室| 粉嫩久久99精品久久久久久夜| 日韩精品一区二区三区中文不卡| 一区二区三区四区高清精品免费观看| 成人影视亚洲图片在线| 久久久久成人黄色影片| 人妖欧美一区二区| 91麻豆精品国产综合久久久久久| 一区二区三区免费看视频| bt7086福利一区国产| 中文字幕在线观看不卡视频| 成人精品国产一区二区4080| 国产欧美日本一区视频| 久久99精品国产麻豆婷婷洗澡| 欧美一级在线视频| 伦理电影国产精品| 精品国产区一区| 国产在线观看免费一区| 久久理论电影网| 成人一道本在线| 国产精品麻豆网站|