From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: YAMAMOTO Mitsuharu Newsgroups: gmane.emacs.devel Subject: Re: RFC: status icon support Date: Wed, 16 Jan 2008 20:55:04 +0900 (JST) Message-ID: <20080116.205504.254233330.mituharu@math.s.chiba-u.ac.jp> References: <20080115.064048.07606749.mituharu@math.s.chiba-u.ac.jp> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1200484534 27224 80.91.229.12 (16 Jan 2008 11:55:34 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 16 Jan 2008 11:55:34 +0000 (UTC) Cc: emacs-devel@gnu.org To: tromey@redhat.com Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Jan 16 12:55:54 2008 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1JF6s1-0005Zx-1S for ged-emacs-devel@m.gmane.org; Wed, 16 Jan 2008 12:55:49 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JF6rc-0003T1-9O for ged-emacs-devel@m.gmane.org; Wed, 16 Jan 2008 06:55:24 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1JF6rY-0003Sa-RO for emacs-devel@gnu.org; Wed, 16 Jan 2008 06:55:20 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JF6rV-0003RX-4R for emacs-devel@gnu.org; Wed, 16 Jan 2008 06:55:19 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JF6rV-0003RU-0O for emacs-devel@gnu.org; Wed, 16 Jan 2008 06:55:17 -0500 Original-Received: from ntp.math.s.chiba-u.ac.jp ([133.82.132.2] helo=mathmail.math.s.chiba-u.ac.jp) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1JF6rU-0002rD-Ca for emacs-devel@gnu.org; Wed, 16 Jan 2008 06:55:16 -0500 Original-Received: from localhost (church [133.82.132.36]) by mathmail.math.s.chiba-u.ac.jp (Postfix) with ESMTP id 0748B2C49; Wed, 16 Jan 2008 20:55:11 +0900 (JST) In-Reply-To: X-Mailer: Mew version 3.3 on Emacs 22.1 / Mule 5.0 (SAKAKI) X-detected-kernel: by monty-python.gnu.org: NetBSD 3.0 (DF) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:86978 Archived-At: >>>>> On Tue, 15 Jan 2008 18:17:05 -0700, Tom Tromey said: >>> A tool bar is represented as a keymap. If status icons are >>> similar to tool bar icons (application-level as opposed to >>> frame-level), the use of the keymap data structure looks more >>> consistent to me. > Thanks for responding. I've been thinking about this a bit, and I > don't understand the benefits of this versus just using a simple > cons. (I do understand, I think, why you would prefer not to make a > new type.) I think it would be obviously beneficial if the same data structure is used for similar concepts (I'm not so familiar with status icons, so please point out if they are not so similar to tool bar icons). Emacs Lisp programmers who have get used to the tool bars can easily learn/imagine how to operate on the status icons. Some implementation codes can be shared and that reduces the chance of bugs. Also, there would be possible to complement some missing features in tool bars by analogy from those in status icons. > Also, I do not know how to implement this. You can look at the implementation of tool bars. Of course, it's not as easy as creating some black-box Lisp objects for GTK+ objects and direct bridges/wrappers to GTK+ functions. It might be helpful to understand the basic strategy of Emacs redisplay: * Lisp functions basically modify buffers and/or Lisp data structures (i.e., models), but don't usually do immediate display operations. (Of course, there are several exceptions.) * When `redisplay' is triggered, it calculates the changes from the previous redisplay in the models and do appropriate display operations. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp