As you may or may not know, I’m one of the two main authors for the EWL (Enlightened Widget Library) the actual main author being RbdPngn I just like to pretend.
We’ve been plugging away on EWL for a few years now, well a few for me, more then a few for Nathan, and things have been coming together quite well over the last six months to a year.
We’ve spent a good chunk of time optimizing the system for both speed and size (which we, at least, don’t think was premature). EWL has had some amazing performance boosts and memory savings due to those changes. This is the kind of thing we’ll be doing again. We’ll get some new features in then take some time and stabilize and tune.
In terms of features there have been a few things that have gone in lately. A big one being the new EWL engines. These aren’t totally finished yet (the DND code still does bad things) but basically the backend of EWL is abstracted so we can stick another rendering library or another theme library below it. Probably wouldn’t be easy but it should be do-able.
In terms of widgets, the Ewl_Filedialog and Ewl_Fileselector got a lot of work put into them in a rewrite a few months ago. They’ve been cleaned up and the display abstracted out of the file selector. So, you can now write custom views for the file selector and specify which one to use. There is currently a list view, a OSX style view and an icon view. That’s probably all we’ll have for now, but if you’ve got a cool view you’ve created send it our way.
I think the latest widget to get added was the Ewl_List widget. This is just a simple list widget (and in the simplest case it’s just an Ewl_Box) that you can either use the container functions to pack into or use it as an MVC list. You define the model and the view and tell the list about them and it’ll use your callbacks for everything. Want to keep the list sorted? Well, just sort your data and tell the list it’s data is dirty. It’ll redraw.
There are a few pieces of Ewl_List to be finished. I’ve added single select but need to go and add multi-select into the mix. No API breaking should occur as it’s just an extension. Then I need to figure out the best way to deal with highlighting the selected widgets. Probably through a highlight widget that just inherits from floater and sits on top of what’s selected. (I don’t want to use Ewl_Row widgets as I like to use the container functions if possible.)
The other main piece of the puzzle we’ve been burning time on is to redesign the Drag’N’Drop system used by EWL. There are some issues with the current one (and it hardcodes ecore_x stuff in there) that we want to get worked out. RbdPngn and I have spent some time designing the new system, and added in the extensible callbacks to EWL for its use. If you want some more info on this design, check out the bug we’ve opened for it. Most of our design is going into there.
Oh, and as I just mentioned (and previously forgot) we’ve added the ability to add new callbacks to EWL. If you’re working on something (like DND for example) that won’t be used by a lot of widgets (as compared to other callbacks) you can create your own callback and use that instead of needing an entry in the callback array. The callback system has been setup to handle this and should hopefully work well. The reason for this is that each callback in the array takes more memory from every widget. Something like DND isn’t common enough to warrent that kind of memory usage.
pfritz has been giving the Ewl_Grid widget some sweet lovin’ lately which is working out really well. The widget seems to be coming together. He’s added a ‘puzzle’ test to the misc section of the ewl_test app for people to play with. I warn you, it’s actually really hard to solve. Fun to play tho.
Ewl_Tree2 has stalled again. This widget has been bugging us for quite a while now. We know what we want to do, we think we know how to do it. Neither of us has the time to sit down and do it. I think it’s going to take a good chunk of continuous time to get it up and running. When you’ve only got an hour here and an hour there it’s hard to make that kind of commitment. We’ll see. It’s still on the backburner, just have to see if we can get it off the ground.
There are of course many things I’m currently skipping (Ewl_Paned work needed, Ewl_Text work needed etc) but that’s kind of an overview of things at the moment. For some more detailed information, check out the bug tracker and feel free to pitch in if you’d like.