forked from enlightenment/efl
parent
c686762c35
commit
75172d209d
|
@ -439,9 +439,12 @@
|
||||||
|
|
||||||
* Preserve user box and table items during call of edje_object_file_set.
|
* Preserve user box and table items during call of edje_object_file_set.
|
||||||
|
|
||||||
2012-04-30 Rajeev Ranjan (Rajeev)
|
2012-05-12 Rajeev Ranjan (Rajeev)
|
||||||
|
|
||||||
* Add edje_cc optimization to remove alpha channel flag from images
|
* Add edje_cc optimization to remove alpha channel flag from images
|
||||||
with absolutely no alpha in them if marked as havin alpha in the
|
with absolutely no alpha in them if marked as havin alpha in the
|
||||||
originals
|
originals
|
||||||
|
|
||||||
|
2012-05-14 Cedric Bail
|
||||||
|
|
||||||
|
* Preserve drag informations during call of edje_object_file_set.
|
||||||
|
|
|
@ -15,7 +15,7 @@ Fixes:
|
||||||
* Add missing files in the tarballs.
|
* Add missing files in the tarballs.
|
||||||
* Prevent crash when running nested edje_object_signal_emit with edje_object_signal_callback_{add,del}.
|
* Prevent crash when running nested edje_object_signal_emit with edje_object_signal_callback_{add,del}.
|
||||||
* Do actually verify that the file on disk is different from the file we have loaded.
|
* Do actually verify that the file on disk is different from the file we have loaded.
|
||||||
* Preserve user bix and table items during call of edje_object_file_set.
|
* Preserve user drag, box and table information during call of edje_object_file_set.
|
||||||
|
|
||||||
Edje 1.2.0
|
Edje 1.2.0
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,19 @@ struct _Edje_Table_Items
|
||||||
unsigned short rowspan;
|
unsigned short rowspan;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
typedef struct _Edje_Drag_Items Edje_Drag_Items;
|
||||||
|
struct _Edje_Drag_Items
|
||||||
|
{
|
||||||
|
const char *part;
|
||||||
|
FLOAT_T x, y, w, h;
|
||||||
|
struct {
|
||||||
|
FLOAT_T x, y;
|
||||||
|
} step;
|
||||||
|
struct {
|
||||||
|
FLOAT_T x, y;
|
||||||
|
} page;
|
||||||
|
};
|
||||||
|
|
||||||
#ifdef EDJE_PROGRAM_CACHE
|
#ifdef EDJE_PROGRAM_CACHE
|
||||||
static Eina_Bool _edje_collection_free_prog_cache_matches_free_cb(const Eina_Hash *hash, const void *key, void *data, void *fdata);
|
static Eina_Bool _edje_collection_free_prog_cache_matches_free_cb(const Eina_Hash *hash, const void *key, void *data, void *fdata);
|
||||||
#endif
|
#endif
|
||||||
|
@ -20,6 +33,7 @@ static void _cb_signal_repeat(void *data, Evas_Object *obj, const char *signal,
|
||||||
static Eina_List *_edje_swallows_collect(Edje *ed);
|
static Eina_List *_edje_swallows_collect(Edje *ed);
|
||||||
static Eina_List *_edje_box_items_collect(Edje *ed);
|
static Eina_List *_edje_box_items_collect(Edje *ed);
|
||||||
static Eina_List *_edje_table_items_collect(Edje *ed);
|
static Eina_List *_edje_table_items_collect(Edje *ed);
|
||||||
|
static Eina_List *_edje_drag_collect(Edje *ed);
|
||||||
|
|
||||||
/************************** API Routines **************************/
|
/************************** API Routines **************************/
|
||||||
|
|
||||||
|
@ -296,6 +310,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
|
||||||
Eina_List *old_swallows;
|
Eina_List *old_swallows;
|
||||||
Eina_List *old_table_items;
|
Eina_List *old_table_items;
|
||||||
Eina_List *old_box_items;
|
Eina_List *old_box_items;
|
||||||
|
Eina_List *old_drag;
|
||||||
unsigned int n;
|
unsigned int n;
|
||||||
Eina_List *parts = NULL;
|
Eina_List *parts = NULL;
|
||||||
int group_path_started = 0;
|
int group_path_started = 0;
|
||||||
|
@ -321,6 +336,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
|
||||||
old_swallows = _edje_swallows_collect(ed);
|
old_swallows = _edje_swallows_collect(ed);
|
||||||
old_table_items = _edje_table_items_collect(ed);
|
old_table_items = _edje_table_items_collect(ed);
|
||||||
old_box_items = _edje_box_items_collect(ed);
|
old_box_items = _edje_box_items_collect(ed);
|
||||||
|
old_drag = _edje_drag_collect(ed);
|
||||||
|
|
||||||
if (_edje_script_only(ed)) _edje_script_only_shutdown(ed);
|
if (_edje_script_only(ed)) _edje_script_only_shutdown(ed);
|
||||||
if (_edje_lua_script_only(ed)) _edje_lua_script_only_shutdown(ed);
|
if (_edje_lua_script_only(ed)) _edje_lua_script_only_shutdown(ed);
|
||||||
|
@ -894,6 +910,37 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (old_drag)
|
||||||
|
{
|
||||||
|
Edje_Drag_Items *drag;
|
||||||
|
|
||||||
|
EINA_LIST_FREE(old_drag, drag)
|
||||||
|
{
|
||||||
|
Edje_Real_Part *drp;
|
||||||
|
|
||||||
|
fprintf(stderr, "trying to restore drag on '%s'\n", drag->part);
|
||||||
|
drp = _edje_real_part_recursive_get(ed, drag->part);
|
||||||
|
if (!drp || !drp->drag) goto next;
|
||||||
|
|
||||||
|
fprintf(stderr, "VAL [%f, %f]\n", drag->x, drag->y);
|
||||||
|
drp->drag->val.x = drag->x;
|
||||||
|
drp->drag->val.y = drag->y;
|
||||||
|
drp->drag->size.x = drag->w;
|
||||||
|
drp->drag->size.y = drag->h;
|
||||||
|
/* drp->drag->step.x = drag->step.x; */
|
||||||
|
/* drp->drag->step.y = drag->step.y; */
|
||||||
|
drp->drag->page.x = drag->page.x;
|
||||||
|
drp->drag->page.y = drag->page.y;
|
||||||
|
|
||||||
|
_edje_dragable_pos_set(drp->edje, drp, drp->drag->val.x, drp->drag->val.y);
|
||||||
|
_edje_emit(drp->edje, "drag,set", drp->part->name);
|
||||||
|
|
||||||
|
next:
|
||||||
|
eina_stringshare_del(drag->part);
|
||||||
|
free(drag);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
_edje_recalc(ed);
|
_edje_recalc(ed);
|
||||||
_edje_thaw(ed);
|
_edje_thaw(ed);
|
||||||
_edje_unblock(ed);
|
_edje_unblock(ed);
|
||||||
|
@ -1055,6 +1102,40 @@ _edje_box_items_collect(Edje *ed)
|
||||||
return items;
|
return items;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Eina_List *
|
||||||
|
_edje_drag_collect(Edje *ed)
|
||||||
|
{
|
||||||
|
Eina_List *items = NULL;
|
||||||
|
unsigned int i;
|
||||||
|
|
||||||
|
if (!ed->file || !ed->table_parts) return NULL;
|
||||||
|
for (i = 0; i < ed->table_parts_size; i++)
|
||||||
|
{
|
||||||
|
Edje_Real_Part *rp;
|
||||||
|
Edje_Drag_Items *drag;
|
||||||
|
|
||||||
|
rp = ed->table_parts[i];
|
||||||
|
if (!rp->drag) continue ;
|
||||||
|
|
||||||
|
drag = calloc(1, sizeof (Edje_Drag_Items));
|
||||||
|
if (!drag) continue;
|
||||||
|
|
||||||
|
drag->part = eina_stringshare_add(rp->part->name);
|
||||||
|
drag->x = rp->drag->val.x;
|
||||||
|
drag->y = rp->drag->val.y;
|
||||||
|
drag->w = rp->drag->size.x;
|
||||||
|
drag->h = rp->drag->size.y;
|
||||||
|
drag->step.x = rp->drag->step.x;
|
||||||
|
drag->step.y = rp->drag->step.y;
|
||||||
|
drag->page.x = rp->drag->page.x;
|
||||||
|
drag->page.y = rp->drag->page.y;
|
||||||
|
|
||||||
|
items = eina_list_append(items, drag);
|
||||||
|
}
|
||||||
|
|
||||||
|
return items;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
_edje_file_del(Edje *ed)
|
_edje_file_del(Edje *ed)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue