Re: [Fresco-devel] Newbie confusion
Stefan Seefeld <[email protected]>
| Newsgroups | gmane.comp.video.fresco.devel |
|---|---|
| Message-ID | <[email protected]> |
Tobias Hunger wrote: > On Saturday 23 November 2002 07:46, M. Evans wrote: > >>>Our client level API is more along the lines of >>>"put some buttons in an hbox, and tell me when they get clicked". >> >>which to me describes very definite widgets! These contradictory >>statements have me confused. > > > We do not really have the term widget in Fresco and use it mostly to make > people feel not totally lost in Fresco without anything but the terms client > and server to remind them of their X-windows based homeland:-) > > We do have a WidgetKit. But that does not really create widgets as you know > them from X but graphics like all the other Kits do to. A graphic can be > anything as simple as a line or glyph (one or more letters forming a visual > entity), a rectangle, a frame or just some 'space' around some other graphic. let me try to clarify: We do have widgets, even though I agree with Tobias about them being implemented quite differently from conventional 'toolkits'. Fresco's architecture is based on the idea of a (server side) scene graph. The catch is that the generation of chunks of the scene graph is done by 'kits', which exist for a variety of domains. Some create low level graphics like lines or 2D shapes, others 3D primitives, yet others layout objects like hboxes, margins, and grids. And finally, there is a 'WidgetKit' that creates scene graph chunks that look and behave like what you know as widgets. All these objects are created inside the server, the client just needs to get hold of such kits and ask them to create these chunks (what is returned is a reference to the root node of the created chunk). So you realize that what you thought was a contradictory statement is actually not, since our display server is indeed responsible for both, the low level rendering as well as the creation of high level objects. Note that right now you *can* implement scene graph objects inside the client, even though that is discouraged, as it will result in bad performance. It's mostly useful to prototype (see our python demos). Hope this helps, Stefan > > You can combine these "simple" graphics to form more complex objects. A window > is just another graphic made up of one graphic containing the titlebar > (formed by of some graphics descibing letters, rectangles, images, ...) one > graphic for the complete GUI of the application (again usually made up by a > tree of other graphics that the developer of the application has build up) > and a buttombar graphic (rectangles, frames, ... again). > > A widget is just another graphic. A button for example contains a rectangle, > some frame (the beleveled edge of the button) and a controller (a 'invisible' > graphic wrapped around other graphics that can react to events) that triggers > a command on a mouse-button click. > > If you don't like our buttons, you will either just plug in a new > implementation of the widgetKit which is used to generate buttons. Then your > button must use the interface describing a button that we provide. Or you can > roll your own by combining more primitive graphics (lines, etc.) yourself. In > both cases there's little need to inherite from our code. > > >>My understanding of Fresco, based on the intros, was that >> >>- it offers a vector-based drawing model that can be rendered into >>actual pixels by different back ends like GGI or SDL > > > Leave out the "into actual pixels by different back ends like GGI or SDL" and > you are closer. Fresco internally uses a completly device independent format > to describe all graphics. That it usually outputs to pixels is a > implementation detail: It can just as well render to OpenGL or Postscript. > Feel free to add PDF too... That all these ultimately get turned into pixels > is something Fresco does not need to know or care about. > > >>- this drawing model can build/manage windows as well as widgets > > > The drawing model has no concept of windows or widgets. It just arranges > graphics. > > >>- widgets can be embedded within other widgets or graphic elements > > > Graphics can consist of other graphics. > > >>- window contents are transformable/scalable by virtue of vectors > > > Graphics can be arbitrarily transformed. > > >>- Fresco can bypass X (but doesn't have to) > > > The Fresco server has no concept of wether it runs in X or not. SDL, GGI or > whatever encapsulate that detail. > > >>- Fresco is still in alpha, no first release yet (??) > > > We had several releases allready, the latest announced on freshmeat just > yesterday. Of course we are in alpha stage even in spite of that. > > > Forget about windows, widgets, etc. There are only Graphics. Not > distinguishing between widgets, windows and arbitrary geometric constructs > make the whole programming environment so much cleaner and easier! > > - -- > Gruss, > Tobias > > - ------------------------------------------------------------ > Tobias Hunger The box said: 'Windows 95 or better' > [email protected] So I installed Linux. > - ------------------------------------------------------------ > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.2.1 (GNU/Linux) > > iD8DBQE933+9v0FZW3NyoqURAoLmAKCaRO5pFJUp0zG4o1NYvnyrCk6YKACgpiBN > 2MxqBG3e82w8qAuUFNQLzAM= > =NMAI > -----END PGP SIGNATURE----- > > _______________________________________________ > Fresco-devel mailing list > [email protected] > http://lists.fresco.org/cgi-bin/listinfo/fresco-devel > >