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

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

?? gdkinput-win32.c

?? linux下電話本所依賴的一些圖形庫
?? C
?? 第 1 頁 / 共 3 頁
字號:
		       * we convert to x and y tilt in the -1000..1000 range		       */		      gdkdev->axes[k].xresolution =			gdkdev->axes[k].resolution = 1000;		      gdkdev->axes[k].xmin_value =			gdkdev->axes[k].min_value = -1000;		      gdkdev->axes[k].xmax_value =			gdkdev->axes[k].max_value = 1000;		      gdkdev->info.axes[k].use = axis;		      gdkdev->info.axes[k].min = -1000;		      gdkdev->info.axes[k].max = 1000;		      k++;		    }		}	      gdkdev->info.num_keys = 0;	      gdkdev->info.keys = NULL;	      GDK_NOTE (INPUT,			g_print ("device: (%d) %s axes: %d\n",				 cursorix,				 gdkdev->info.name,				 gdkdev->info.num_axes));	      for (i = 0; i < gdkdev->info.num_axes; i++)		GDK_NOTE (INPUT,			  g_print ("...axis %d: %d--%d@%d (%d--%d@%d)\n",				   i,				   gdkdev->axes[i].xmin_value, 				   gdkdev->axes[i].xmax_value, 				   gdkdev->axes[i].xresolution, 				   gdkdev->axes[i].min_value, 				   gdkdev->axes[i].max_value, 				   gdkdev->axes[i].resolution));	      _gdk_input_devices = g_list_append (_gdk_input_devices,						 gdkdev);	    }	}    }}static voiddecode_tilt (gint   *axis_data,	     AXIS   *axes,	     PACKET *packet){  /* As I don't have a tilt-sensing tablet,   * I cannot test this code.   */    double az, el;  az = TWOPI * packet->pkOrientation.orAzimuth /    (axes[0].axResolution / 65536.);  el = TWOPI * packet->pkOrientation.orAltitude /    (axes[1].axResolution / 65536.);    /* X tilt */  axis_data[0] = cos (az) * cos (el) * 1000;  /* Y tilt */  axis_data[1] = sin (az) * cos (el) * 1000;}#endif /* HAVE_WINTAB */static voidgdk_input_translate_coordinates (GdkDevicePrivate *gdkdev,				 GdkInputWindow   *input_window,				 gint             *axis_data,				 gdouble          *axis_out,				 gdouble          *x_out,				 gdouble          *y_out){  GdkWindowImplWin32 *impl, *root_impl;  int i;  int x_axis = 0;  int y_axis = 0;  double device_width, device_height;  double x_offset, y_offset, x_scale, y_scale;  impl = GDK_WINDOW_IMPL_WIN32 (GDK_WINDOW_OBJECT (input_window->window)->impl);  for (i=0; i<gdkdev->info.num_axes; i++)    {      switch (gdkdev->info.axes[i].use)	{	case GDK_AXIS_X:	  x_axis = i;	  break;	case GDK_AXIS_Y:	  y_axis = i;	  break;	default:	  break;	}    }    device_width = gdkdev->axes[x_axis].max_value - 		   gdkdev->axes[x_axis].min_value;  device_height = gdkdev->axes[y_axis].max_value -                     gdkdev->axes[y_axis].min_value;  if (gdkdev->info.mode == GDK_MODE_SCREEN)     {      root_impl = GDK_WINDOW_IMPL_WIN32 (GDK_WINDOW_OBJECT (_gdk_parent_root)->impl);      x_scale = root_impl->width / device_width;      y_scale = root_impl->height / device_height;      x_offset = - input_window->root_x;      y_offset = - input_window->root_y;    }  else				/* GDK_MODE_WINDOW */    {      double device_aspect = (device_height*gdkdev->axes[y_axis].resolution) /	(device_width*gdkdev->axes[x_axis].resolution);      if (device_aspect * impl->width >= impl->height)	{	  /* device taller than window */	  x_scale = impl->width / device_width;	  y_scale = (x_scale * gdkdev->axes[x_axis].resolution)	    / gdkdev->axes[y_axis].resolution;	  x_offset = 0;	  y_offset = -(device_height * y_scale - 			       impl->height)/2;	}      else	{	  /* window taller than device */	  y_scale = impl->height / device_height;	  x_scale = (y_scale * gdkdev->axes[y_axis].resolution)	    / gdkdev->axes[x_axis].resolution;	  y_offset = 0;	  x_offset = - (device_width * x_scale - impl->width)/2;	}    }  for (i=0; i<gdkdev->info.num_axes; i++)    {      switch (gdkdev->info.axes[i].use)	{	case GDK_AXIS_X:	  axis_out[i] = x_offset + x_scale*axis_data[x_axis];	  if (x_out)	    *x_out = axis_out[i];	  break;	case GDK_AXIS_Y:	  axis_out[i] = y_offset + y_scale*axis_data[y_axis];	  if (y_out)	    *y_out = axis_out[i];	  break;	default:	  axis_out[i] =	    (gdkdev->info.axes[i].max * (axis_data[i] - gdkdev->axes[i].min_value) +	     gdkdev->info.axes[i].min * (gdkdev->axes[i].max_value - axis_data[i])) /	    (gdkdev->axes[i].max_value - gdkdev->axes[i].min_value);	  break;	}    }}static voidgdk_input_get_root_relative_geometry (HWND w,				      int  *x_ret,				      int  *y_ret){  RECT rect;  GetWindowRect (w, &rect);  if (x_ret)    *x_ret = rect.left + _gdk_offset_x;  if (y_ret)    *y_ret = rect.top + _gdk_offset_y;}void_gdk_input_configure_event (GdkWindow         *window){  GdkInputWindow *input_window;  int root_x, root_y;  input_window = _gdk_input_window_find (window);  g_return_if_fail (window != NULL);  gdk_input_get_root_relative_geometry (GDK_WINDOW_HWND (window),					&root_x, &root_y);  input_window->root_x = root_x;  input_window->root_y = root_y;}void _gdk_input_enter_event (GdkWindow        *window){  GdkInputWindow *input_window;  int root_x, root_y;  input_window = _gdk_input_window_find (window);  g_return_if_fail (window != NULL);  gdk_input_get_root_relative_geometry (GDK_WINDOW_HWND (window), &root_x, &root_y);  input_window->root_x = root_x;  input_window->root_y = root_y;}/* * Get the currently active keyboard modifiers (ignoring the mouse buttons) * We could use gdk_window_get_pointer but that function does a lot of other * expensive things besides getting the modifiers. This code is somewhat based * on build_pointer_event_state from gdkevents-win32.c */static guintget_modifier_key_state (void){  guint state;    state = 0;  /* High-order bit is up/down, low order bit is toggled/untoggled */  if (GetKeyState (VK_CONTROL) < 0)    state |= GDK_CONTROL_MASK;  if (GetKeyState (VK_SHIFT) < 0)    state |= GDK_SHIFT_MASK;  if (GetKeyState (VK_MENU) < 0)    state |= GDK_MOD1_MASK;  if (GetKeyState (VK_CAPITAL) & 0x1)    state |= GDK_LOCK_MASK;  return state;}#ifdef HAVE_WINTABstatic guint ignore_core_timer = 0;static gbooleanignore_core_timefunc (gpointer data){  /* The delay has passed */  _gdk_input_ignore_core = FALSE;  ignore_core_timer = 0;  return FALSE; /* remove timeout */}/* * Set or unset the _gdk_input_ignore_core variable that tells GDK * to ignore events for the core pointer when the tablet is in proximity * The unsetting is delayed slightly so that if a tablet event arrives * just after proximity out, it does not cause a core pointer event * which e.g. causes GIMP to switch tools. */static voidset_ignore_core (gboolean ignore){  if (ignore)    {      _gdk_input_ignore_core = TRUE;      /* Remove any pending clear */      if (ignore_core_timer)        {	  g_source_remove (ignore_core_timer);	  ignore_core_timer = 0;	}    }  else    if (!ignore_core_timer)      ignore_core_timer = g_timeout_add (PROXIMITY_OUT_DELAY,					 ignore_core_timefunc, NULL);}#endif /* HAVE_WINTAB */gboolean _gdk_input_other_event (GdkEvent  *event,			MSG       *msg,			GdkWindow *window){#ifdef HAVE_WINTAB  GdkDisplay *display;  GdkWindowObject *obj, *grab_obj;  GdkInputWindow *input_window;  GdkDevicePrivate *gdkdev = NULL;  GdkEventMask masktest;  guint key_state;  POINT pt;  PACKET packet;  gint k;  gint x, y;  if (event->any.window != wintab_window)    {      g_warning ("_gdk_input_other_event: not wintab_window?");      return FALSE;    }  window = gdk_window_at_pointer (&x, &y);  if (window == NULL)    window = _gdk_parent_root;  g_object_ref (window);  display = gdk_drawable_get_display (window);  GDK_NOTE (EVENTS_OR_INPUT,	    g_print ("gdk_input_win32_other_event: window=%p (%d,%d)\n",		     GDK_WINDOW_HWND (window), x, y));    if (msg->message == WT_PACKET)    {      if (!WTPacket ((HCTX) msg->lParam, msg->wParam, &packet))	return FALSE;    }  obj = GDK_WINDOW_OBJECT (window);  switch (msg->message)    {    case WT_PACKET:      /* Don't produce any button or motion events while a window is being       * moved or resized, see bug #151090. */      if (_sizemove_in_progress)	{	  GDK_NOTE (EVENTS_OR_INPUT, g_print ("...ignored when moving/sizing\n"));	  return FALSE;	}      if (window == _gdk_parent_root && x_grab_window == NULL)	{	  GDK_NOTE (EVENTS_OR_INPUT, g_print ("...is root\n"));	  return FALSE;	}      if ((gdkdev = gdk_input_find_dev_from_ctx ((HCTX) msg->lParam,						 packet.pkCursor)) == NULL)	return FALSE;      if (gdkdev->info.mode == GDK_MODE_DISABLED)	return FALSE;            k = 0;      if (gdkdev->pktdata & PK_X)	gdkdev->last_axis_data[k++] = packet.pkX;      if (gdkdev->pktdata & PK_Y)	gdkdev->last_axis_data[k++] = packet.pkY;      if (gdkdev->pktdata & PK_NORMAL_PRESSURE)	gdkdev->last_axis_data[k++] = packet.pkNormalPressure;      if (gdkdev->pktdata & PK_ORIENTATION)	{	  decode_tilt (gdkdev->last_axis_data + k,		       gdkdev->orientation_axes, &packet);	  k += 2;	}      g_assert (k == gdkdev->info.num_axes);      if (HIWORD (packet.pkButtons) != TBN_NONE)	{	  /* Gdk buttons are numbered 1.. */	  event->button.button = 1 + LOWORD (packet.pkButtons);	  if (HIWORD (packet.pkButtons) == TBN_UP)	    {	      event->any.type = GDK_BUTTON_RELEASE;	      masktest = GDK_BUTTON_RELEASE_MASK;	      gdkdev->button_state &= ~(1 << LOWORD (packet.pkButtons));	    }	  else	    {	      event->any.type = GDK_BUTTON_PRESS;	      masktest = GDK_BUTTON_PRESS_MASK;	      gdkdev->button_state |= 1 << LOWORD (packet.pkButtons);	    }	}      else	{	  event->any.type = GDK_MOTION_NOTIFY;	  masktest = GDK_POINTER_MOTION_MASK;	  if (gdkdev->button_state & (1 << 0))	    masktest |= GDK_BUTTON_MOTION_MASK | GDK_BUTTON1_MOTION_MASK;	  if (gdkdev->button_state & (1 << 1))	    masktest |= GDK_BUTTON_MOTION_MASK | GDK_BUTTON2_MOTION_MASK;	  if (gdkdev->button_state & (1 << 2))	    masktest |= GDK_BUTTON_MOTION_MASK | GDK_BUTTON3_MOTION_MASK;	}      /* See if input is grabbed */      /* FIXME: x_grab_owner_events should probably be handled somehow */      if (x_grab_window != NULL)	{	  grab_obj = GDK_WINDOW_OBJECT (x_grab_window);	  if (!GDK_WINDOW_IMPL_WIN32 (grab_obj->impl)->extension_events_selected	      || !(grab_obj->extension_events & masktest)	      || !(x_grab_mask && masktest))	    {	      GDK_NOTE (EVENTS_OR_INPUT, 			g_print ("...grabber doesn't want it\n"));	      return FALSE;	    }	  GDK_NOTE (EVENTS_OR_INPUT, g_print ("...to grabber\n"));	  g_object_ref(x_grab_window);	  g_object_unref(window);	  window = x_grab_window;	  obj = grab_obj;	}      /* Now we can check if the window wants the event, and       * propagate if necessary.       */    dijkstra:      if (!GDK_WINDOW_IMPL_WIN32 (obj->impl)->extension_events_selected	  || !(obj->extension_events & masktest))	{	  GDK_NOTE (EVENTS_OR_INPUT, g_print ("...not selected\n"));	  if (obj->parent == GDK_WINDOW_OBJECT (_gdk_parent_root))	    return FALSE;	  /* It is not good to propagate the extended events up to the parent	   * if this window wants normal (not extended) motion/button events */	  if (obj->event_mask & masktest)	    {	      GDK_NOTE (EVENTS_OR_INPUT, 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国内外精品视频| 日韩一区二区免费高清| 欧美一区二区三区四区高清| 国产欧美1区2区3区| 午夜精品久久久久久久久久久| 国产成人综合亚洲网站| 69久久99精品久久久久婷婷| 亚洲欧美另类图片小说| 国产福利91精品| 欧美一区二区黄色| 亚洲精品久久7777| 成人国产精品视频| 国产色产综合产在线视频| 蜜臀精品一区二区三区在线观看| 在线视频国内自拍亚洲视频| 中文在线免费一区三区高中清不卡| 日本不卡免费在线视频| 欧美群妇大交群的观看方式| 一区二区三区欧美亚洲| 成人av网站在线| 国产亚洲综合av| 久久99精品久久久| 欧美精品三级在线观看| 亚洲成人动漫一区| 欧美视频中文一区二区三区在线观看| 欧美极品少妇xxxxⅹ高跟鞋| 国产黄色91视频| 欧美tk—视频vk| 精品一区二区三区免费毛片爱| 欧美一区二区三级| 日本一道高清亚洲日美韩| 欧美日韩电影在线播放| 偷窥少妇高潮呻吟av久久免费| 色av成人天堂桃色av| 香蕉加勒比综合久久| 欧洲亚洲精品在线| 一级女性全黄久久生活片免费| 91成人在线精品| 亚洲成在线观看| 欧美一区二区三区四区高清| 美女www一区二区| 精品国产亚洲一区二区三区在线观看 | 国产精品综合一区二区三区| 精品va天堂亚洲国产| 国产乱色国产精品免费视频| 久久精品亚洲乱码伦伦中文| www.日本不卡| 亚洲久本草在线中文字幕| 欧美性大战久久久久久久蜜臀 | 91蝌蚪国产九色| 亚洲午夜羞羞片| 在线成人av网站| 精品一区二区在线看| 国产欧美一区二区精品仙草咪| 成人污视频在线观看| 亚洲欧美电影一区二区| 欧美日韩在线一区二区| 国产又黄又大久久| 1000部国产精品成人观看| 欧美人狂配大交3d怪物一区| 国产专区欧美精品| 亚洲精品视频一区| 日韩视频中午一区| 福利一区在线观看| 亚洲综合色网站| 精品电影一区二区三区| av中文字幕不卡| 午夜精品久久久久久久久久久 | 欧美日韩电影在线| 精品一区二区在线播放| **性色生活片久久毛片| 7878成人国产在线观看| 国产99久久久精品| 亚洲成人tv网| 国产亚洲精品超碰| 欧美精品久久天天躁| 成人精品小蝌蚪| 日韩黄色一级片| 国产精品成人网| 欧美xxxx老人做受| 欧洲在线/亚洲| 国产91精品一区二区麻豆亚洲| 亚洲高清久久久| 国产精品毛片大码女人| 欧美一区中文字幕| 色综合久久66| 波多野结衣精品在线| 激情综合色丁香一区二区| 一区二区高清在线| 日本一区二区不卡视频| 欧美一卡2卡3卡4卡| 91麻豆123| 粉嫩高潮美女一区二区三区| 日韩经典中文字幕一区| 亚洲天堂网中文字| 中文字幕免费不卡| 久久精品视频一区二区三区| 欧美一区二区福利视频| 欧美日韩亚洲丝袜制服| 欧美在线免费视屏| 一本色道久久综合亚洲精品按摩| 国产91在线看| 国产在线一区二区| 久久国产精品99久久人人澡| 午夜视频在线观看一区| 一区二区不卡在线播放| 亚洲人精品午夜| 中文字幕第一区| 亚洲国产精品黑人久久久| 国产性天天综合网| 久久免费看少妇高潮| 精品国产乱码久久久久久老虎| 欧美精品久久久久久久久老牛影院 | 欧美猛男超大videosgay| 欧美在线不卡一区| 欧美视频在线观看一区二区| 在线观看视频91| 欧美日韩一二区| 欧美裸体一区二区三区| 欧美日韩国产综合久久| 欧美一二三区在线| 日韩美女天天操| 2021久久国产精品不只是精品| 久久丝袜美腿综合| 香蕉成人伊视频在线观看| 亚洲国产精品一区二区尤物区| 亚洲自拍偷拍麻豆| 日本女人一区二区三区| 久久精品99国产精品| 狠狠色狠狠色综合| 成人午夜精品在线| 色欧美片视频在线观看在线视频| 欧美性生活久久| 欧美一卡二卡三卡| 欧美激情资源网| 一区二区三区在线视频观看| 日本成人在线一区| 韩国一区二区在线观看| 波多野结衣中文一区| 日本韩国一区二区三区视频| 欧美日韩国产经典色站一区二区三区| 欧美老女人第四色| 精品国产乱码久久| 综合激情成人伊人| 免费人成黄页网站在线一区二区| 狠狠色狠狠色综合| 91美女在线看| 日韩欧美一二三区| 亚洲色欲色欲www| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产.欧美.日韩| 欧美性淫爽ww久久久久无| 久久免费看少妇高潮| 亚洲综合久久久| 国产激情视频一区二区在线观看 | 国产成人亚洲综合色影视| 欧美亚洲国产一区在线观看网站| 日韩一区二区三区视频在线| 中文字幕一区二区三区不卡在线| 婷婷久久综合九色综合绿巨人 | 一区二区三区在线视频播放| 久久狠狠亚洲综合| 日本高清不卡一区| 久久精品一区二区三区av| 亚洲制服丝袜一区| 国产夫妻精品视频| 日韩午夜精品视频| 一级做a爱片久久| 福利电影一区二区| 欧美一级艳片视频免费观看| 亚洲欧美日韩国产手机在线| 国内精品写真在线观看| 欧美人xxxx| 一区二区三区电影在线播| 高清国产一区二区| 日韩欧美高清在线| 天天影视色香欲综合网老头| 91色九色蝌蚪| 中文字幕+乱码+中文字幕一区| 精品制服美女久久| 欧美一三区三区四区免费在线看| 一区二区三区在线视频观看58| 不卡视频在线看| 久久精品一区二区| 国产伦精品一区二区三区免费| 欧美二区三区的天堂| 亚洲福利一区二区三区| 色偷偷久久一区二区三区| 国产精品久久免费看| 国产福利91精品一区| 久久久久久久综合狠狠综合| 久久精品国产精品亚洲红杏| 日韩一区二区免费电影| 蜜臀av在线播放一区二区三区| 精品视频1区2区3区| 一区二区三区在线看| 色综合婷婷久久| 亚洲精品菠萝久久久久久久| 色综合久久久久综合体| 亚洲男帅同性gay1069|