From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Mohsen BANAN Newsgroups: gmane.emacs.devel Subject: Re: just-the-text Emacs frame Date: Thu, 02 Jun 2011 13:19:49 -0700 Organization: ByStar Federation of Autonomous Libre Services -- http://www.by-star.net Message-ID: References: <87aaebbndz.fsf@lifelogs.com> <4DDDA5A7.6040109@siege-engine.com> <87boyp5vyi.fsf@lifelogs.com> <87mxi8xq6y.fsf@lifelogs.com> <874o4ebtq0.fsf_-_@lifelogs.com> <87vcwpsa6y.fsf@lifelogs.com> <871uzccr2k.fsf@lifelogs.com> <878vtkb06y.fsf@lifelogs.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: dough.gmane.org 1307047543 31317 80.91.229.12 (2 Jun 2011 20:45:43 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Thu, 2 Jun 2011 20:45:43 +0000 (UTC) To: emacs-devel@gnu.org, Ted Zlatanov Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Jun 02 22:45:36 2011 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1QSElq-0005yM-7t for ged-emacs-devel@m.gmane.org; Thu, 02 Jun 2011 22:45:34 +0200 Original-Received: from localhost ([::1]:43110 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QSElp-0001qI-4d for ged-emacs-devel@m.gmane.org; Thu, 02 Jun 2011 16:45:33 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:49431) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QSEN4-0003p2-PY for emacs-devel@gnu.org; Thu, 02 Jun 2011 16:20:00 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QSEN3-00006K-5G for emacs-devel@gnu.org; Thu, 02 Jun 2011 16:19:58 -0400 Original-Received: from 0016.bacs.by-star.net ([198.62.92.166]:47548) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from ) id 1QSEN2-000054-Kd for emacs-devel@gnu.org; Thu, 02 Jun 2011 16:19:56 -0400 Original-Received: (qmail 12091 invoked from network); 2 Jun 2011 13:15:24 -0700 Original-Received: from 192.168.0.187 ([192.168.0.187]) by 0016.bacs.by-star.net ([198.62.92.166]) with ESMTP via TCP; 02 Jun 2011 20:15:24 -0000 In-Reply-To: <878vtkb06y.fsf@lifelogs.com> (Ted Zlatanov's message of "Thu, 02 Jun 2011 12:41:25 -0500") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 198.62.92.166 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:140095 Archived-At: >>>>> On Thu, 02 Jun 2011 12:41:25 -0500, Ted Zlatanov said: Ted> On Thu, 02 Jun 2011 08:43:55 -0700 Mohsen BANAN wrote: >>>>>>> On Thu, 02 Jun 2011 08:15:31 -0500, Ted Zlatanov said: MB> Please let live emacs-panels consist of live emacs-tiles. Ted> ... MB> So, an emacs-panel would not be simply displaying a buffer, but MB> possibly a series of buffers (tiles). Ted> Should those tiles be Emacs windows or buffer-level facilities? I wrote that poorly. Usually not emacs windows. In the concrete, emacs-panel would be simply displaying a buffer but in the abstract the emacs-panel buffer is the aggregation of a series of emacs-tiles (likely buffers). I'll be expanding on this in the context of an example below. MB> A live emacs-tile may optionally have a clickable (touchable) MB> function. So, in addition to being "live" it is optionally MB> "active". Each emacs-tile may have an "activate" function. Ted> That should be a property of the text produced by the "update" function. Possible to do it that way but there are also advantages for an entire emacs-tile to be declared active to the emacs-panel. More on this in the example below. MB> The process of splitting an emacs-panel into emacs-tiles can be MB> based on something like Lars's (gnus-add-configuration). Ted> Can you provide an example? I don't know exactly what you mean here. Gnus provides a facility for structuring a frame into multiple windows based on horizontal/vertical box specifications. On a wide screen, mine is this: (defun bystar:mail:display:frame-wide () "On a Wide Frame" (interactive) (gnus-add-configuration '(summary (horizontal 1.0 (vertical 0.6 (summary 1.0 point)) (vertical 1.0 (group 1.0))))) (gnus-add-configuration '(article (horizontal 1.0 (vertical 0.6 (summary 0.25 point) (article 1.0) ) (vertical 1.0 ("*BBDB*" 1.0) (score-trace 0.1))))) ) So, I am proposing that similarly an emacs-panel can be devided into emacs-tiles. The example below explains it more. Panel of Tiles Example: ----------------------- Consider that we were trying to mimic what Windows 7 Mobile is doing in: http://www.blogcdn.com/www.engadget.com/media/2010/02/02-15-10winphone2.jpg There will be 1 emacs-panel containing 7 emacs-tiles. So, we need to: - Specify 7 emacs-tiles. (6 squares 1 rectangle in that picture.) - Specify lay out and sizes of the tiles within the panel. Based on something similar to gnus-add-configuration. - Specify the emacs-panel's overall size ... and make it contain the 7 emacs-tiles. As you said, a tile in a panel is not same as a window in a frame. The horizontal/vertical dividers for the tiles could be as simple as lines (thin dividers -- not scroll bars). I have a preference for the "active" abstraction for the entire tile to be optionally deligated to the panel manager as opposed to always being a property of the text inside of the tile. The idea is that on a handset you would always take it for granted that touching (clicking) a tile will always do something. My motivation is to facilitate getting things started towards Emacs Mobile. The maping between the container of a set of tiles into a panel can be at frame or window level. May be we need a separate abstraction name for the container of a set of tiles. With something like this (panels of tiles) in place, emacs can quickly be made quite usable on a touch based handset. On a large screen, outside of the handset usage, using you own example: (emacs-panel-popup-add "status" :function (lambda () (format "%s\n%s\n%s\n%s" (format-time-string "%H:%M %Y-%m-%d" (current-time)) (battery-format battery-echo-area-format (funcall battery-status-function)) (timeclock-status-string) (shell-command-to-string "nmcli -p dev")))) Using tiles, you could be creating 4 tiles for each of: (format-time-string "%H:%M %Y-%m-%d" (current-time)) (battery-format battery-echo-area-format (funcall battery-status-function)) (timeclock-status-string) (shell-command-to-string "nmcli -p dev") With tile dividers between them and separate update functions ... What do you think? Thanks. ...Mohsen