unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Alan Third <alan@idiocy.org>
To: martin rudalics <rudalics@gmx.at>
Cc: Anders Lindgren <andlind@gmail.com>, emacs-devel <emacs-devel@gnu.org>
Subject: Re: NS port horizontal scroll-bars
Date: Tue, 26 Apr 2016 10:51:57 +0100	[thread overview]
Message-ID: <CABGBtwmv1Z_djf8i2a0Qr0TS+=CFy0naoSDwBxSOGVbZ06xTMw@mail.gmail.com> (raw)
In-Reply-To: <571F0C30.6080100@gmx.at>

On 26 April 2016 at 07:35, martin rudalics <rudalics@gmx.at> wrote:
>> Is there a function that returns the width of the longest visible
>> line,
>
> You can use ‘window-text-pixel-size’ for this but I don't understand
> what you need it for.  The basic slider size and position calculations
> are done in set_horizontal_scroll_bar in xdisp.c and that function calls
> the set_horizontal_scroll_bar_hook corresponding to your platform which
> should be ns_set_horizontal_scroll_bar.  The latter probably needs some
> tweaking as for the other platforms.

(I've not got the code in front of me right now, so this may be a little
vague. I hope you can understand it.)

It's actually the other end of the process that I'm struggling with. I
write pixel values for dragging the scroll-bar into an emacs_event
struct (location of mouse in scroll-bar and total length of scroll-bar),
and when that data pops back out in scroll-bar.el it doesn't seem to be
any use to the standard scroll-bar functions.

For example, with a buffer where the longest line is 300 columns, it's
returning values between 0 and 556. As far as I can tell the standard
functions are expecting column numbers.

I think, from reading the comments in the emacs_event struct definition,
that I'm presenting the correct information, so I don't know why it
doesn't work.

The vertical scroll-bars in the NS port have their own functions defined
in ns-win.el, rather than using the functions in scroll-bar.el. I think
this is, at least in part, to enable clicking directional arrows in
older versions of OS X (and GNUSTEP), but it's doing something different
with dragging too.

-- 
Alan Third



  reply	other threads:[~2016-04-26  9:51 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-24 16:01 NS port horizontal scroll-bars Alan Third
2016-04-24 17:28 ` Anders Lindgren
2016-04-25 20:34   ` Alan Third
2016-04-26  5:39     ` Anders Lindgren
2016-04-26  6:35     ` martin rudalics
2016-04-26  9:51       ` Alan Third [this message]
2016-04-26 11:27         ` YAMAMOTO Mitsuharu
2016-04-26 17:07           ` Alan Third
  -- strict thread matches above, loose matches on Subject: below --
2016-05-01 14:40 Angelo Graziosi

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='CABGBtwmv1Z_djf8i2a0Qr0TS+=CFy0naoSDwBxSOGVbZ06xTMw@mail.gmail.com' \
    --to=alan@idiocy.org \
    --cc=andlind@gmail.com \
    --cc=emacs-devel@gnu.org \
    --cc=rudalics@gmx.at \
    /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).