9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: sape@achille.cs.bell-labs.com
To: 9fans@cse.psu.edu
Subject: Re: [9fans] GUI toolkit for Plan 9
Date: Fri, 22 Feb 2002 12:30:11 +0100	[thread overview]
Message-ID: <c8e43be62fef24d603619e168591b8ed@plan9.bell-labs.com> (raw)

phaet0n@hotmail.com asked:
   I am wondering if anyone is developing,
   or planning, a GUI toolkit for Plan 9?
   If not, does anyone have any good design
   ideas, especially centring around Plan 9
   features? Are there any good papers on
   this topic?

We have an experimental GUI library at the labs.  It's called libcontrol.
Rob Pike did most of the design and I took over its maintenance and
changed it in various ways.

It relies heavily on the thread library.  The controls (our widgets) are
managed by a control thread.  Operations on controls are sent to
this thread via a Channel of char*, e.g.,
	chanprint(controlset->ctl, "controlname operation parameters");
We have basic controls such as buttons, textbuttons, labels, sliders, texts
and editable windows.  In addition we have metacontrols for composition:
radiobuttons, rows of controls, columns of controls, and stacks of controls.
A stack consists of overlayed controls -- only the top one is visible.
Obviously, you can make rows of columns, or columns of rows, etc.
Stacks, columns, and rows help in doing automatic layout, initially, or
upon resize.
Controls report events via a per-control event channel.  These event
channels can be rewired, for instance, to have the events of a slider
be wired into a text or edit control, turning a slider into a scroll bar.

We have a modest number of applications using it now and there has been
a rumor that maybe acme will once upon a time become a libcontrol user.

	Sape



             reply	other threads:[~2002-02-22 11:30 UTC|newest]

Thread overview: 89+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-02-22 11:30 sape [this message]
  -- strict thread matches above, loose matches on Subject: below --
2002-03-07  4:37 okamoto
2002-03-06  9:50 Roger Peppe
2002-03-05 17:29 forsyth
2002-03-04 14:33 Russ Cox
2002-03-04 14:02 nigel
2002-03-05  4:16 ` Martin C.Atkins
2002-03-04 14:01 anothy
2002-03-04 13:35 anothy
2002-03-01 17:21 anothy
2002-03-04 10:07 ` Thomas Bushnell, BSG
2002-02-28 22:30 bwc
2002-02-28 21:34 dmr
2002-02-28 18:56 David Gordon Hogan
2002-02-28 18:41 Fco.J.Ballesteros
2002-02-28 17:19 anothy
2002-03-01 10:03 ` Thomas Bushnell, BSG
2002-02-28 15:22 presotto
2002-02-28 16:35 ` Ralph Corderoy
2002-02-28 16:55 ` Thomas Bushnell, BSG
2002-03-01  8:27 ` Martin C.Atkins
2002-03-04 10:07   ` Thomas Bushnell, BSG
2002-03-04 13:59     ` Martin C.Atkins
2002-02-28 11:03 Bengt Kleberg
2002-02-28 16:41 ` Thomas Bushnell, BSG
2002-03-01  0:54 ` Richard Uhtenwoldt
2002-02-27 14:19 presotto
2002-02-27 10:57 Bengt Kleberg
2002-02-27 11:10 ` Lucio De Re
2002-02-27 10:45 Fco.J.Ballesteros
2002-02-27 10:26 Fco.J.Ballesteros
2002-02-28 10:13 ` Thomas Bushnell, BSG
2002-02-26 21:05 forsyth
2002-02-26 20:28 presotto
2002-02-27  6:54 ` Eric Dorman
2002-02-27 10:20   ` Thomas Bushnell, BSG
2002-02-27 10:51     ` Lucio De Re
2002-02-27 13:27       ` Boyd Roberts
2002-02-27 14:20       ` Ish Rattan
2002-02-27 22:44       ` Thomas Bushnell, BSG
2002-02-28  4:41         ` Lucio De Re
2002-02-28 10:19           ` Thomas Bushnell, BSG
2002-02-28 10:14       ` Thomas Bushnell, BSG
2002-02-28 10:49         ` Matt H
2002-03-01 13:25           ` chad
2002-02-28  9:57     ` ozan s yigit
2002-02-28 14:55 ` AMSRL-CI-CN
2002-02-26 20:25 Russ Cox
2002-02-26 19:05 presotto
2002-02-26 19:47 ` Mike Haertel
2002-02-27 10:07 ` Thomas Bushnell, BSG
2002-02-27 10:29   ` Lucio De Re
2002-02-27 12:21     ` Graham Gallagher
2002-02-27 12:59       ` Lucio De Re
2002-02-27 21:07         ` Graham Gallagher
2002-02-28  9:57       ` ozan s yigit
2002-02-28 10:18     ` Thomas Bushnell, BSG
2002-02-28 16:01     ` AMSRL-CI-CN
2002-02-28 14:55 ` AMSRL-CI-CN
2002-02-26 18:00 andrey mirtchovski
2002-02-26 14:30 rob pike
2002-02-26 14:25 rob pike
2002-02-26 14:24 rob pike
2002-02-26 17:13 ` Thomas Bushnell, BSG
2002-02-26 17:44   ` Dan Cross
2002-02-27 10:07     ` Thomas Bushnell, BSG
2002-02-26 17:48   ` Quinn Dunkan
2002-02-26 19:40   ` William Josephson
2002-02-26 11:24 geoff
2002-02-25 14:59 andrey mirtchovski
2002-02-25 14:41 rob pike
2002-02-25 17:10 ` Thomas Bushnell, BSG
2002-02-25 14:39 rob pike
2002-02-25 17:10 ` Thomas Bushnell, BSG
2002-02-25 14:34 rob pike
2002-02-25 17:10 ` Thomas Bushnell, BSG
2002-02-25 17:25   ` Dan Cross
2002-02-25 17:54   ` Boyd Roberts
2002-02-26 10:26     ` Thomas Bushnell, BSG
2002-02-26 10:27     ` Douglas A. Gwyn
2002-02-25  1:30 okamoto
2002-02-22 13:29 rob pike
2002-02-22 13:43 ` plan9
2002-02-25 10:09   ` Thomas Bushnell, BSG
2002-02-22 17:11 ` Dan Cross
2002-02-22 12:42 forsyth
2002-02-22 12:42 forsyth
2002-02-25 10:10 ` phaet0n
2002-02-22  9:58 phaet0n

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c8e43be62fef24d603619e168591b8ed@plan9.bell-labs.com \
    --to=sape@achille.cs.bell-labs.com \
    --cc=9fans@cse.psu.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).