Aug 24

Interesting design concepts

Category: Uncategorized

I’ve been taking a look at the enlightenment system. Its more than just a window manager, and more than a desktop. And I have to admit, there are some extremely brilliant ideas and innovations contained in e17.

The biggest one, I feel, is a state-aware Canvas widget. They call the canvas Evas, which I’ll use for the rest of the post. What I mean by state-aware, is that Evas keeps track of the state of the objects on it, including if they’ve been clicked, what size, etc.

Instead of having to keep a reference to everything you’ve put on the screen, and managing memory because of it, Evas takes care of all that for you; with much more efficient routines as well.

As well, all you have to do is tell Evas to adjust the state of the widget at (x, y), and Evas takes care of this intelligently.

Even better, is that it works on any xserver, wether it is OpenGL, the full X.org, or a mini xserver.

An excellent example of how this works would be on the enlightenment window manager. When you switch the virtual desktop, the visual effect only changes what has changed, instead of the entire screen. I have different backgrounds for each of the four virtual desktops, and they all have a white background. So, when I change desktop, the vertical swipe only changes what is different between the two desktops. Its a beautiful visual effect, which is hard to believe it is done with so little use of the cpu power. And yes, as far as I know, it is software rendered.

What this means is that coupled with the powerful gui system(which can be completely defined without writing a single line of code), to manage a gui for an application, you write the interface, you write the callbacks… and never need to touch a single line of window management code. You can focus on the application. Thats awesome.

The enlightenment apps as well have great effects… which again don’t need hw acceleration. When you hit alt+tab to switch apps, the mouse moves automatically to the center of that app. As well, if you use the scroll button on your mouse over the titlebar of an enlightenment app, the app actually scrolls up, and minimizes to just the title bar floating there.

There are so many nice little touches and effects, and I’m using the enlightenment theme that is conservative!

The whole development enviroment seems quite interesting, and I’ll will try making an app in it.

Comments are off for this post

Comments are closed.