1. efreet support.

2. edbus init - if u needit
3. efreet init - if u ned it
4. photo widget test/demo
5. icon desktop test... stuff!



SVN revision: 42434
This commit is contained in:
Carsten Haitzler 2009-09-12 09:37:29 +00:00
parent 847ab424c8
commit 972b69bb98
10 changed files with 296 additions and 10 deletions

View File

@ -190,6 +190,24 @@ PKG_CHECK_MODULES([ELEMENTARY_EDBUS],
)
AC_SUBST(ELM_EDBUS_DEF)
ELM_EFREET_DEF="#undef"
have_elementary_efreet="no"
PKG_CHECK_MODULES([ELEMENTARY_EFREET],
[
efreet
efreet-mime
efreet-trash
],
[
AC_DEFINE(HAVE_ELEMENTARY_EFREET, 1, [Efreet support for Elementary])
have_elementary_efreet="yes"
ELM_EFREET_DEF="#define"
requirement_elm="efreet efreet-mime efreet-trash ${requirement_elm}"
],
[have_elementary_efreet="no"]
)
AC_SUBST(ELM_EFREET_DEF)
ELM_ALLOCA_H_DEF="#undef"
AC_CHECK_HEADER(alloca.h, [ELM_ALLOCA_H_DEF="#define"])
AC_SUBST(ELM_ALLOCA_H_DEF)
@ -251,6 +269,7 @@ echo " Windows CE....: ${have_elementary_wince}"
echo
echo "Features:"
echo " EDBus.........: ${have_elementary_edbus}"
echo " EFreet........: ${have_elementary_efreet}"
echo
echo "edje_cc.........: ${edje_cc}"
echo

View File

@ -8,5 +8,6 @@ Description: Mobile device touchscreen widget library
Requires: @requirement_elm@
Version: @VERSION@
Libs: -L${libdir} -lelementary
Libs.private: @dlopen_libs@ @my_libs@ @ELEMENTARY_LIBS@ @ELEMENTARY_X_LIBS@ @ELEMENTARY_FB_LIBS@ @ELEMENTARY_WINCE_LIBS@ @ELEMENTARY_EDBUS_LIBS@
Cflags: -I${includedir} -I${includedir}/elementary @ELEMENTARY_CFLAGS@ @ELEMENTARY_X_CFLAGS@ @ELEMENTARY_FB_CFLAGS@ @ELEMENTARY_WINCE_CFLAGS@ @ELEMENTARY_EDBUS_CFLAGS@
Libs.private: @dlopen_libs@ @my_libs@ @ELEMENTARY_LIBS@ @ELEMENTARY_X_LIBS@
@ELEMENTARY_FB_LIBS@ @ELEMENTARY_WINCE_LIBS@ @ELEMENTARY_EDBUS_LIBS@ @ELEMENTARY_EFREET_LIBS@
Cflags: -I${includedir} -I${includedir}/elementary @ELEMENTARY_CFLAGS@ @ELEMENTARY_X_CFLAGS@ @ELEMENTARY_FB_CFLAGS@ @ELEMENTARY_WINCE_CFLAGS@ @ELEMENTARY_EDBUS_CFLAGS@ @ELEMENTARY_EFREET_CFLAGS@

View File

@ -13,7 +13,8 @@ AM_CPPFLAGS = \
@ELEMENTARY_FB_CFLAGS@ \
@ELEMENTARY_WIN32_CFLAGS@ \
@ELEMENTARY_WINCE_CFLAGS@ \
@ELEMENTARY_EDBUS_CFLAGS@
@ELEMENTARY_EDBUS_CFLAGS@ \
@ELEMENTARY_EFREET_CFLAGS@
if ELEMENTARY_WINDOWS_BUILD
AM_CPPFLAGS += -DELEMENTARY_BUILD
@ -57,7 +58,10 @@ test_separator.c \
test_scroller.c \
test_spinner.c \
test_index.c \
test_photocam.c
test_photocam.c \
test_photo.c \
test_icon_desktops.c
elementary_test_LDADD = $(top_builddir)/src/lib/libelementary.la
elementary_test_LDFLAGS =

View File

@ -48,6 +48,8 @@ void test_scroller(void *data, Evas_Object *obj, void *event_info);
void test_spinner(void *data, Evas_Object *obj, void *event_info);
void test_index(void *data, Evas_Object *obj, void *event_info);
void test_photocam(void *data, Evas_Object *obj, void *event_info);
void test_photo(void *data, Evas_Object *obj, void *event_info);
void test_icon_desktops(void *data, Evas_Object *obj, void *event_info);
static void
my_win_del(void *data, Evas_Object *obj, void *event_info)
@ -177,6 +179,8 @@ my_win_main(void)
elm_list_item_append(li, "Spinner", NULL, NULL, test_spinner, NULL);
elm_list_item_append(li, "Index", NULL, NULL, test_index, NULL);
elm_list_item_append(li, "Photocam", NULL, NULL, test_photocam, NULL);
elm_list_item_append(li, "Photo", NULL, NULL, test_photo, NULL);
elm_list_item_append(li, "Icon Desktops", NULL, NULL, test_icon_desktops, NULL);
elm_list_go(li);

View File

@ -0,0 +1,112 @@
#include <Elementary.h>
static Elm_Genlist_Item_Class it_desk;
static char *
desk_gl_label_get(const void *data, Evas_Object *obj, const char *part)
{
#ifdef ELM_EFREET
Efreet_Desktop *d = (Efreet_Desktop *)data;
return strdup(d->name);
#else
return NULL;
#endif
}
static Evas_Object *
desk_gl_icon_get(const void *data, Evas_Object *obj, const char *part)
{
// FIXME: elm_icon should grok this
#ifdef ELM_EFREET
Efreet_Desktop *d = (Efreet_Desktop *)data;
char *path;
Evas_Object *ic;
ic = elm_icon_add(obj);
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
if (!(!strcmp(part, "elm.swallow.icon"))) return ic;
if (!d->icon) return ic;
path = efreet_icon_path_find("default", d->icon, 48);
if (!path)
{
path = efreet_icon_path_find("hicolor", d->icon, 48);
if (!path)
{
path = efreet_icon_path_find("gnome", d->icon, 48);
if (!path)
{
path = efreet_icon_path_find("Human", d->icon, 48);
}
}
}
if (path)
{
elm_icon_file_set(ic, path, NULL);
free(path);
return ic;
}
return ic;
#else
return NULL;
#endif
}
static void
desk_gl_del(const void *data, Evas_Object *obj)
{
#ifdef ELM_EFREET
Efreet_Desktop *d = (Efreet_Desktop *)data;
efreet_desktop_free(d);
#endif
}
static void
desktop_sel(void *data, Evas_Object *obj, void *event_info)
{
printf("sel\n");
}
void
test_icon_desktops(void *data, Evas_Object *obj, void *event_info)
{
Evas_Object *win, *bg, *gl;
Eina_List *desktops, *l;
win = elm_win_add(NULL, "icon_desktops", ELM_WIN_BASIC);
elm_win_title_set(win, "Icon Desktops");
elm_win_autodel_set(win, 1);
bg = elm_bg_add(win);
evas_object_size_hint_weight_set(bg, 1.0, 1.0);
elm_win_resize_object_add(win, bg);
evas_object_show(bg);
it_desk.item_style = "default";
it_desk.func.label_get = desk_gl_label_get;
it_desk.func.icon_get = desk_gl_icon_get;
it_desk.func.state_get = NULL;
it_desk.func.del = desk_gl_del;
gl = elm_genlist_add(win);
evas_object_size_hint_weight_set(gl, 1.0, 1.0);
elm_win_resize_object_add(win, gl);
evas_object_show(gl);
#ifdef ELM_EFREET
elm_need_efreet();
desktops = efreet_util_desktop_name_glob_list("*");
if (desktops)
{
Efreet_Desktop *d;
EINA_LIST_FOREACH(desktops, l, d)
{
elm_genlist_item_append(gl, &it_desk, d,
NULL, ELM_GENLIST_ITEM_NONE,
desktop_sel, NULL);
// efreet_desktop_free(d);
}
eina_list_free(desktops);
}
#endif
evas_object_resize(win, 320, 480);
evas_object_show(win);
}

View File

@ -0,0 +1,63 @@
#include <Elementary.h>
void
test_photo(void *data, Evas_Object *obj, void *event_info)
{
Evas_Object *win, *bg, *sc, *tb, *ph;
int i, j, n;
char buf[PATH_MAX];
const char *img[9] =
{
"panel_01.jpg",
"plant_01.jpg",
"rock_01.jpg",
"rock_02.jpg",
"sky_01.jpg",
"sky_02.jpg",
"sky_03.jpg",
"sky_04.jpg",
"wood_01.jpg"
};
win = elm_win_add(NULL, "photo", ELM_WIN_BASIC);
elm_win_title_set(win, "Photo");
elm_win_autodel_set(win, 1);
bg = elm_bg_add(win);
evas_object_size_hint_weight_set(bg, 1.0, 1.0);
elm_win_resize_object_add(win, bg);
evas_object_show(bg);
tb = elm_table_add(win);
evas_object_size_hint_weight_set(tb, 1.0, 1.0);
n = 0;
for (j = 0; j < 12; j++)
{
for (i = 0; i < 12; i++)
{
ph = elm_photo_add(win);
snprintf(buf, sizeof(buf), "%s/images/%s",
PACKAGE_DATA_DIR, img[n]);
n++;
if (n >= 9) n = 0;
elm_photo_file_set(ph, buf);
evas_object_size_hint_weight_set(ph, 1.0, 1.0);
evas_object_size_hint_align_set(ph, -1.0, -1.0);
elm_photo_size_set(ph, 80);
elm_table_pack(tb, ph, i, j, 1, 1);
evas_object_show(ph);
}
}
sc = elm_scroller_add(win);
evas_object_size_hint_weight_set(sc, 1.0, 1.0);
elm_win_resize_object_add(win, sc);
elm_scroller_content_set(sc, tb);
evas_object_show(tb);
evas_object_show(sc);
evas_object_resize(win, 300, 300);
evas_object_show(win);
}

View File

@ -12,8 +12,8 @@ test_photocam(void *data, Evas_Object *obj, void *event_info)
"/home/raster/t3.jpg"
};
win = elm_win_add(NULL, "photo", ELM_WIN_BASIC);
elm_win_title_set(win, "Photo");
win = elm_win_add(NULL, "photocam", ELM_WIN_BASIC);
elm_win_title_set(win, "Photocam");
elm_win_autodel_set(win, 1);
bg = elm_bg_add(win);
@ -25,7 +25,7 @@ test_photocam(void *data, Evas_Object *obj, void *event_info)
evas_object_size_hint_weight_set(ph, 1.0, 1.0);
elm_win_resize_object_add(win, ph);
elm_photocam_file_set(ph, img[1]);
elm_photocam_file_set(ph, img[2]);
evas_object_show(ph);

View File

@ -15,6 +15,7 @@
@ELM_WIN32_DEF@ ELM_WIN32
@ELM_WINCE_DEF@ ELM_WINCE
@ELM_EDBUS_DEF@ ELM_EDBUS
@ELM_EFREET_DEF@ ELM_EFREET
@ELM_ALLOCA_H_DEF@ ELM_ALLOCA_H
@ELM_LIBINTL_H_DEF@ ELM_LIBINTL_H
@ -75,6 +76,12 @@
# include <E_Hal.h>
#endif
#ifdef ELM_EFREET
# include <Efreet.h>
# include <Efreet_Mime.h>
# include <Efreet_Trash.h>
#endif
#ifdef EAPI
# undef EAPI
#endif
@ -161,6 +168,9 @@ extern "C" {
EAPI void elm_quicklaunch_cleanup(void);
EAPI int elm_quicklaunch_fallback(int argc, char **argv);
EAPI char *elm_quicklaunch_exe_path_get(const char *exe);
EAPI void elm_need_efreet(void);
EAPI void elm_need_e_dbus(void);
EAPI void elm_object_scale_set(Evas_Object *obj, double scale);
EAPI double elm_object_scale_get(const Evas_Object *obj);

View File

@ -13,7 +13,8 @@ AM_CPPFLAGS = \
@ELEMENTARY_FB_CFLAGS@ \
@ELEMENTARY_WIN32_CFLAGS@ \
@ELEMENTARY_WINCE_CFLAGS@ \
@ELEMENTARY_EDBUS_CFLAGS@
@ELEMENTARY_EDBUS_CFLAGS@ \
@ELEMENTARY_EFREET_CFLAGS@
if ELEMENTARY_WINDOWS_BUILD
AM_CPPFLAGS += -DELEMENTARY_BUILD
@ -79,5 +80,5 @@ els_icon.h
libelementary_la_CFLAGS =
libelementary_la_LIBADD = @my_libs@ @dlopen_libs@ @ELEMENTARY_LIBS@ @ELEMENTARY_X_LIBS@ @ELEMENTARY_FB_LIBS@ @ELEMENTARY_WIN32_LIBS@ @ELEMENTARY_WINCE_LIBS@ @ELEMENTARY_EDBUS_LIBS@
libelementary_la_LIBADD = @my_libs@ @dlopen_libs@ @ELEMENTARY_LIBS@ @ELEMENTARY_X_LIBS@ @ELEMENTARY_FB_LIBS@ @ELEMENTARY_WIN32_LIBS@ @ELEMENTARY_WINCE_LIBS@ @ELEMENTARY_EDBUS_LIBS@ @ELEMENTARY_EFREET_LIBS@
libelementary_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@

View File

@ -348,6 +348,76 @@ elm_shutdown(void)
elm_quicklaunch_shutdown();
}
#ifdef ELM_EDBUS
static Eina_Bool _elm_need_e_dbus = 0;
#endif
EAPI void
elm_need_e_dbus(void)
{
#ifdef ELM_EDBUS
if (_elm_need_e_dbus) return;
_elm_need_e_dbus = 1;
e_dbus_init();
#endif
}
static void
_elm_unneed_e_dbus(void)
{
#ifdef ELM_EDBUS
if (_elm_need_e_dbus)
{
_elm_need_e_dbus = 0;
e_dbus_shutdown();
}
#endif
}
#ifdef ELM_EFREET
static Eina_Bool _elm_need_efreet = 0;
#endif
EAPI void
elm_need_efreet(void)
{
#ifdef ELM_EFREET
if (_elm_need_efreet) return;
_elm_need_efreet = 1;
efreet_init();
efreet_util_init();
efreet_mime_init();
efreet_trash_init();
/*
{
Eina_List **list;
list = efreet_icon_extra_list_get();
if (list)
{
e_user_dir_concat_static(buf, "icons");
*list = eina_list_prepend(*list, (void *)eina_stringshare_add(buf));
e_prefix_data_concat_static(buf, "data/icons");
*list = eina_list_prepend(*list, (void *)eina_stringshare_add(buf));
}
}
*/
#endif
}
static void
_elm_unneed_efreet(void)
{
#ifdef ELM_EDBUS
if (_elm_need_efreet)
{
_elm_need_efreet = 0;
efreet_trash_shutdown();
efreet_mime_shutdown();
efreet_util_shutdown();
efreet_shutdown();
}
#endif
}
EAPI void
elm_quicklaunch_init(int argc, char **argv)
{
@ -370,7 +440,7 @@ elm_quicklaunch_init(int argc, char **argv)
evas_init();
edje_init();
ecore_evas_init(); // FIXME: check errors
_elm_exit_handler = ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, _elm_signal_exit, NULL);
_elm_appname = strdup(ecore_file_file_get(argv[0]));
@ -641,6 +711,8 @@ elm_quicklaunch_shutdown(void)
free(_elm_config);
free(_elm_appname);
_elm_unneed_efreet();
_elm_unneed_e_dbus();
ecore_evas_shutdown();
edje_shutdown();
evas_shutdown();