3 ms·
I am still not working on anything big right now, but among the things I did in the last two weeks or so, I improved the widgets-project I maintain. This one i
by shevy-java 7mo ago
I am still not working on anything big right now, but
among the things I did in the last two weeks or so, I
improved the widgets-project I maintain. This one is
to be used to support as many different GUI toolkits
as possible (including use cases for javascript + the
web). The idea is to have objects that are abstract
and represent a widget, say:
button1 = create_button('Hello world!')
button1.on_clicked {
the_hello_world_button_was_clicked
}
# this is the verbose variant in a pseudo-DSL,
# I like things being explicit. In most code
# I may omit some parts e. g.
_ = button('Hello world!') { :the_hello_world_button_was_clicked }
It defaults to ruby and what ruby supports (including
jruby-swing) but two additional languages to use are
python and java. Anyway.
I recently added the possibility to describe what kind
of widgets are to be used via a yaml file, as an option.
This may not sound like a huge win, but so far what I
like here is that it becomes easier to modify individual
widgets without having to sift through code; and it
works for more programming languages too. Any customization
for the widget, including method-invocations if necessary,
can be done via a yaml file now. There is of course a trade
off in that the yaml file can become a bit complex (if the
GUI uses many widgets), so for the most part I use this for
smaller widgets/components that do one specific functionality
(or, few specific functionalities). For instance, a GUI over
wget. Then if other larger programs need that, I make this
small widget more useful and flexible.
The distant goal is to actually use a simple DSL that also
would allow average Joe to customize everything in a very
easy manner; and to have a widget set that can be used for
as many different parts possible including wonky ideas such
as having a whole operating system as a GUI available one
day (a bit like webmin, but not limited to what webmin does;
for instance, I'd also have games such as solitaire, reversi
and so forth). I'd like to see how far that idea can go, but
it is just a hobby so I can only invest little time into it.