emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Add a function that returns pixel distance between points?


From: Yuan Fu
Subject: Re: Add a function that returns pixel distance between points?
Date: Sun, 31 Jan 2021 14:41:52 -0500


> On Jan 31, 2021, at 10:24 AM, Eli Zaretskii <eliz@gnu.org> wrote:
> 
>> From: Yuan Fu <casouri@gmail.com>
>> Date: Sun, 31 Jan 2021 00:17:58 -0500
>> Cc: emacs-devel@gnu.org
>> 
>> I want to align text-based tables by pixel size, as in:
>> 
>> | header | header | header |
>> | 1      | 1      | 8      |
>> | 2      | 6      | 3      |
>> 
>> When the text is displayed in variable-pitch font, the bars aren’t aligned. 
>> I’m using display property (space :align-to) to align those bars. To know 
>> with pixel position to align to, I need to calculate each column’s pixel 
>> width, and met the difficulties mentioned earlier.
> 
> So the columns in your case have width that changes dynamically?  That
> is, if I type enough characters into a cell that the current width is
> no longer sufficient, the width of the cell's column will be
> increased?
> 

Yes, naturally you want to adapt the alignment while the user is editing.

> Also, I don't think I understand why it is a problem for you that
> posn-at-point requires point to be visible -- are you generating the
> table in a buffer that is not displayed, or in a portion of a buffer
> that is not visible?  Or is there some other reason why you have
> problems with this requirement of posn-at-point?

Using posn-at-point would be too complicated: Table might by partially visible, 
I need to make sure the alignment function is immediately called when an 
unaligned table is displayed in the window, etc. Comparing to that, adding my 
alignment function into jit-lock hooks is much simpler and cleaner.

> 
> Finally, I'm not sure why the behavior of window-text-pixel-size is a
> problem: if you use :align-to with pixel units (as opposed to column
> units), then you should _want_ it to account for stuff like
> line-prefix, no?

Yes, value given to :align-to needs to account for line-prefix. But when I want 
to calculate the pixel width of a column, I don’t want to include the prefix: 
that makes the returned value larger than the actually width of the column 
(because the line-prefix width is added to it).

Yuan




reply via email to

[Prev in Thread] Current Thread [Next in Thread]