#include "codegen_example_generated.h"
static Eina_Bool _btn_large = EINA_FALSE;
static void
_swallow_btn_cb(void *data, Evas_Object *btn, void *event_info)
{
   Evas_Object *layout = data;
   if (_btn_large == EINA_FALSE)
     {
        _btn_large = EINA_TRUE;
        codegen_example_swallow_grow_emit(layout);
        elm_object_text_set(btn, "Reduce me!");
        if (!codegen_example_table_clear(layout, EINA_TRUE))
          fprintf(stderr, "Could not remove the items from the table!\n");
     }
   else
     {
        _btn_large = EINA_FALSE;
        codegen_example_swallow_shrink_emit(layout);
        elm_object_text_set(btn, "Enlarge me!");
     }
}
static void
_size_changed_cb(void *data, Evas_Object *layout, const char *emission, const char *source)
{
   Evas_Object *edje;
   Evas_Coord w, h;
   edje_object_size_min_calc(edje, &w, &h);
   printf("Minimum size for this theme: %dx%d\n", w, h);
}
static Evas_Object *
_button_create(Evas_Object *parent, const char *label)
{
   Evas_Object *btn;
   if (!btn) return NULL;
   elm_object_text_set(btn, label);
   evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
   return btn;
}
EAPI_MAIN int
elm_main(int argc, char **argv)
{
   Evas_Object *win, *btn, *layout, *tbl_items[6];
   const char *labels[] = {"One", "Two", "Three", "Four", "Five", "Six"};
   int i;
   
   layout = codegen_example_layout_add(win, NULL, NULL);
   if (!layout)
     {
        printf("Could not create the layout\n");
        return -1;
     }
   evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   evas_object_show(layout);
   codegen_example_size_changed_callback_add(layout, _size_changed_cb, layout);
   
   const char *title = codegen_example_title_get(layout);
   if (title)
     {
        codegen_example_title_set(layout, title);
     }
   btn = _button_create(win, "Enlarge me!");
   codegen_example_custom_set(layout, btn);
   evas_object_smart_callback_add(btn, "clicked", _swallow_btn_cb, layout);
   for (i = 0; i < 6; i++)
     {
        tbl_items[i] = _button_create(win, labels[i]);
        if (i < 3)
          {
             if (!codegen_example_table_pack(layout, tbl_items[i], i, i, 1,1))
               fprintf(stderr, "Could not add the button to the table!\n");
          }
        else
          {
             if (!codegen_example_box_append(layout, tbl_items[i]))
               fprintf(stderr, "Could not add the button to the box!\n");
          }
        evas_object_show(tbl_items[i]);
     }
   evas_object_resize(win, 500, 600);
   evas_object_show(win);
   return 0;
}