Ideas for a brand new widget toolkit

Joakim joakim at airpost.net
Tue Aug 13 13:33:44 PDT 2013


On Tuesday, 13 August 2013 at 20:13:05 UTC, Adam D. Ruppe wrote:
> On Tuesday, 13 August 2013 at 20:00:31 UTC, Joakim wrote:
>> The concept is to build a client-server GUI runtime that is as 
>> simple as possible on the client side.
>
> Are you familiar with X11? It is the 80's version of that 
> concept. There's some downsides though to this model; it is 
> pretty sensitive to network latency, especially.
You mentioned X11 to me before, when we talked about this idea 
over email.  I'm not very familiar with X11, but when I looked at 
the X11 reference, it seems that it provides for a lot more 
commands and complexity in the client than I have in mind.  I 
don't think X11 is well optimized, as I've found it laggy simply 
when running xterm or small GUI apps on a local wifi network with 
extremely low latency.

Yes, such networked GUIs assume low latency, just as most of the 
web assumes a working internet connection. ;) This is not a 
solution for offline GUIs, and so wouldn't work as a 
general-purpose GUI toolkit.  I wonder if offline is a niche 
worth serving these days however.

> I've been wanting to do a network transparent gui myself, and 
> is one thing I might do with my crappy implementation once it 
> is a little more complete. I'd make the display a little 
> thicker though, with basic widgets being there so it can just 
> communicate in higher level events. I also want the ability to 
> detach and reattach elsewhere, ala gnu screen.
Yeah, I saw your DWS writeup, seems like we have some similar 
ideas: :)

http://arsdnet.net/dws/

What basic widgets do you have in mind, to keep on the 
client-side?  Also, just widgets in the client or some basic 
layout too?

With my idea, the client is only given sizes and absolute 
positions of rectangles, with pngs or text to render inside the 
rectangle: it has no conception of what it is rendering and can't 
do any layout on its own.  For example, an offline web browser 
can layout a page anew when the window is resized, but all layout 
for my client is done on the server.

As for detaching and reattaching, that is easier to do, the more 
state is kept on the server. :) You could do it in most webapps 
today, after you login at the new location, but since it's more 
complicated to code all that reattaching functionality and isn't 
necessary for most apps, most app devs don't bother.


More information about the Digitalmars-d mailing list