comparison mac/src/macfns.c @ 35660:b9366f467430

* alloc.c (allocate_string) [macintosh]: Call check_string_bytes only if current_sblock has been initialized. * frame.c (Fdelete_frame) [macintosh]: Allow deletion of initial terminal frame even if it is the only visible frame. * src/macfns.c (QCconversion): Replaces QCalgorithm. * src/macfns.c (image_ascent, lookup_image): Adapt to change of image margins. * src/macterm.c (x_produce_image_glyph, x_draw_image_foreground) (x_draw_image_relief, x_draw_image_foreground_1) (x_draw_image_glyph_string): Adapt to change of image margins. * src/macterm.c (mac_to_x_fontname): Change charset name of Simplify Chinese fonts from gb2312 to gb2312.1980 and Korean fonts from ksc5601 to ksc5601.1989.
author Andrew Choi <akochoi@shaw.ca>
date Sun, 28 Jan 2001 11:23:07 +0000
parents 94435b0ce7fd
children 350e6092a4c4
comparison
equal deleted inserted replaced
35659:aa45cec8f927 35660:b9366f467430
4363 /* Keywords. */ 4363 /* Keywords. */
4364 4364
4365 extern Lisp_Object QCwidth, QCheight, QCforeground, QCbackground, QCfile; 4365 extern Lisp_Object QCwidth, QCheight, QCforeground, QCbackground, QCfile;
4366 extern Lisp_Object QCdata; 4366 extern Lisp_Object QCdata;
4367 Lisp_Object QCtype, QCascent, QCmargin, QCrelief; 4367 Lisp_Object QCtype, QCascent, QCmargin, QCrelief;
4368 Lisp_Object QCalgorithm, QCcolor_symbols, QCheuristic_mask; 4368 Lisp_Object QCconversion, QCcolor_symbols, QCheuristic_mask;
4369 Lisp_Object QCindex; 4369 Lisp_Object QCindex;
4370 4370
4371 /* Other symbols. */ 4371 /* Other symbols. */
4372 4372
4373 Lisp_Object Qlaplace; 4373 Lisp_Object Qlaplace;
4754 int 4754 int
4755 image_ascent (img, face) 4755 image_ascent (img, face)
4756 struct image *img; 4756 struct image *img;
4757 struct face *face; 4757 struct face *face;
4758 { 4758 {
4759 int height = img->height + img->margin; 4759 int height = img->height + img->vmargin;
4760 int ascent; 4760 int ascent;
4761 4761
4762 if (img->ascent == CENTERED_IMAGE_ASCENT) 4762 if (img->ascent == CENTERED_IMAGE_ASCENT)
4763 { 4763 {
4764 if (face->font) 4764 if (face->font)
5042 } 5042 }
5043 else 5043 else
5044 { 5044 {
5045 /* Handle image type independent image attributes 5045 /* Handle image type independent image attributes
5046 `:ascent PERCENT', `:margin MARGIN', `:relief RELIEF'. */ 5046 `:ascent PERCENT', `:margin MARGIN', `:relief RELIEF'. */
5047 Lisp_Object ascent, margin, relief, algorithm, heuristic_mask; 5047 Lisp_Object ascent, margin, relief;
5048 Lisp_Object file;
5049 5048
5050 ascent = image_spec_value (spec, QCascent, NULL); 5049 ascent = image_spec_value (spec, QCascent, NULL);
5051 if (INTEGERP (ascent)) 5050 if (INTEGERP (ascent))
5052 img->ascent = XFASTINT (ascent); 5051 img->ascent = XFASTINT (ascent);
5053 else if (EQ (ascent, Qcenter)) 5052 else if (EQ (ascent, Qcenter))
5054 img->ascent = CENTERED_IMAGE_ASCENT; 5053 img->ascent = CENTERED_IMAGE_ASCENT;
5055 5054
5056 margin = image_spec_value (spec, QCmargin, NULL); 5055 margin = image_spec_value (spec, QCmargin, NULL);
5057 if (INTEGERP (margin) && XINT (margin) >= 0) 5056 if (INTEGERP (margin) && XINT (margin) >= 0)
5058 img->margin = XFASTINT (margin); 5057 img->vmargin = img->hmargin = XFASTINT (margin);
5058 else if (CONSP (margin) && INTEGERP (XCAR (margin))
5059 && INTEGERP (XCDR (margin)))
5060 {
5061 if (XINT (XCAR (margin)) > 0)
5062 img->hmargin = XFASTINT (XCAR (margin));
5063 if (XINT (XCDR (margin)) > 0)
5064 img->vmargin = XFASTINT (XCDR (margin));
5065 }
5059 5066
5060 relief = image_spec_value (spec, QCrelief, NULL); 5067 relief = image_spec_value (spec, QCrelief, NULL);
5061 if (INTEGERP (relief)) 5068 if (INTEGERP (relief))
5062 { 5069 {
5063 img->relief = XINT (relief); 5070 img->relief = XINT (relief);
5064 img->margin += abs (img->relief); 5071 img->hmargin += abs (img->relief);
5072 img->vmargin += abs (img->relief);
5065 } 5073 }
5066
5067 /* Should we apply a Laplace edge-detection algorithm? */
5068 algorithm = image_spec_value (spec, QCalgorithm, NULL);
5069 if (img->pixmap && EQ (algorithm, Qlaplace))
5070 x_laplace (f, img);
5071
5072 /* Should we built a mask heuristically? */
5073 heuristic_mask = image_spec_value (spec, QCheuristic_mask, NULL);
5074 if (img->pixmap && !img->mask && !NILP (heuristic_mask))
5075 x_build_heuristic_mask (f, img, heuristic_mask);
5076 } 5074 }
5077 } 5075 }
5078 5076
5079 /* We're using IMG, so set its timestamp to `now'. */ 5077 /* We're using IMG, so set its timestamp to `now'. */
5080 EMACS_GET_TIME (now); 5078 EMACS_GET_TIME (now);
9783 #if 0 /* MAC_TODO: Image support for Mac Images. */ 9781 #if 0 /* MAC_TODO: Image support for Mac Images. */
9784 Qxbm = intern ("xbm"); 9782 Qxbm = intern ("xbm");
9785 staticpro (&Qxbm); 9783 staticpro (&Qxbm);
9786 QCtype = intern (":type"); 9784 QCtype = intern (":type");
9787 staticpro (&QCtype); 9785 staticpro (&QCtype);
9788 QCalgorithm = intern (":algorithm"); 9786 QCconversion = intern (":conversion");
9789 staticpro (&QCalgorithm); 9787 staticpro (&QCconversion);
9790 QCheuristic_mask = intern (":heuristic-mask"); 9788 QCheuristic_mask = intern (":heuristic-mask");
9791 staticpro (&QCheuristic_mask); 9789 staticpro (&QCheuristic_mask);
9792 QCcolor_symbols = intern (":color-symbols"); 9790 QCcolor_symbols = intern (":color-symbols");
9793 staticpro (&QCcolor_symbols); 9791 staticpro (&QCcolor_symbols);
9794 QCascent = intern (":ascent"); 9792 QCascent = intern (":ascent");