comparison src/os_mswin.c @ 8835:c1a5623cfc86 v7.4.1705

commit https://github.com/vim/vim/commit/7c1c6dbb6817640fd3956a0d5417da23fde336d8 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Apr 3 22:08:05 2016 +0200 patch 7.4.1705 Problem: The 'guifont' option does not allow for a quality setting. Solution: Add the "q" item, supported on MS-Windows. (Yasuhiro Matsumoto)
author Christian Brabandt <cb@256bit.org>
date Sun, 03 Apr 2016 22:15:05 +0200
parents 2f57bbe870ea
children 87a6a0d65788
comparison
equal deleted inserted replaced
8834:2617876e675a 8835:c1a5623cfc86
2687 # endif 2687 # endif
2688 #endif 2688 #endif
2689 {NULL, 0} 2689 {NULL, 0}
2690 }; 2690 };
2691 2691
2692 struct quality_pair
2693 {
2694 char *name;
2695 DWORD quality;
2696 };
2697
2698 static struct quality_pair
2699 quality_pairs[] = {
2700 #ifdef CLEARTYPE_QUALITY
2701 {"CLEARTYPE", CLEARTYPE_QUALITY},
2702 #endif
2703 #ifdef ANTIALIASED_QUALITY
2704 {"ANTIALIASED", ANTIALIASED_QUALITY},
2705 #endif
2706 #ifdef NOANTIALIASED_QUALITY
2707 {"NOANTIALIASED", NOANTIALIASED_QUALITY},
2708 #endif
2709 #ifdef PROOF_QUALITY
2710 {"PROOF", PROOF_QUALITY},
2711 #endif
2712 #ifdef PROOF_QUALITY
2713 {"DRAFT", DRAFT_QUALITY},
2714 #endif
2715 {"DEFAULT", DEFAULT_QUALITY},
2716 {NULL, 0}
2717 };
2718
2692 /* 2719 /*
2693 * Convert a charset ID to a name. 2720 * Convert a charset ID to a name.
2694 * Return NULL when not recognized. 2721 * Return NULL when not recognized.
2695 */ 2722 */
2696 char * 2723 char *
2700 2727
2701 for (cp = charset_pairs; cp->name != NULL; ++cp) 2728 for (cp = charset_pairs; cp->name != NULL; ++cp)
2702 if ((BYTE)id == cp->charset) 2729 if ((BYTE)id == cp->charset)
2703 break; 2730 break;
2704 return cp->name; 2731 return cp->name;
2732 }
2733
2734 /*
2735 * Convert a quality ID to a name.
2736 * Return NULL when not recognized.
2737 */
2738 char *
2739 quality_id2name(DWORD id)
2740 {
2741 struct quality_pair *qp;
2742
2743 for (qp = quality_pairs; qp->name != NULL; ++qp)
2744 if (id == qp->quality)
2745 break;
2746 return qp->name;
2705 } 2747 }
2706 2748
2707 static const LOGFONT s_lfDefault = 2749 static const LOGFONT s_lfDefault =
2708 { 2750 {
2709 -12, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, DEFAULT_CHARSET, 2751 -12, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, DEFAULT_CHARSET,
2983 EMSG(IObuff); 3025 EMSG(IObuff);
2984 break; 3026 break;
2985 } 3027 }
2986 break; 3028 break;
2987 } 3029 }
3030 case 'q':
3031 {
3032 struct quality_pair *qp;
3033
3034 for (qp = quality_pairs; qp->name != NULL; ++qp)
3035 if (STRNCMP(p, qp->name, strlen(qp->name)) == 0)
3036 {
3037 lf->lfQuality = qp->quality;
3038 p += strlen(qp->name);
3039 break;
3040 }
3041 if (qp->name == NULL && verbose)
3042 {
3043 vim_snprintf((char *)IObuff, IOSIZE,
3044 _("E244: Illegal quality name \"%s\" in font name \"%s\""), p, name);
3045 EMSG(IObuff);
3046 break;
3047 }
3048 break;
3049 }
2988 default: 3050 default:
2989 if (verbose) 3051 if (verbose)
2990 { 3052 {
2991 vim_snprintf((char *)IObuff, IOSIZE, 3053 vim_snprintf((char *)IObuff, IOSIZE,
2992 _("E245: Illegal char '%c' in font name \"%s\""), 3054 _("E245: Illegal char '%c' in font name \"%s\""),