1 #ifdef HAVE_CONFIG_H
2 # include "elementary_config.h"
3 #endif
4 
5 #include <Eo.h>
6 #include <Evas.h>
7 
8 #include "Elementary.h"
9 
10 #include "elm_code_private.h"
11 
12 EAPI const Efl_Event_Description ELM_CODE_EVENT_LINE_LOAD_DONE =
13     EFL_EVENT_DESCRIPTION("line,load,done");
14 EAPI const Efl_Event_Description ELM_CODE_EVENT_FILE_LOAD_DONE =
15     EFL_EVENT_DESCRIPTION("file,load,done");
16 
17 
18 EAPI Elm_Code *
elm_code_create(void)19 elm_code_create(void)
20 {
21    Elm_Code *ret;
22 
23    ret = calloc(1, sizeof(Elm_Code));
24    if (!ret) return NULL;
25    ret->config.indent_style_efl = EINA_TRUE;
26 
27    // create an in-memory backing for this elm_code by default
28    elm_code_file_new(ret);
29    return ret;
30 }
31 
32 EAPI void
elm_code_free(Elm_Code * code)33 elm_code_free(Elm_Code *code)
34 {
35    Evas_Object *widget;
36    Elm_Code_Parser *parser;
37 
38    if (code->file)
39      elm_code_file_free(code->file);
40 
41    EINA_LIST_FREE(code->widgets, widget)
42      {
43         evas_object_hide(widget);
44         evas_object_del(widget);
45      }
46 
47    EINA_LIST_FREE(code->parsers, parser)
48      {
49         _elm_code_parser_free(parser);
50      }
51 
52    free(code);
53 }
54 
55 EAPI void
elm_code_callback_fire(Elm_Code * code,const Efl_Event_Description * signal,void * data)56 elm_code_callback_fire(Elm_Code *code, const Efl_Event_Description *signal, void *data)
57 {
58    Eina_List *item;
59    Eo *widget;
60 
61    EINA_LIST_FOREACH(code->widgets, item, widget)
62      {
63         efl_event_callback_legacy_call(widget, signal, data);
64      }
65 }
66 
67