All pastes #476653 Raw Edit

hisham

public c v1 · immutable
·published 2007-05-08 07:53 UTC
rendered paste body
#include <Evas.h>#include <Eet.h>#include "Etk_Cc.h"#define NEWD(str, typ) \     eet_data_descriptor_new(str, sizeof(typ), \                                (void *(*) (void *))evas_list_next, \                                (void *(*) (void *, void *))evas_list_append, \                                (void *(*) (void *))evas_list_data, \                                (void *(*) (void *))evas_list_free, \                                (void  (*) (void *, int (*) (void *, const char *, void *, void *), void *))evas_hash_foreach, \                                (void *(*) (void *, const char *, void *))evas_hash_add, \                                (void  (*) (void *))evas_hash_free)#define FREED(eed) \         if (eed) \             { \                eet_data_descriptor_free((eed)); \                (eed) = NULL; \             }#define ETK_CC_WIDGET_PROP_NEWI(str, it, type) \   EET_DATA_DESCRIPTOR_ADD_BASIC(_etk_cc_widget_prop_edd, Etk_Cc_Widget_Property, str, it, type)#define ETK_CC_WIDGET_NEWI(str, it, type) \   EET_DATA_DESCRIPTOR_ADD_BASIC(_etk_cc_widget_edd, Etk_Cc_Widget, str, it, type)#define ETK_CC_WIDGET_NEWH(str, it, type) \     EET_DATA_DESCRIPTOR_ADD_HASH(_etk_cc_widget_edd, Etk_Cc_Widget, str, it, type)#define ETK_CC_WIDGETS_NEWL(str, it, type) \     EET_DATA_DESCRIPTOR_ADD_LIST(_etk_cc_widgets_edd, Etk_Cc, str, it, type)extern Evas_List *widgets;static Eet_Data_Descriptor *_etk_cc_widget_prop_edd = NULL;static Eet_Data_Descriptor *_etk_cc_widget_edd = NULL;static Eet_Data_Descriptor *_etk_cc_widgets_edd = NULL;typedef struct _Etk_Cc Etk_Cc;struct _Etk_Cc{   Evas_List *widgets;};int main(int argc, char **argv){   etk_cc_init();   eet_init();   yyparse();   _etk_cc_widget_prop_edd = NEWD("Etk_Cc_Widget_Property", Etk_Cc_Widget_Property);   ETK_CC_WIDGET_PROP_NEWI("vl", value, EET_T_STRING);   ETK_CC_WIDGET_PROP_NEWI("tp", type, EET_T_INT);   _etk_cc_widget_edd = NEWD("Etk_Cc_Widget", Etk_Cc_Widget);   ETK_CC_WIDGET_NEWI("tp", type, EET_T_STRING);   ETK_CC_WIDGET_NEWI("nm", name, EET_T_STRING);   ETK_CC_WIDGET_NEWI("pt", parent, EET_T_STRING);   ETK_CC_WIDGET_NEWH("pr", props, _etk_cc_widget_prop_edd);   _etk_cc_widgets_edd = NEWD("Etk_Cc", Etk_Cc);   ETK_CC_WIDGETS_NEWL("ws", widgets, _etk_cc_widgets_edd);                                                                                                                                                                                                                  {        Eet_File  *ef;        char *buf = "hello_world.ecc";        int ret;        Etk_Cc *etk_cc;        ef = eet_open(buf, EET_FILE_MODE_WRITE);        if (!ef)          return 0;        etk_cc = calloc(1, sizeof(etk_cc));        etk_cc->widgets = widgets;        ret = eet_data_write(ef, _etk_cc_widgets_edd, "etk/widgets", etk_cc, 1);        if (!ret)          printf("Problem saving data!");                                                                                                   eet_close(ef);                                                                                                                   }                                                                                                                                 eet_shutdown();                                                                                                                                                                                                                                                         return 0;                                                                                                                        }