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

📄 gdkfont-win32.c

📁 linux下电话本所依赖的一些图形库
💻 C
📖 第 1 页 / 共 4 页
字号:
    }  if (check_cp (FS_CYRILLIC))    {      set_bit (U_BASIC_LATIN);      set_bit (U_CYRILLIC);      retval = TRUE;    }  if (check_cp (FS_GREEK))    {      set_bit (U_BASIC_LATIN);      set_bit (U_BASIC_GREEK);      retval = TRUE;    }  if (check_cp (FS_TURKISH))    {      set_bit (U_BASIC_LATIN);      set_bit (U_LATIN_1_SUPPLEMENT);      set_bit (U_LATIN_EXTENDED_A);      set_bit (U_CURRENCY_SYMBOLS);      retval = TRUE;    }  if (check_cp (FS_HEBREW))    {      set_bit (U_BASIC_LATIN);      set_bit (U_CURRENCY_SYMBOLS);      set_bit (U_BASIC_HEBREW);      set_bit (U_HEBREW_EXTENDED);      retval = TRUE;    }  if (check_cp (FS_ARABIC))    {      set_bit (U_BASIC_LATIN);      set_bit (U_CURRENCY_SYMBOLS);      set_bit (U_BASIC_ARABIC);      set_bit (U_ARABIC_EXTENDED);      retval = TRUE;    }  if (check_cp (FS_BALTIC))    {      set_bit (U_BASIC_LATIN);      set_bit (U_LATIN_1_SUPPLEMENT);      set_bit (U_CURRENCY_SYMBOLS);      set_bit (U_LATIN_EXTENDED_A);      set_bit (U_LATIN_EXTENDED_B);      retval = TRUE;    }  if (check_cp (FS_VIETNAMESE))    {      /* ??? */      set_bit (U_BASIC_LATIN);      retval = TRUE;    }  if (check_cp (FS_THAI))    {      set_bit (U_BASIC_LATIN);      set_bit (U_THAI);      retval = TRUE;    }  if (check_cp (FS_JISJAPAN))    {      /* Based on MS Gothic */      set_bit (U_BASIC_LATIN);      set_bit (U_CJK_SYMBOLS_AND_PUNCTUATION);      set_bit (U_HIRAGANA);      set_bit (U_KATAKANA);      set_bit (U_CJK_UNIFIED_IDEOGRAPHS);      set_bit (U_HALFWIDTH_AND_FULLWIDTH_FORMS);      retval = TRUE;    }  if (check_cp (FS_CHINESESIMP))    {      /* Based on MS Hei */      set_bit (U_BASIC_LATIN);      set_bit (U_HIRAGANA);      set_bit (U_KATAKANA);      set_bit (U_BOPOMOFO);      set_bit (U_CJK_UNIFIED_IDEOGRAPHS);      retval = TRUE;    }  if (check_cp (FS_WANSUNG)      || check_cp (FS_JOHAB))	/* ??? */    {      /* Based on GulimChe. I wonder if all Korean fonts       * really support this large range of Unicode subranges?       */      set_bit (U_BASIC_LATIN);      set_bit (U_LATIN_1_SUPPLEMENT);      set_bit (U_LATIN_EXTENDED_A);      set_bit (U_SPACING_MODIFIER_LETTERS);      set_bit (U_BASIC_GREEK);      set_bit (U_CYRILLIC);      set_bit (U_HANGUL_JAMO);      set_bit (U_GENERAL_PUNCTUATION);      set_bit (U_SUPERSCRIPTS_AND_SUBSCRIPTS);      set_bit (U_CURRENCY_SYMBOLS);      set_bit (U_LETTERLIKE_SYMBOLS);      set_bit (U_NUMBER_FORMS);      set_bit (U_ARROWS);      set_bit (U_MATHEMATICAL_OPERATORS);      set_bit (U_MISCELLANEOUS_TECHNICAL);      set_bit (U_ENCLOSED_ALPHANUMERICS);      set_bit (U_BOX_DRAWING);      set_bit (U_BLOCK_ELEMENTS);      set_bit (U_GEOMETRIC_SHAPES);      set_bit (U_MISCELLANEOUS_SYMBOLS);      set_bit (U_CJK_SYMBOLS_AND_PUNCTUATION);      set_bit (U_HIRAGANA);      set_bit (U_KATAKANA);      set_bit (U_HANGUL_COMPATIBILITY_JAMO);      set_bit (U_ENCLOSED_CJK);      set_bit (U_CJK_COMPATIBILITY_FORMS);      set_bit (U_HANGUL);      set_bit (U_CJK_UNIFIED_IDEOGRAPHS);      set_bit (U_CJK_COMPATIBILITY_IDEOGRAPHS);      set_bit (U_HALFWIDTH_AND_FULLWIDTH_FORMS);      retval = TRUE;    }  if (check_cp (FS_CHINESETRAD))    {      /* Based on MingLiU */      set_bit (U_BASIC_LATIN);      set_bit (U_GENERAL_PUNCTUATION);      set_bit (U_BOX_DRAWING);      set_bit (U_BLOCK_ELEMENTS);      set_bit (U_CJK_SYMBOLS_AND_PUNCTUATION);      set_bit (U_BOPOMOFO);      set_bit (U_CJK_UNIFIED_IDEOGRAPHS);      set_bit (U_CJK_COMPATIBILITY_IDEOGRAPHS);      set_bit (U_SMALL_FORM_VARIANTS);      set_bit (U_HALFWIDTH_AND_FULLWIDTH_FORMS);      retval = TRUE;    }  if (check_cp (FS_SYMBOL) || charset == MAC_CHARSET)    {      /* Non-Unicode encoding, I guess. Pretend it covers       * the single-byte range of values.       */      set_bit (U_BASIC_LATIN);      set_bit (U_LATIN_1_SUPPLEMENT);      retval = TRUE;    }  if (retval)    return TRUE;  GDK_NOTE (MISC, g_print ("... No code page bits set!\n"));  /* Sigh. Not even any code page bits were set. Guess based on   * charset, then. These somewhat optimistic guesses are based on the   * table in Appendix M in the book "Developing ..."  mentioned   * above.   */  switch (charset)    {    case ANSI_CHARSET:      set_bit (U_BASIC_LATIN);      set_bit (U_LATIN_1_SUPPLEMENT);      set_bit (U_LATIN_EXTENDED_A);      set_bit (U_LATIN_EXTENDED_B);      set_bit (U_SPACING_MODIFIER_LETTERS);      set_bit (U_COMBINING_DIACRITICAL_MARKS);      set_bit (U_GENERAL_PUNCTUATION);      set_bit (U_SUPERSCRIPTS_AND_SUBSCRIPTS);      set_bit (U_CURRENCY_SYMBOLS);#if 0 /* I find this too hard to believe... */      set_bit (U_BASIC_GREEK);      set_bit (U_CYRILLIC);      set_bit (U_BASIC_HEBREW);      set_bit (U_HEBREW_EXTENDED);      set_bit (U_BASIC_ARABIC);      set_bit (U_ARABIC_EXTENDED);      set_bit (U_LETTERLIKE_SYMBOLS);      set_bit (U_NUMBER_FORMS);      set_bit (U_ARROWS);      set_bit (U_MATHEMATICAL_OPERATORS);      set_bit (U_MISCELLANEOUS_TECHNICAL);      set_bit (U_ENCLOSED_ALPHANUMERICS);      set_bit (U_BOX_DRAWING);      set_bit (U_BLOCK_ELEMENTS);      set_bit (U_GEOMETRIC_SHAPES);      set_bit (U_MISCELLANEOUS_SYMBOLS);      set_bit (U_HIRAGANA);      set_bit (U_KATAKANA);      set_bit (U_BOPOMOFO);      set_bit (U_HANGUL_COMPATIBILITY_JAMO);      set_bit (U_CJK_MISCELLANEOUS);      set_bit (U_CJK_COMPATIBILITY);      set_bit (U_HANGUL);      set_bit (U_HANGUL_SUPPLEMENTARY_A);      set_bit (U_CJK_COMPATIBILITY_IDEOGRAPHS);      set_bit (U_ALPHABETIC_PRESENTATION_FORMS);      set_bit (U_SMALL_FORM_VARIANTS);      set_bit (U_ARABIC_PRESENTATION_FORMS_B);      set_bit (U_HALFWIDTH_AND_FULLWIDTH_FORMS);      set_bit (U_SPECIALS);#endif      retval = TRUE;      break;    case SYMBOL_CHARSET:      /* Unggh */      set_bit (U_BASIC_LATIN);      set_bit (U_LATIN_1_SUPPLEMENT);      retval = TRUE;      break;    case SHIFTJIS_CHARSET:    case HANGEUL_CHARSET:    case GB2312_CHARSET:    case CHINESEBIG5_CHARSET:    case JOHAB_CHARSET:      /* The table really does claim these "locales" (it doesn't       * talk about charsets per se) cover the same Unicode       * subranges       */      set_bit (U_BASIC_LATIN);      set_bit (U_LATIN_1_SUPPLEMENT);      set_bit (U_LATIN_EXTENDED_A);      set_bit (U_LATIN_EXTENDED_B);      set_bit (U_SPACING_MODIFIER_LETTERS);      set_bit (U_COMBINING_DIACRITICAL_MARKS_FOR_SYMBOLS);      set_bit (U_BASIC_GREEK);      set_bit (U_CYRILLIC);      set_bit (U_HANGUL_JAMO);      set_bit (U_GENERAL_PUNCTUATION);      set_bit (U_SUPERSCRIPTS_AND_SUBSCRIPTS);      set_bit (U_CURRENCY_SYMBOLS);      set_bit (U_LETTERLIKE_SYMBOLS);      set_bit (U_NUMBER_FORMS);      set_bit (U_ARROWS);      set_bit (U_MATHEMATICAL_OPERATORS);      set_bit (U_MISCELLANEOUS_TECHNICAL);      set_bit (U_ENCLOSED_ALPHANUMERICS);      set_bit (U_BOX_DRAWING);      set_bit (U_BLOCK_ELEMENTS);      set_bit (U_GEOMETRIC_SHAPES);      set_bit (U_MISCELLANEOUS_SYMBOLS);      set_bit (U_CJK_SYMBOLS_AND_PUNCTUATION);      set_bit (U_HIRAGANA);      set_bit (U_KATAKANA);      set_bit (U_BOPOMOFO);      set_bit (U_HANGUL_COMPATIBILITY_JAMO);      set_bit (U_CJK_MISCELLANEOUS);      set_bit (U_CJK_COMPATIBILITY);      set_bit (U_HANGUL);      set_bit (U_HANGUL_SUPPLEMENTARY_A);      set_bit (U_CJK_UNIFIED_IDEOGRAPHS);      set_bit (U_CJK_COMPATIBILITY_IDEOGRAPHS);      set_bit (U_ALPHABETIC_PRESENTATION_FORMS);      set_bit (U_SMALL_FORM_VARIANTS);      set_bit (U_ARABIC_PRESENTATION_FORMS_B);      set_bit (U_SPECIALS);      retval = TRUE;      break;    case HEBREW_CHARSET:      set_bit (U_BASIC_LATIN);      set_bit (U_LATIN_1_SUPPLEMENT);      set_bit (U_LATIN_EXTENDED_B);      set_bit (U_SPACING_MODIFIER_LETTERS);      set_bit (U_BASIC_HEBREW);      set_bit (U_HEBREW_EXTENDED);      set_bit (U_GENERAL_PUNCTUATION);      set_bit (U_LETTERLIKE_SYMBOLS);      retval = TRUE;       break;    case ARABIC_CHARSET:      set_bit (U_BASIC_LATIN);      set_bit (U_LATIN_1_SUPPLEMENT);      set_bit (U_LATIN_EXTENDED_A);      set_bit (U_LATIN_EXTENDED_B);      set_bit (U_SPACING_MODIFIER_LETTERS);      set_bit (U_BASIC_GREEK);      set_bit (U_BASIC_ARABIC);      set_bit (U_ARABIC_EXTENDED);      set_bit (U_GENERAL_PUNCTUATION);      set_bit (U_LETTERLIKE_SYMBOLS);      set_bit (U_ARROWS);      set_bit (U_MATHEMATICAL_OPERATORS);      set_bit (U_MISCELLANEOUS_TECHNICAL);      set_bit (U_BOX_DRAWING);      set_bit (U_BLOCK_ELEMENTS);      set_bit (U_GEOMETRIC_SHAPES);      set_bit (U_MISCELLANEOUS_SYMBOLS);      set_bit (U_HALFWIDTH_AND_FULLWIDTH_FORMS);      retval = TRUE;      break;    case GREEK_CHARSET:      set_bit (U_BASIC_LATIN);      set_bit (U_LATIN_1_SUPPLEMENT);      set_bit (U_LATIN_EXTENDED_B);      set_bit (U_BASIC_GREEK);      set_bit (U_GENERAL_PUNCTUATION);      set_bit (U_SUPERSCRIPTS_AND_SUBSCRIPTS);      set_bit (U_LETTERLIKE_SYMBOLS);      set_bit (U_ARROWS);      set_bit (U_MATHEMATICAL_OPERATORS);      set_bit (U_MISCELLANEOUS_TECHNICAL);      set_bit (U_BOX_DRAWING);      set_bit (U_BLOCK_ELEMENTS);      set_bit (U_GEOMETRIC_SHAPES);      set_bit (U_MISCELLANEOUS_SYMBOLS);      retval = TRUE;      break;    case TURKISH_CHARSET:      set_bit (U_BASIC_LATIN);      set_bit (U_LATIN_1_SUPPLEMENT);      set_bit (U_LATIN_EXTENDED_A);      set_bit (U_LATIN_EXTENDED_B);      set_bit (U_SPACING_MODIFIER_LETTERS);      set_bit (U_BASIC_GREEK);      set_bit (U_GENERAL_PUNCTUATION);      set_bit (U_SUPERSCRIPTS_AND_SUBSCRIPTS);      set_bit (U_CURRENCY_SYMBOLS);      set_bit (U_LETTERLIKE_SYMBOLS);      set_bit (U_ARROWS);      set_bit (U_MATHEMATICAL_OPERATORS);      set_bit (U_MISCELLANEOUS_TECHNICAL);      set_bit (U_BOX_DRAWING);      set_bit (U_BLOCK_ELEMENTS);      set_bit (U_GEOMETRIC_SHAPES);      set_bit (U_MISCELLANEOUS_SYMBOLS);      retval = TRUE;      break;    case VIETNAMESE_CHARSET:    case THAI_CHARSET:      /* These are not in the table, so I have no idea */      break;    case BALTIC_CHARSET:      set_bit (U_BASIC_LATIN);      set_bit (U_LATIN_1_SUPPLEMENT);      set_bit (U_LATIN_EXTENDED_A);      set_bit (U_LATIN_EXTENDED_B);      set_bit (U_SPACING_MODIFIER_LETTERS);      set_bit (U_BASIC_GREEK);      set_bit (U_GENERAL_PUNCTUATION);      set_bit (U_SUPERSCRIPTS_AND_SUBSCRIPTS);      set_bit (U_CURRENCY_SYMBOLS);      set_bit (U_LETTERLIKE_SYMBOLS);      set_bit (U_ARROWS);      set_bit (U_MATHEMATICAL_OPERATORS);      set_bit (U_MISCELLANEOUS_TECHNICAL);      set_bit (U_BOX_DRAWING);      set_bit (U_BLOCK_ELEMENTS);      set_bit (U_GEOMETRIC_SHAPES);      set_bit (U_MISCELLANEOUS_SYMBOLS);      retval = TRUE;      break;    case EASTEUROPE_CHARSET:      set_bit (U_BASIC_LATIN);      set_bit (U_LATIN_1_SUPPLEMENT);      set_bit (U_LATIN_EXTENDED_A);      set_bit (U_LATIN_EXTENDED_B);      set_bit (U_SPACING_MODIFIER_LETTERS);      set_bit (U_BASIC_GREEK);      set_bit (U_GENERAL_PUNCTUATION);      set_bit (U_SUPERSCRIPTS_AND_SUBSCRIPTS);      set_bit (U_CURRENCY_SYMBOLS);      set_bit (U_LETTERLIKE_SYMBOLS);      set_bit (U_ARROWS);      set_bit (U_MATHEMATICAL_OPERATORS);      set_bit (U_MISCELLANEOUS_TECHNICAL);      set_bit (U_BOX_DRAWING);      set_bit (U_BLOCK_ELEMENTS);      set_bit (U_GEOMETRIC_SHAPES);      set_bit (U_MISCELLANEOUS_SYMBOLS);      retval = TRUE;      break;    case RUSSIAN_CHARSET:      set_bit (U_BASIC_LATIN);      set_bit (U_LATIN_1_SUPPLEMENT);      set_bit (U_CYRILLIC);      set_bit (U_GENERAL_PUNCTUATION);      set_bit (U_LETTERLIKE_SYMBOLS);      set_bit (U_ARROWS);      set_bit (U_MATHEMATICAL_OPERATORS);      set_bit (U_MISCELLANEOUS_TECHNICAL);      set_bit (U_BOX_DRAWING);      set_bit (U_BLOCK_ELEMENTS);      set_bit (U_GEOMETRIC_SHAPES);      set_bit (U_MISCELLANEOUS_SYMBOLS);      retval = TRUE;      break;    }#undef set_bit  return retval;}static GdkWin32SingleFont *gdk_font_load_logfont (LOGFONT *lfp){  GdkWin32SingleFont *singlefont;  HFONT hfont;  LOGFONT logfont;  CHARSETINFO csi;  HGDIOBJ oldfont;  int tries;  gchar face[100];  for (tries = 0; ; tries++)    {      GDK_NOTE (MISC, g_print ("... trying %ld,%ld,%ld,%ld,"			       "%ld,%d,%d,%d,"			       "%d,%d,%d,"			       "%d,%#.02x,\"%s\"\n",			       lfp->lfHeight, lfp->lfWidth,			       lfp->lfEscapement, lfp->lfOrientation,			       lfp->lfWeight, lfp->lfItalic,			       lfp->lfUnderline, lfp->lfStrikeOut,			       lfp->lfCharSet,			       lfp->lfOutPrecision, lfp->lfClipPrecision,			       lfp->lfQuality, lfp->lfPitchAndFamily,			       lfp->lfFaceName));      hfont = CreateFontIndirect (lfp);      if (hfont != NULL)	break;            /* If we fail, try some similar fonts often found on Windows. */      if (tries == 0)	{	  if (g_strcasecmp (lfp->lfFaceName, "helvetica") == 0)	    strcpy (lfp->lfFaceName, "arial");	  else if (g_strcasecmp (lfp->lfFaceName, "new century schoolbook") == 0)	    strcpy (lfp->lfFaceName, "century schoolbook");	  else if (g_strcasecmp (lfp->lfFaceName, "courier") == 0)	    strcpy (lfp->lfFaceName, "courier new");	  else if (g_strcasecmp (lfp->lfFaceName, "lucida") == 0)	    strcpy (lfp->lfFaceName, "lucida sans unicode");	  else if (g_strcasecmp (lfp->lfFaceName, "lucidatypewriter") == 0)	    strcpy (lfp->lfFaceName, "lucida console");

⌨️ 快捷键说明

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