Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

[REBOL] Re: list-style: event questions

From: brett:codeconscious at: 15-Apr-2002 20:50

Hello Robert,
> Hi, I read some stuff about the event system of VID and what I can do with
the
> 'feel thing. I'm trying to use a list-style where a function is called
once and
> only once the redrawing/supplying of data/... (I don't which event to use)
to
> the list-style starts. And after finishing all the update to the
list-style an
> other function should be called. Much like a constructor/destructor
concept.
> Anyway, I looked at the list-style object and saw that 'feel is 'none...
Hmm...
> so it must be set somewhere else.
See below.
> Can someone explain me how the propagation of events happens in VID? Where
do
> events enter the event-hierarchy? In which order are events handled for
objects
> at the same event-hierarchy-level?
The event hierarchy as I understand it is. (1) Window (2) Face (feel) My guess is that the operating system created window receives all the events and then View converts these two REBOL events and dispatches them to the appropriate face. Not all events received by the window are dispatched - I think View does some interpretation and culling of a lot of raw events and instead sends a more abstracted event to the face (eg. by calling engage).
> How can I find our which objects do have > event-handlers?
In vid-ancestry, right click on a style to see the feel for that style. The program identifies the feel object being used. Have a look at them for button, check box etc. The vid-ancestry program will help you see how the various styles work and which have event handlers (FEELs). The indentation shown in the program is used to indicate how the styles were derived from each other - further to the right is more specialised.
> And after you answered all these general questions ;-)) how does the > event-system for the list-style works? I didn't found an anchor to start
yet.
> For example, the supply function gets called even if you move the mouse
over the
> list. Where is this set? I don't need this event and would like to exclue
it. You *do* need this event - and I don't think you can remove it. It is probably the one that draws things on your screen. It or something related evaluates PANE. Allen wrote this a couple of days ago which is relevent here (the key phrase being "face iteration"):
> List & supply is just a VID interface to face iteration in View. ("supply" > is akin to a "pane func" with a little less effort needed) > If you would like to dig further in iterated faces, the following Zine > article may help. > > "Look ma, just one face" > http://www.rebolforces.com/zine/rzine-1-04.html#sect4.
The idea is that when you set the PANE to a function, the function gets called to dynamically generate the screen image. Don't get trapped into thinking that many faces are created - this is not the case. Actually faces are "rubber stamped" to give the illusion of many faces. This iterated face (calculated pane) approach is very powerful but comes at a processing cost. The function appears to be called very many times. LIST uses this method in order to implement SUPPLY. An easier style to study is TEXT-LIST which also uses this technique. LIST creates a function based on your specification. TEXT-LIST has a built in function text-pane so this makes it easier to understand. To see the definition of TEXT-LIST do the following program and click once on TEXT-LIST. If you work out how TEXT-LIST is built it will help you understand how LIST works. do load-thru http://www.codeconscious.com/rebsite/vid-ancestry.r Regards, Brett.