forked from enlightenment/enlightenment
parent
d5f66a22f7
commit
6061e12844
|
@ -5,7 +5,7 @@ AC_INIT(configure.in)
|
||||||
AC_CANONICAL_BUILD
|
AC_CANONICAL_BUILD
|
||||||
AC_CANONICAL_HOST
|
AC_CANONICAL_HOST
|
||||||
AC_ISC_POSIX
|
AC_ISC_POSIX
|
||||||
AM_INIT_AUTOMAKE(enlightenment, 0.16.999.029)
|
AM_INIT_AUTOMAKE(enlightenment, 0.16.999.030)
|
||||||
AM_CONFIG_HEADER(config.h)
|
AM_CONFIG_HEADER(config.h)
|
||||||
|
|
||||||
AC_C_BIGENDIAN
|
AC_C_BIGENDIAN
|
||||||
|
|
|
@ -158,7 +158,8 @@ e_int_config_shelf.h \
|
||||||
e_int_gadcon_config.h \
|
e_int_gadcon_config.h \
|
||||||
e_confirm_dialog.h \
|
e_confirm_dialog.h \
|
||||||
e_int_border_prop.h \
|
e_int_border_prop.h \
|
||||||
e_entry_dialog.h
|
e_entry_dialog.h \
|
||||||
|
e_fm.h
|
||||||
|
|
||||||
enlightenment_src = \
|
enlightenment_src = \
|
||||||
e_user.c \
|
e_user.c \
|
||||||
|
@ -297,6 +298,7 @@ e_int_gadcon_config.c \
|
||||||
e_confirm_dialog.c \
|
e_confirm_dialog.c \
|
||||||
e_int_border_prop.c \
|
e_int_border_prop.c \
|
||||||
e_entry_dialog.c \
|
e_entry_dialog.c \
|
||||||
|
e_fm.c \
|
||||||
$(ENLIGHTENMENTHEADERS)
|
$(ENLIGHTENMENTHEADERS)
|
||||||
|
|
||||||
enlightenment_SOURCES = \
|
enlightenment_SOURCES = \
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
* @data - the pointer passed to func
|
* @data - the pointer passed to func
|
||||||
*/
|
*/
|
||||||
|
|
||||||
EAPI e_entry_dialog_show(const char *title, const char *icon, const char *text,
|
EAPI void e_entry_dialog_show(const char *title, const char *icon, const char *text,
|
||||||
const char *button_text, const char *button2_text,
|
const char *button_text, const char *button2_text,
|
||||||
void (*func)(char *text, void *data),
|
void (*func)(char *text, void *data),
|
||||||
void (*func2)(void *data), void *data);
|
void (*func2)(void *data), void *data);
|
||||||
|
|
|
@ -0,0 +1,328 @@
|
||||||
|
/*
|
||||||
|
* vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
|
||||||
|
*/
|
||||||
|
#include "e.h"
|
||||||
|
|
||||||
|
/* IGNORE this code for now! */
|
||||||
|
|
||||||
|
typedef struct _E_Fm2_Smart_Data E_Fm2_Smart_Data;
|
||||||
|
typedef struct _E_Fm2_Region E_Fm2_Region;
|
||||||
|
typedef struct _E_Fm2_Icon E_Fm2_Icon;
|
||||||
|
|
||||||
|
struct _E_Fm2_Smart_Data
|
||||||
|
{
|
||||||
|
Evas_Coord x, y, w, h;
|
||||||
|
Evas_Object *obj;
|
||||||
|
Evas_Object *clip;
|
||||||
|
char *dev;
|
||||||
|
char *path;
|
||||||
|
E_Fm2_View_Mode view_mode;
|
||||||
|
struct {
|
||||||
|
Evas_Coord w, h;
|
||||||
|
} max;
|
||||||
|
struct {
|
||||||
|
Evas_Coord x, y;
|
||||||
|
} pos;
|
||||||
|
struct {
|
||||||
|
Evas_List *list;
|
||||||
|
int member_max;
|
||||||
|
} regions;
|
||||||
|
Evas_List *icons;
|
||||||
|
Evas_List *unsorted;
|
||||||
|
// unsigned char no_dnd : 1;
|
||||||
|
// unsigned char single_select : 1;
|
||||||
|
// unsigned char single_click : 1;
|
||||||
|
// unsigned char show_ext : 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _E_Fm2_Region
|
||||||
|
{
|
||||||
|
E_Fm2_Smart_Data *smart;
|
||||||
|
Evas_Coord x, y, w, h;
|
||||||
|
Evas_List *list;
|
||||||
|
unsigned char realized : 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _E_Fm2_Icon
|
||||||
|
{
|
||||||
|
E_Fm2_Smart_Data *smart;
|
||||||
|
E_Fm2_Region *region;
|
||||||
|
Evas_Coord x, y, w, h;
|
||||||
|
Evas_Object *obj;
|
||||||
|
char *file;
|
||||||
|
char *mime;
|
||||||
|
unsigned char realized : 1;
|
||||||
|
unsigned char selected : 1;
|
||||||
|
unsigned char thumb : 1;
|
||||||
|
// unsigned char single_click : 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
static void _e_fm2_smart_add(Evas_Object *object);
|
||||||
|
static void _e_fm2_smart_del(Evas_Object *object);
|
||||||
|
static void _e_fm2_smart_move(Evas_Object *object, Evas_Coord x, Evas_Coord y);
|
||||||
|
static void _e_fm2_smart_resize(Evas_Object *object, Evas_Coord w, Evas_Coord h);
|
||||||
|
static void _e_fm2_smart_show(Evas_Object *object);
|
||||||
|
static void _e_fm2_smart_hide(Evas_Object *object);
|
||||||
|
static void _e_fm2_smart_color_set(Evas_Object *obj, int r, int g, int b, int a);
|
||||||
|
static void _e_fm2_smart_clip_set(Evas_Object *obj, Evas_Object * clip);
|
||||||
|
static void _e_fm2_smart_clip_unset(Evas_Object *obj);
|
||||||
|
|
||||||
|
static char *_meta_path = NULL;
|
||||||
|
static Evas_Smart *_e_fm2_smart = NULL;
|
||||||
|
|
||||||
|
/* externally accessible functions */
|
||||||
|
EAPI int
|
||||||
|
e_fm2_init(void)
|
||||||
|
{
|
||||||
|
char *homedir;
|
||||||
|
char path[PATH_MAX];
|
||||||
|
|
||||||
|
homedir = e_user_homedir_get();
|
||||||
|
if (homedir)
|
||||||
|
{
|
||||||
|
snprintf(path, sizeof(path), "%s/.e/e/fileman/metadata", homedir);
|
||||||
|
ecore_file_mkpath(path);
|
||||||
|
_meta_path = strdup(path);
|
||||||
|
free(homedir);
|
||||||
|
}
|
||||||
|
else return 0;
|
||||||
|
|
||||||
|
_e_fm2_smart = evas_smart_new("e_fm",
|
||||||
|
_e_fm2_smart_add, /* add */
|
||||||
|
_e_fm2_smart_del, /* del */
|
||||||
|
NULL, NULL, NULL, NULL, NULL,
|
||||||
|
_e_fm2_smart_move, /* move */
|
||||||
|
_e_fm2_smart_resize, /* resize */
|
||||||
|
_e_fm2_smart_show,/* show */
|
||||||
|
_e_fm2_smart_hide,/* hide */
|
||||||
|
_e_fm2_smart_color_set, /* color_set */
|
||||||
|
_e_fm2_smart_clip_set, /* clip_set */
|
||||||
|
_e_fm2_smart_clip_unset, /* clip_unset */
|
||||||
|
NULL); /* data*/
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI int
|
||||||
|
e_fm2_shutdown(void)
|
||||||
|
{
|
||||||
|
evas_smart_free(_e_fm2_smart);
|
||||||
|
_e_fm2_smart = NULL;
|
||||||
|
E_FREE(_meta_path);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI Evas_Object *
|
||||||
|
e_fm2_add(Evas *evas)
|
||||||
|
{
|
||||||
|
return evas_object_smart_add(evas, _e_fm2_smart);
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
e_fm2_path_set(Evas_Object *obj, char *dev, char *path)
|
||||||
|
{
|
||||||
|
E_Fm2_Smart_Data *sd;
|
||||||
|
|
||||||
|
sd = evas_object_smart_data_get(obj);
|
||||||
|
if (!sd) return; // safety
|
||||||
|
if (!evas_object_type_get(obj)) return; // safety
|
||||||
|
if (strcmp(evas_object_type_get(obj), "e_fm")) return; // safety
|
||||||
|
if (sd->dev) free(sd->dev);
|
||||||
|
if (sd->path) free(sd->path);
|
||||||
|
// FIXME: nuke regions, icons etc. etc.
|
||||||
|
// dev == some system device or virtual filesystem eg: /dev/sda1
|
||||||
|
// or /dev/hdc or /dev/dvd, /dev/cdrom etc.
|
||||||
|
// if it is NULL root fs is assumed. vfs's could be specified with
|
||||||
|
// music: for example or photos: etc. and soem vfs definition specifies
|
||||||
|
// how to map that vfs id to a list of files and subdirs
|
||||||
|
if (dev) sd->dev = strdup(dev);
|
||||||
|
sd->path = strdup(path);
|
||||||
|
// FIXME: begin dir scan/build
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
e_fm2_path_get(Evas_Object *obj, char **dev, char **path)
|
||||||
|
{
|
||||||
|
E_Fm2_Smart_Data *sd;
|
||||||
|
|
||||||
|
if (dev) *dev = NULL;
|
||||||
|
if (path) *path = NULL;
|
||||||
|
sd = evas_object_smart_data_get(obj);
|
||||||
|
if (!sd) return; // safety
|
||||||
|
if (!evas_object_type_get(obj)) return; // safety
|
||||||
|
if (strcmp(evas_object_type_get(obj), "e_fm")) return; // safety
|
||||||
|
if (dev) *dev = sd->dev;
|
||||||
|
if (path) *path = sd->path;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* local subsystem functions */
|
||||||
|
static void
|
||||||
|
_e_fm2_file_add(Evas_Object *obj, char *file)
|
||||||
|
{
|
||||||
|
E_Fm2_Smart_Data *sd;
|
||||||
|
|
||||||
|
sd = evas_object_smart_data_get(obj);
|
||||||
|
if (!sd) return;
|
||||||
|
/* create icon obj and append to unsorted list */
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_fm2_file_del(Evas_Object *obj, char *file)
|
||||||
|
{
|
||||||
|
E_Fm2_Smart_Data *sd;
|
||||||
|
|
||||||
|
sd = evas_object_smart_data_get(obj);
|
||||||
|
if (!sd) return;
|
||||||
|
/* find icon of file and remove from unsorted or main list */
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_fm2_queue_process(Evas_Object *obj)
|
||||||
|
{
|
||||||
|
E_Fm2_Smart_Data *sd;
|
||||||
|
|
||||||
|
sd = evas_object_smart_data_get(obj);
|
||||||
|
if (!sd) return;
|
||||||
|
/* take unsorted and insert into the regions */
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_fm2_regions_free(Evas_Object *obj)
|
||||||
|
{
|
||||||
|
E_Fm2_Smart_Data *sd;
|
||||||
|
|
||||||
|
sd = evas_object_smart_data_get(obj);
|
||||||
|
if (!sd) return;
|
||||||
|
/* free up all regions */
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_fm2_regions_populate(Evas_Object *obj)
|
||||||
|
{
|
||||||
|
E_Fm2_Smart_Data *sd;
|
||||||
|
|
||||||
|
sd = evas_object_smart_data_get(obj);
|
||||||
|
if (!sd) return;
|
||||||
|
/* take the icon list and split into regions */
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_fm2_icons_free(Evas_Object *obj)
|
||||||
|
{
|
||||||
|
E_Fm2_Smart_Data *sd;
|
||||||
|
|
||||||
|
sd = evas_object_smart_data_get(obj);
|
||||||
|
if (!sd) return;
|
||||||
|
/* free all icons */
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_fm2_smart_add(Evas_Object *obj)
|
||||||
|
{
|
||||||
|
E_Fm2_Smart_Data *sd;
|
||||||
|
|
||||||
|
sd = E_NEW(E_Fm2_Smart_Data, 1);
|
||||||
|
if (!sd) return;
|
||||||
|
sd->obj = obj;
|
||||||
|
sd->clip = evas_object_rectangle_add(evas_object_evas_get(obj));
|
||||||
|
evas_object_smart_member_add(sd->clip, obj);
|
||||||
|
evas_object_move(sd->clip, sd->x, sd->y);
|
||||||
|
evas_object_resize(sd->clip, sd->w, sd->h);
|
||||||
|
evas_object_color_set(sd->clip, 255, 255, 255, 255);
|
||||||
|
evas_object_smart_data_set(obj, sd);
|
||||||
|
evas_object_move(obj, 0, 0);
|
||||||
|
evas_object_resize(obj, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_fm2_smart_del(Evas_Object *obj)
|
||||||
|
{
|
||||||
|
E_Fm2_Smart_Data *sd;
|
||||||
|
|
||||||
|
sd = evas_object_smart_data_get(obj);
|
||||||
|
if (!sd) return;
|
||||||
|
|
||||||
|
evas_object_del(sd->clip);
|
||||||
|
free(sd);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_fm2_smart_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
|
||||||
|
{
|
||||||
|
E_Fm2_Smart_Data *sd;
|
||||||
|
|
||||||
|
sd = evas_object_smart_data_get(obj);
|
||||||
|
if (!sd) return;
|
||||||
|
if ((sd->x == x) || (sd->y == y)) return;
|
||||||
|
sd->x = x;
|
||||||
|
sd->y = y;
|
||||||
|
evas_object_move(sd->clip, x, y);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_fm2_smart_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
|
||||||
|
{
|
||||||
|
E_Fm2_Smart_Data *sd;
|
||||||
|
|
||||||
|
sd = evas_object_smart_data_get(obj);
|
||||||
|
if (!sd) return;
|
||||||
|
if ((sd->w == w) || (sd->h == h)) return;
|
||||||
|
sd->w = w;
|
||||||
|
sd->h = h;
|
||||||
|
evas_object_resize(sd->clip, w, h);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_fm2_smart_show(Evas_Object *obj)
|
||||||
|
{
|
||||||
|
E_Fm2_Smart_Data *sd;
|
||||||
|
|
||||||
|
sd = evas_object_smart_data_get(obj);
|
||||||
|
if (!sd) return;
|
||||||
|
evas_object_show(sd->clip);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_fm2_smart_hide(Evas_Object *obj)
|
||||||
|
{
|
||||||
|
E_Fm2_Smart_Data *sd;
|
||||||
|
|
||||||
|
sd = evas_object_smart_data_get(obj);
|
||||||
|
if (!sd) return;
|
||||||
|
evas_object_hide(sd->clip);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_fm2_smart_color_set(Evas_Object *obj, int r, int g, int b, int a)
|
||||||
|
{
|
||||||
|
E_Fm2_Smart_Data *sd;
|
||||||
|
|
||||||
|
sd = evas_object_smart_data_get(obj);
|
||||||
|
if (!sd) return;
|
||||||
|
evas_object_color_set(sd->clip, r, g, b, a);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_fm2_smart_clip_set(Evas_Object *obj, Evas_Object *clip)
|
||||||
|
{
|
||||||
|
E_Fm2_Smart_Data *sd;
|
||||||
|
|
||||||
|
sd = evas_object_smart_data_get(obj);
|
||||||
|
if (!sd) return;
|
||||||
|
evas_object_clip_set(sd->clip, clip);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_fm2_smart_clip_unset(Evas_Object *obj)
|
||||||
|
{
|
||||||
|
E_Fm2_Smart_Data *sd;
|
||||||
|
|
||||||
|
sd = evas_object_smart_data_get(obj);
|
||||||
|
if (!sd) return;
|
||||||
|
evas_object_clip_unset(sd->clip);
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
/*
|
||||||
|
* vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
|
||||||
|
*/
|
||||||
|
#ifdef E_TYPEDEFS
|
||||||
|
|
||||||
|
/* IGNORE this code for now! */
|
||||||
|
|
||||||
|
typedef enum _E_Fm2_View_Mode
|
||||||
|
{
|
||||||
|
E_FM_VIEW_MODE_ICONS,
|
||||||
|
E_FM_VIEW_MODE_LIST
|
||||||
|
} E_Fm2_View_Mode;
|
||||||
|
|
||||||
|
#else
|
||||||
|
#ifndef E_FM_H
|
||||||
|
#define E_FM_H
|
||||||
|
|
||||||
|
EAPI int e_fm2_init(void);
|
||||||
|
EAPI int e_fm2_shutdown(void);
|
||||||
|
EAPI Evas_Object *e_fm2_add(Evas *evas);
|
||||||
|
EAPI void e_fm2_path_set(Evas_Object *obj, char *dev, char *path);
|
||||||
|
EAPI void e_fm2_path_get(Evas_Object *obj, char **dev, char **path);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
#endif
|
|
@ -137,3 +137,5 @@
|
||||||
#include "e_int_gadcon_config.h"
|
#include "e_int_gadcon_config.h"
|
||||||
#include "e_confirm_dialog.h"
|
#include "e_confirm_dialog.h"
|
||||||
#include "e_int_border_prop.h"
|
#include "e_int_border_prop.h"
|
||||||
|
#include "e_entry_dialog.h"
|
||||||
|
#include "e_fm.h"
|
||||||
|
|
|
@ -430,11 +430,12 @@ main(int argc, char **argv)
|
||||||
|
|
||||||
|
|
||||||
/* init the enlightenment file manager */
|
/* init the enlightenment file manager */
|
||||||
if (!e_fm_icon_init() || !e_fm_init())
|
if (!e_fm_icon_init() || !e_fm_init() || !e_fm2_init())
|
||||||
{
|
{
|
||||||
e_error_message_show(_("Enlightenment cannot initialize the File manager.\n"));
|
e_error_message_show(_("Enlightenment cannot initialize the File manager.\n"));
|
||||||
_e_main_shutdown(-1);
|
_e_main_shutdown(-1);
|
||||||
}
|
}
|
||||||
|
_e_main_shutdown_push(e_fm2_shutdown);
|
||||||
_e_main_shutdown_push(e_fm_shutdown);
|
_e_main_shutdown_push(e_fm_shutdown);
|
||||||
_e_main_shutdown_push(e_fm_icon_shutdown);
|
_e_main_shutdown_push(e_fm_icon_shutdown);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue