fs layer in... using efsd... :) primitive for now
SVN revision: 4182
This commit is contained in:
parent
70034543c0
commit
f744c4833b
|
@ -81,6 +81,10 @@ ebits_libs=`ebits-config --libs`
|
||||||
ecore_cflags=`ecore-config --cflags`
|
ecore_cflags=`ecore-config --cflags`
|
||||||
ecore_libs=`ecore-config --libs`
|
ecore_libs=`ecore-config --libs`
|
||||||
|
|
||||||
|
# a hack for now till efsd gets a proper efsd-config
|
||||||
|
efsd_cflags='-I/usr/local/include'
|
||||||
|
efsd_libs='-L/usr/local/lib -lefsd'
|
||||||
|
|
||||||
AC_SUBST(evas_cflags)
|
AC_SUBST(evas_cflags)
|
||||||
AC_SUBST(evas_libs)
|
AC_SUBST(evas_libs)
|
||||||
AC_SUBST(edb_cflags)
|
AC_SUBST(edb_cflags)
|
||||||
|
@ -89,6 +93,8 @@ AC_SUBST(ebits_cflags)
|
||||||
AC_SUBST(ebits_libs)
|
AC_SUBST(ebits_libs)
|
||||||
AC_SUBST(ecore_cflags)
|
AC_SUBST(ecore_cflags)
|
||||||
AC_SUBST(ecore_libs)
|
AC_SUBST(ecore_libs)
|
||||||
|
AC_SUBST(efsd_cflags)
|
||||||
|
AC_SUBST(efsd_libs)
|
||||||
|
|
||||||
AC_OUTPUT([
|
AC_OUTPUT([
|
||||||
Makefile
|
Makefile
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
INCLUDES = \
|
INCLUDES = \
|
||||||
-I$(top_srcdir)/intl \
|
-I$(top_srcdir)/intl \
|
||||||
@evas_cflags@ @edb_cflags@ @ebits_cflags@ @ecore_cflags@
|
@evas_cflags@ @edb_cflags@ @ebits_cflags@ @ecore_cflags@ @efsd_cflags@
|
||||||
|
|
||||||
bin_PROGRAMS = enlightenment
|
bin_PROGRAMS = enlightenment
|
||||||
|
|
||||||
|
@ -12,6 +12,7 @@ border.c \
|
||||||
config.c \
|
config.c \
|
||||||
desktops.c \
|
desktops.c \
|
||||||
exec.c \
|
exec.c \
|
||||||
|
fs.c \
|
||||||
icccm.c \
|
icccm.c \
|
||||||
icons.c \
|
icons.c \
|
||||||
main.c \
|
main.c \
|
||||||
|
@ -22,5 +23,5 @@ util.c \
|
||||||
view.c \
|
view.c \
|
||||||
e.h
|
e.h
|
||||||
|
|
||||||
enlightenment_LDADD = @evas_libs@ @edb_libs@ @ebits_libs@ @ecore_libs@ -lm $(INTLLIBS)
|
enlightenment_LDADD = @evas_libs@ @edb_libs@ @ebits_libs@ @ecore_libs@ @efsd_libs@ -lm $(INTLLIBS)
|
||||||
|
|
||||||
|
|
14
src/e.h
14
src/e.h
|
@ -1,10 +1,5 @@
|
||||||
#include "../config.h"
|
#include "../config.h"
|
||||||
#include <X11/Xlib.h>
|
#include <X11/Xlib.h>
|
||||||
#include <Imlib2.h>
|
|
||||||
#include <Evas.h>
|
|
||||||
#include <Ebits.h>
|
|
||||||
#include <Ecore.h>
|
|
||||||
#include <Edb.h>
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
@ -20,6 +15,12 @@
|
||||||
#ifdef WITH_DMALLOC
|
#ifdef WITH_DMALLOC
|
||||||
#include <dmalloc.h>
|
#include <dmalloc.h>
|
||||||
#endif
|
#endif
|
||||||
|
#include <Imlib2.h>
|
||||||
|
#include <Evas.h>
|
||||||
|
#include <Ebits.h>
|
||||||
|
#include <Ecore.h>
|
||||||
|
#include <Edb.h>
|
||||||
|
#include <libefsd.h>
|
||||||
|
|
||||||
#define E_PROF 1
|
#define E_PROF 1
|
||||||
#ifdef E_PROF
|
#ifdef E_PROF
|
||||||
|
@ -600,3 +601,6 @@ E_Menu *e_build_menu_build_number(E_Build_Menu *bm, E_DB_File *db, int num
|
||||||
void e_build_menu_build(E_Build_Menu *bm);
|
void e_build_menu_build(E_Build_Menu *bm);
|
||||||
void e_build_menu_free(E_Build_Menu *bm);
|
void e_build_menu_free(E_Build_Menu *bm);
|
||||||
E_Build_Menu *e_build_menu_new_from_db(char *file);
|
E_Build_Menu *e_build_menu_new_from_db(char *file);
|
||||||
|
|
||||||
|
void e_fs_add_event_handler(void (*func) (EfsdEvent *ev));
|
||||||
|
void e_fs_init(void);
|
||||||
|
|
|
@ -0,0 +1,65 @@
|
||||||
|
#include "e.h"
|
||||||
|
|
||||||
|
static EfsdConnection *ec = NULL;
|
||||||
|
static Evas_List fs_handlers = NULL;
|
||||||
|
|
||||||
|
static void _e_fs_fd_handle(int fd);
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_fs_fd_handle(int fd)
|
||||||
|
{
|
||||||
|
EfsdEvent ev;
|
||||||
|
|
||||||
|
#if 0 /* WE REALLY need NON BLOCKING comms with efsd! cK!!!!! */
|
||||||
|
while (efsd_read_event(ec->fd, &ev) >= 0)
|
||||||
|
{
|
||||||
|
Evas_List l;
|
||||||
|
|
||||||
|
for (l = fs_handlers; l; l = l->next)
|
||||||
|
{
|
||||||
|
void (*func) (EfsdEvent *ev);
|
||||||
|
|
||||||
|
func = l->data;
|
||||||
|
func(&ev);
|
||||||
|
}
|
||||||
|
efsd_cleanup_event(&ev);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
e_fs_add_event_handler(void (*func) (EfsdEvent *ev))
|
||||||
|
{
|
||||||
|
if (!func) return;
|
||||||
|
fs_handlers = evas_list_append(fs_handlers, func);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
e_fs_init(void)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
/* already have an efsd around? */
|
||||||
|
ec = efsd_open();
|
||||||
|
/* no - efsd around */
|
||||||
|
if (!ec)
|
||||||
|
{
|
||||||
|
/* start efsd */
|
||||||
|
e_exec_run("efsd");
|
||||||
|
for (i = 0; (!ec); i++)
|
||||||
|
{
|
||||||
|
ec = efsd_open();
|
||||||
|
sleep(1);
|
||||||
|
if (i > 8) break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!ec)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "efsd is not running - please run efsd.\n");
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
e_add_event_fd(efsd_get_connection_fd(ec), _e_fs_fd_handle);
|
||||||
|
|
||||||
|
/* HACK FIXME: testing.... */
|
||||||
|
efsd_start_monitor(ec, getenv("HOME"));
|
||||||
|
}
|
|
@ -20,4 +20,5 @@ e_icon_new(void)
|
||||||
void
|
void
|
||||||
e_icon_calulcate_geometry(E_Icon *icon)
|
e_icon_calulcate_geometry(E_Icon *icon)
|
||||||
{
|
{
|
||||||
|
if (!icon->view) return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,6 +51,7 @@ main(int argc, char **argv)
|
||||||
e_border_init();
|
e_border_init();
|
||||||
e_actions_init();
|
e_actions_init();
|
||||||
e_menu_init();
|
e_menu_init();
|
||||||
|
e_fs_init();
|
||||||
e_view_init();
|
e_view_init();
|
||||||
|
|
||||||
setup();
|
setup();
|
||||||
|
|
39
src/view.c
39
src/view.c
|
@ -243,27 +243,63 @@ e_view_new(void)
|
||||||
void
|
void
|
||||||
e_view_set_background(E_View *v)
|
e_view_set_background(E_View *v)
|
||||||
{
|
{
|
||||||
|
v->changed = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
e_view_set_dir(E_View *v, char *dir)
|
e_view_set_dir(E_View *v, char *dir)
|
||||||
{
|
{
|
||||||
|
/* stop monitoring old dir */
|
||||||
|
IF_FREE(v->directory);
|
||||||
|
v->directory = strdup(dir);
|
||||||
|
/* start monitoring new dir */
|
||||||
|
|
||||||
|
{
|
||||||
|
/* bad hack- lets just add some dummy stuff for testing */
|
||||||
|
int i;
|
||||||
|
char *files[8] = {
|
||||||
|
"The first file",
|
||||||
|
"Some more things",
|
||||||
|
"K is a FISH!",
|
||||||
|
"Possum Eyes",
|
||||||
|
"Nasty Bums",
|
||||||
|
"BLUMFRUB!",
|
||||||
|
"Oh lookie here now!",
|
||||||
|
"Last one...."
|
||||||
|
};
|
||||||
|
for (i = 0; i < 8; i++)
|
||||||
|
{
|
||||||
|
E_Icon *icon;
|
||||||
|
|
||||||
|
icon = e_icon_new();
|
||||||
|
icon->file = strdup(files[i]);
|
||||||
|
e_view_add_icon(v, icon);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
v->changed = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
e_view_scroll(E_View *v, int dx, int dy)
|
e_view_scroll(E_View *v, int dx, int dy)
|
||||||
{
|
{
|
||||||
|
v->changed = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
e_view_add_icon(E_View *v, E_Icon *icon)
|
e_view_add_icon(E_View *v, E_Icon *icon)
|
||||||
{
|
{
|
||||||
|
if (icon->view) return;
|
||||||
|
icon->view = v;
|
||||||
|
icon->changed = 1;
|
||||||
v->changed = 1;
|
v->changed = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
e_view_del_icon(E_View *v, E_Icon *icon)
|
e_view_del_icon(E_View *v, E_Icon *icon)
|
||||||
{
|
{
|
||||||
|
if (!icon->view) return;
|
||||||
|
icon->view = NULL;
|
||||||
|
icon->changed = 1;
|
||||||
v->changed = 1;
|
v->changed = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -302,6 +338,7 @@ e_view_realize(E_View *v)
|
||||||
XEV_EXPOSE | XEV_MOUSE_MOVE |
|
XEV_EXPOSE | XEV_MOUSE_MOVE |
|
||||||
XEV_BUTTON | XEV_IN_OUT | XEV_KEY);
|
XEV_BUTTON | XEV_IN_OUT | XEV_KEY);
|
||||||
e_window_show(v->win.main);
|
e_window_show(v->win.main);
|
||||||
|
e_view_set_dir(v, v->directory);
|
||||||
v->changed = 1;
|
v->changed = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue