From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Stephen J. Turnbull" Newsgroups: gmane.emacs.devel Subject: Re: Add morph library to emacs Date: Tue, 06 Mar 2012 11:31:09 +0900 Message-ID: <87y5rea2aa.fsf@uwakimon.sk.tsukuba.ac.jp> References: <87ty23cy0l.fsf@uwakimon.sk.tsukuba.ac.jp> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 X-Trace: dough.gmane.org 1331001083 4567 80.91.229.3 (6 Mar 2012 02:31:23 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Tue, 6 Mar 2012 02:31:23 +0000 (UTC) Cc: Emacs Dev To: Alin Soare Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Mar 06 03:31:23 2012 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 1S4kBL-0005Xp-Hn for ged-emacs-devel@m.gmane.org; Tue, 06 Mar 2012 03:31:19 +0100 Original-Received: from localhost ([::1]:39260 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S4kBK-0006Fm-UN for ged-emacs-devel@m.gmane.org; Mon, 05 Mar 2012 21:31:18 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:52039) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S4kBH-0006FY-RB for emacs-devel@gnu.org; Mon, 05 Mar 2012 21:31:17 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1S4kBF-0002h1-Re for emacs-devel@gnu.org; Mon, 05 Mar 2012 21:31:15 -0500 Original-Received: from mgmt2.sk.tsukuba.ac.jp ([130.158.97.224]:49223) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S4kBF-0002gm-BD for emacs-devel@gnu.org; Mon, 05 Mar 2012 21:31:13 -0500 Original-Received: from uwakimon.sk.tsukuba.ac.jp (uwakimon.sk.tsukuba.ac.jp [130.158.99.156]) by mgmt2.sk.tsukuba.ac.jp (Postfix) with ESMTP id 6F61D9707DE; Tue, 6 Mar 2012 11:31:09 +0900 (JST) Original-Received: by uwakimon.sk.tsukuba.ac.jp (Postfix, from userid 1000) id 37DD51A33A1; Tue, 6 Mar 2012 11:31:09 +0900 (JST) In-Reply-To: X-Mailer: VM undefined under 21.5 (beta31) "ginger" e6b5c49f9e13 XEmacs Lucid (x86_64-unknown-linux) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 130.158.97.224 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:148897 Archived-At: Alin Soare writes: > The effort you depose to write tabs for emacs can be compared with > the effort to add to emacs a real graphical interface Once again, you're talking to yourself, making us guess what you mean. Your words make little sense to me. I have two guesses, neither of which seems to be what you mean. Either Emacs already has a "real graphical interface" (though limited in some ways), or making a "real graphical interface" will require rewriting thousands of lines of code spread over millions of lines of code to reorient Emacs from its TTY roots to a modern (but not necessarily better!) graphical mode. > And if this is done, we will have a graphical interface of the same > power of that one of smalltalk. I don't use Smalltalk, and nobody I hack with does. Would you like to try an example that the people you are addressing might understand? > > > To add morphic objects to the actual structure of emacs it is > > > also beyound the limits of the system. > > > > Again, XEmacs did so a decade ago, > > > This is a play. This graphical interface is limited to the > capabilities of emacs's matrix of glyphs. You haven't looked closely enough. It's true that XEmacs's capabilities are limited, but it is capable of managing arrays of widgets either horizontally or vertically, including arrays of widget arrays. In practice that's sufficient for any editor I need. If you need a canvas, I don't have one but on GTK+ I'm sure there's something more or less usable that can be linked in. More generally, on the X11 family of platforms, one can connect directly to the X server via xlib.el (that's something developed by one of the SXEmacs guys, but should work on Emacs as well as the *XEmacsen), or on platforms where GCC supports FFI, use FFI to access toolkits on the client side. lwlib stands for "Lucid Widget Library" after the company that developed it, but it could just as easily be named the "Lispy Widget Library", as internally structures of widgets are built out of singly linked lists. It would be reasonably straightforward in XEmacs to finish the work and have real widget objects in Lisp, and then build up the whole user interface from there, in Lisp. (I say "XEmacs" because I suspect that the result would be too heavyweight both in space and time, and the use of opaque types too great to pass Emacs filters, but you could hope I'm wrong!) > Just start reading about the basics of oop and the link with > graphical interfaces. I did that 20 years ago. Boring stuff, to my taste. Please understand: I have no interest in doing the work to implement your ideas. I don't find them attractive (not that the ideas are unattractive, but they don't attract *me*). All I want out of this thread is for *you* to learn that Emacs is a very large, stable piece of software, with all the capabilities you need to do what you want to do. However, if you want to take advantage of the unique capabilities of Emacs in editing and as a workspace, you're going to need to work within the framework of Emacs, which is not optimized for your GUI purposes. > Seems that you never heard about morphs: That's true, I haven't. I have a teenage daughter and live in a country full of lightweight politicians and frivolous journalists who feed me more fads than I can stomach. For me, Emacsen are a haven from such froth.