forked from enlightenment/enlightenment
add optional emotion support for filepreview widget. this doesn't work on my machine, I think because I have a broken vlc library so the generic player doesn't work.
CEDRIC, THIS FEATURE NEEDS YOU! SVN revision: 76959
This commit is contained in:
parent
ac3aadc71a
commit
c135778f5f
19
configure.ac
19
configure.ac
|
@ -588,6 +588,25 @@ if test "x$want_elementary" != "xno"; then
|
|||
fi
|
||||
fi
|
||||
|
||||
want_emotion=auto
|
||||
have_emotion=no
|
||||
AC_ARG_ENABLE(emotion,
|
||||
AC_HELP_STRING([--enable-emotion], [enable emotion support @<:@default=detect@:>@]),
|
||||
[want_emotion=$enableval],
|
||||
[want_emotion=auto]
|
||||
)
|
||||
if test "x$want_emotion" != "xno"; then
|
||||
PKG_CHECK_MODULES(EMOTION, [emotion >= ${efl_version}],
|
||||
[have_emotion=yes], [have_emotion=no])
|
||||
if test "x$want_emotion" = "xyes" -a "x$have_emotion" = "xno"; then
|
||||
AC_MSG_ERROR([emotion support requested but it was not found])
|
||||
fi
|
||||
if test "x$have_emotion" = "xyes"; then
|
||||
AC_DEFINE([HAVE_EMOTION], 1, "Have emotion support")
|
||||
requirements_e="${requirements_e} emotion > ${efl_version}"
|
||||
fi
|
||||
fi
|
||||
|
||||
PKG_CHECK_MODULES(E_OPEN, [
|
||||
ecore >= ${efl_version}
|
||||
efreet >= ${efl_version}
|
||||
|
|
|
@ -13,6 +13,7 @@ INCLUDES = \
|
|||
@VALGRIND_CFLAGS@ \
|
||||
@EDJE_DEF@ \
|
||||
@ELM_CFLAGS@ \
|
||||
@EMOTION_CFLAGS@ \
|
||||
-DPACKAGE_BIN_DIR=\"@PACKAGE_BIN_DIR@\" \
|
||||
-DPACKAGE_LIB_DIR=\"@PACKAGE_LIB_DIR@\" \
|
||||
-DPACKAGE_DATA_DIR=\"@PACKAGE_DATA_DIR@\" \
|
||||
|
@ -363,7 +364,7 @@ e_main.c \
|
|||
$(enlightenment_src)
|
||||
|
||||
enlightenment_LDFLAGS = -export-dynamic
|
||||
enlightenment_LDADD = @e_libs@ @ELM_LIBS@ @dlopen_libs@ @cf_libs@ @VALGRIND_LIBS@ -lm
|
||||
enlightenment_LDADD = @e_libs@ @ELM_LIBS@ @EMOTION_LIBS@ @dlopen_libs@ @cf_libs@ @VALGRIND_LIBS@ -lm
|
||||
|
||||
enlightenment_imc_SOURCES = \
|
||||
e.h \
|
||||
|
|
|
@ -22,6 +22,10 @@ static double t0, t1, t2;
|
|||
#include <Elementary.h>
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_EMOTION
|
||||
#include <Emotion.h>
|
||||
#endif
|
||||
|
||||
/*
|
||||
* i need to make more use of these when i'm baffled as to when something is
|
||||
* up. other hooks:
|
||||
|
@ -392,6 +396,17 @@ main(int argc, char **argv)
|
|||
_e_main_shutdown_push(elm_shutdown);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_EMOTION
|
||||
TS("Emotion Init");
|
||||
if (!emotion_init())
|
||||
{
|
||||
e_error_message_show(_("Enlightenment cannot initialize Emotion!\n"));
|
||||
_e_main_shutdown(-1);
|
||||
}
|
||||
TS("Emotion Init Done");
|
||||
_e_main_shutdown_push((void*)emotion_shutdown);
|
||||
#endif
|
||||
|
||||
/* e doesn't sync to compositor - it should be one */
|
||||
ecore_evas_app_comp_sync_set(0);
|
||||
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
#include "e.h"
|
||||
#include "e_fm_device.h"
|
||||
#include <sys/statvfs.h>
|
||||
#ifdef HAVE_EMOTION
|
||||
# include <Emotion.h>
|
||||
#endif
|
||||
|
||||
typedef struct _E_Widget_Data E_Widget_Data;
|
||||
struct _E_Widget_Data
|
||||
|
@ -142,6 +145,74 @@ _e_wid_fprev_clear_widgets(E_Widget_Data *wd)
|
|||
CLRWID(o_preview_scrollframe);
|
||||
}
|
||||
|
||||
#ifdef HAVE_EMOTION
|
||||
|
||||
static void
|
||||
_e_wid_fprev_preview_video_widgets(E_Widget_Data *wd)
|
||||
{
|
||||
Evas *evas = evas_object_evas_get(wd->obj);
|
||||
Evas_Object *o;
|
||||
int mw, mh, y = 1;
|
||||
|
||||
_e_wid_fprev_clear_widgets(wd);
|
||||
|
||||
o = e_widget_table_add(evas, 0);
|
||||
e_widget_disabled_set(o, 1);
|
||||
wd->o_preview_properties_table = o;
|
||||
|
||||
#define WIDROW(lab, labob, entob, entw) \
|
||||
do { \
|
||||
o = e_widget_label_add(evas, lab); \
|
||||
e_widget_disabled_set(o, 1); \
|
||||
wd->labob = o; \
|
||||
e_widget_table_object_append(wd->o_preview_properties_table, \
|
||||
wd->labob, \
|
||||
0, y, 1, 1, 1, 1, 1, 1); \
|
||||
o = e_widget_entry_add(evas, &(wd->preview_extra_text), NULL, NULL, NULL); \
|
||||
e_widget_entry_readonly_set(o, 1); \
|
||||
e_widget_disabled_set(o, 1); \
|
||||
wd->entob = o; \
|
||||
e_widget_size_min_set(o, entw, -1); \
|
||||
e_widget_table_object_append(wd->o_preview_properties_table, \
|
||||
wd->entob, \
|
||||
1, y, 1, 1, 1, 1, 1, 1); \
|
||||
y++; \
|
||||
} while (0)
|
||||
|
||||
o = emotion_object_add(evas);
|
||||
emotion_object_init(o, NULL);
|
||||
emotion_object_file_set(o, wd->path);
|
||||
evas_object_size_hint_aspect_set(o, EVAS_ASPECT_CONTROL_BOTH, wd->w, wd->h);
|
||||
wd->o_preview_preview = e_widget_image_add_from_object(evas, o, wd->w, wd->h);
|
||||
e_widget_table_object_append(wd->o_preview_properties_table,
|
||||
wd->o_preview_preview, 0, 0, 1, 1, 1, 1, 1, 1);
|
||||
|
||||
WIDROW(_("Length:"), o_preview_extra, o_preview_extra_entry, 100);
|
||||
WIDROW(_("Size:"), o_preview_size, o_preview_size_entry, 100);
|
||||
/* FIXME: other infos? */
|
||||
|
||||
e_widget_list_object_append(wd->o_preview_list,
|
||||
wd->o_preview_properties_table,
|
||||
1, 1, 0.5);
|
||||
|
||||
e_widget_size_min_get(wd->o_preview_list, &mw, &mh);
|
||||
e_widget_size_min_set(wd->obj, mw, mh);
|
||||
evas_object_show(wd->o_preview_preview_table);
|
||||
evas_object_show(wd->o_preview_extra);
|
||||
evas_object_show(wd->o_preview_extra_entry);
|
||||
evas_object_show(wd->o_preview_size);
|
||||
evas_object_show(wd->o_preview_size_entry);
|
||||
evas_object_show(wd->o_preview_owner);
|
||||
evas_object_show(wd->o_preview_owner_entry);
|
||||
evas_object_show(wd->o_preview_perms);
|
||||
evas_object_show(wd->o_preview_perms_entry);
|
||||
evas_object_show(wd->o_preview_time);
|
||||
evas_object_show(wd->o_preview_time_entry);
|
||||
evas_object_show(wd->o_preview_properties_table);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
static void
|
||||
_e_wid_fprev_preview_fs_widgets(E_Widget_Data *wd)
|
||||
{
|
||||
|
@ -390,6 +461,13 @@ _e_wid_fprev_preview_file(E_Widget_Data *wd)
|
|||
}
|
||||
if (desktop) efreet_desktop_free(desktop);
|
||||
}
|
||||
#ifdef HAVE_EMOTION
|
||||
else if (wd->mime && (eina_str_has_prefix(wd->mime, "video/")))
|
||||
{
|
||||
_e_wid_fprev_preview_video_widgets(wd);
|
||||
is_fs = EINA_TRUE;
|
||||
}
|
||||
#endif
|
||||
if (is_fs) return;
|
||||
_e_wid_fprev_preview_file_widgets(wd);
|
||||
|
||||
|
|
Loading…
Reference in New Issue