unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: storm@cua.dk (Kim F. Storm)
Cc: emacs-devel@gnu.org
Subject: Re: Bold by moving pixels problem
Date: 18 Dec 2002 13:26:46 +0100	[thread overview]
Message-ID: <5xfzsvqzqx.fsf@kfs2.cua.dk> (raw)
In-Reply-To: <buo1y4f3aua.fsf@mcspd15.ucom.lsi.nec.co.jp>

Miles Bader <miles@lsi.nec.co.jp> writes:

> Here's an updated version of my patch, that uses a list of functions:
> 
> 
> 
> 2002-12-17  Miles Bader  <miles@gnu.org>
> 
> 	* xfaces.c (Vrealize_face_filter_functions): New variable.
> 	(realize_face): If Vrealize_face_filter_functions has a non-nil
> 	value, use it to filter the face attributes before realization.
> 	Use new calling conventions for realize_x_face, realize_tty_face,
> 	and load_face_font.


I've looked at your patch, and it seems to be very low-level to give
the filter functions direct access to the actual lface vector elements.

I'd suggest a different approach using the internal-lisp-face attribute
names that are already defined in xfaces.c such as :family, :height, etc.

Instead of the raw lface vector, the filter function should receive
a plist with all of the current lface attributes (:family X :height Y ...),
and it should return a (possibly) modified plist ... which is then
passed on to the next filter function in the list.

When all filter functions have been called, the plist is used to
build the final lface vector.

It might be a little less efficient than using the raw vector, but
this doesn't get called very often anyway (according to your own
statistics).  And not at all if Vrealize_face_filter_functions is nil.

Example:
 
Your code:
> 
> (defun lface-emulate-bold-with-color (lface)
>   (if (memq (aref lface 4)
> 	    '(bold heavy extra-bold semi-bold ultra-bold))
>       (let ((fg-vals (color-values (aref lface 8))))
> 	;; unboldify
> 	(aset lface 4 'normal)
> 	;; Tweak the fg color to indicate bold.
> 	(cond ((equal fg-vals '(65535 65535 65535))
> 	       (aset lface 8 "khaki"))
> 	      ((equal fg-vals '(0 0 0))
> 	       (aset lface 8 "orange4"))
> 	      (t
> 	       ;; intensify the color
> 	       (aset lface 8 (highlight-color (aref lface 8) 2 5000)))))))

becomes something like this: [not tested]

(defun lface-emulate-bold-with-color (lface)
  (let ((weight (plist-get lface :weight))
        (fg (plist-get lface :foreground)))
    (if (memq weight '(bold heavy extra-bold semi-bold ultra-bold))
        (let ((fg-vals (color-values fg)))
	  ;; unboldify
	  (setq lface (plist-put lface :weight 'normal))
	  ;; Tweak the fg color to indicate bold.
	  (cond ((equal fg-vals '(65535 65535 65535))
		 (setq lface (plist-put lface :foreground "khaki")))
		((equal fg-vals '(0 0 0))
		 (setq lface (plist-put lface :foreground "orange4")))
		(t
		 ;; intensify the color
		 (setq lface (plist-put lface :foreground
					(highlight-color fg 2 5000))))))))
  lface)

-- 
Kim F. Storm <storm@cua.dk> http://www.cua.dk

  reply	other threads:[~2002-12-18 12:26 UTC|newest]

Thread overview: 131+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-11-07 19:39 Gtk version getting closer Jan D.
2002-11-08  0:08 ` Kim F. Storm
2002-11-08  9:21   ` jasonr
2002-11-08  9:56     ` Juanma Barranquero
2002-11-08 11:25       ` Kim F. Storm
2002-11-08 10:36         ` Juanma Barranquero
2002-11-09 14:27         ` Jan D.
2002-11-09 21:29   ` Eli Zaretskii
2002-11-09 11:53 ` Richard Stallman
2002-11-09 14:16   ` Jan D.
2002-11-11 10:19     ` Richard Stallman
2002-11-09 15:05   ` Karl Eichwalder
2002-11-11 10:19     ` Richard Stallman
2002-11-11 18:36       ` Karl Eichwalder
2002-11-12  5:50         ` Eli Zaretskii
2002-11-12  7:24           ` Karl Eichwalder
2002-11-12 17:15             ` Eli Zaretskii
2002-11-13  4:40             ` Miles Bader
2002-11-13  5:42               ` Eli Zaretskii
2002-11-13 13:21                 ` Robert J. Chassell
2002-11-13 15:38                   ` Jan D.
2002-11-13 16:35                     ` Stefan Monnier
2002-11-13 17:58                       ` Jan D.
2002-11-14 18:57                     ` Eli Zaretskii
2002-11-14 20:07                       ` Jan D.
2002-11-14 20:28                         ` Eli Zaretskii
2002-11-14 23:03                       ` Jason Rumney
2002-11-15 15:59                         ` Eli Zaretskii
2002-11-13 15:55                   ` Kim F. Storm
2002-11-13 18:23                     ` Robert J. Chassell
2002-11-13 18:42                       ` Stefan Monnier
2002-11-13 21:15                         ` Jan D.
2002-11-13 18:58                       ` David Masterson
2002-11-13 16:52                   ` Francesco Potorti`
2002-11-14 12:16                   ` Richard Stallman
2002-11-14 16:46                     ` Robert J. Chassell
2002-11-15  2:20                       ` Miles Bader
2002-11-15 12:29                         ` Robert J. Chassell
     [not found]                         ` <m18EUbO-000IeAC@localhost>
2002-11-20 22:08                           ` Bold by moving pixels problem Miles Bader
2002-11-21  0:21                             ` Robert J. Chassell
2002-11-21  1:33                               ` Stefan Monnier
2002-11-21  1:44                                 ` Miles Bader
     [not found]                                   ` <m18HRR2-000IeBC@localhost>
2002-12-17  5:00                                     ` Miles Bader
2002-12-17  6:28                                       ` Miles Bader
2002-12-17  7:08                                         ` Miles Bader
2002-12-18 10:01                                           ` Miles Bader
2002-12-18 12:26                                             ` Kim F. Storm [this message]
2002-12-19  8:34                                               ` Miles Bader
2002-12-19 10:18                                                 ` Miles Bader
2002-12-19 12:18                                                 ` Kim F. Storm
2002-12-19 11:27                                                   ` Miles Bader
2002-12-19 12:25                                                     ` Miles Bader
2002-12-19 13:55                                                       ` Kim F. Storm
2003-01-07 11:02                                                       ` Kim F. Storm
2003-01-07 14:02                                                         ` Miles Bader
2003-01-09  7:28                                                         ` Richard Stallman
2003-01-09  7:52                                                           ` Miles Bader
2002-12-18 14:25                                             ` Robert J. Chassell
2002-12-19 10:15                                               ` signal handling bogosities Miles Bader
2002-12-20 17:12                                                 ` Richard Stallman
2002-12-20 17:46                                                   ` Eli Zaretskii
2002-12-20 18:35                                                   ` Alex Schroeder
2002-12-20 22:06                                                   ` Miles Bader
2002-12-21 20:26                                                     ` Richard Stallman
2002-12-21 23:42                                                       ` Alex Schroeder
2002-12-23 20:58                                                         ` Richard Stallman
2002-12-22  2:02                                                       ` Miles Bader
2002-12-22  2:27                                                   ` Miles Bader
2002-12-23 20:58                                                     ` Richard Stallman
2002-12-17 10:31                                       ` Bold by moving pixels problem Kim F. Storm
2002-12-17 16:38                                       ` Robert J. Chassell
2002-12-17 23:54                                         ` Miles Bader
2002-11-21  6:01                               ` Eli Zaretskii
2002-11-16  1:34                       ` Gtk version getting closer Richard Stallman
2002-11-14 12:16               ` Richard Stallman
2002-11-12 12:34           ` Jan D.
2002-11-12 17:21             ` Eli Zaretskii
2002-11-13 10:15               ` Jan D.
2002-11-14 12:16                 ` Richard Stallman
2002-11-14 18:53                 ` Eli Zaretskii
2002-11-14 20:13                   ` Jan D.
2002-11-13 16:55             ` Jason Rumney
2002-11-14 17:25               ` Jan D.
2002-11-14  4:09             ` Richard Stallman
2002-11-14 17:49               ` Jan D.
2002-11-14 20:29                 ` Eli Zaretskii
2002-11-14 21:47                   ` Jan D.
2002-11-14 21:30                 ` David Masterson
2002-11-16  1:34                 ` Richard Stallman
2002-11-16 16:11                   ` Jan D.
2002-11-13 11:32         ` Richard Stallman
2002-11-13 17:09         ` David Masterson
2002-11-14 17:31           ` Jan D.
2002-11-14 20:22             ` David Masterson
2002-11-16  1:34               ` Richard Stallman
2002-11-18  5:06                 ` David Masterson
2002-11-15  2:36           ` Richard Stallman
2002-11-15  4:04             ` Miles Bader
2002-11-15 16:36               ` David Masterson
2002-11-15 16:31                 ` Eli Zaretskii
2002-11-15 18:46                   ` David Masterson
2002-11-15 21:15                     ` Eli Zaretskii
2002-11-15 22:35                       ` David Masterson
2002-11-15 17:33                 ` Miles Bader
2002-11-15 18:55                   ` David Masterson
2002-11-15 23:18                     ` Jason Rumney
2002-11-16  0:44                       ` David Masterson
2002-11-15 19:03                   ` Stefan Monnier
2002-11-15 18:00                 ` Robert J. Chassell
2002-11-19 13:26                   ` Miles Bader
2002-11-20 21:13                   ` Richard Stallman
2002-11-20 21:56                     ` Jason Rumney
2002-11-21  0:47                       ` Robert J. Chassell
2002-11-22 21:00                         ` Richard Stallman
2002-11-21  0:38                     ` Robert J. Chassell
2002-11-21 13:09                       ` Kenichi Handa
2002-11-21 14:08                         ` Miles Bader
2002-11-21 21:47                           ` Jason Rumney
2002-11-15 18:13                 ` Jason Rumney
2002-11-15 19:03                   ` David Masterson
2002-11-09 21:31 ` Eli Zaretskii
2002-11-10  9:02   ` Jan D.
2002-11-11 10:20     ` Richard Stallman
  -- strict thread matches above, loose matches on Subject: below --
2003-06-04  8:54 Bold by moving pixels problem Richard Stallman
2003-06-04 14:35 ` Stefan Monnier
2003-06-05 10:58   ` Richard Stallman
2004-01-21  5:39     ` Stefan Monnier
2003-06-04 23:30 ` Kim F. Storm
     [not found]   ` <E19O2Z4-0002Rk-GY@fencepost.gnu.org>
2003-06-06  1:45     ` Kim F. Storm
2003-06-06  0:46       ` Miles Bader
2003-08-07  6:04 last-sexp-toggle-display Richard Stallman
2003-08-07 16:56 ` last-sexp-toggle-display Luc Teirlinck
2003-08-11 12:53   ` last-sexp-toggle-display Richard Stallman
2003-08-11 17:59     ` last-sexp-toggle-display Luc Teirlinck
2003-08-11 18:54       ` Bold by moving pixels problem Robert J. Chassell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5xfzsvqzqx.fsf@kfs2.cua.dk \
    --to=storm@cua.dk \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).