From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Andy Piper Newsgroups: gmane.emacs.devel Subject: Re: The minibuffer vs. Dialog Boxes (Re: Making XEmacs be more up-to-date) Date: Fri, 19 Apr 2002 10:00:32 -0700 Sender: emacs-devel-admin@gnu.org Message-ID: References: <4.3.2.7.2.20020417123512.0398e4c8@san-francisco.beasys.com> NNTP-Posting-Host: localhost.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed X-Trace: main.gmane.org 1019235969 24331 127.0.0.1 (19 Apr 2002 17:06:09 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Fri, 19 Apr 2002 17:06:09 +0000 (UTC) Return-path: Original-Received: from quimby.gnus.org ([80.91.224.244]) by main.gmane.org with esmtp (Exim 3.33 #1 (Debian)) id 16ybpp-0006KK-00 for ; Fri, 19 Apr 2002 19:06:09 +0200 Original-Received: from fencepost.gnu.org ([199.232.76.164]) by quimby.gnus.org with esmtp (Exim 3.12 #1 (Debian)) id 16yc9G-0004m4-00 for ; Fri, 19 Apr 2002 19:26:14 +0200 Original-Received: from localhost ([127.0.0.1] helo=fencepost.gnu.org) by fencepost.gnu.org with esmtp (Exim 3.34 #1 (Debian)) id 16ybkD-0002vB-00; Fri, 19 Apr 2002 13:00:21 -0400 Original-Received: from ext007579.bea.com ([63.96.164.130] helo=usmailrelay.beasys.com) by fencepost.gnu.org with esmtp (Exim 3.34 #1 (Debian)) id 16ybjV-0002pD-00 for ; Fri, 19 Apr 2002 12:59:37 -0400 Original-Received: from san-francisco.beasys.com (san-francisco.beasys.com [192.168.9.10]) by usmailrelay.beasys.com (Switch-2.2.0/Switch-2.2.0) with ESMTP id g3JGxZt23637; Fri, 19 Apr 2002 09:59:35 -0700 (PDT) Original-Received: from shalom.bea.com ([192.168.11.33]) by san-francisco.beasys.com (8.9.3+Sun/8.9.1) with ESMTP id JAA01618; Fri, 19 Apr 2002 09:59:34 -0700 (PDT) X-Sender: andyp@san-francisco.beasys.com X-Mailer: QUALCOMM Windows Eudora Version 4.3.2 Original-To: Brady Montz , xemacs-design@xemacs.org, emacs-devel@gnu.org In-Reply-To: Errors-To: emacs-devel-admin@gnu.org X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.0.9 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Emacs development discussions. List-Unsubscribe: , List-Archive: Xref: main.gmane.org gmane.emacs.devel:2792 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:2792 At 09:27 AM 4/19/02 -0700, Brady Montz wrote: >1. actual widgets, with an abstraction layer that allows a single lisp > spec of them to work on multiple backends - gtk, qt, cocoa, > vt100. This might restrict them to be fairly simple, but that's not > necessarily a bad thing. I think speedbar and customize are good > examples of us straining against the limits of text. So we actually have this in XEmacs. Its not complete, it has rough edges, but its a start. It would be great if we could come up with a standard lisp API (common to both XEmacs and Emacs) for doing this sort of stuff. For instance this is the XEmacs search dialog: (defun make-search-dialog () "Popup a search dialog box." (interactive) (let ((parent (selected-frame))) (make-dialog-box 'general :parent parent :title "Search" :spec (setq search-dialog (make-glyph `[layout :orientation horizontal :justify left ;; neither the following height/width nor the identical one ;; below should be necessary! (see below) :height 11 :width 40 :border [string :data "Search"] :items ([layout :orientation vertical :justify left :items ([string :data "Search for:"] [button :descriptor "Match Case" :style toggle :selected (not case-fold-search) :callback (setq case-fold-search (not case-fold-search))] [button :descriptor "Regular Expression" :style toggle :selected search-dialog-regexp :callback (setq search-dialog-regexp (not search-dialog-regexp))] [button :descriptor "Forwards" :style radio :selected search-dialog-direction :callback (setq search-dialog-direction t)] [button :descriptor "Backwards" :style radio :selected (not search-dialog-direction) :callback (setq search-dialog-direction nil)] )] [layout :orientation vertical :justify left :items ([edit-field :width 15 :descriptor "" :active t :face default :initial-focus t] [button :width 10 :descriptor "Find Next" :callback-ex (lambda (image-instance event) (search-dialog-callback ,parent image-instance event))] [button :width 10 :descriptor "Cancel" :callback-ex (lambda (image-instance event) (isearch-dehighlight) (delete-frame (event-channel event)))])])])) ;; neither this height/width nor the identical one above should ;; be necessary! (in fact, if you omit the one above, the layout ;; sizes itself correctly; but the frame as a whole doesn't use ;; the layout's size, as it should.) :properties '(height 11 width 40)))) andy