From mboxrd@z Thu Jan 1 00:00:00 1970 From: tlaronde@polynum.com Date: Fri, 20 Mar 2009 14:37:04 +0100 To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Message-ID: <20090320133704.GA1366@polynum.com> References: <2470057889c7c25d3cf6c0284b3bcc73@quanstro.net> <9f6b6afb208715c0f2db6433d94f8b21@terzarima.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.3i Subject: Re: [9fans] Raw Input Driver Topicbox-Message-UUID: c09cd1da-ead4-11e9-9d60-3106f5b1d025 On Fri, Mar 20, 2009 at 01:03:12PM +0000, roger peppe wrote: > > the problem with choosing a higher level of abstraction is that > the input event generators can't in general be agnostic about > what the mouse/keyboard/whatever are operating on, > so you end up with a smart client or split application, > which lack the same easy composability that you get > from plan 9's remote devices. For my own stuff, having to rewrite the 2 dimensions user interface, I have created a library running on the terminal that keeps the definitions of the graphical elements drawn with an identifier (3 members) giving to the processing unit (remote) a mean to unambiguously identifies the antecedent for processing. This has a lot of advantages. The UI is just a _representation_ of the data (and in fact of the commands by means of labels/buttons). All the user wandering on the UI, including selecting things, is done on the terminal. Since identifying an element (vectorial elements for KerGIS vectorial stuff; or cell for a grid etc.) is indeed identifying the representation of the element, there is no acrobatics trying to convert the transformation leading to the window, the 1, 2 or 3 pixels between the hot spot of the pointer and the element (in a GIS, converting the distance between pixels to a ground distance and searching the element in ground coordinates), but instead, using the representation for what it is, so searching the representation near 1, 2 or whatever pixel tolerance the representation is near (indeed reducing the search to what is displayed, including ability to mask), and then only sending back the identifier for the real element to processing. This fundamental split between the representation, i.e. the UI, and the processing is the fundamental flaw of the X11 approach which has put the articulation (the network) on the wrong place: in X11, all the UI handling, except dispatching window events, is done on the processing unit (the client in X11 terminology). -- Thierry Laronde (Alceste) http://www.kergis.com/ Key fingerprint = 0FF7 E906 FBAF FE95 FD89 250D 52B1 AE95 6006 F40C