[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Can we use FRAME_RIF to return a Lisp_Object result?
From: |
Keith David Bershatsky |
Subject: |
Re: Can we use FRAME_RIF to return a Lisp_Object result? |
Date: |
Tue, 31 Oct 2017 12:59:02 -0700 |
Thank you, Eli.
Prior to just a few minutes ago when I read your comments, I had been unaware
that it was possible to obtain the RGB for the default foreground/background
(which might be remapped on a buffer local basis) from within xdisp.c absent
using platform-dependent functions. That misunderstanding was based (in large
part) upon a layman's reading of the code looking for keywords such as "red",
"green", "blue", and "RGB". Because I found keywords of that nature in the
platform-dependent areas of the code (nsterm.m, w32term.c, and xterm.c), I made
the erroneous assumption mentioned above.
I look forward to using your examples and eliminating the erroneous
platform-dependent implementations.
As always, your help is greatly appreciated!
Keith
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DATE: [10-31-2017 12:38:01] <31 Oct 2017 21:38:01 +0200>
FROM: Eli Zaretskii <address@hidden>
>
> * * *
>
> I don't understand why you need a platform-dependent implementation
> for this. Given the face (obtained using FACE_FROM_ID as above), you
> have its Lisp attributes in face->lface, and the foreground and
> background pixels are then at lface[LFACE_FOREGROUND_INDEX] and
> lface[LFACE_BACKGROUND_INDEX] respectively. These are XColor values,
> so getting the RGB components from them is trivial.
>
> For frame's default face, you can do this even simpler: by using
> FRAME_FOREGROUND_PIXEL and FRAME_BACKGROUND_PIXEL.
>
> Am I missing something?