/* m17n-gd.c -- implementation of the GUI API on GD Library.
- Copyright (C) 2004
+ Copyright (C) 2004, 2005, 2006
National Institute of Advanced Industrial Science and Technology (AIST)
Registration Number H15PRO112
You should have received a copy of the GNU Lesser General Public
License along with the m17n library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
02111-1307, USA. */
#if !defined (FOR_DOXYGEN) || defined (DOXYGEN_INTERNAL_MODULE)
static void
read_rgb_txt ()
{
- FILE *fp = fopen ("/usr/lib/X11/rgb.txt", "r");
+ FILE *fp;
int r, g, b;
+ /* At first, support HTML 4.0 color names. */
+ msymbol_put (msymbol ("black"), M_rgb, (void *) 0x000000);
+ msymbol_put (msymbol ("silver"), M_rgb, (void *) 0xC0C0C0);
+ msymbol_put (msymbol ("gray"), M_rgb, (void *) 0x808080);
+ msymbol_put (msymbol ("white"), M_rgb, (void *) 0xFFFFFF);
+ msymbol_put (msymbol ("maroon"), M_rgb, (void *) 0x800000);
+ msymbol_put (msymbol ("red"), M_rgb, (void *) 0xFF0000);
+ msymbol_put (msymbol ("purple"), M_rgb, (void *) 0x800080);
+ msymbol_put (msymbol ("fuchsia"), M_rgb, (void *) 0xFF00FF);
+ msymbol_put (msymbol ("green"), M_rgb, (void *) 0x008000);
+ msymbol_put (msymbol ("lime"), M_rgb, (void *) 0x00FF00);
+ msymbol_put (msymbol ("olive"), M_rgb, (void *) 0x808000);
+ msymbol_put (msymbol ("yellow"), M_rgb, (void *) 0xFFFF00);
+ msymbol_put (msymbol ("navy"), M_rgb, (void *) 0x000080);
+ msymbol_put (msymbol ("blue"), M_rgb, (void *) 0x0000FF);
+ msymbol_put (msymbol ("teal"), M_rgb, (void *) 0x008080);
+ msymbol_put (msymbol ("aqua"), M_rgb, (void *) 0x00FFFF);
+
+ fp = fopen ("/usr/lib/X11/rgb.txt", "r");
if (! fp)
fp = fopen ("/usr/X11R6/lib/X11/rgb.txt", "r");
if (! fp)
int color, pixel;
int r, g, b;
- pixel = RESOLVE_COLOR (img, color);
-
if (from == to)
return;
{
xoff = x + ft_face->glyph->bitmap_left + from->xoff;
for (j = 0; j < width; j++, xoff++)
- if (bmp[j])
+ if (bmp[j] > 0)
{
- int f = bmp[j] >> 5;
int pixel1 = pixel;
+#if HAVE_GD > 1
+ int alpha = gdAlphaTransparent * (255 - bmp[j]) / 255;
+
+ if (alpha > 0)
+ pixel1 = gdImageColorResolveAlpha (img, r, g, b, alpha);
+#else
+ int f = bmp[j] >> 5;
if (f < 7)
{
| ((b * f + b1 * (7 - f)) / 7));
pixel1 = RESOLVE_COLOR (img, color1);
}
+#endif
gdImageSetPixel (img, xoff, yoff, pixel1);
}
}
frame->realized_face_list = realized_face_list;
frame->realized_fontset_list = realized_fontset_list;
face = mface_copy (mface__default);
+ mface_put_prop (face, Mfoundry, Mnil);
+ mface_put_prop (face, Mfamily, Mnil);
mplist_push (param, Mface, face);
M17N_OBJECT_UNREF (face);
return 0;