efl: notify when the path change.

This is an easier and safer way than forcing all object inheriting this class
to override all function that modify the path.
This commit is contained in:
Cedric BAIL 2015-04-03 16:33:38 +02:00
parent f5f48a8265
commit d14f805793
3 changed files with 29 additions and 8 deletions

View File

@ -148,8 +148,10 @@ typedef enum _Efl_Gfx_Fill_Spread
#include "interfaces/efl_text_properties.eo.h"
EAPI extern const Eo_Event_Description _EFL_GFX_CHANGED;
EAPI extern const Eo_Event_Description _EFL_GFX_PATH_CHANGED;
#define EFL_GFX_CHANGED (&(_EFL_GFX_CHANGED))
#define EFL_GFX_PATH_CHANGED (&(_EFL_GFX_PATH_CHANGED))
#include "interfaces/efl_gfx_base.eo.h"
#include "interfaces/efl_gfx_stack.eo.h"

View File

@ -180,7 +180,9 @@ _efl_gfx_shape_path_set(Eo *obj, Efl_Gfx_Shape_Data *pd,
&pd->current_ctrl.x, &pd->current_ctrl.y);
end:
eo_do(obj, eo_event_callback_call(EFL_GFX_CHANGED, NULL));
eo_do(obj,
eo_event_callback_call(EFL_GFX_PATH_CHANGED, NULL),
eo_event_callback_call(EFL_GFX_CHANGED, NULL));
}
void
@ -292,7 +294,9 @@ _efl_gfx_shape_interpolate(Eo *obj, Efl_Gfx_Shape_Data *pd,
to_pd->current_ctrl.y,
pos_map);
eo_do(obj, eo_event_callback_call(EFL_GFX_CHANGED, NULL));
eo_do(obj,
eo_event_callback_call(EFL_GFX_PATH_CHANGED, NULL),
eo_event_callback_call(EFL_GFX_CHANGED, NULL));
return EINA_TRUE;
}
@ -345,7 +349,9 @@ _efl_gfx_shape_dup(Eo *obj, Efl_Gfx_Shape_Data *pd, Eo *dup_from)
_efl_gfx_shape_path_set(obj, pd, from->commands, from->points);
eo_do(obj, eo_event_callback_call(EFL_GFX_CHANGED, NULL));
eo_do(obj,
eo_event_callback_call(EFL_GFX_PATH_CHANGED, NULL),
eo_event_callback_call(EFL_GFX_CHANGED, NULL));
}
void
@ -364,7 +370,9 @@ _efl_gfx_shape_reset(Eo *obj, Efl_Gfx_Shape_Data *pd)
pd->current_ctrl.x = 0;
pd->current_ctrl.y = 0;
eo_do(obj, eo_event_callback_call(EFL_GFX_CHANGED, NULL));
eo_do(obj,
eo_event_callback_call(EFL_GFX_PATH_CHANGED, NULL),
eo_event_callback_call(EFL_GFX_CHANGED, NULL));
}
void
@ -383,7 +391,9 @@ _efl_gfx_shape_append_move_to(Eo *obj, Efl_Gfx_Shape_Data *pd,
pd->current.x = x;
pd->current.y = y;
eo_do(obj, eo_event_callback_call(EFL_GFX_CHANGED, NULL));
eo_do(obj,
eo_event_callback_call(EFL_GFX_PATH_CHANGED, NULL),
eo_event_callback_call(EFL_GFX_CHANGED, NULL));
}
void
@ -402,7 +412,9 @@ _efl_gfx_shape_append_line_to(Eo *obj, Efl_Gfx_Shape_Data *pd,
pd->current.x = x;
pd->current.y = y;
eo_do(obj, eo_event_callback_call(EFL_GFX_CHANGED, NULL));
eo_do(obj,
eo_event_callback_call(EFL_GFX_PATH_CHANGED, NULL),
eo_event_callback_call(EFL_GFX_CHANGED, NULL));
}
void
@ -429,7 +441,9 @@ _efl_gfx_shape_append_cubic_to(Eo *obj, Efl_Gfx_Shape_Data *pd,
pd->current_ctrl.x = ctrl_x1;
pd->current_ctrl.y = ctrl_y1;
eo_do(obj, eo_event_callback_call(EFL_GFX_CHANGED, NULL));
eo_do(obj,
eo_event_callback_call(EFL_GFX_PATH_CHANGED, NULL),
eo_event_callback_call(EFL_GFX_CHANGED, NULL));
}
void
@ -697,7 +711,9 @@ _efl_gfx_shape_append_close(Eo *obj, Efl_Gfx_Shape_Data *pd)
efl_gfx_path_grow(EFL_GFX_PATH_COMMAND_TYPE_CLOSE,
pd, &offset_point);
eo_do(obj, eo_event_callback_call(EFL_GFX_CHANGED, NULL));
eo_do(obj,
eo_event_callback_call(EFL_GFX_PATH_CHANGED, NULL),
eo_event_callback_call(EFL_GFX_CHANGED, NULL));
}
void

View File

@ -22,3 +22,6 @@
EAPI const Eo_Event_Description _EFL_GFX_CHANGED =
EO_EVENT_DESCRIPTION("Graphics changed", "The visual representation of the object changed");
EAPI const Eo_Event_Description _EFL_GFX_PATH_CHANGED =
EO_EVENT_DESCRIPTION("Graphics path changed", "The path of a shape object changed");