efm work, dnd working, save/load working
SVN revision: 20351
This commit is contained in:
parent
2f7cfd5fbc
commit
b6aec4bc2b
|
@ -25,7 +25,7 @@
|
||||||
* - is the offset code working properly? i have a feeling we're displayin
|
* - is the offset code working properly? i have a feeling we're displayin
|
||||||
* more icons that the visible space can take and they are being hidden.
|
* more icons that the visible space can take and they are being hidden.
|
||||||
*
|
*
|
||||||
* - allow for icon movement inside the canvas
|
* + allow for icon movement inside the canvas
|
||||||
*
|
*
|
||||||
* - double check dir monitoring. note: when we are in a dir that is constantly
|
* - double check dir monitoring. note: when we are in a dir that is constantly
|
||||||
* changing, we cant keep calling redraw_new as it will kill us.
|
* changing, we cant keep calling redraw_new as it will kill us.
|
||||||
|
@ -1419,6 +1419,14 @@ _e_fm_dir_set(E_Fm_Smart_Data *sd, const char *dir)
|
||||||
|
|
||||||
if (!(dir2 = opendir(dir))) return;
|
if (!(dir2 = opendir(dir))) return;
|
||||||
|
|
||||||
|
/* save the old meta */
|
||||||
|
if(sd->meta)
|
||||||
|
{
|
||||||
|
_e_fm_dir_meta_save(sd);
|
||||||
|
_e_fm_dir_meta_free(sd->meta);
|
||||||
|
sd->meta = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
type = E_FM_FILE_TYPE_NORMAL;
|
type = E_FM_FILE_TYPE_NORMAL;
|
||||||
list = NULL;
|
list = NULL;
|
||||||
while((dp = readdir(dir2)))
|
while((dp = readdir(dir2)))
|
||||||
|
@ -1445,16 +1453,12 @@ _e_fm_dir_set(E_Fm_Smart_Data *sd, const char *dir)
|
||||||
if (sd->dir) free (sd->dir);
|
if (sd->dir) free (sd->dir);
|
||||||
sd->dir = strdup(dir);
|
sd->dir = strdup(dir);
|
||||||
|
|
||||||
if(sd->meta)
|
|
||||||
{
|
|
||||||
_e_fm_dir_meta_free(sd->meta);
|
|
||||||
sd->meta = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
_e_fm_dir_meta_load(sd);
|
_e_fm_dir_meta_load(sd);
|
||||||
|
|
||||||
if(sd->meta)
|
if(sd->meta)
|
||||||
{
|
{
|
||||||
|
/* FIXME whats the purpose of this */
|
||||||
Evas_List *l;
|
Evas_List *l;
|
||||||
|
|
||||||
for(l = sd->meta->files; l; l = l->next)
|
for(l = sd->meta->files; l; l = l->next)
|
||||||
|
@ -1501,6 +1505,7 @@ _e_fm_dir_set(E_Fm_Smart_Data *sd, const char *dir)
|
||||||
icon->sd = sd;
|
icon->sd = sd;
|
||||||
e_fm_icon_file_set(icon->icon_obj, icon->file);
|
e_fm_icon_file_set(icon->icon_obj, icon->file);
|
||||||
sd->files = evas_list_prepend(sd->files, icon);
|
sd->files = evas_list_prepend(sd->files, icon);
|
||||||
|
|
||||||
e_icon_canvas_pack(sd->layout, icon->icon_obj, e_fm_icon_create, e_fm_icon_destroy, icon);
|
e_icon_canvas_pack(sd->layout, icon->icon_obj, e_fm_icon_create, e_fm_icon_destroy, icon);
|
||||||
evas_object_event_callback_add(icon->icon_obj, EVAS_CALLBACK_MOUSE_DOWN, _e_fm_icon_mouse_down_cb, icon);
|
evas_object_event_callback_add(icon->icon_obj, EVAS_CALLBACK_MOUSE_DOWN, _e_fm_icon_mouse_down_cb, icon);
|
||||||
evas_object_event_callback_add(icon->icon_obj, EVAS_CALLBACK_MOUSE_UP, _e_fm_icon_mouse_up_cb, icon);
|
evas_object_event_callback_add(icon->icon_obj, EVAS_CALLBACK_MOUSE_UP, _e_fm_icon_mouse_up_cb, icon);
|
||||||
|
@ -1528,6 +1533,7 @@ _e_fm_dir_files_get(void *data)
|
||||||
|
|
||||||
e_icon_canvas_freeze(sd->layout);
|
e_icon_canvas_freeze(sd->layout);
|
||||||
|
|
||||||
|
/* add two files per each timer call */
|
||||||
while (i < 2)
|
while (i < 2)
|
||||||
{
|
{
|
||||||
char *f;
|
char *f;
|
||||||
|
@ -1604,8 +1610,6 @@ _e_fm_dir_files_get(void *data)
|
||||||
|
|
||||||
if(!sd->files_raw) {
|
if(!sd->files_raw) {
|
||||||
sd->timer = NULL;
|
sd->timer = NULL;
|
||||||
if(sd->meta)
|
|
||||||
_e_fm_dir_meta_save(sd);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -2439,11 +2443,11 @@ _e_fm_icon_mouse_move_cb(void *data, Evas *e, Evas_Object *obj, void *event_info
|
||||||
ecore_evas_geometry_get(sd->win->ecore_evas, &cx, &cy, NULL, NULL);
|
ecore_evas_geometry_get(sd->win->ecore_evas, &cx, &cy, NULL, NULL);
|
||||||
evas_object_geometry_get(icon->icon_obj, &x, &y, &w, &h);
|
evas_object_geometry_get(icon->icon_obj, &x, &y, &w, &h);
|
||||||
|
|
||||||
sd->drag.dx = cx;
|
sd->drag.dx = cx + 5;
|
||||||
sd->drag.dy = cy;
|
sd->drag.dy = cy + 5;
|
||||||
|
|
||||||
if(!sd->drag.ecore_evas)
|
if(!sd->drag.ecore_evas)
|
||||||
sd->drag.ecore_evas = ecore_evas_software_x11_new(NULL, 0, cx + x, cx + y, w, h);
|
sd->drag.ecore_evas = ecore_evas_software_x11_new(NULL, 0, cx + x, cy + y, w, h);
|
||||||
|
|
||||||
sd->drag.evas = ecore_evas_get(sd->drag.ecore_evas);
|
sd->drag.evas = ecore_evas_get(sd->drag.ecore_evas);
|
||||||
sd->drag.win = ecore_evas_software_x11_window_get(sd->drag.ecore_evas);
|
sd->drag.win = ecore_evas_software_x11_window_get(sd->drag.ecore_evas);
|
||||||
|
@ -3210,6 +3214,7 @@ _e_fm_xdnd_enter_cb(void *data, int type, void *event)
|
||||||
|
|
||||||
ev = event;
|
ev = event;
|
||||||
sd = data;
|
sd = data;
|
||||||
|
|
||||||
if (ev->win != sd->win->evas_win) return 1;
|
if (ev->win != sd->win->evas_win) return 1;
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -3267,11 +3272,39 @@ _e_fm_xdnd_drop_cb(void *data, int type, void *event)
|
||||||
{
|
{
|
||||||
Ecore_X_Event_Xdnd_Drop *ev;
|
Ecore_X_Event_Xdnd_Drop *ev;
|
||||||
E_Fm_Smart_Data *sd;
|
E_Fm_Smart_Data *sd;
|
||||||
|
int ax, ay, x, y;
|
||||||
|
|
||||||
ev = event;
|
ev = event;
|
||||||
sd = data;
|
sd = data;
|
||||||
|
|
||||||
if (ev->win != sd->win->evas_win) return 1;
|
if (ev->win != sd->win->evas_win) return 1;
|
||||||
|
|
||||||
|
ecore_evas_geometry_get(sd->win->ecore_evas, &ax, &ay, NULL, NULL);
|
||||||
|
|
||||||
|
x = ev->position.x - ax - 5; /* 5 because we already shift 5 pixels creating the window */
|
||||||
|
y = ev->position.y - ay - 5;
|
||||||
|
e_icon_canvas_child_move(sd->drag.icon_obj->icon_obj,x,y);
|
||||||
|
|
||||||
|
|
||||||
|
/* update the metadata for the new coords */
|
||||||
|
if(sd->meta)
|
||||||
|
{
|
||||||
|
Evas_List *l;
|
||||||
|
for(l = sd->meta->files; l; l = l->next)
|
||||||
|
{
|
||||||
|
E_Fm_Icon_Metadata *m;
|
||||||
|
|
||||||
|
m = l->data;
|
||||||
|
if(!strcmp(m->name, sd->drag.icon_obj->file->name))
|
||||||
|
{
|
||||||
|
m->x = x;
|
||||||
|
m->y = y;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
ecore_x_selection_xdnd_request(sd->win->evas_win, "text/uri-list");
|
ecore_x_selection_xdnd_request(sd->win->evas_win, "text/uri-list");
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -3414,11 +3447,6 @@ _e_fm_dir_meta_load(E_Fm_Smart_Data *sd)
|
||||||
char buf[PATH_MAX];
|
char buf[PATH_MAX];
|
||||||
char *hash;
|
char *hash;
|
||||||
|
|
||||||
/*******
|
|
||||||
* DISABLE FOR NOW
|
|
||||||
*******/
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
if (!sd->dir) return 0;
|
if (!sd->dir) return 0;
|
||||||
|
|
||||||
hash = _e_fm_dir_meta_dir_id(sd->dir);
|
hash = _e_fm_dir_meta_dir_id(sd->dir);
|
||||||
|
@ -3436,6 +3464,7 @@ _e_fm_dir_meta_load(E_Fm_Smart_Data *sd)
|
||||||
E_Fm_Icon_Metadata *im;
|
E_Fm_Icon_Metadata *im;
|
||||||
|
|
||||||
im = l->data;
|
im = l->data;
|
||||||
|
printf("Loading meta: %d %d for file %s\n", im->x, im->y, im->name);
|
||||||
m->files_hash = evas_hash_add(m->files_hash, im->name, im);
|
m->files_hash = evas_hash_add(m->files_hash, im->name, im);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3507,7 +3536,7 @@ _e_fm_dir_meta_save(E_Fm_Smart_Data *sd)
|
||||||
E_Fm_Icon_Metadata *m;
|
E_Fm_Icon_Metadata *m;
|
||||||
|
|
||||||
m = l->data;
|
m = l->data;
|
||||||
//printf("Saving meta: %d %d\n", m->x, m->y);
|
printf("Saving meta: %d %d for file %s\n", m->x, m->y, m->name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -285,6 +285,19 @@ e_icon_canvas_child_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
|
||||||
_e_icon_canvas_move_resize_item(li);
|
_e_icon_canvas_move_resize_item(li);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
e_icon_canvas_child_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
|
||||||
|
{
|
||||||
|
E_Icon_Canvas_Item *li;
|
||||||
|
|
||||||
|
li = evas_object_data_get(obj, "e_icon_canvas_data");
|
||||||
|
if(x < 0) x = 0;
|
||||||
|
if(y < 0) y = 0;
|
||||||
|
li->x = x;
|
||||||
|
li->y = y;
|
||||||
|
_e_icon_canvas_move_resize_item(li);
|
||||||
|
}
|
||||||
|
|
||||||
EAPI void
|
EAPI void
|
||||||
e_icon_canvas_unpack(Evas_Object *obj)
|
e_icon_canvas_unpack(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
|
|
|
@ -16,6 +16,7 @@ EAPI void e_icon_canvas_height_fix (Evas_Object *obj, Evas_Coord
|
||||||
EAPI void e_icon_canvas_pack (Evas_Object *obj, Evas_Object *child, Evas_Object *(*create)(void *data), void (*destroy)(Evas_Object *obj, void *data), void *data);
|
EAPI void e_icon_canvas_pack (Evas_Object *obj, Evas_Object *child, Evas_Object *(*create)(void *data), void (*destroy)(Evas_Object *obj, void *data), void *data);
|
||||||
EAPI void e_icon_canvas_pack_at_location (Evas_Object *obj, Evas_Object *child, Evas_Object *(*create)(void *data), void (*destroy)(Evas_Object *obj, void *data), void *data, Evas_Coord x, Evas_Coord y);
|
EAPI void e_icon_canvas_pack_at_location (Evas_Object *obj, Evas_Object *child, Evas_Object *(*create)(void *data), void (*destroy)(Evas_Object *obj, void *data), void *data, Evas_Coord x, Evas_Coord y);
|
||||||
EAPI void e_icon_canvas_child_resize (Evas_Object *obj, Evas_Coord w, Evas_Coord h);
|
EAPI void e_icon_canvas_child_resize (Evas_Object *obj, Evas_Coord w, Evas_Coord h);
|
||||||
|
EAPI void e_icon_canvas_child_move (Evas_Object *obj, Evas_Coord x, Evas_Coord y);
|
||||||
EAPI void e_icon_canvas_unpack (Evas_Object *obj);
|
EAPI void e_icon_canvas_unpack (Evas_Object *obj);
|
||||||
EAPI void e_icon_canvas_spacing_set (Evas_Object *obj, Evas_Coord xs, Evas_Coord ys);
|
EAPI void e_icon_canvas_spacing_set (Evas_Object *obj, Evas_Coord xs, Evas_Coord ys);
|
||||||
EAPI void e_icon_canvas_redraw_force (Evas_Object *obj);
|
EAPI void e_icon_canvas_redraw_force (Evas_Object *obj);
|
||||||
|
|
Loading…
Reference in New Issue