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: Mon, 6 Feb 2012 18:18:08 +0200 Message-ID: References: <4F2E5D33.6020406@gmx.at> <4F2E8185.4080706@gmx.at> <4F2EC768.4050603@gmx.at> <4F2FAD31.9040702@gmx.at> <877h00yq7z.fsf@uwakimon.sk.tsukuba.ac.jp> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=bcaec529958912e92f04b84e02fc X-Trace: dough.gmane.org 1328545109 3990 80.91.229.3 (6 Feb 2012 16:18:29 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Mon, 6 Feb 2012 16:18:29 +0000 (UTC) Cc: Juri Linkov , martin rudalics , Emacs Dev To: "Stephen J. Turnbull" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Feb 06 17:18:28 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 1RuRGt-0002Cl-K8 for ged-emacs-devel@m.gmane.org; Mon, 06 Feb 2012 17:18:27 +0100 Original-Received: from localhost ([::1]:58247 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RuRGq-00040U-LY for ged-emacs-devel@m.gmane.org; Mon, 06 Feb 2012 11:18:24 -0500 Original-Received: from eggs.gnu.org ([140.186.70.92]:53748) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RuRGi-000407-Q6 for emacs-devel@gnu.org; Mon, 06 Feb 2012 11:18:22 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RuRGb-0000Mh-OS for emacs-devel@gnu.org; Mon, 06 Feb 2012 11:18:16 -0500 Original-Received: from mail-iy0-f169.google.com ([209.85.210.169]:64063) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RuRGb-0000MS-Cw for emacs-devel@gnu.org; Mon, 06 Feb 2012 11:18:09 -0500 Original-Received: by iagz16 with SMTP id z16so11192296iag.0 for ; Mon, 06 Feb 2012 08:18:08 -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=jiNk81J+ALqgF4+jSgUOK3ZYp40U4b2+Re5lD4l4nuw=; b=LGpgtjrpD0xY3aIzue8Dnl7pio8mGQ4IMYXPnEHbaS9jwg50WbszR0mpBuJjwF49Aq Qv41fZa4P0KMYoS0t/i2YCk4Oj81osk4VDjpN2quCMFF/5DaNFqGct3TAITtGTw8E8Oa hP8YyWokjW7WH7N776un0tpgCNHWLeMgthLvs= Original-Received: by 10.43.53.1 with SMTP id vo1mr21549748icb.2.1328545088595; Mon, 06 Feb 2012 08:18:08 -0800 (PST) Original-Received: by 10.231.42.209 with HTTP; Mon, 6 Feb 2012 08:18:08 -0800 (PST) In-Reply-To: <877h00yq7z.fsf@uwakimon.sk.tsukuba.ac.jp> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 209.85.210.169 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:148268 Archived-At: --bcaec529958912e92f04b84e02fc Content-Type: text/plain; charset=UTF-8 2012/2/6 Stephen J. Turnbull > Alin Soare writes: > > > > > 3. when grep finds something, and the tab is hidden , the tab > widget to > > > > change the color > > > > > > What sense does it make to have a hidden tab change color? And what > > > kind of event is this in your nomenclature? > > Alin, in English the physical metaphor that "tab" invokes refers to > the small piece of a folder or notebook divider that sticks out where > you can find it in a stack. It specifically does *not* refer to the > content area that is linked with the tab. So if the tab is hidden > (eg, by another row of tabs), you can't see it change color! This > precise definition may be difficult to understand from the way native > speakers use the term, but I assure you your usage is confusing the > hell out of the native speakers here. > In 'konsole of KDE there are tabs. In each such tab can e run a process (not necessrily 'bash) . In konsole, when a tab is hidden and its process gave output, the tab changed the color. The same happens to alll chat programs. > As well as some of the non-native speakers, as I presume Martin is. > > > Tabs should register a callback for an event , for example, when i/o > > arrives in the given process... > > You're going around in circles. Martin knows how events and callbacks > work. > > > Quite so, you can do this functionality using only M-x and calling lisp > > functions. Or menu entries. But I am sure most people would be happy to > be > > able to define a tab that shows a 'grep process. > > I doubt it. In real life as defined in the English language, a tab is > a way to quickly find a flat object in a neat stack of flat objects of > similar size and shape, such as pages of an address book or file > folders in a file cabinet. It is very similar to a bookmark (I mean > things the ribbon you find in a nicely bound book or some odd scrap of > paper, not the web browser sort), except that bookmarks are ad hoc and > tend to have no fixed relationship to the content that they mark, > while tabs are systematic, and have a fixed relationship to content. > Eg, a common tabbed object is an address book, and the tabs are small > areas that stick out, have labels such as "A", "B", "C", and the > related content is "names that start with A," and so on. Another > example is a product manual divided into sections, such as the well > known Unix manual with "Commands", "OS entry points", "Standard > library", and so on. > > In computers, because software is more dynamic than printed books > (even looseleaf notebooks), tabs tend to be more ad hoc. Still, > they're really just glorified bookmarks, usually coming in sets with > some sort of relationship to each other. > > So basically a tab control is just a set of windows (or frames) that > share the same screen real estate, with a visible but nonobtrusive GUI > to switch windows (frames) quickly.[1] > > I can easily believe that *you* might use a tab to invoke a grep > process, and there's nothing wrong with that if you want that > . > However, that is not the way most people think of tabs. Most people > would invoke the grep process with M-! or a menu item or maybe a > toolbar button, and then -- if the output was to be referred to > frequently -- they *might* use a tab to navigate to *Shell Command > Output* buffer that holds that output. I doubt very many people would > find it natural to invoke commands with a tab. > > In practice, the only things that a tab needs is a Lisp object to > represent it and to keep track of its screen real estate, and a small > API to control its appearance. Everything else can be defined in > terms of existing Lisp primitives (eg, your grep example with the tab > changing color when the associated process buffer receives output > could be implemented with a process sentinel). > I propose to find a definition of tabs, such they are programmablem and give whatever default behaviour of tabs you wish, give the LIBERTY to those programmers who wish to define other kind of tabs for themselves, to be able to do so. --bcaec529958912e92f04b84e02fc Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable

2012/2/6 Stephen J. Turnbull <stephen@xemacs.org&g= t;
Alin Soare writes:

=C2=A0> > > 3. when grep finds something, and the tab is hidden , = the tab widget to
=C2=A0> > > change the color
=C2=A0> >
=C2=A0> > What sense does it make to have a hidden tab change color? = =C2=A0And what
=C2=A0> > kind of event is this in your nomenclature?

Alin, in English the physical metaphor that "tab" invokes r= efers to
the small piece of a folder or notebook divider that sticks out where
you can find it in a stack. =C2=A0It specifically does *not* refer to the content area that is linked with the tab. =C2=A0So if the tab is hidden
(eg, by another row of tabs), you can't see it change color! =C2=A0This=
precise definition may be difficult to understand from the way native
speakers use the term, but I assure you your usage is confusing the
hell out of the native speakers here.

I= n 'konsole of KDE there are tabs. In each such tab can e run a process = (not necessrily 'bash) .

In konsole, when a ta= b is hidden and its process gave output, the tab changed the color.

The same happens to alll chat programs.
=C2= =A0




As well as some of the non-native speakers, as I presume Martin is.

=C2=A0> Tabs should register a callback for an event , for example, when= i/o
=C2=A0> arrives in =C2=A0the given process...

You're going around in circles. =C2=A0Martin knows how events and= callbacks
work.

=C2=A0> Quite so, you can do this functionality using only M-x and calli= ng lisp
=C2=A0> functions. Or menu entries. But I am sure most people would be h= appy to be
=C2=A0> able to define a tab that shows a 'grep process.

I doubt it. =C2=A0In real life as defined in the English language, a = tab is
a way to quickly find a flat object in a neat stack of flat objects of
similar size and shape, such as pages of an address book or file
folders in a file cabinet. =C2=A0It is very similar to a bookmark (I mean things the ribbon you find in a nicely bound book or some odd scrap of
paper, not the web browser sort), except that bookmarks are ad hoc and
tend to have no fixed relationship to the content that they mark,
while tabs are systematic, and have a fixed relationship to content.
Eg, a common tabbed object is an address book, and the tabs are small
areas that stick out, have labels such as "A", "B", &qu= ot;C", and the
related content is "names that start with A," and so on. =C2=A0An= other
example is a product manual divided into sections, such as the well
known Unix manual with "Commands", "OS entry points", &= quot;Standard
library", and so on.

In computers, because software is more dynamic than printed books
(even looseleaf notebooks), tabs tend to be more ad hoc. =C2=A0Still,
they're really just glorified bookmarks, usually coming in sets with some sort of relationship to each other.

So basically a tab control is just a set of windows (or frames) that
share the same screen real estate, with a visible but nonobtrusive GUI
to switch windows (frames) quickly.[1]

I can easily believe that *you* might use a tab to invoke a grep
process, and there's nothing wrong with that if you want that
.
However, that is not the way most people think of tabs. =C2=A0Most people would invoke the grep process with M-! or a menu item or maybe a
toolbar button, and then -- if the output was to be referred to
frequently -- they *might* use a tab to navigate to *Shell Command
Output* buffer that holds that output. =C2=A0I doubt very many people would=
find it natural to invoke commands with a tab.

In practice, the only things that a tab needs is a Lisp object to
represent it and to keep track of its screen real estate, and a small
API to control its appearance. =C2=A0Everything else can be defined in
terms of existing Lisp primitives (eg, your grep example with the tab
changing color when the associated process buffer receives output
could be implemented with a process sentinel).


I propose to find a definition of tabs, such they ar= e programmablem and give whatever default behaviour of tabs you wish, give = the LIBERTY to those programmers who wish to define other kind of tabs for = themselves, to be able to do so.




--bcaec529958912e92f04b84e02fc--