Move e_view_machine_get_model functionality into e_view_set_dir in view.c

where it makes more sense.


SVN revision: 5996
This commit is contained in:
Till Adam 2002-02-27 22:46:14 +00:00
parent 706a10b1db
commit 4efdf11ee6
5 changed files with 108 additions and 122 deletions

View File

@ -728,56 +728,51 @@ e_mouse_move(Ecore_Event * ev)
static void
e_mouse_in(Ecore_Event * ev)
{
Ecore_Event_Window_Enter *e;
D_ENTER;
Ecore_Event_Window_Enter *e;
E_Border *b;
D_ENTER;
current_ev = ev;
e = ev->event;
{
E_Border *b;
b = e_border_find_by_window(e->win);
if (b)
{
if (e->win == b->win.main) e_cb_border_mouse_in(b, ev);
if (e->win == b->win.input)
{
int x, y;
Evas evas;
evas = b->evas.l;
ecore_window_get_root_relative_location(evas_get_window(evas), &x, &y);
x = e->rx - x;
y = e->ry - y;
evas_event_move(evas, x, y);
evas_event_enter(evas);
evas = b->evas.r;
ecore_window_get_root_relative_location(evas_get_window(evas), &x, &y);
x = e->rx - x;
y = e->ry - y;
evas_event_move(evas, x, y);
evas_event_enter(evas);
evas = b->evas.t;
ecore_window_get_root_relative_location(evas_get_window(evas), &x, &y);
x = e->rx - x;
y = e->ry - y;
evas_event_move(evas, x, y);
evas_event_enter(evas);
evas = b->evas.b;
ecore_window_get_root_relative_location(evas_get_window(evas), &x, &y);
x = e->rx - x;
y = e->ry - y;
evas_event_move(evas, x, y);
evas_event_enter(evas);
}
}
}
current_ev = NULL;
if ( (b = e_border_find_by_window(e->win)) )
{
if (e->win == b->win.main)
e_cb_border_mouse_in(b, ev);
else if (e->win == b->win.input)
{
int x, y;
Evas evas;
evas = b->evas.l;
ecore_window_get_root_relative_location(evas_get_window(evas), &x, &y);
x = e->rx - x;
y = e->ry - y;
evas_event_move(evas, x, y);
evas_event_enter(evas);
evas = b->evas.r;
ecore_window_get_root_relative_location(evas_get_window(evas), &x, &y);
x = e->rx - x;
y = e->ry - y;
evas_event_move(evas, x, y);
evas_event_enter(evas);
evas = b->evas.t;
ecore_window_get_root_relative_location(evas_get_window(evas), &x, &y);
x = e->rx - x;
y = e->ry - y;
evas_event_move(evas, x, y);
evas_event_enter(evas);
evas = b->evas.b;
ecore_window_get_root_relative_location(evas_get_window(evas), &x, &y);
x = e->rx - x;
y = e->ry - y;
evas_event_move(evas, x, y);
evas_event_enter(evas);
}
}
current_ev = NULL;
D_RETURN;
}
@ -808,7 +803,6 @@ e_mouse_out(Ecore_Event * ev)
}
}
current_ev = NULL;
current_ev = NULL;
D_RETURN;
}
@ -818,15 +812,14 @@ static void
e_window_expose(Ecore_Event * ev)
{
Ecore_Event_Window_Expose *e;
D_ENTER;
current_ev = ev;
e = ev->event;
{
Evas_List l;
E_Border *b;
E_Border *b;
for (l = evases; l; l = l->next)
{
Evas evas;

View File

@ -44,8 +44,8 @@ e_view_machine_unregister_view(E_View *v)
}
static E_View_Model *
view_model_lookup(char *path)
E_View_Model *
e_view_machine_model_lookup(char *path)
{
E_View_Model *m;
Evas_List l;
@ -77,54 +77,4 @@ view_model_lookup(char *path)
}
void
e_view_machine_get_model(E_View *v, char *path, int is_desktop)
{
E_View_Model *m = NULL;
char buf[PATH_MAX];
D_ENTER;
if (!v || !path || *path == 0)
D_RETURN;
if (!(m = view_model_lookup(path)))
{
D("Model for this dir doesn't exist, make a new one\n");
m = e_view_model_new();
VM->models = evas_list_append(VM->models, m);
e_view_model_set_dir(m, path);
snprintf(buf, PATH_MAX, "%s/.e_background.bg.db", m->dir);
if (!e_file_exists(buf))
{
if (is_desktop)
{
snprintf(buf, PATH_MAX, "%s/default.bg.db", e_config_get("backgrounds"));
}
else
{
snprintf(buf, PATH_MAX, "%s/view.bg.db", e_config_get("backgrounds"));
}
}
e_strdup(m->bg_file, buf);
m->is_desktop = is_desktop;
}
if (m)
{
v->model = m;
v->model->views = evas_list_append(v->model->views, v);
/* FIXME do a real naming scheme here */
snprintf(buf, PATH_MAX, "%s:%d", v->model->dir, e_object_get_usecount(E_OBJECT(v->model)));
e_strdup(v->name, buf);
D("assigned name to view: %s\n",v->name);
}
else
{
/* FIXME error handling */
}
D_RETURN;
}

View File

@ -12,5 +12,5 @@ typedef struct _e_view_machine E_View_Machine;
void e_view_machine_init(void);
void e_view_machine_register_view(E_View *v);
void e_view_machine_unregister_view(E_View *v);
void e_view_machine_get_model(E_View *v, char *path, int is_desktop);
E_View_Model *e_view_machine_model_lookup(char *path);
#endif

View File

@ -891,7 +891,6 @@ e_icon_exec(E_Icon *ic)
e_file_can_exec(&ic->file->stat))
{
E_View *v;
E_Border *b;
char buf[PATH_MAX];
v = e_view_new();
@ -910,6 +909,6 @@ e_icon_exec(E_Icon *ic)
ecore_window_set_min_size(v->win.base, 8, 8);
}
e_icon_deselect(ic);
D_RETURN;
}

View File

@ -1683,25 +1683,69 @@ _member.r = _r; _member.g = _g; _member.b = _b; _member.a = _a;
}
void
e_view_set_dir(E_View *v, char *dir, int is_desktop)
e_view_set_dir(E_View *v, char *path, int is_desktop)
{
E_View_Model *m = NULL;
char buf[PATH_MAX];
D_ENTER;
e_view_machine_get_model(v, dir, is_desktop);
/* Request metadata via efsd */
v->geom_get.x = efsd_get_metadata(e_fs_get_connection(),
"/view/x", v->model->dir, EFSD_INT);
v->geom_get.y = efsd_get_metadata(e_fs_get_connection(),
"/view/y", v->model->dir, EFSD_INT);
v->geom_get.w = efsd_get_metadata(e_fs_get_connection(),
"/view/w", v->model->dir, EFSD_INT);
v->geom_get.h = efsd_get_metadata(e_fs_get_connection(),
"/view/h", v->model->dir, EFSD_INT);
/* FIXME currently, we dont use this anyway */
/*
* v->getbg = efsd_get_metadata(e_fs_get_connection(),
* "/view/background", v->model->dir, EFSD_STRING);
*/
v->geom_get.busy = 1;
if (!v || !path || *path == 0)
D_RETURN;
if (!(m = e_view_machine_model_lookup(path)))
{
D("Model for this dir doesn't exist, make a new one\n");
m = e_view_model_new();
VM->models = evas_list_append(VM->models, m);
e_view_model_set_dir(m, path);
snprintf(buf, PATH_MAX, "%s/.e_background.bg.db", m->dir);
if (!e_file_exists(buf))
{
if (is_desktop)
{
snprintf(buf, PATH_MAX, "%s/default.bg.db", e_config_get("backgrounds"));
}
else
{
snprintf(buf, PATH_MAX, "%s/view.bg.db", e_config_get("backgrounds"));
}
}
e_strdup(m->bg_file, buf);
m->is_desktop = is_desktop;
}
if (m)
{
v->model = m;
v->model->views = evas_list_append(v->model->views, v);
/* FIXME do a real naming scheme here */
snprintf(buf, PATH_MAX, "%s:%d", v->model->dir, e_object_get_usecount(E_OBJECT(v->model)));
e_strdup(v->name, buf);
D("assigned name to view: %s\n",v->name);
/* Request metadata via efsd */
v->geom_get.x = efsd_get_metadata(e_fs_get_connection(),
"/view/x", v->model->dir, EFSD_INT);
v->geom_get.y = efsd_get_metadata(e_fs_get_connection(),
"/view/y", v->model->dir, EFSD_INT);
v->geom_get.w = efsd_get_metadata(e_fs_get_connection(),
"/view/w", v->model->dir, EFSD_INT);
v->geom_get.h = efsd_get_metadata(e_fs_get_connection(),
"/view/h", v->model->dir, EFSD_INT);
/* FIXME currently, we dont use this anyway */
/*
* v->getbg = efsd_get_metadata(e_fs_get_connection(),
* "/view/background", v->model->dir, EFSD_STRING);
*/
v->geom_get.busy = 1;
}
else
{
/* FIXME error handling */
}
D_RETURN;
}