ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/defaultfont.C
(Generate patch)

Comparing rxvt-unicode/src/defaultfont.C (file contents):
Revision 1.19 by pcg, Fri Feb 13 13:28:17 2004 UTC vs.
Revision 1.23 by pcg, Sun Feb 22 08:28:36 2004 UTC

1/*--------------------------------*-C-*---------------------------------*; 1/*--------------------------------*-C-*---------------------------------*;
2 * File: defaultfont.C 2 * File: defaultfont.C
3 *----------------------------------------------------------------------* 3 *----------------------------------------------------------------------*
4 * Copyright (c) 2003 Marc Lehmann rxvt@plan9.de> 4 * Copyright (c) 2003-2004 Marc Lehmann <pcg@goof.com>
5 * - original version. 5 * - original version.
6 * 6 *
7 * This program is free software; you can redistribute it and/or modify 7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by 8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or 9 * the Free Software Foundation; either version 2 of the License, or
760}; 760};
761 761
762void 762void
763rxvt_font_xft::clear () 763rxvt_font_xft::clear ()
764{ 764{
765 if (d)
766 {
767 XftDrawDestroy (d);
768 d = 0;
769 }
770
765 if (f) 771 if (f)
766 { 772 {
767 XftFontClose (DISPLAY, f); 773 XftFontClose (DISPLAY, f);
768 f = 0; 774 f = 0;
769 }
770
771 if (d)
772 {
773 XftDrawDestroy (d);
774 d = 0;
775 } 775 }
776} 776}
777 777
778rxvt_fontprop 778rxvt_fontprop
779rxvt_font_xft::properties () 779rxvt_font_xft::properties ()
890void 890void
891rxvt_font_xft::draw (int x, int y, 891rxvt_font_xft::draw (int x, int y,
892 const text_t *text, int len, 892 const text_t *text, int len,
893 int fg, int bg) 893 int fg, int bg)
894{ 894{
895 if (!d)
896 d = XftDrawCreate (DISPLAY, DRAWABLE, r->display->visual, r->display->cmap); 895 d = XftDrawCreate (DISPLAY, DRAWABLE, r->display->visual, r->display->cmap);
897 896
898 if (bg >= 0 && bg != Color_bg) 897 if (bg >= 0 && bg != Color_bg)
899 XftDrawRect (d, &r->PixColors[bg].c, x, y, r->TermWin.fwidth * len, r->TermWin.fheight); 898 XftDrawRect (d, &r->PixColors[bg].c, x, y, r->TermWin.fwidth * len, r->TermWin.fheight);
900 else 899 else
901 clear_rect (x, y, r->TermWin.fwidth * len, r->TermWin.fheight, bg); 900 clear_rect (x, y, r->TermWin.fwidth * len, r->TermWin.fheight, bg);
1068 } 1067 }
1069 1068
1070 return true; 1069 return true;
1071} 1070}
1072 1071
1073void 1072bool
1074rxvt_fontset::populate (const char *desc) 1073rxvt_fontset::populate (const char *desc)
1075{ 1074{
1076 clear (); 1075 clear ();
1077 1076
1078 fonts.push_back (new_font (0, CS_UNICODE)); 1077 fonts.push_back (new_font (0, CS_UNICODE));
1090 add_fonts ("fixed"); 1089 add_fonts ("fixed");
1091 base_id = fonts.size () - 1; 1090 base_id = fonts.size () - 1;
1092 } 1091 }
1093 1092
1094 if ((int)fonts.size () <= base_id || !realize_font (base_id)) 1093 if ((int)fonts.size () <= base_id || !realize_font (base_id))
1095 { 1094 return false;
1096 fprintf (stderr, "unable to load a base font, please provide one using -fn fontname\n");
1097 exit (1);
1098 }
1099 1095
1100 base_prop = fonts[base_id]->properties (); 1096 base_prop = fonts[base_id]->properties ();
1097
1098 return true;
1101} 1099}
1102 1100
1103int 1101int
1104rxvt_fontset::find_font (uint32_t unicode) 1102rxvt_fontset::find_font (uint32_t unicode)
1105{ 1103{

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines