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: Drop-down menus, popup menus, and popup dialogs supported on TTYs Date: Tue, 08 Oct 2013 21:24:52 +0300 Message-ID: <831u3vsjrf.fsf@gnu.org> Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1381261570 30430 80.91.229.3 (8 Oct 2013 19:46:10 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 8 Oct 2013 19:46:10 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Oct 08 21:46:14 2013 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 1VTdES-0002pg-2o for ged-emacs-devel@m.gmane.org; Tue, 08 Oct 2013 21:46:12 +0200 Original-Received: from localhost ([::1]:38394 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VTby9-0004oW-TR for ged-emacs-devel@m.gmane.org; Tue, 08 Oct 2013 14:25:17 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:43250) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VTbxv-0004cn-0g for emacs-devel@gnu.org; Tue, 08 Oct 2013 14:25:10 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VTbxn-0006J9-MD for emacs-devel@gnu.org; Tue, 08 Oct 2013 14:25:02 -0400 Original-Received: from mtaout20.012.net.il ([80.179.55.166]:36844) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VTbxn-0006J1-EA for emacs-devel@gnu.org; Tue, 08 Oct 2013 14:24:55 -0400 Original-Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0MUD00C004DPYC00@a-mtaout20.012.net.il> for emacs-devel@gnu.org; Tue, 08 Oct 2013 21:24:54 +0300 (IDT) Original-Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0MUD00CAE4HHLKC0@a-mtaout20.012.net.il> for emacs-devel@gnu.org; Tue, 08 Oct 2013 21:24:53 +0300 (IDT) X-012-Sender: halo1@inter.net.il X-detected-operating-system: by eggs.gnu.org: Solaris 10 X-Received-From: 80.179.55.166 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:164020 Archived-At: Trunk revision 114582 adds support for menus on a text-mode terminal. Typing F10 will drop the Files menu, and you can get to the others by using C-f/C-b and the right/left arrow keys. Within a menu, C-n/C-p and the up/down arrows allow navigation between items, and RET selects an item. Help-echo for menu items is displayed in the echo area. If you have a mouse supported, clicking on the menu bar should drop down the menu under the click; clicking on the mode line or on the text area should pop up menus specific to those areas. Navigation within the menu and selection with a mouse work as you'd expect. I tested this on the w32 text terminal, with and without a mouse, and on GNU/Linux without a mouse. Xterm-mouse still doesn't work as expected, so there's probably something else to be done about that. Please test on GNU/Linux terminals with GPM. Also, I hope I didn't break the GUI frames (other than w32, which I tested). The NS build is my greatest worry, as I couldn't even try compiling it. HAVE_MENUS is now unconditionally defined by configure. I didn't yet remove HAVE_MENUS from the sources, because that could serve as stopgap and temporary work-around, in case I screwed up some build. Also, perhaps people will want to have a --without-menus option at configure time. This was a long journey for me, it started years ago, when I discussed possible implementations with Gerd Moellmann (his ideas are at the core of the implementation, see the commentary in term.c). Now it's over. Enjoy the results.