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

📄 gtk+-2.4.14-xynth.diff

📁 CS架构的多平台的GUI系统
💻 DIFF
📖 第 1 页 / 共 5 页
字号:
-	      if (key_up)-		k->modifier_state &= ~GDK_CONTROL_MASK;-	      else-		k->modifier_state |= GDK_CONTROL_MASK;-	      break;-	    case 0x38: /* Left Alt */-	    case 0xB8: /* Right Alt */-	      if (key_up)-		k->modifier_state &= ~GDK_MOD1_MASK;-	      else-		k->modifier_state |= GDK_MOD1_MASK;-	      break;-	    case 0x2A: /* Left Shift */-	    case 0x36: /* Right Shift */-	      if (key_up)-		k->modifier_state &= ~GDK_SHIFT_MASK;-	      else-		k->modifier_state |= GDK_SHIFT_MASK;-	      break;-	    }-	  continue; /* Don't generate events for modifiers */-	}--      if (keycode == 0x3A /* Caps lock */)-	{-	  if (!key_up)-	    k->caps_lock = !k->caps_lock;-	  -	  ioctl (k->fd, KDSETLED, k->caps_lock ? LED_CAP : 0);-	  continue;-	}--      if (trans_table[keycode][0] >= GDK_F1 &&-	  trans_table[keycode][0] <= GDK_F35 &&-	  (k->modifier_state & GDK_MOD1_MASK))-	{-	  if (key_up) /* Only switch on release */-	    {-	      gint vtnum = trans_table[keycode][0] - GDK_F1 + 1;--	      /* Do the whole funky VT switch thing */-	      ioctl (gdk_display->console_fd, VT_ACTIVATE, vtnum);-	    }--	  continue;-	}--      keyval = 0;-      mod = 0;-      if (k->modifier_state & GDK_CONTROL_MASK)-	mod = 2;-      else if (k->modifier_state & GDK_SHIFT_MASK)-	mod = 1;-      do {-	keyval = trans_table[keycode][mod--];-      } while (!keyval && (mod >= 0));--      if (k->caps_lock && (keyval >= 'a') && (keyval <= 'z'))-	keyval = toupper (keyval);--      if (!keyval)-	continue;--      len = isprint (keyval) ? 1 : 0;-      dummy[0] = keyval;-      dummy[1] = 0;--      gdk_fb_handle_key (keycode,-			 keyval,-			 k->modifier_state,-			 0,-			 (len)?g_strdup(dummy):NULL,-			 len,-			 key_up);-    }--  return TRUE;-}--static gboolean-raw_open (GdkFBKeyboard *kb)-{-  const char cursoroff_str[] = "\033[?1;0;0c";-  struct termios ts;-  -  tcgetattr (gdk_display->tty_fd, &ts);-  ts.c_cc[VTIME] = 0;-  ts.c_cc[VMIN] = 1;-  ts.c_lflag &= ~(ICANON|ECHO|ISIG);-  ts.c_iflag = 0;-  tcsetattr (gdk_display->tty_fd, TCSAFLUSH, &ts);--  tcsetpgrp (gdk_display->tty_fd, getpgrp());--  write_string (gdk_display->tty_fd, cursoroff_str);-  -  if (ioctl (gdk_display->tty_fd, KDSKBMODE, K_MEDIUMRAW) < 0)-    {-      g_warning ("setting tty to K_MEDIUMRAW failed (are you root?)");-      return FALSE;-    }--  kb->fd = gdk_display->tty_fd;-  kb->io = g_io_channel_unix_new (kb->fd);-  kb->io_tag = g_io_add_watch (kb->io,-			       G_IO_IN | G_IO_ERR | G_IO_HUP | G_IO_NVAL,-			       raw_io,-			       kb);-  -  return TRUE;-}--static void-raw_close (GdkFBKeyboard *kb)-{-  struct termios ts;-  const char cursoron_str[] = "\033c";--  write_string (gdk_display->tty_fd, cursoron_str);--  tcgetattr (gdk_display->tty_fd, &ts);-  ts.c_lflag |= (ICANON|ECHO|ISIG);-  tcsetattr (gdk_display->tty_fd, TCSAFLUSH, &ts);-  -  ioctl (gdk_display->tty_fd, KDSKBMODE, K_XLATE);--  g_source_remove (kb->io_tag);-  g_io_channel_unref (kb->io);-  /* don't close kb->fd, it is the tty from gdk_display */-}- static guint raw_lookup (GdkFBKeyboard       *kb, 	    const GdkKeymapKey  *key)@@ -1530,7 +1078,7 @@    if (hardware_keycode <= 0 ||       hardware_keycode >= 256)-    { +    {       if (keys)         *keys = NULL;       if (keyvals)@@ -1571,7 +1119,7 @@    if ((key_array && key_array->len > 0) ||       (keyval_array && keyval_array->len > 0))-    { +    {       if (keys)         *keys = (GdkKeymapKey*) key_array->data; @@ -1584,7 +1132,7 @@         *n_entries = keyval_array->len;     }   else-    { +    {       if (keys)         *keys = NULL; diff -U 3 -H -d -r -N gtk+-2.4.14/gdk/linux-fb/gdkmain-fb.c gtk+-2.4.14-xynth/gdk/linux-fb/gdkmain-fb.c--- gtk+-2.4.14/gdk/linux-fb/gdkmain-fb.c	2004-03-06 05:37:04.000000000 +0200+++ gtk+-2.4.14-xynth/gdk/linux-fb/gdkmain-fb.c	2005-12-08 18:05:04.000000000 +0200@@ -23,6 +23,12 @@  * files for a list of changes.  These files are distributed with  * GTK+ at ftp://ftp.gtk.org/pub/gtk/.   */+ +/*+ * Gtk-Xynth port is based on linux-fb port+ * Xynth Team+ * http://www.xynth.org+ */  #include <config.h> #include <unistd.h>@@ -69,795 +75,60 @@   { NULL } }; -static const GScannerConfig     fb_modes_scanner_config =-{-  (-   " \t\n"-   )                    /* cset_skip_characters */,-  (-   G_CSET_a_2_z-   G_CSET_A_2_Z-   )                    /* cset_identifier_first */,-  (-   G_CSET_a_2_z-   "_-0123456789"-   G_CSET_A_2_Z-   )                    /* cset_identifier_nth */,-  ( "#\n" )             /* cpair_comment_single */,-  -  FALSE                  /* case_sensitive */,-  -  FALSE                 /* skip_comment_multi */,-  TRUE                  /* skip_comment_single */,-  FALSE                 /* scan_comment_multi */,-  TRUE                  /* scan_identifier */,-  TRUE                  /* scan_identifier_1char */,-  FALSE                 /* scan_identifier_NULL */,-  TRUE                  /* scan_symbols */,-  FALSE                 /* scan_binary */,-  FALSE                 /* scan_octal */,-  FALSE                  /* scan_float */,-  FALSE                  /* scan_hex */,-  FALSE                 /* scan_hex_dollar */,-  FALSE                 /* scan_string_sq */,-  TRUE                  /* scan_string_dq */,-  TRUE                  /* numbers_2_int */,-  FALSE                 /* int_2_float */,-  FALSE                 /* identifier_2_string */,-  TRUE                  /* char_2_token */,-  FALSE                 /* symbol_2_token */,-  FALSE                 /* scope_0_fallback */,-}; -enum {-  FB_MODE,-  FB_ENDMODE,-  FB_GEOMETRY,-  FB_TIMINGS,-  FB_LACED,-  FB_HSYNC,-  FB_VSYNC,-  FB_CSYNC,-  FB_EXTSYNC,-  FB_DOUBLE,-  FB_ACCEL-};--char *fb_modes_keywords[] =-{-  "mode",-  "endmode",-  "geometry",-  "timings",-  "laced",-  "hsync",-  "vsync",-  "csync",-  "extsync",-  "double",-  "accel"-};--static int-fb_modes_parse_mode (GScanner *scanner,-		     struct fb_var_screeninfo *modeinfo,-		     char *specified_modename)-{-  guint token;-  int keyword;-  int i;-  char *modename;-  int geometry[5];-  int timings[7];-  int vsync=0, hsync=0, csync=0, extsync=0, doublescan=0, laced=0, accel=1;-  int found_geometry = 0;-  int found_timings = 0;-    -  token = g_scanner_get_next_token (scanner);-  if (token != G_TOKEN_SYMBOL)-    return -1;-  -  keyword = GPOINTER_TO_INT (scanner->value.v_symbol);-  if (keyword != FB_MODE)-    return -1;--  token = g_scanner_get_next_token (scanner);-  if (token != G_TOKEN_STRING)-    return -1;--  modename = g_strdup (scanner->value.v_string);-  -  token = g_scanner_get_next_token (scanner);-  if (token != G_TOKEN_SYMBOL)-    {-      g_free (modename);-      return -1; /* Not a valid keyword */-    }-  keyword = GPOINTER_TO_INT (scanner->value.v_symbol);-  while ( keyword != FB_ENDMODE )-    {--      switch (GPOINTER_TO_INT (scanner->value.v_symbol))-	{-	case FB_GEOMETRY:-	  for (i = 0; i < 5;i++) {-	    token = g_scanner_get_next_token (scanner);-	    if (token != G_TOKEN_INT)-	      {-		g_free (modename);-		return -1; /* need a integer */-	      }-	    geometry[i] = scanner->value.v_int;-	  }-	  found_geometry = TRUE;-	  break;-	case FB_TIMINGS:-	  for (i = 0; i < 7; i++) {-	    token = g_scanner_get_next_token (scanner);-	    if (token != G_TOKEN_INT)-	      {-		g_free (modename);-		return -1; /* need a integer */-	      }-	    timings[i] = scanner->value.v_int;-	  }-	  found_timings = TRUE;-	  break;-	case FB_LACED:-	  token = g_scanner_get_next_token (scanner);-	  if (token != G_TOKEN_IDENTIFIER)-	      {-		g_free (modename);-		return -1;-	      }-	  if (g_ascii_strcasecmp (scanner->value.v_identifier, "true")==0)-	    laced = 1;-	  else if (g_ascii_strcasecmp (scanner->value.v_identifier, "false")==0)-	    laced = 0;-	  else-	    {-	      g_free (modename);-	      return -1;-	    }-	  break;-	case FB_EXTSYNC:-	  token = g_scanner_get_next_token (scanner);-	  if (token != G_TOKEN_IDENTIFIER)-	      {-		g_free (modename);-		return -1;-	      }-	  if (g_ascii_strcasecmp (scanner->value.v_identifier, "true")==0)-	    extsync = 1;-	  else if (g_ascii_strcasecmp (scanner->value.v_identifier, "false")==0)-	    extsync = 0;-	  else-	    {-	      g_free (modename);-	      return -1;-	    }-	  break;-	case FB_DOUBLE:-	  token = g_scanner_get_next_token (scanner);-	  if (token != G_TOKEN_IDENTIFIER)-	      {-		g_free (modename);-		return -1;-	      }-	  if (g_ascii_strcasecmp (scanner->value.v_identifier, "true")==0)-	    doublescan = 1;-	  else if (g_ascii_strcasecmp (scanner->value.v_identifier, "false")==0)-	    doublescan = 0;-	  else-	    {-	      g_free (modename);-	      return -1;-	    }-	  break;-	case FB_VSYNC:-	  token = g_scanner_get_next_token (scanner);-	  if (token != G_TOKEN_IDENTIFIER)-	      {-		g_free (modename);-		return -1;-	      }-	  if (g_ascii_strcasecmp (scanner->value.v_identifier, "high")==0)-	    vsync = 1;-	  else if (g_ascii_strcasecmp (scanner->value.v_identifier, "low")==0)-	    vsync = 0;-	  else-	    {-	      g_free (modename);-	      return -1;-	    }-	  break;-	case FB_HSYNC:-	  token = g_scanner_get_next_token (scanner);-	  if (token != G_TOKEN_IDENTIFIER)-	    {-	      g_free (modename);-	      return -1;-	    }-	  if (g_ascii_strcasecmp (scanner->value.v_identifier, "high")==0)-	    hsync = 1;-	  else if (g_ascii_strcasecmp (scanner->value.v_identifier, "low")==0)-	    hsync = 0;-	  else-	    {-	      g_free (modename);-	      return -1;-	    }-	  break;-	case FB_CSYNC:-	  token = g_scanner_get_next_token (scanner);-	  if (token != G_TOKEN_IDENTIFIER)-	    {-	      g_free (modename);-	      return -1;-	    }-	  if (g_ascii_strcasecmp (scanner->value.v_identifier, "high")==0)-	    csync = 1;-	  else if (g_ascii_strcasecmp (scanner->value.v_identifier, "low")==0)-	    csync = 0;-	  else-	    {-	      g_free (modename);-	      return -1;-	    }-	  break;-	case FB_ACCEL:-	  token = g_scanner_get_next_token (scanner);-	  if (token != G_TOKEN_IDENTIFIER)-	    {-	      g_free (modename);-	      return -1;-	    }-	  if (g_ascii_strcasecmp (scanner->value.v_identifier, "false")==0)-	    accel = 0;-	  else if (g_ascii_strcasecmp (scanner->value.v_identifier, "true")==0)-	    accel = 1;-	  else-	    {-	      g_free (modename);-	      return -1;-	    }-	  break;-	}-      -      token = g_scanner_get_next_token (scanner);-      if (token != G_TOKEN_SYMBOL)-	{-	  g_free (modename);-	  return -1; /* Not a valid keyword */-	}-      keyword = GPOINTER_TO_INT (scanner->value.v_symbol);-    }--  if (strcmp (modename, specified_modename)== 0) {-    /* we really should be parsing for rgba. regardless, if rgba isn't found,-     * we can't assume that the original colors are valid for the new mode */-    memset (&modeinfo->red, 0, sizeof (modeinfo->red));-    memset (&modeinfo->green, 0, sizeof (modeinfo->green));-    memset (&modeinfo->blue, 0, sizeof (modeinfo->blue));-    memset (&modeinfo->transp, 0, sizeof (modeinfo->transp));--    if (!found_geometry)-      g_warning ("Geometry not specified");--    if (found_geometry)-      {-	modeinfo->xres = geometry[0];-	modeinfo->yres = geometry[1];-	modeinfo->xres_virtual = geometry[2];-	modeinfo->yres_virtual = geometry[3];-	modeinfo->bits_per_pixel = geometry[4];-      }-    -    if (!found_timings)-      g_warning ("Timing not specified");-    -    if (found_timings)-      {-	modeinfo->pixclock = timings[0];-	modeinfo->left_margin = timings[1];-	modeinfo->right_margin = timings[2];-	modeinfo->upper_margin = timings[3];-	modeinfo->lower_margin = timings[4];-	modeinfo->hsync_len = timings[5];-	modeinfo->vsync_len = timings[6];-	-	modeinfo->vmode = 0;-	if (laced)-	  modeinfo->vmode |= FB_VMODE_INTERLACED;-	if (doublescan)-	  modeinfo->vmode |= FB_VMODE_DOUBLE;-	  -	modeinfo->sync = 0;-	if (hsync)-	  modeinfo->sync |= FB_SYNC_HOR_HIGH_ACT;-	if (vsync)-	  modeinfo->sync |= FB_SYNC_VERT_HIGH_ACT;-	if (accel)-	  modeinfo->accel_flags = FB_ACCELF_TEXT;-	else-	  modeinfo->accel_flags = 0;-      }--    g_free (modename);-    return 1;-  }-  -  g_free (modename);-

⌨️ 快捷键说明

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