Finder -> Frisk (0.0.1) 5
Yes, I've called it Frisk! Version 0.0.1 is ready, no public release yet, but I'm started to feel fairly happy with the solid foundations Frisk is being built on top. As it stands, there are 3 libraries (aside the other libraries from the EFL) that are being built: fkinetic, fthumbnailer, and fmultiscale. The first being a generic kinetic movement area, the second being a distributed thumbnailer and caching engine, and the third being the code display widget that lays out images and decides how to move them around and manipulate them.
I'm coming up with TODO lists for each of the sub-projects, so far, I have one for fmultiscale. I'm going to add more info to a page dedicated to this project.
Finder! 3
UPDATE: Video here.
E17 Code *UPDATED* 1
UPDATE:
And that code is in CVS and working right now. Its applied for Edje files (backgrounds and themes) right now. The plan is to have an E17 module that allows the user to associate any mime / glob with a script / app on the system.
Etk Cairo Widget 4
static void _etk_cairo_test_redraw_required_cb(Etk_Object *object, void *data)
{
Etk_Widget *cairo;
cairo_t *cr;
int w, h;
if (!(cairo = ETK_WIDGET(object)))
return;
etk_widget_geometry_get(cairo, NULL, NULL, &w, &h);
cr = etk_cairo_get(ETK_CAIRO(cairo));
_etk_cairo_test_draw(cr, 0, 0, w, h);
}
int main(int argc, char **argv)
{
Etk_Widget *window;
Etk_Widget *cairo;
Etk_Widget *frame;
etk_init(&argc, &argv);
window = etk_window_new();
etk_window_title_set(ETK_WINDOW(window), "Etk-Cairo Test");
cairo = etk_cairo_new(WIDTH, HEIGHT);
etk_signal_connect("redraw-required", ETK_OBJECT(cairo),
ETK_CALLBACK(_etk_cairo_test_redraw_required_cb), NULL);
frame = etk_frame_new("Cairo Drawing");
etk_container_add(ETK_CONTAINER(frame), cairo);
etk_container_add(ETK_CONTAINER(window), frame);
etk_window_resize(ETK_WINDOW(window), WIDTH, HEIGHT);
etk_widget_show_all(window);
etk_main();
etk_shutdown();
return 0;
}
In this example, the _etk_cairo_test_draw function does all the cairo stuff and can result in something like this or this.
Etk - Combobox Entry Widget 2
Evolve gets new icons
Evolve - Introduction
widget
{
type: "window";
name: "main_window";
requsted-width: 320;
requested-height: 240;
title: Ëvolve Main Window";
}
and convert that into Etk code. The main idea was for you to be able to design the interface of your Etk app using some Edje like kanguage so you would not need to mess with all that C code to create the GUI (painful).
After that functionality was achieved, I wanted Evolve to do more. So I added signals, callbacks, and the ability to pass widgets to those callbacks using Evolve itself. With that, Evolve would create a complete representation of your GUI in memory and it could use that to construct it. The next step, naturally, was to allow Evolve to take that data structure and write it to a binary file (using Eet). Later on came image integration and storage into the binary itself. The result of this was that you could create a GUI, embed your images, and give it to your application developer who would concentrate on the applications logic rather than waste time working out the details of the GUI. Several GUI's can be created for the same application.
This was starting to look good, but it was not good enough. We needed the ability to theme the Etk widgets in the Evolve binary, and we needed the ability for the app using Evolve to look and feel like any Edje application would, removing the restriction to look and feel simply like your everyday Etk application. This was the next step. After finishing this step, any Evolve (and eventually Etk) widget in your application could set its own appearence using Evolve's Edje integration. Evolve allows you to set a custom Edje file and group for your widget, and it allows you to have your Etk widgets embedded in an actual Edje application. The result would be like the modular9 screenshot included here.
So now we had a way to design the GUI using an Edje like language, embed Etk widgets in an Edje application, and custom theme all our widgets, wonderful. What we needed was for the Edje and Evolve binaries to be a single file, a single look and feel file, so that was the next step. Having done that, the next thing I wanted to work on was an Evolve builder application that allowed the user to build his GUI using a very simple visual interface by selected widgets and placing them in windows. The Evolve builder is shown in the other screenshot and here.
The final, and yet uncompleted steps are the ability for using Edje to set the look and feel of the Evolve GUI form the builder itself, and including live previews for everything, and eventually allowing the user to create and edit Edje interfaces (using our Edje editor) from the Evolve builder itself.