#ifdef HAVE_CONFIG_H
# include "config.h"
#else
# define EINA_UNUSED
#endif
#ifndef PACKAGE_DATA_DIR
#define PACKAGE_DATA_DIR "."
#endif
#include <stdio.h>
#include <Ecore.h>
#define WIDTH  (300)
#define HEIGHT (300)
static const char commands[] = \
  "commands are:\n"
  "\ts - change Edje's global scaling factor\n"
  "\tr - change center rectangle's scaling factor\n"
  "\tEsc - exit\n"
  "\th - print help\n";
static void
_on_keydown(void        *data,
            void        *einfo)
{
   if (strcmp(ev->
key, 
"h") == 0) 
      {
        printf(commands);
        return;
     }
   else if (strcmp(ev->
key, 
"s") == 0) 
      {
        printf("got scale %f\n", scale);
        if (scale != 1.0) scale = 1.0;
        else scale = 2.0;
        printf("Setting global scaling factor to %f.\n", scale);
        return;
     }
   else if (strcmp(ev->
key, 
"r") == 0) 
      {
        double scale = edje_object_scale_get(edje_obj);
        printf("got scale %f\n", scale);
        if (!scale) scale = 1.0;
        else if (scale == 1.0) scale = 2.0;
        else scale = 0.0;
        edje_object_scale_set(edje_obj, scale);
        printf("Setting center rectangle's scaling factor to %f.\n",
                scale);
        return;
     }
   else if (!strcmp(ev->
key, 
"Escape"))
    else
     {
        printf(
"unhandled key: %s\n", ev->
key);
        printf(commands);
     }
}
static void
{
}
int
{
   const char  *img_file = PACKAGE_DATA_DIR"/red.png";
   const char  *edje_file = PACKAGE_DATA_DIR"/basic.edj";
   Ecore_Evas  *ee;
   int          x;
   int          y;
   int          w;
   int          h;
     return EXIT_FAILURE;
     goto shutdown_ecore_evas;
   
   if (!ee) goto shutdown_edje;
   evas_object_move(bg, 0, 0); 
   evas_object_resize(bg, WIDTH, HEIGHT); 
   edje_obj = edje_object_add(evas);
   
   if (!edje_object_file_set(edje_obj, edje_file, "unexistant_group"))
     {
        int err = edje_object_load_error_get(edje_obj);
        const char *errmsg = edje_load_error_str(err);
        fprintf(stderr, "Could not load 'unexistant_group' from basic.edj:"
                        " %s\n", errmsg);
     }
   if (!edje_object_file_set(edje_obj, edje_file, "example_group"))
     {
        int err = edje_object_load_error_get(edje_obj);
        const char *errmsg = edje_load_error_str(err);
        fprintf(stderr, "Could not load 'example_group' from basic.edj: %s\n",
                errmsg);
        goto shutdown_edje;
     }
   printf("Loaded Edje object bound to group 'example_group' from"
                   " file basic.edj with success!\n");
   evas_object_move(edje_obj, 20, 20);
   evas_object_resize(edje_obj, WIDTH - 40, HEIGHT - 40);
   
   border = evas_object_image_filled_add(evas);
   evas_object_image_file_set(border, img_file, NULL);
   evas_object_image_border_set(border, 2, 2, 2, 2);
   evas_object_image_border_center_fill_set(border, EVAS_BORDER_FILL_NONE);
   evas_object_resize(border, WIDTH - 40 + 4, HEIGHT - 40 + 4);
   evas_object_move(border, 20 - 2, 20 - 2);
   printf("'example_data' data field in group 'example_group' has "
                   "the value: %s\n", edje_object_data_get(edje_obj,
                                                           "example_data"));
   printf("Testing if 'part_one' part exists: %s\n",
   edje_object_part_geometry_get(edje_obj, "part_one", &x, &y, &w, &h);
   printf("The geometry of that part inside the Edje object's area "
                   "is: x = %d, y = %d, w = %d, h = %d\n", x, y, w, h);
                         &x, &y, &w, &h);
   printf("That part's color components are: r = %d, g = %d, b = %d,"
                   " a = %d\n", x, y, w, h);
   printf("The Edje object's max. size is: %d, %d\n", w, h);
   printf("The Edje object's min. size is: %d, %d\n", w, h);
   edje_object_size_min_calc(edje_obj, &w, &h);
   printf("The Edje object's min. size reported by min. size"
                   " calculation is: w = %d, h = %d\n", w, h);
   edje_object_size_min_restricted_calc(edje_obj, &w, &h, 500, 500);
   printf("The Edje object's min. size reported by *restricted* "
                   "min. size calculation is: w = %d, h = %d\n", w, h);
   edje_object_parts_extends_calc(edje_obj, &x, &y, &w, &h);
   printf("The Edje object's \"extended\" geometry is: x = %d, "
                   "y = %d, w = %d, h = %d\n", x, y, w, h);
   printf(commands);
   return EXIT_SUCCESS;
 shutdown_edje:
 shutdown_ecore_evas:
   return EXIT_FAILURE;
}