From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Alin Soare Newsgroups: gmane.emacs.devel Subject: Re: Tabs are ready? -> Let us give a definition of tabs. Date: Thu, 9 Feb 2012 01:43:41 +0200 Message-ID: References: <4F2E5D33.6020406@gmx.at> <4F2E8185.4080706@gmx.at> <4F2EC73A.8020905@gmx.at> <4F2FACF8.2040304@gmx.at> <4F3007E8.6090209@gmx.at> <87liofhir9.fsf@spindle.srvr.nix> <4F302D4D.3040307@gmx.at> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=0015175cd19633341a04b87c7789 X-Trace: dough.gmane.org 1328744630 15668 80.91.229.3 (8 Feb 2012 23:43:50 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 8 Feb 2012 23:43:50 +0000 (UTC) Cc: Nix , martin rudalics , Emacs Dev , Juri Linkov , Juanma Barranquero To: Drew Adams Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Feb 09 00:43:49 2012 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1RvHAy-0001b1-J2 for ged-emacs-devel@m.gmane.org; Thu, 09 Feb 2012 00:43:48 +0100 Original-Received: from localhost ([::1]:36274 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RvHAy-0003XW-43 for ged-emacs-devel@m.gmane.org; Wed, 08 Feb 2012 18:43:48 -0500 Original-Received: from eggs.gnu.org ([140.186.70.92]:40472) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RvHAv-0003XR-Dx for emacs-devel@gnu.org; Wed, 08 Feb 2012 18:43:46 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RvHAu-0005CG-1j for emacs-devel@gnu.org; Wed, 08 Feb 2012 18:43:45 -0500 Original-Received: from mail-bk0-f41.google.com ([209.85.214.41]:52303) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RvHAt-0005C8-Ho for emacs-devel@gnu.org; Wed, 08 Feb 2012 18:43:43 -0500 Original-Received: by bkty12 with SMTP id y12so1184171bkt.0 for ; Wed, 08 Feb 2012 15:43:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=sL18w3zIuFSqpJ4w9g0oeRXxmoQwYBiwSmjLX8qwEes=; b=tR6Nuxq+PWIBUiLFxs3AryeWXlUe+QfQc20B49C25aVN0u3q6ikVbCp2D7eO0lJIkj JTrMqTD2PkCDB40dTOOd9rV0cAvdlykdqP6JZBaR/ll+eIMBmz739MkTrcH2oaKAjlPr G1w/j5hPbrFY378c6nfdp+g7VAZrxKxOzDMNc= Original-Received: by 10.204.141.15 with SMTP id k15mr13216143bku.132.1328744622142; Wed, 08 Feb 2012 15:43:42 -0800 (PST) Original-Received: by 10.204.52.14 with HTTP; Wed, 8 Feb 2012 15:43:41 -0800 (PST) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 209.85.214.41 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:148385 Archived-At: --0015175cd19633341a04b87c7789 Content-Type: text/plain; charset=UTF-8 I propose the following [brief/ main steps of a] concrete solution for changing the color of a hidden tab whose process gave output in the meantime: 1. Every tab has a unique ID that can be read and not modified. This ID is dubbed by the system at the creation of the tab. 1' Every tab has an internal state. The tab can be seen as a dispather of messages (or actor) of scheme. 2. When the tab is created , it starts the process, and memorize the process in its internal state. 3. we use the hooks from process , low level programming. 4. we add a hook that calls a function like tabs-process-signals. This is either a function of the internal state of a tab, and in case must be generated for each tab, using the ID of a tab, or be in global environment, and loop over each tab. 5. this function (tabs--process-signals) either is generated separately for each tab, or loops over the list of tabs, and identify the tab whose process' buffer modified. 6. for that tab, tabs--process-signals calls a function like change-color-tab, or make a noise, or force the commutation of the tab, in order to see that a process gave an output/ that somebody wrote on an IRC channel, etc. Essential of this is that a tab must have its own internal state. These are the main steps that pass in my mind now. If emacs had actors, a tab could be implemented directly. If not, the idea of internal state can be encoded somehow. I am waiting for your ideas, please, and better solutions. I am looking forward to find a mechanism for a interface of tabs, common for console/gtk/athena/etc. Alin --0015175cd19633341a04b87c7789 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable

I propose the following =C2= =A0[brief/ main steps of a] concrete solution for changing the color of a h= idden tab whose process gave output in the meantime:

1. Every tab has a unique ID that can be read and not modified. This ID = is dubbed by the system at the creation of the tab.

1' Every tab has an internal state. The tab can be = seen as a dispather of messages (or actor) of scheme.

<= div>2. When the tab is created , it starts the process, and memorize the pr= ocess in its internal state.

3. we use the hooks from process , low level programmin= g.

4. we add a hook that calls a function like tab= s-process-signals. This is either a function of the internal state of a tab= , and in case must be generated for each tab, using the ID of a tab, or be = in global environment, and loop over each tab.

5. this function (tabs--process-signals) either is gene= rated separately for each tab, or loops over the list of tabs, and identify= the tab whose process' buffer modified.

6. fo= r that tab,=C2=A0tabs--process-signals calls a function like change-color-t= ab, or make a noise, or force the commutation of the tab, in order to see t= hat a process gave an output/ that somebody wrote on an IRC channel, etc.

Essential of this is that a tab must have its own inter= nal state.

These are the main steps that pass in m= y mind now.

If emacs had actors, a tab could be im= plemented directly. If not, the idea of internal state can be encoded someh= ow.



I am waiting for your ide= as, please, and better solutions.

I am looking for= ward to find a mechanism for a =C2=A0interface of tabs, common for console/= gtk/athena/etc.



Alin

=


=C2=A0
--0015175cd19633341a04b87c7789--