and.... edje_cc can take small code snippets in script{} areas and compile
them, include them int eh edje.eet and edje can run them. all i have to do now is actually give the small scripts an api worht talking about SVN revision: 9514
This commit is contained in:
parent
4059260663
commit
3821f74e99
|
@ -0,0 +1,3 @@
|
|||
native tst();
|
||||
native emit(sig[], src[]);
|
||||
|
|
@ -139,11 +139,20 @@ collections {
|
|||
name: "test";
|
||||
min: 32 32;
|
||||
max: 1024 768;
|
||||
data
|
||||
{
|
||||
item: "My Data" "The string to attach to this data";
|
||||
item: "The Key" "String data attached to the key";
|
||||
}
|
||||
data {
|
||||
item: "My Data" "The string to attach to this data";
|
||||
item: "The Key" "String data attached to the key";
|
||||
}
|
||||
script {
|
||||
|
||||
main()
|
||||
{
|
||||
tst();
|
||||
emit("Flabby", "Pants");
|
||||
return 7;
|
||||
}
|
||||
|
||||
}
|
||||
parts {
|
||||
part {
|
||||
name: "background";
|
||||
|
@ -466,7 +475,10 @@ collections {
|
|||
name: "logo_animate_signal";
|
||||
signal: "mouse,up,1";
|
||||
source: "logo_anim";
|
||||
action: SIGNAL_EMIT "do_it" "the_source";
|
||||
// action: SIGNAL_EMIT "do_it" "the_source";
|
||||
script {
|
||||
emit("PROGRAAAAAAAM", "TEEEEEEEEEEEEEST");
|
||||
}
|
||||
}
|
||||
program {
|
||||
name: "random_signal";
|
||||
|
|
|
@ -23,6 +23,8 @@
|
|||
typedef struct _New_Object_Handler New_Object_Handler;
|
||||
typedef struct _New_Statement_Handler New_Statement_Handler;
|
||||
typedef struct _Font Font;
|
||||
typedef struct _Code Code;
|
||||
typedef struct _Code_Program Code_Program;
|
||||
|
||||
struct _New_Object_Handler
|
||||
{
|
||||
|
@ -42,6 +44,18 @@ struct _Font
|
|||
char *name;
|
||||
};
|
||||
|
||||
struct _Code
|
||||
{
|
||||
char *shared;
|
||||
Evas_List *programs;
|
||||
};
|
||||
|
||||
struct _Code_Program
|
||||
{
|
||||
int id;
|
||||
char *script;
|
||||
};
|
||||
|
||||
/* global fn calls */
|
||||
void data_setup(void);
|
||||
void data_write(void);
|
||||
|
@ -50,7 +64,11 @@ void data_queue_program_lookup(Edje_Part_Collection *pc, char *name, int *des
|
|||
void data_queue_image_lookup(char *name, int *dest);
|
||||
void data_process_lookups(void);
|
||||
|
||||
|
||||
|
||||
int is_verbatim(void);
|
||||
void track_verbatim(int on);
|
||||
void set_verbatim(char *s);
|
||||
char *get_verbatim(void);
|
||||
void compile(void);
|
||||
int is_param(int n);
|
||||
int is_num(int n);
|
||||
|
@ -81,6 +99,7 @@ extern Evas_List *params;
|
|||
extern Edje_File *edje_file;
|
||||
extern Evas_List *edje_collections;
|
||||
extern Evas_List *fonts;
|
||||
extern Evas_List *codes;
|
||||
extern New_Object_Handler object_handlers[];
|
||||
extern New_Statement_Handler statement_handlers[];
|
||||
|
||||
|
|
|
@ -17,6 +17,8 @@ static void st_collections_group_min(void);
|
|||
static void st_collections_group_max(void);
|
||||
static void st_collections_group_data_item(void);
|
||||
|
||||
static void ob_collections_group_script(void);
|
||||
|
||||
static void ob_collections_group_parts_part(void);
|
||||
static void st_collections_group_parts_part_name(void);
|
||||
static void st_collections_group_parts_part_type(void);
|
||||
|
@ -78,6 +80,8 @@ static void st_collections_group_programs_program_transition(void);
|
|||
static void st_collections_group_programs_program_target(void);
|
||||
static void st_collections_group_programs_program_after(void);
|
||||
|
||||
static void ob_collections_group_programs_program_script(void);
|
||||
|
||||
/*****/
|
||||
|
||||
New_Statement_Handler statement_handlers[] =
|
||||
|
@ -159,6 +163,7 @@ New_Object_Handler object_handlers[] =
|
|||
{"collections.group.max", NULL},
|
||||
{"collections.group.data", NULL},
|
||||
{"collections.group.data.item", NULL},
|
||||
{"collections.group.script", ob_collections_group_script},
|
||||
{"collections.group.parts", NULL},
|
||||
{"collections.group.parts.part", ob_collections_group_parts_part},
|
||||
{"collections.group.parts.part.name", NULL},
|
||||
|
@ -224,7 +229,8 @@ New_Object_Handler object_handlers[] =
|
|||
{"collections.group.programs.program.action", NULL},
|
||||
{"collections.group.programs.program.transition", NULL},
|
||||
{"collections.group.programs.program.target", NULL},
|
||||
{"collections.group.programs.program.after", NULL}
|
||||
{"collections.group.programs.program.after", NULL},
|
||||
{"collections.group.programs.program.script", ob_collections_group_programs_program_script}
|
||||
};
|
||||
|
||||
/*****/
|
||||
|
@ -332,6 +338,7 @@ ob_collections_group(void)
|
|||
{
|
||||
Edje_Part_Collection_Directory_Entry *de;
|
||||
Edje_Part_Collection *pc;
|
||||
Code *cd;
|
||||
|
||||
de = mem_alloc(SZ(Edje_Part_Collection_Directory_Entry));
|
||||
edje_file->collection_dir->entries = evas_list_append(edje_file->collection_dir->entries, de);
|
||||
|
@ -340,6 +347,9 @@ ob_collections_group(void)
|
|||
pc = mem_alloc(SZ(Edje_Part_Collection));
|
||||
edje_collections = evas_list_append(edje_collections, pc);
|
||||
pc->id = evas_list_count(edje_collections) - 1;
|
||||
|
||||
cd = mem_alloc(SZ(Code));
|
||||
codes = evas_list_append(codes, cd);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -371,6 +381,35 @@ st_collections_group_max(void)
|
|||
pc->prop.max.h = parse_int_range(1, 0, 0x7fffffff);
|
||||
}
|
||||
|
||||
static void
|
||||
ob_collections_group_script(void)
|
||||
{
|
||||
Edje_Part_Collection *pc;
|
||||
Code *cd;
|
||||
|
||||
pc = evas_list_data(evas_list_last(edje_collections));
|
||||
cd = evas_list_data(evas_list_last(codes));
|
||||
|
||||
if (!is_verbatim()) track_verbatim(1);
|
||||
else
|
||||
{
|
||||
char *s;
|
||||
|
||||
s = get_verbatim();
|
||||
if (s)
|
||||
{
|
||||
if (cd->shared)
|
||||
{
|
||||
fprintf(stderr, "%s: Error. parse error %s:%i. There is already an existing script section for the group\n",
|
||||
progname, file_in, line);
|
||||
exit(-1);
|
||||
}
|
||||
cd->shared = s;
|
||||
set_verbatim(NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
st_collections_group_data_item(void)
|
||||
{
|
||||
|
@ -1256,6 +1295,7 @@ st_collections_group_programs_program_action(void)
|
|||
"DRAG_VAL_SET", EDJE_ACTION_TYPE_DRAG_VAL_SET,
|
||||
"DRAG_VAL_STEP", EDJE_ACTION_TYPE_DRAG_VAL_STEP,
|
||||
"DRAG_VAL_PAGE", EDJE_ACTION_TYPE_DRAG_VAL_PAGE,
|
||||
"SCRIPT", EDJE_ACTION_TYPE_SCRIPT,
|
||||
NULL);
|
||||
if (ep->action == EDJE_ACTION_TYPE_STATE_SET)
|
||||
{
|
||||
|
@ -1348,14 +1388,45 @@ st_collections_group_programs_program_after(void)
|
|||
{
|
||||
Edje_Program_After *pa;
|
||||
char *name;
|
||||
|
||||
|
||||
name = parse_str(0);
|
||||
|
||||
|
||||
pa = mem_alloc(SZ(Edje_Program_After));
|
||||
pa->id = -1;
|
||||
ep->after = evas_list_append(ep->after, pa);
|
||||
|
||||
|
||||
data_queue_program_lookup(pc, name, &(pa->id));
|
||||
free(name);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
ob_collections_group_programs_program_script(void)
|
||||
{
|
||||
Edje_Part_Collection *pc;
|
||||
Edje_Program *ep;
|
||||
Code *cd;
|
||||
|
||||
pc = evas_list_data(evas_list_last(edje_collections));
|
||||
ep = evas_list_data(evas_list_last(pc->programs));
|
||||
cd = evas_list_data(evas_list_last(codes));
|
||||
|
||||
if (!is_verbatim()) track_verbatim(1);
|
||||
else
|
||||
{
|
||||
char *s;
|
||||
|
||||
s = get_verbatim();
|
||||
if (s)
|
||||
{
|
||||
Code_Program *cp;
|
||||
|
||||
cp = mem_alloc(SZ(Code_Program));
|
||||
cp->id = ep->id;
|
||||
cp->script = s;
|
||||
cd->programs = evas_list_append(cd->programs, cp);
|
||||
set_verbatim(NULL);
|
||||
ep->action = EDJE_ACTION_TYPE_SCRIPT;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,6 +27,7 @@ struct _Image_Lookup
|
|||
Edje_File *edje_file = NULL;
|
||||
Evas_List *edje_collections = NULL;
|
||||
Evas_List *fonts = NULL;
|
||||
Evas_List *codes = NULL;
|
||||
|
||||
static Eet_Data_Descriptor *edd_edje_file = NULL;
|
||||
static Eet_Data_Descriptor *edd_edje_image_directory = NULL;
|
||||
|
@ -77,6 +78,7 @@ data_write(void)
|
|||
int image_num;
|
||||
int font_num;
|
||||
int collection_num;
|
||||
int i;
|
||||
|
||||
bytes = 0;
|
||||
input_bytes = 0;
|
||||
|
@ -374,37 +376,6 @@ data_write(void)
|
|||
char buf[4096];
|
||||
|
||||
pc = l->data;
|
||||
|
||||
/* FIXME: hack!!!! */
|
||||
{
|
||||
FILE *f;
|
||||
|
||||
f = fopen("test.amx", "r");
|
||||
if (f)
|
||||
{
|
||||
int size;
|
||||
void *data;
|
||||
|
||||
fseek(f, 0, SEEK_END);
|
||||
size = ftell(f);
|
||||
rewind(f);
|
||||
if (size > 0)
|
||||
{
|
||||
int bt;
|
||||
|
||||
data = malloc(size);
|
||||
if (data)
|
||||
{
|
||||
fread(data, size, 1, f);
|
||||
snprintf(buf, sizeof(buf), "scripts/%i", pc->id);
|
||||
bt = eet_write(ef, buf, data, size, 1);
|
||||
free(data);
|
||||
printf("WROTE %i bytes of AMX!\n", bt);
|
||||
}
|
||||
}
|
||||
fclose(f);
|
||||
}
|
||||
}
|
||||
snprintf(buf, sizeof(buf), "collections/%i", pc->id);
|
||||
bytes = eet_data_write(ef, edd_edje_part_collection, buf, pc, 1);
|
||||
if (bytes <= 0)
|
||||
|
@ -424,6 +395,88 @@ data_write(void)
|
|||
progname, bytes, (bytes + 512) / 1024, buf);
|
||||
}
|
||||
}
|
||||
for (i = 0, l = codes; l; l = l->next, i++)
|
||||
{
|
||||
Code *cd;
|
||||
|
||||
cd = l->data;
|
||||
if ((cd->shared) || (cd->programs))
|
||||
{
|
||||
int fd;
|
||||
char tmpn[4096];
|
||||
|
||||
strcpy(tmpn, "/tmp/edje_cc.sma-tmp-XXXXXX");
|
||||
fd = mkstemp(tmpn);
|
||||
if (fd >= 0)
|
||||
{
|
||||
FILE *f;
|
||||
char buf[4096];
|
||||
char tmpo[4096];
|
||||
int ret;
|
||||
|
||||
f = fopen(tmpn, "w");
|
||||
if (f)
|
||||
{
|
||||
Evas_List *ll;
|
||||
|
||||
fprintf(f, "#include <edje>\n\n");
|
||||
if (cd->shared) fprintf(f, "%s\n", cd->shared);
|
||||
for (ll = cd->programs; ll; ll = ll->next)
|
||||
{
|
||||
Code_Program *cp;
|
||||
|
||||
cp = ll->data;
|
||||
if (cp->script)
|
||||
{
|
||||
/* FIXME: this prototype needs to be */
|
||||
/* formalised and set in stone */
|
||||
fprintf(f, "public _p%i(sig[], src[]) {\n", cp->id);
|
||||
fprintf(f, "%s\n", cp->script);
|
||||
fprintf(f, "}\n");
|
||||
}
|
||||
}
|
||||
fclose(f);
|
||||
}
|
||||
close(fd);
|
||||
strcpy(tmpo, "/tmp/edje_cc.amx-tmp-XXXXXX");
|
||||
fd = mkstemp(tmpo);
|
||||
if (fd >= 0)
|
||||
{
|
||||
snprintf(buf, sizeof(buf), "embryo_cc -i%s -o%s %s",
|
||||
DAT"data/include", tmpo, tmpn);
|
||||
ret = system(buf);
|
||||
printf("ret = %i\n", ret);
|
||||
close(fd);
|
||||
}
|
||||
f = fopen(tmpo, "r");
|
||||
if (f)
|
||||
{
|
||||
int size;
|
||||
void *data;
|
||||
|
||||
fseek(f, 0, SEEK_END);
|
||||
size = ftell(f);
|
||||
rewind(f);
|
||||
if (size > 0)
|
||||
{
|
||||
int bt;
|
||||
|
||||
data = malloc(size);
|
||||
if (data)
|
||||
{
|
||||
fread(data, size, 1, f);
|
||||
snprintf(buf, sizeof(buf), "scripts/%i", i);
|
||||
bt = eet_write(ef, buf, data, size, 1);
|
||||
free(data);
|
||||
}
|
||||
}
|
||||
fclose(f);
|
||||
}
|
||||
unlink(tmpn);
|
||||
unlink(tmpo);
|
||||
}
|
||||
}
|
||||
}
|
||||
eet_close(ef);
|
||||
if (verbose)
|
||||
{
|
||||
|
|
|
@ -36,7 +36,9 @@ int line = 0;
|
|||
Evas_List *stack = NULL;
|
||||
Evas_List *params = NULL;
|
||||
|
||||
static char file_buf[4096];
|
||||
static char file_buf[4096];
|
||||
static int verbatim = 0;
|
||||
static char *verbatim_str = NULL;
|
||||
|
||||
static void
|
||||
new_object(void)
|
||||
|
@ -379,6 +381,73 @@ parse(char *data, off_t size)
|
|||
{
|
||||
stack = evas_list_append(stack, token);
|
||||
new_object();
|
||||
if ((verbatim == 1) && (p < (end - 2)))
|
||||
{
|
||||
int escaped = 0;
|
||||
int inquotes = 0;
|
||||
int insquotes = 0;
|
||||
int squigglie = 1;
|
||||
char *verbatim_1;
|
||||
char *verbatim_2;
|
||||
|
||||
while ((p[0] != '{') && (p < end)) p++;
|
||||
p++;
|
||||
verbatim_1 = p;
|
||||
verbatim_2 = NULL;
|
||||
for (; p < end; p++)
|
||||
{
|
||||
if (escaped) escaped = 0;
|
||||
if (!escaped)
|
||||
{
|
||||
if (p[0] == '\\') escaped = 1;
|
||||
else if (p[0] == '\"')
|
||||
{
|
||||
if (!insquotes)
|
||||
{
|
||||
if (inquotes) inquotes = 0;
|
||||
else inquotes = 1;
|
||||
}
|
||||
}
|
||||
else if (p[0] == '\'')
|
||||
{
|
||||
if (!inquotes)
|
||||
{
|
||||
if (insquotes) insquotes = 0;
|
||||
else insquotes = 1;
|
||||
}
|
||||
}
|
||||
else if ((!inquotes) && (!insquotes))
|
||||
{
|
||||
if (p[0] == '{') squigglie++;
|
||||
else if (p[0] == '}') squigglie--;
|
||||
if (squigglie == 0)
|
||||
{
|
||||
verbatim_2 = p - 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (verbatim_2 > verbatim_1)
|
||||
{
|
||||
int l;
|
||||
char *v;
|
||||
|
||||
l = verbatim_2 - verbatim_1 + 1;
|
||||
v = malloc(l + 1);
|
||||
strncpy(v, verbatim_1, l);
|
||||
v[l] = 0;
|
||||
set_verbatim(v);
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf(stderr, "%s: Error. parse error %s:%i. { marker does not have matching } marker\n",
|
||||
progname, file_in, line);
|
||||
exit(-1);
|
||||
}
|
||||
new_object();
|
||||
verbatim = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -396,6 +465,30 @@ clean_tmp_file(void)
|
|||
if (clean_file) unlink(clean_file);
|
||||
}
|
||||
|
||||
int
|
||||
is_verbatim(void)
|
||||
{
|
||||
return verbatim;
|
||||
}
|
||||
|
||||
void
|
||||
track_verbatim(int on)
|
||||
{
|
||||
verbatim = on;
|
||||
}
|
||||
|
||||
void
|
||||
set_verbatim(char *s)
|
||||
{
|
||||
verbatim_str = s;
|
||||
}
|
||||
|
||||
char *
|
||||
get_verbatim(void)
|
||||
{
|
||||
return verbatim_str;
|
||||
}
|
||||
|
||||
void
|
||||
compile(void)
|
||||
{
|
||||
|
|
|
@ -113,7 +113,8 @@ Edje_Edit_Image *edje_edit_iamge_get_by_id(int id);
|
|||
#define EDJE_ACTION_TYPE_DRAG_VAL_SET 4
|
||||
#define EDJE_ACTION_TYPE_DRAG_VAL_STEP 5
|
||||
#define EDJE_ACTION_TYPE_DRAG_VAL_PAGE 6
|
||||
#define EDJE_ACTION_TYPE_LAST 7
|
||||
#define EDJE_ACTION_TYPE_SCRIPT 7
|
||||
#define EDJE_ACTION_TYPE_LAST 8
|
||||
|
||||
#define EDJE_TWEEN_MODE_NONE 0
|
||||
#define EDJE_TWEEN_MODE_LINEAR 1
|
||||
|
@ -597,7 +598,7 @@ void _edje_unref(Edje *ed);
|
|||
|
||||
int _edje_program_run_iterate(Edje_Running_Program *runp, double tim);
|
||||
void _edje_program_end(Edje *ed, Edje_Running_Program *runp);
|
||||
void _edje_program_run(Edje *ed, Edje_Program *pr, int force);
|
||||
void _edje_program_run(Edje *ed, Edje_Program *pr, int force, char *ssig, char *ssrc);
|
||||
void _edje_emit(Edje *ed, char *sig, char *src);
|
||||
|
||||
void _edje_text_init(void);
|
||||
|
|
|
@ -307,7 +307,7 @@ _edje_pending_timer_cb(void *data)
|
|||
|
||||
pp = data;
|
||||
pp->edje->pending_actions = evas_list_remove(pp->edje->pending_actions, pp);
|
||||
_edje_program_run(pp->edje, pp->program, 1);
|
||||
_edje_program_run(pp->edje, pp->program, 1, "", "");
|
||||
free(pp);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -93,3 +93,23 @@ _edje_embryo_script_reset(Edje *ed)
|
|||
if (embryo_program_recursion_get(ed->collection->script) > 0) return;
|
||||
embryo_program_vm_reset(ed->collection->script);
|
||||
}
|
||||
|
||||
void
|
||||
_edje_embryo_test_run(Edje *ed, char *fname, char *sig, char *src)
|
||||
{
|
||||
Embryo_Function fn;
|
||||
|
||||
if (!ed) return;
|
||||
if (!ed->collection) return;
|
||||
if (!ed->collection->script) return;
|
||||
_edje_embryo_script_reset(ed);
|
||||
fn = embryo_program_function_find(ed->collection->script, fname);
|
||||
if (fn != EMBRYO_FUNCTION_NONE)
|
||||
{
|
||||
printf("EDJE DEBUG: About to run script from progrqm.\n");
|
||||
embryo_parameter_string_push(ed->collection->script, sig);
|
||||
embryo_parameter_string_push(ed->collection->script, src);
|
||||
embryo_program_run(ed->collection->script, fn);
|
||||
printf("EDJE DEBUG: Done.\n");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -59,5 +59,6 @@ extern Evas_List *_edje_edjes;
|
|||
void _edje_embryo_script_init (Edje *ed);
|
||||
void _edje_embryo_script_shutdown (Edje *ed);
|
||||
void _edje_embryo_script_reset (Edje *ed);
|
||||
void _edje_embryo_test_run (Edje *ed, char *fname, char *sig, char *src);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -276,7 +276,7 @@ _edje_program_run_iterate(Edje_Running_Program *runp, double tim)
|
|||
if (pa->id >= 0)
|
||||
{
|
||||
pr = evas_list_nth(ed->collection->programs, pa->id);
|
||||
if (pr) _edje_program_run(ed, pr, 0);
|
||||
if (pr) _edje_program_run(ed, pr, 0, "", "");
|
||||
if (_edje_block_break(ed))
|
||||
{
|
||||
if (!ed->walking_actions) free(runp);
|
||||
|
@ -345,7 +345,7 @@ _edje_program_end(Edje *ed, Edje_Running_Program *runp)
|
|||
}
|
||||
|
||||
void
|
||||
_edje_program_run(Edje *ed, Edje_Program *pr, int force)
|
||||
_edje_program_run(Edje *ed, Edje_Program *pr, int force, char *ssig, char *ssrc)
|
||||
{
|
||||
Evas_List *l;
|
||||
/* limit self-feeding loops in programs to 64 levels */
|
||||
|
@ -461,7 +461,7 @@ _edje_program_run(Edje *ed, Edje_Program *pr, int force)
|
|||
if (pa->id >= 0)
|
||||
{
|
||||
pr2 = evas_list_nth(ed->collection->programs, pa->id);
|
||||
if (pr2) _edje_program_run(ed, pr2, 0);
|
||||
if (pr2) _edje_program_run(ed, pr2, 0, "", "");
|
||||
if (_edje_block_break(ed)) goto break_prog;
|
||||
}
|
||||
}
|
||||
|
@ -597,6 +597,17 @@ _edje_program_run(Edje *ed, Edje_Program *pr, int force)
|
|||
_edje_emit(ed, "program,stop", pr->name);
|
||||
if (_edje_block_break(ed)) goto break_prog;
|
||||
}
|
||||
else if (pr->action == EDJE_ACTION_TYPE_SCRIPT)
|
||||
{
|
||||
char fname[128];
|
||||
|
||||
_edje_emit(ed, "program,start", pr->name);
|
||||
if (_edje_block_break(ed)) goto break_prog;
|
||||
snprintf(fname, sizeof(fname), "_p%i", pr->id);
|
||||
_edje_embryo_test_run(ed, fname, ssig, ssrc);
|
||||
_edje_emit(ed, "program,stop", pr->name);
|
||||
if (_edje_block_break(ed)) goto break_prog;
|
||||
}
|
||||
if (!((pr->action == EDJE_ACTION_TYPE_STATE_SET)
|
||||
/* hmm this fucks somethgin up. must look into it later */
|
||||
/* && (pr->tween.time > 0.0) && (!ed->no_anim))) */
|
||||
|
@ -610,7 +621,7 @@ _edje_program_run(Edje *ed, Edje_Program *pr, int force)
|
|||
if (pa->id >= 0)
|
||||
{
|
||||
pr2 = evas_list_nth(ed->collection->programs, pa->id);
|
||||
if (pr2) _edje_program_run(ed, pr2, 0);
|
||||
if (pr2) _edje_program_run(ed, pr2, 0, "", "");
|
||||
if (_edje_block_break(ed)) goto break_prog;
|
||||
}
|
||||
}
|
||||
|
@ -734,7 +745,7 @@ _edje_emit(Edje *ed, char *sig, char *src)
|
|||
Edje_Program *pr;
|
||||
|
||||
pr = l->data;
|
||||
_edje_program_run(ed, pr, 0);
|
||||
_edje_program_run(ed, pr, 0, sig, src);
|
||||
if (_edje_block_break(ed))
|
||||
{
|
||||
if (tmps) free(tmps);
|
||||
|
@ -767,7 +778,7 @@ _edje_emit(Edje *ed, char *sig, char *src)
|
|||
#ifdef EDJE_PROGRAM_CACHE
|
||||
matched++;
|
||||
#endif
|
||||
_edje_program_run(ed, pr, 0);
|
||||
_edje_program_run(ed, pr, 0, ee->signal, ee->source);
|
||||
if (_edje_block_break(ed))
|
||||
{
|
||||
#ifdef EDJE_PROGRAM_CACHE
|
||||
|
|
Loading…
Reference in New Issue