From: Frank W. Miller
[mailto: Greetings, This email will likely be way off topic, but maybe not,
given some of the discussions I’ve seen on a “Gnome 3.0”,
whatever that may turn out to be. I’ve been starting to write a new GUI framework that
I’m calling VectorGUI right now for lack of a better term.
It’s written directly on top of X. The basic design is completely
vector based and essentially has two layer associated with it. The first
is what I call the shape layer. This layer implements basic vector
shapes, like lines, polygons, text, etc. All points are in normal units
like inches rather than pixels. And the coordinate system has 0,0 in the lower
left of the screen. Each shape can have affine transformations applied to
it, translation, rotation, and scaling. The second layer is called the widget layer. Each
widget is basically a list of shapes. The affine transformations are also
applicable at the widget layer, being essentially propagated to each shape that
is associated with the widget. So, I’ve been thinking now about how to design the
widget hierarchy. I suppose that I could follow a hierarchy design
similar to the widget set in Gnome/Qt/Windows/Cocoa etc., i.e. panels, buttons,
scrollbars, et.al. Those things probably need to be there. However,
I’m thinking that I want to break out of that and allow for other
widgets, i.e. analog clock, graph, etc., i.e. higher level stuff.
I’d also like to get away from apps having to have a window as the basic
“container” and just let the app allocate and manage widgets
independent of the “window.” Anyway, I’ve implemented the basic shape and widget
layers directly on top of X. I put in a screenshot. I know the
widget looks like a window, but its easy to do that for testing. Its just
three rectangles and a text string. This “widget” can be
moved around the screen with the mouse in the demo. Like I said, this may be way off topic and so if
noone’s interested that’s ok but I’d sure be interested in
any thoughts on this since this community obviously knows something about GUI
design. Please don’t just say “why are you doing
this?” I’m seriously looking for constructive advice. Thanks, FM P.S. This time without the
screenshot, which I can send anybody that’s interested |