From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "David O'Toole" Newsgroups: gmane.emacs.devel Subject: Re: Spreadsheet display mode Date: Thu, 22 Nov 2007 20:03:04 -0500 Message-ID: <64bfe3d50711221703n6a2aa803refcae006b68a022a@mail.gmail.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1195779799 7029 80.91.229.12 (23 Nov 2007 01:03:19 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 23 Nov 2007 01:03:19 +0000 (UTC) Cc: rms@gnu.org To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Nov 23 02:03:26 2007 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 1IvMx3-0001mM-M1 for ged-emacs-devel@m.gmane.org; Fri, 23 Nov 2007 02:03:25 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IvMwp-00029L-A5 for ged-emacs-devel@m.gmane.org; Thu, 22 Nov 2007 20:03:11 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1IvMwm-000275-8B for emacs-devel@gnu.org; Thu, 22 Nov 2007 20:03:08 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1IvMwl-00026F-RZ for emacs-devel@gnu.org; Thu, 22 Nov 2007 20:03:07 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IvMwl-000266-GL for emacs-devel@gnu.org; Thu, 22 Nov 2007 20:03:07 -0500 Original-Received: from rv-out-0910.google.com ([209.85.198.191]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1IvMwk-0002XQ-03 for emacs-devel@gnu.org; Thu, 22 Nov 2007 20:03:06 -0500 Original-Received: by rv-out-0910.google.com with SMTP id c27so2360427rvf for ; Thu, 22 Nov 2007 17:03:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:sender:to:subject:cc:mime-version:content-type:content-transfer-encoding:content-disposition:x-google-sender-auth; bh=yaQsABrgkNJSsTz4hzM0tHn55OOPoTNFYX++EgbteAs=; b=WhAg3zDpRGP7OVfb/JiFBVbALIKkHh5zv81qlTsxbHVUScby51+dmMSuYUIvPgqFRv0kroSvYXraHwx4zks/hyhRe7DSeHtNU6aki8zIhQ1hyOvKkwfR12TWq9WjvdmGPxGV/PuxCmiXJvZrOQ7Uun13Cg/4tWhVQcL5ITwPdCg= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:sender:to:subject:cc:mime-version:content-type:content-transfer-encoding:content-disposition:x-google-sender-auth; b=EvCrC3e+RYpmOo/a/ZWOwSsd7J8+/Fqn5oTpMUqixtobOS5Z15ghlE/fCtf2ifiE8lBxYU29R7EAvUx+ysM0DXybR42H1yFYfUhZ2Gbl41VaPvKG4GEFazBpUZI713I3uYQdizvz6jJeFtPSKSGvspnmQZLlqZG6sZJ9NECSc8A= Original-Received: by 10.114.254.1 with SMTP id b1mr2826595wai.1195779784495; Thu, 22 Nov 2007 17:03:04 -0800 (PST) Original-Received: by 10.114.168.9 with HTTP; Thu, 22 Nov 2007 17:03:04 -0800 (PST) Content-Disposition: inline X-Google-Sender-Auth: 546a5e4e681f1462 X-detected-kernel: by monty-python.gnu.org: Linux 2.6 (newer, 2) 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:83916 Archived-At: Hi Richard, I wrote something called "cell-mode" that seems similar to what you describe. It holds a grid of cells whose "labels" are application-defined strings with text properties, and draws them to a buffer. The display code can do several things: - Insert display-property "specified spaces" during rendering so that all cells in a column are the same width---even when there are images and text in the label - optional vertical and/or horizontal "zebra stripes" (i.e. every other column / row is tinted) - seamlessly tile various identically-sized rectangular images I did have a version that supported embedding an interactive spreadsheet UI into random buffers as a minor mode, using display properties. You can't put point inside the text, but it can still receive mouse clicks and keyboard events, so I could just draw a fake cursor (with an overlay) and map keystrokes to commands that move the fake cursor. The illusion was pretty good. Anyway, I'm trying to make it into a very general-purpose library that could be used as a front-end for SES and all the other "display stuff in a table interactively" modes (dired, buffer list, etc) Here are some screenshots: an old demo with some interactive objects: http://dto.freeshell.org/images/cell-mode.png a recent shot of a rudimentary XPM pixel art drawing program: http://dto.freeshell.org/images/pixel-preview.png an example of embedding cell-mode in a buffer: http://dto.freeshell.org/images/EcaSpace-alpha.png image tiling stuff: http://dto.freeshell.org/images/RogueLike-11.png http://dto.freeshell.org/images/RogueLike-12.png larger images: http://dto.freeshell.org/images/cell-mode-2.png I've been looking for an excuse to work on cell-mode again. It does need some fixes (especially to make it work well on ttys) but if anyone is interested i will clean it up and post it to gnu.emacs.sources. ------------------------------------ From: Richard Stallman gnu.org> Subject: Spreadsheet display mode Newsgroups: gmane.emacs.devel Date: 2007-11-22 16:23:02 GMT (8 hours and 5 minutes ago) Someone suggested that Emacs should have a spreadsheet display mode. I did some thinking about the idea. A list of cell definitions could control how to display each line, and they could go in a `display' property that might be on an overlay or text property (so that you could display just a part of the buffer as a spreadsheet). The actual text would use delimiters to separate cell contents. The cell definitions could specify what delimiters to use. What do you think?