Tutorial 5: wfsSetParent
and wfsSetChild
Tutorial 5: wfsSetParent and wfsSetChild
If you check out scene 9
in the feature tour (the source code for which is in WFS48x.DIR in the
'samples' folder of your WFS documentation) you see that when you drop
blue window B on another blue window A, then A becomes the parent of
B.
The source code is kind of complicated (though well-documented), but
that is only because there is logic that
- checks to see what windows the blue window has been dropped on;
- selects the highest window it has been dropped on that also has
the parent-switching logic associated with it (Maybe you drop a blue
window on a window that doesn't have the parent-switching logic associated
with it, ie, drop it on a window that isn't blue. Then you don't want
to switch the parent.);
- and then makes the result look like a tree. It's really this last
step that makes the source code relatively complex.
The point of scene 9
is actually much smaller than the code associated with it. Scene 9
was made to illustrate use of the wfsSetParent
handler and the wfsSetChild handler.
I got kind of carried away seeing if I could make a tree-control type
of thing. I would say that WFS is better suited for windowing than making
windows out of tree control elements. But even in windowing you sometimes
need to change parent-child relationships at run-time.
The wfsSetParent handler lets you
set/change the parent of a multi-sprite at run-time. The wfsSetChild
handler lets you make a multi-sprite be a child of another multi-sprite.
Really, these two operations do the same thing. When you set the parent
of multi-sprite B to be multi-sprite A, that's the same thing as setting
multi-sprite B to be a child of multi-sprite A.
Both of these handlers are defined in the "3:
Window Manager" and "Menu Manager"
behaviors.
If you look at the HTML documentation of wfsSetParent
and wfsSetChild, you see that how
to call them and what they do is pretty well-documented. Check out the
diagrams in the wfsSetChild documentation.
Don't be intimidated by the relative complexity of the source code of
scene 9.
Changing the parent-child relationships between multi-sprites is very
simple, a one-liner, unless you want to create something like a tree
control type of thing in which case the bulk of the logic is in making
it look like a tree.
|