From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.help Subject: Re: create large menu on the fly Date: Thu, 06 Jun 2013 21:05:18 -0400 Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1370567144 3195 80.91.229.3 (7 Jun 2013 01:05:44 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 7 Jun 2013 01:05:44 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Fri Jun 07 03:05:43 2013 Return-path: Envelope-to: geh-help-gnu-emacs@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 1Ukl7f-0004lR-1s for geh-help-gnu-emacs@m.gmane.org; Fri, 07 Jun 2013 03:05:43 +0200 Original-Received: from localhost ([::1]:41825 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ukl7e-0006Am-La for geh-help-gnu-emacs@m.gmane.org; Thu, 06 Jun 2013 21:05:42 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:42740) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ukl7V-0006Ah-5G for help-gnu-emacs@gnu.org; Thu, 06 Jun 2013 21:05:33 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ukl7U-0003N7-AU for help-gnu-emacs@gnu.org; Thu, 06 Jun 2013 21:05:33 -0400 Original-Received: from plane.gmane.org ([80.91.229.3]:58154) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ukl7U-0003Mp-4C for help-gnu-emacs@gnu.org; Thu, 06 Jun 2013 21:05:32 -0400 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1Ukl7R-0004da-Mw for help-gnu-emacs@gnu.org; Fri, 07 Jun 2013 03:05:29 +0200 Original-Received: from 69-165-139-76.dsl.teksavvy.com ([69.165.139.76]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 07 Jun 2013 03:05:29 +0200 Original-Received: from monnier by 69-165-139-76.dsl.teksavvy.com with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 07 Jun 2013 03:05:29 +0200 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 13 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 69-165-139-76.dsl.teksavvy.com User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) Cancel-Lock: sha1:QJ+zXBjo08dTNlcYusm59lHI0eg= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:91363 Archived-At: > So the solution would be to populate each menu only when it is activated. > Any idea how to do this? Oddly enough, Emacs's current C code can't do that: the C code traverses the whole menu, turns it into a new data-structure using the format expected by the UI toolkit, and passes it to the toolkit. It would be good to change that such that the conversion from Lisp format to the toolkit format is done incrementally via callbacks, but it's a longstanding limitation that nobody has felt like tackling yet. Stefan