forked from enlightenment/efl
parent
943d63f6f2
commit
4521ca1f87
|
@ -356,6 +356,12 @@ collections {
|
|||
action, ACTION_STOP;
|
||||
target, "logo_animate";
|
||||
}
|
||||
program {
|
||||
name, "logo_animate_signal";
|
||||
signal, "mouse,up,1";
|
||||
source, "logo_anim";
|
||||
action, SIGNAL_EMIT "do_it" "the_source";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1004,12 +1004,18 @@ st_collections_group_programs_program_action(void)
|
|||
ep->action = parse_enum(0,
|
||||
"STATE_SET", EDJE_ACTION_TYPE_STATE_SET,
|
||||
"ACTION_STOP", EDJE_ACTION_TYPE_ACTION_STOP,
|
||||
"SIGNAL_EMIT", EDJE_ACTION_TYPE_SIGNAL_EMIT,
|
||||
NULL);
|
||||
if (ep->action == EDJE_ACTION_TYPE_STATE_SET)
|
||||
{
|
||||
ep->state = parse_str(1);
|
||||
ep->value = parse_float_range(2, 0.0, 1.0);
|
||||
}
|
||||
else if (ep->action == EDJE_ACTION_TYPE_SIGNAL_EMIT)
|
||||
{
|
||||
ep->state = parse_str(1);
|
||||
ep->state2 = parse_str(2);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -1,18 +1,15 @@
|
|||
#include "Edje.h"
|
||||
#include "edje_private.h"
|
||||
|
||||
/* FIXME: finish ACTION_STOP action */
|
||||
/* FIXME: add a "SIGNAL_EMIT action to emit fake (or real) signals */
|
||||
/* FIXME: somehow handle double click? */
|
||||
/* FIXME: ? somehow handle double click? */
|
||||
/* FIXME: free stuff - no more leaks */
|
||||
/* FIXME: new prog starts while current program is running on part, stop old */
|
||||
/* FIXME: add numeric params to conditiosn for progs (ranges etc.) */
|
||||
/* FIXME: ? add numeric params to conditions for progs (ranges etc.) */
|
||||
/* FIXME: dragables havwe to work */
|
||||
/* FIXME: drag start/top signals etc. */
|
||||
/* FIXME: app has to be able to have callbacks called on signal emits */
|
||||
/* FIXME: app has to be able to emit signals */
|
||||
/* FIXME: named parts need to be able to be "replaceD" with new evas objects */
|
||||
/* FIXME; need to be able to calculate min & max size of a whole edje */
|
||||
/* FIXME: named parts need to be able to be "replaced" with new evas objects */
|
||||
/* FIXME: need to be able to calculate min & max size of a whole edje */
|
||||
|
||||
Edje *_edje_fetch(Evas_Object *obj);
|
||||
Edje *_edje_add(Evas_Object *obj);
|
||||
|
@ -74,7 +71,6 @@ static Ecore_Timer *_edje_timer = NULL;
|
|||
static Evas_List *_edje_animators = NULL;
|
||||
static Evas_Hash *_edje_file_hash = NULL;
|
||||
|
||||
|
||||
static Evas_Smart *_edje_smart = NULL;
|
||||
|
||||
void
|
||||
|
@ -688,6 +684,10 @@ _edje_program_run(Edje *ed, Edje_Program *pr)
|
|||
}
|
||||
}
|
||||
}
|
||||
else if (pr->action == EDJE_ACTION_TYPE_SIGNAL_EMIT)
|
||||
{
|
||||
_edje_emit(ed, pr->state, pr->state2);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1424,6 +1424,7 @@ _edje_edd_setup(void)
|
|||
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "source", source, EET_T_STRING);
|
||||
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "action", action, EET_T_INT);
|
||||
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "state", state, EET_T_STRING);
|
||||
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "state2", state2, EET_T_STRING);
|
||||
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "value", value, EET_T_DOUBLE);
|
||||
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "tween.mode", tween.mode, EET_T_INT);
|
||||
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "tween.time", tween.time, EET_T_DOUBLE);
|
||||
|
|
|
@ -35,15 +35,14 @@
|
|||
* tween to the new state.
|
||||
*
|
||||
* the signals that can be emitted are:
|
||||
* "mouse.down"
|
||||
* "mouse.up"
|
||||
* "mouse.in"
|
||||
* "mouse.out"
|
||||
* "mouse.move"
|
||||
* "clicked"
|
||||
* "drag.start"
|
||||
* "mouse,down"
|
||||
* "mouse,up"
|
||||
* "mouse,in"
|
||||
* "mouse,out"
|
||||
* "mouse,move"
|
||||
* "drag,start"
|
||||
* "drag"
|
||||
* "drag.stop"
|
||||
* "drag,stop"
|
||||
*/
|
||||
|
||||
typedef struct _Edje_File Edje_File;
|
||||
|
@ -82,6 +81,7 @@ typedef struct _Edje_Part_Description Edje_Part_Description;
|
|||
#define EDJE_ACTION_TYPE_NONE 0
|
||||
#define EDJE_ACTION_TYPE_STATE_SET 1
|
||||
#define EDJE_ACTION_TYPE_ACTION_STOP 2
|
||||
#define EDJE_ACTION_TYPE_SIGNAL_EMIT 3
|
||||
#define EDJE_ACTION_TYPE_LAST 4
|
||||
|
||||
#define EDJE_TWEEN_MODE_NONE 0
|
||||
|
@ -131,6 +131,7 @@ struct _Edje_Program /* a conditional program to be run */
|
|||
|
||||
int action; /* type - set state, stop action, set drag pos etc. */
|
||||
char *state; /* what state of alternates to apply, NULL = default */
|
||||
char *state2; /* what other state to use - for signal emit action */
|
||||
double value; /* value of state to apply (if multiple names match) */
|
||||
|
||||
struct {
|
||||
|
|
Loading…
Reference in New Issue