|
|
|
NavigationPersonal tools |
Edje/GroupShow
[edit] Simple edje application to display an edje group.Usage: edje_group_show file.edj GroupName Compile: gcc `pkg-config --libs --cflags evas ecore ecore-evas edje` edje_group_show.c -o edje_group_show
#include <Evas.h>
#include <Ecore.h>
#include <Ecore_Evas.h>
#include <Edje.h>
#include <stdio.h>
struct app {
Evas *evas;
Ecore_Evas *ee;
Evas_Object *edje;
Evas_Object *bg;
};
static void
destroy_main_window(Ecore_Evas *ee)
{
ecore_main_loop_quit();
}
static void
resize_window(Ecore_Evas *ee)
{
struct app *app;
Evas_Coord w, h;
ecore_evas_geometry_get(ee, NULL, NULL, &w, &h);
app = ecore_evas_data_get(ee, "app");
evas_object_resize(app->edje, w, h);
evas_object_resize(app->bg, w, h);
}
int
main(int argc, char **argv)
{
Evas_Coord w, h, min_w, min_h;
struct app app;
/*
* initialize
*/
evas_init();
ecore_init();
edje_init();
ecore_evas_init();
if (argc < 3) {
fprintf(stderr, "Usage: %s <file> <group>\n", argv[0]);
return 1;
}
/*
* setup ecore evas
*/
app.ee = ecore_evas_software_x11_new(NULL, 0, 0, 0, 0, 0);
ecore_evas_title_set(app.ee, argv[2]);
ecore_evas_name_class_set(app.ee, "Edje Group Show", "Edje");
ecore_evas_callback_delete_request_set(app.ee, destroy_main_window);
ecore_evas_callback_resize_set(app.ee, resize_window);
ecore_evas_show(app.ee);
/*
* get evas and setup the edje
*/
app.evas = ecore_evas_get(app.ee);
app.edje = edje_object_add(app.evas);
/* background */
app.bg = evas_object_rectangle_add(app.evas);
evas_object_color_set(app.bg, 123, 123, 123, 255);
evas_object_move(app.bg, 0, 0);
evas_object_show(app.bg);
if (!edje_object_file_set(app.edje, argv[1], argv[2]))
{
fprintf(stderr, "Error while opening file %s part %s\n",
argv[1], argv[2]);
return 1;
}
edje_object_size_min_get(app.edje, &min_w, &min_h);
w = (min_w < 100) ? 100 : min_w;
h = (min_h < 100) ? 100 : min_h;
ecore_evas_resize(app.ee, w, h);
ecore_evas_size_min_set(app.ee, min_w, min_h);
evas_object_resize(app.bg, w, h);
evas_object_move(app.edje, 0, 0);
evas_object_resize(app.edje, w, h);
evas_object_layer_set(app.edje, 100);
evas_object_show(app.edje);
/* make it accessible for callbacks and others. */
ecore_evas_data_set(app.ee, "app", &app);
ecore_main_loop_begin();
ecore_evas_shutdown();
edje_shutdown();
ecore_shutdown();
evas_shutdown();
return 0;
}
Code by pfritz |