[REBOL] off-topic... steel/liquid v1.0 going alpha.
From: maximo::meteorstudios::com at: 22-Jul-2003 10:27
hi all,
liquid is finally going alpha. At home it has gone through FOUR (4) 100% rewrites in
one month.
The problem is finding a balance between speed, features and lightness. each version
was best at each one of those three things and now the forth has about 75% of each in
50% less code (from over 30k to just a tad over 15k). Its also more flexible for power-users.
at one point three full-fledged (and highly redundant) classes where needed to do what
this new class does simpler and better.
Although I'm still teasing all of you, the new engine is simply amazing (at least I think).
It supports:
-multiple signals per object.
-run-time creation/trashing/recycling of signals and/or handlers.
-run-time connection which lets you build your signals in advance
with ALL the handling you need and let other signalers connect-in later.
-Another cool thing is that if you transfer your connection to another signal pipe,
your will continue receiving events with the same handler function, but with
data changes of the other data pipe.
The api interface is extremely high-level with a deeper level of control if you want
it. A default mechanism was integrated in every method for cases where you do not need
multiple signals per object. In that mode liquid is child's play to use and setup.
Liquid, integrated in vid, now looks like:
view layout [
styles liquid-vid
below
val: text 200x25 format [ rejoin ["value :" data]]
field attach val
sldr: slider attach val 200x25
]
here slider, field and text all update synchronously and with no additional programming
on your part.
in the example, the text block also has automatic formating applied to it when the value
changes.
adding the following to the vid block above:
[
min-val: field attach 'value 'min sldr
max-val: field attach 'value 'max sldr
field attach sldr
slider attach 'value 'min sldr
slider attach 'value 'max sldr
]
will create a complex network of gadgets which ALL refresh together. really, this setup
actully updates all fields and the value scroll bar's offset as you change the min and
max slider or fields. if the scroll bar gets out of bounds you can easily add a little
hook which cleans it up befor passing it to the rest of the "pipe".
I PLAN ON RELEASING THE STEEL PROJECT on august first, at the state it will be at that
moment. Things it WILL most probably have:
-liquid v1.0 alpha
-liquid-vid (ALL your beloved vid styles liquified, ready to piped like in the above
examples)
-documentation on how to use liquid and the prebuilt vid styles.
-open-library system (v0.5 lib/rebol versioning is disabled... but still expected)
-an interim version of liquid-metal (to build UI with VERY simple resizing)
-Steel IDE, v0.0.1 which uses everything in the toolkit. (but does nothing with it ;-)
-some other libs necessary to run the current state of the ide.
-a dumb-proof installer which lets you easily setup the kit, and remove it.
At that point all user comments/requests/suggestions will be collected and put into one
file and put on the net, updated weekly (that't one of the purposes of steel, btw).
I hope some of you are following this and I really wish steel to be a success, for all
of us.
Every suggestion will be considered, even if it seem philosophically contradictory to
the state of the steel project at the time. I plan on making the engine scalable from
2 line code tests up to multiple file/archived/annotated/installable and versionned projects.
I don't want to say anything more, cause I don't people to expect too much in the begining.
CIAO!!
-MAx
PS: sorry for using this list, its the only place I post about rebol stuff and I try
to keep steel-related posts to less than mail every two weeks.