From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Emacs-devel Digest, Vol 131, Issue 82 Date: Tue, 20 Jan 2015 18:28:41 +0200 Message-ID: <8361c1xvpi.fsf@gnu.org> References: <9B7513AE176AE5429921DB50D54FD2FC03AB2A5D@MAILBOX.GAM.LOCAL> Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1421771339 22690 80.91.229.3 (20 Jan 2015 16:28:59 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 20 Jan 2015 16:28:59 +0000 (UTC) Cc: emacs-devel@gnu.org To: David Requena Zabala Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Jan 20 17:28:59 2015 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1YDbfl-0005TK-V8 for ged-emacs-devel@m.gmane.org; Tue, 20 Jan 2015 17:28:58 +0100 Original-Received: from localhost ([::1]:44421 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YDbfl-0006FL-An for ged-emacs-devel@m.gmane.org; Tue, 20 Jan 2015 11:28:57 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:52588) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YDbfg-0006Av-Pw for emacs-devel@gnu.org; Tue, 20 Jan 2015 11:28:53 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YDbfd-0004Jp-9a for emacs-devel@gnu.org; Tue, 20 Jan 2015 11:28:52 -0500 Original-Received: from mtaout29.012.net.il ([80.179.55.185]:46148) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YDbfd-0004JY-1c for emacs-devel@gnu.org; Tue, 20 Jan 2015 11:28:49 -0500 Original-Received: from conversion-daemon.mtaout29.012.net.il by mtaout29.012.net.il (HyperSendmail v2007.08) id <0NIH00400HF0HZ00@mtaout29.012.net.il> for emacs-devel@gnu.org; Tue, 20 Jan 2015 18:25:26 +0200 (IST) Original-Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout29.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NIH00076HMEUO40@mtaout29.012.net.il>; Tue, 20 Jan 2015 18:25:26 +0200 (IST) In-reply-to: <9B7513AE176AE5429921DB50D54FD2FC03AB2A5D@MAILBOX.GAM.LOCAL> X-012-Sender: halo1@inter.net.il X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 80.179.55.185 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:181473 Archived-At: > From: David Requena Zabala > Date: Tue, 20 Jan 2015 10:23:37 +0100 > > At any rate, if someone was to implement an hypothetical > '--without-w32-toolkit-scroll-bars', would it take entering much into the elisp > realm? No, it shouldn't touch the Lisp level at all. The implementation of the scroll bars is entirely on the C level. > Probably having different kinds of sc means some form of common scroll bar api > exists for sc implementation code to use and/or plug in. I mean, kind of how > the w32_wnd_proc callback handles the WM_EMACS_CREATESCROLLBAR message by > calling w32_createscrollbar. Is this the case? Is it described somewhere? See w32term.c:w32_set_vertical_scroll_bar for the Windows implementation and xterm.c:XTset_vertical_scroll_bar for the X implementation. The guts are in x_scroll_bar_create in both cases, but the API you were asking about is defined by the former two functions, which implement the hook called by Emacs when it wants to display the scroll bar. How this maps into the windowing system is entirely hidden from the higher levels; on Windows this sends a message to the GUI thread, which calls the corresponding Windows API.