⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gdkmain-fb.c

📁 linux下电话本所依赖的一些图形库
💻 C
📖 第 1 页 / 共 3 页
字号:
gdk_display_pointer_is_grabbed (GdkDisplay *display){  return _gdk_fb_pointer_grab_window != NULL;}/* *-------------------------------------------------------------- * gdk_keyboard_grab * *   Grabs the keyboard to a specific window * * Arguments: *   "window" is the window which will receive the grab *   "owner_events" specifies whether events will be reported as is, *     or relative to "window" *   "time" specifies the time * * Results: * * Side effects: *   requires a corresponding call to gdk_keyboard_ungrab * *-------------------------------------------------------------- */GdkGrabStatusgdk_keyboard_grab (GdkWindow  *window,		   gint        owner_events,		   guint32     time){  g_return_val_if_fail (window != NULL, 0);  g_return_val_if_fail (GDK_IS_WINDOW (window), 0);  if (_gdk_fb_pointer_grab_window)    gdk_keyboard_ungrab (time);  _gdk_fb_keyboard_grab_window = gdk_window_ref (window);  _gdk_fb_keyboard_grab_owner_events = owner_events;    return GDK_GRAB_SUCCESS;}/* *-------------------------------------------------------------- * gdk_display_keyboard_ungrab * *   Releases any keyboard grab * * Arguments: * * Results: * * Side effects: * *-------------------------------------------------------------- */voidgdk_display_keyboard_ungrab (GdkDisplay *display,			     guint32     time){  if (_gdk_fb_keyboard_grab_window)    gdk_window_unref (_gdk_fb_keyboard_grab_window);  _gdk_fb_keyboard_grab_window = NULL;}gbooleangdk_pointer_grab_info_libgtk_only (GdkDisplay *display,				   GdkWindow **grab_window,				   gboolean   *owner_events){  if (_gdk_fb_pointer_grab_window)    {      if (grab_window)        *grab_window = (GdkWindow *)_gdk_fb_pointer_grab_window;      if (owner_events)        *owner_events = _gdk_fb_pointer_grab_owner_events;            return TRUE;    }  else    return FALSE;}gbooleangdk_keyboard_grab_info_libgtk_only (GdkDisplay *display,				    GdkWindow **grab_window,				    gboolean   *owner_events){  if (_gdk_fb_keyboard_grab_window)    {      if (grab_window)        *grab_window = (GdkWindow *)_gdk_fb_keyboard_grab_window;      if (owner_events)        *owner_events = _gdk_fb_keyboard_grab_owner_events;      return TRUE;    }  else    return FALSE;}/* *-------------------------------------------------------------- * gdk_screen_get_width * *   Return the width of the screen. * * Arguments: * * Results: * * Side effects: * *-------------------------------------------------------------- */gintgdk_screen_get_width (GdkScreen *screen){  return gdk_display->fb_width;}/* *-------------------------------------------------------------- * gdk_screen_get_height * *   Return the height of the screen. * * Arguments: * * Results: * * Side effects: * *-------------------------------------------------------------- */gintgdk_screen_get_height (GdkScreen *screen){  return gdk_display->fb_height;}/* *-------------------------------------------------------------- * gdk_screen_get_width_mm * *   Return the width of the screen in millimeters. * * Arguments: * * Results: * * Side effects: * *-------------------------------------------------------------- */gintgdk_screen_get_width_mm (GdkScreen *screen){  return 0.5 + gdk_screen_width () * (25.4 / 72.);}/* *-------------------------------------------------------------- * gdk_screen_get_height_mm * *   Return the height of the screen in millimeters. * * Arguments: * * Results: * * Side effects: * *-------------------------------------------------------------- */gintgdk_screen_get_height_mm (GdkScreen *screen){  return 0.5 + gdk_screen_height () * (25.4 / 72.);}void_gdk_windowing_display_set_sm_client_id (GdkDisplay*  display,					 const gchar* sm_client_id){}extern void keyboard_shutdown(void);void_gdk_windowing_exit (void){  struct sigaction action;  /* don't get interrupted while exiting   * (cf. gdkrender-fb.c:gdk_shadow_fb_init) */  action.sa_handler = SIG_IGN;  sigemptyset (&action.sa_mask);  action.sa_flags = 0;  gdk_fb_mouse_close ();  /*leak  g_free (gdk_fb_mouse);*/    gdk_fb_keyboard_close ();  /*leak g_free (gdk_fb_keyboard);*/    gdk_fb_display_destroy (gdk_display);    gdk_display = NULL;}gchar *gdk_get_display(void){  gchar *s;  s = getenv ("GDK_DISPLAY");  if (s==0)    s = "/dev/fb0";    return g_strdup (s);}voidgdk_display_beep (GdkDisplay *display){  static int pitch = 600, duration = 100;  gulong arg;  /* Thank you XFree86 */  arg = ((1193190 / pitch) & 0xffff) |    (((unsigned long)duration) << 16);  ioctl (gdk_display->tty_fd, KDMKTONE, arg);}/* utils */static const guint type_masks[] = {  GDK_SUBSTRUCTURE_MASK, /* GDK_DELETE		= 0, */  GDK_STRUCTURE_MASK, /* GDK_DESTROY		= 1, */  GDK_EXPOSURE_MASK, /* GDK_EXPOSE		= 2, */  GDK_POINTER_MOTION_MASK, /* GDK_MOTION_NOTIFY	= 3, */  GDK_BUTTON_PRESS_MASK, /* GDK_BUTTON_PRESS	= 4, */  GDK_BUTTON_PRESS_MASK, /* GDK_2BUTTON_PRESS	= 5, */  GDK_BUTTON_PRESS_MASK, /* GDK_3BUTTON_PRESS	= 6, */  GDK_BUTTON_RELEASE_MASK, /* GDK_BUTTON_RELEASE	= 7, */  GDK_KEY_PRESS_MASK, /* GDK_KEY_PRESS	= 8, */  GDK_KEY_RELEASE_MASK, /* GDK_KEY_RELEASE	= 9, */  GDK_ENTER_NOTIFY_MASK, /* GDK_ENTER_NOTIFY	= 10, */  GDK_LEAVE_NOTIFY_MASK, /* GDK_LEAVE_NOTIFY	= 11, */  GDK_FOCUS_CHANGE_MASK, /* GDK_FOCUS_CHANGE	= 12, */  GDK_STRUCTURE_MASK, /* GDK_CONFIGURE		= 13, */  GDK_VISIBILITY_NOTIFY_MASK, /* GDK_MAP		= 14, */  GDK_VISIBILITY_NOTIFY_MASK, /* GDK_UNMAP		= 15, */  GDK_PROPERTY_CHANGE_MASK, /* GDK_PROPERTY_NOTIFY	= 16, */  GDK_PROPERTY_CHANGE_MASK, /* GDK_SELECTION_CLEAR	= 17, */  GDK_PROPERTY_CHANGE_MASK, /* GDK_SELECTION_REQUEST = 18, */  GDK_PROPERTY_CHANGE_MASK, /* GDK_SELECTION_NOTIFY	= 19, */  GDK_PROXIMITY_IN_MASK, /* GDK_PROXIMITY_IN	= 20, */  GDK_PROXIMITY_OUT_MASK, /* GDK_PROXIMITY_OUT	= 21, */  GDK_ALL_EVENTS_MASK, /* GDK_DRAG_ENTER        = 22, */  GDK_ALL_EVENTS_MASK, /* GDK_DRAG_LEAVE        = 23, */  GDK_ALL_EVENTS_MASK, /* GDK_DRAG_MOTION       = 24, */  GDK_ALL_EVENTS_MASK, /* GDK_DRAG_STATUS       = 25, */  GDK_ALL_EVENTS_MASK, /* GDK_DROP_START        = 26, */  GDK_ALL_EVENTS_MASK, /* GDK_DROP_FINISHED     = 27, */  GDK_ALL_EVENTS_MASK, /* GDK_CLIENT_EVENT	= 28, */  GDK_VISIBILITY_NOTIFY_MASK, /* GDK_VISIBILITY_NOTIFY = 29, */  GDK_EXPOSURE_MASK, /* GDK_NO_EXPOSE		= 30, */  GDK_SCROLL_MASK /* GDK_SCROLL            = 31 */};GdkWindow *gdk_fb_other_event_window (GdkWindow *window,			   GdkEventType type){  guint32 evmask;  GdkWindow *w;  w = window;  while (w != _gdk_parent_root)    {      /* Huge hack, so that we don't propagate events to GtkWindow->frame */      if ((w != window) &&	  (GDK_WINDOW_P (w)->window_type != GDK_WINDOW_CHILD) &&	  (g_object_get_data (G_OBJECT (w), "gdk-window-child-handler")))	  break;	        evmask = GDK_WINDOW_OBJECT(window)->event_mask;      if (evmask & type_masks[type])	return w;            w = gdk_window_get_parent (w);    }    return NULL;}GdkWindow *gdk_fb_pointer_event_window (GdkWindow *window,			     GdkEventType type){  guint evmask;  GdkModifierType mask;  GdkWindow *w;	    gdk_fb_mouse_get_info (NULL, NULL, &mask);    if (_gdk_fb_pointer_grab_window &&      !_gdk_fb_pointer_grab_owner_events)    {      evmask = _gdk_fb_pointer_grab_events;      if (evmask & (GDK_BUTTON1_MOTION_MASK | GDK_BUTTON2_MOTION_MASK | GDK_BUTTON3_MOTION_MASK))	{	  if (((mask & GDK_BUTTON1_MASK) && (evmask & GDK_BUTTON1_MOTION_MASK)) ||	      ((mask & GDK_BUTTON2_MASK) && (evmask & GDK_BUTTON2_MOTION_MASK)) ||	      ((mask & GDK_BUTTON3_MASK) && (evmask & GDK_BUTTON3_MOTION_MASK)))	    evmask |= GDK_POINTER_MOTION_MASK;	}      if (evmask & type_masks[type])	return _gdk_fb_pointer_grab_window;      else	return NULL;    }  w = window;  while (w != _gdk_parent_root)    {      /* Huge hack, so that we don't propagate events to GtkWindow->frame */      if ((w != window) &&	  (GDK_WINDOW_P (w)->window_type != GDK_WINDOW_CHILD) &&	  (g_object_get_data (G_OBJECT (w), "gdk-window-child-handler")))	  break;            evmask = GDK_WINDOW_OBJECT(window)->event_mask;      if (evmask & (GDK_BUTTON1_MOTION_MASK | GDK_BUTTON2_MOTION_MASK | GDK_BUTTON3_MOTION_MASK))	{	  if (((mask & GDK_BUTTON1_MASK) && (evmask & GDK_BUTTON1_MOTION_MASK)) ||	      ((mask & GDK_BUTTON2_MASK) && (evmask & GDK_BUTTON2_MOTION_MASK)) ||	      ((mask & GDK_BUTTON3_MASK) && (evmask & GDK_BUTTON3_MOTION_MASK)))	    evmask |= GDK_POINTER_MOTION_MASK;	}      if (evmask & type_masks[type])	return w;            w = gdk_window_get_parent (w);    }  if (_gdk_fb_pointer_grab_window &&      _gdk_fb_pointer_grab_owner_events)    {      evmask = _gdk_fb_pointer_grab_events;            if (evmask & (GDK_BUTTON1_MOTION_MASK | GDK_BUTTON2_MOTION_MASK | GDK_BUTTON3_MOTION_MASK))	{	  if (((mask & GDK_BUTTON1_MASK) && (evmask & GDK_BUTTON1_MOTION_MASK)) ||	      ((mask & GDK_BUTTON2_MASK) && (evmask & GDK_BUTTON2_MOTION_MASK)) ||	      ((mask & GDK_BUTTON3_MASK) && (evmask & GDK_BUTTON3_MOTION_MASK)))	    evmask |= GDK_POINTER_MOTION_MASK;	}            if (evmask & type_masks[type])	return _gdk_fb_pointer_grab_window;    }    return NULL;}GdkWindow *gdk_fb_keyboard_event_window (GdkWindow *window,			      GdkEventType type){  guint32 evmask;  GdkWindow *w;    if (_gdk_fb_keyboard_grab_window &&      !_gdk_fb_keyboard_grab_owner_events)    {      return _gdk_fb_keyboard_grab_window;    }    w = window;  while (w != _gdk_parent_root)    {      /* Huge hack, so that we don't propagate events to GtkWindow->frame */      if ((w != window) &&	  (GDK_WINDOW_P (w)->window_type != GDK_WINDOW_CHILD) &&	  (g_object_get_data (G_OBJECT (w), "gdk-window-child-handler")))	  break;	        evmask = GDK_WINDOW_OBJECT(window)->event_mask;      if (evmask & type_masks[type])	return w;            w = gdk_window_get_parent (w);    }    if (_gdk_fb_keyboard_grab_window &&      _gdk_fb_keyboard_grab_owner_events)    {      return _gdk_fb_keyboard_grab_window;    }  return NULL;}GdkEvent *gdk_event_make (GdkWindow *window,		GdkEventType type,		gboolean append_to_queue){  GdkEvent *event = gdk_event_new (type);  guint32 the_time;    the_time = gdk_fb_get_time ();    event->any.window = gdk_window_ref (window);  event->any.send_event = FALSE;  switch (type)    {    case GDK_MOTION_NOTIFY:      event->motion.time = the_time;      event->motion.axes = NULL;      break;    case GDK_BUTTON_PRESS:    case GDK_2BUTTON_PRESS:    case GDK_3BUTTON_PRESS:    case GDK_BUTTON_RELEASE:      event->button.time = the_time;      event->button.axes = NULL;      break;    case GDK_KEY_PRESS:    case GDK_KEY_RELEASE:      event->key.time = the_time;      break;    case GDK_ENTER_NOTIFY:    case GDK_LEAVE_NOTIFY:      event->crossing.time = the_time;      break;          case GDK_PROPERTY_NOTIFY:      event->property.time = the_time;      break;          case GDK_SELECTION_CLEAR:    case GDK_SELECTION_REQUEST:    case GDK_SELECTION_NOTIFY:      event->selection.time = the_time;      break;    case GDK_PROXIMITY_IN:    case GDK_PROXIMITY_OUT:      event->proximity.time = the_time;      break;    case GDK_DRAG_ENTER:    case GDK_DRAG_LEAVE:    case GDK_DRAG_MOTION:    case GDK_DRAG_STATUS:    case GDK_DROP_START:    case GDK_DROP_FINISHED:      event->dnd.time = the_time;      break;          case GDK_FOCUS_CHANGE:    case GDK_CONFIGURE:    case GDK_MAP:    case GDK_UNMAP:    case GDK_CLIENT_EVENT:    case GDK_VISIBILITY_NOTIFY:    case GDK_NO_EXPOSE:    case GDK_SCROLL:    case GDK_DELETE:    case GDK_DESTROY:    case GDK_EXPOSE:    default:      break;    }    if (append_to_queue)    _gdk_event_queue_append (gdk_display_get_default (), event);    return event;}voidgdk_fb_set_rotation (GdkFBAngle angle){  if (angle == _gdk_fb_screen_angle)    return;  #ifdef ENABLE_SHADOW_FB  if (gdk_display)    {      gdk_shadow_fb_stop_updates ();      gdk_fb_cursor_hide ();            _gdk_fb_screen_angle = angle;      if (angle % 2 == 0)	{	  gdk_display->fb_width = gdk_display->modeinfo.xres;	  gdk_display->fb_height = gdk_display->modeinfo.yres;	}       else	{	  gdk_display->fb_width = gdk_display->modeinfo.yres;	  gdk_display->fb_height = gdk_display->modeinfo.xres;	}      gdk_display->fb_stride =	gdk_display->fb_width * (gdk_display->modeinfo.bits_per_pixel / 8);            gdk_fb_recompute_all();      gdk_fb_redraw_all ();            gdk_fb_cursor_unhide ();    }  else    _gdk_fb_screen_angle = angle;#else  g_warning ("Screen rotation without shadow fb not supported.");#endif}voidgdk_error_trap_push (void){}gintgdk_error_trap_pop (void){  return 0;}voidgdk_notify_startup_complete (void){}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -