OK, you can now have individual backgrounds for diffrent directories now.

Just set the full path and file name in the metadata for that directory
under the key "/view/background" (you'll have to use efsdsh to set it right
now).


SVN revision: 5317
This commit is contained in:
hendryx 2001-09-02 17:42:26 +00:00 committed by hendryx
parent 89db9d84c8
commit 6228476075
2 changed files with 25 additions and 4 deletions

View File

@ -274,7 +274,6 @@ e_bg_down_cb(void *_data, Evas _e, Evas_Object _o, int _b, int _x, int _y)
} }
if( _b == 2 && ev->double_click ) if( _b == 2 && ev->double_click )
e_event_loop_quit(); e_event_loop_quit();
UN(_e); UN(_e);
UN(_o); UN(_o);
} }
@ -578,7 +577,7 @@ e_view_icon_exec(E_Icon *ic)
v->size.w = 400; v->size.w = 400;
v->size.h = 300; v->size.h = 300;
v->options.back_pixmap = 0; v->options.back_pixmap = 0;
/* FIXME: load bg here */ /* Load default bg then handle bg in metadata */
{ {
char buf[4096]; char buf[4096];
@ -1550,7 +1549,8 @@ e_view_handle_fs_restart(void *data)
"/view/w", v->dir, EFSD_INT); "/view/w", v->dir, EFSD_INT);
v->geom_get.h = efsd_get_metadata(e_fs_get_connection(), v->geom_get.h = efsd_get_metadata(e_fs_get_connection(),
"/view/h", v->dir, EFSD_INT); "/view/h", v->dir, EFSD_INT);
} v->getbg = efsd_get_metadata(e_fs_get_connection(), "/view/background", v->dir, EFSD_STRING);
}
{ {
EfsdOptions *ops; EfsdOptions *ops;
@ -2178,7 +2178,8 @@ e_view_set_dir(E_View *v, char *dir)
v->geom_get.h = efsd_get_metadata(e_fs_get_connection(), v->geom_get.h = efsd_get_metadata(e_fs_get_connection(),
"/view/h", v->dir, EFSD_INT); "/view/h", v->dir, EFSD_INT);
v->geom_get.busy = 1; v->geom_get.busy = 1;
{ v->getbg = efsd_get_metadata(e_fs_get_connection(), "/view/background", v->dir, EFSD_STRING);
{
EfsdOptions *ops; EfsdOptions *ops;
ops = efsd_ops(2, efsd_op_get_stat(), efsd_op_get_filetype()); ops = efsd_ops(2, efsd_op_get_stat(), efsd_op_get_filetype());
@ -2582,6 +2583,24 @@ e_view_handle_fs(EfsdEvent *ev)
} }
ok = 1; ok = 1;
} }
else if (v->getbg == cmd)
{
v->getbg = 0;
if (efsd_metadata_get_type(ev) == EFSD_STRING)
{
if (ev->efsd_reply_event.errorcode == 0)
{
struct stat st;
if (stat(efsd_metadata_get_str(ev), &st) != -1 )
{
printf("Attempted to set background for: %s\n", v->dir);
v->bg = e_background_load(efsd_metadata_get_str(ev));
e_background_realize(v->bg, v->evas);
e_background_set_size(v->bg, v->size.w, v->size.h);
}
}
}
}
if (ok) if (ok)
{ {
if ((!v->geom_get.x) && if ((!v->geom_get.x) &&

View File

@ -109,6 +109,8 @@ struct _E_View
E_Background *bg; E_Background *bg;
int getbg;
struct { struct {
E_Scrollbar *h, *v; E_Scrollbar *h, *v;
} scrollbar; } scrollbar;