From b3aab18f67b09347285f20df72438704e07e3c49 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Fri, 19 Dec 2008 00:34:56 +0000 Subject: [PATCH] and vtorri's wince support for elementary. god forbid. we support windows! :) SVN revision: 38214 --- legacy/elementary/configure.in | 101 +++++++++++++----- legacy/elementary/data/objects/Makefile.am | 2 +- legacy/elementary/data/themes/Makefile.am | 19 ++++ legacy/elementary/elementary.pc.in | 4 +- legacy/elementary/src/bin/Makefile.am | 6 +- .../src/lib/{Elementary.h => Elementary.h.in} | 42 +++++++- legacy/elementary/src/lib/Makefile.am | 16 ++- legacy/elementary/src/lib/elm_bg.c | 2 + legacy/elementary/src/lib/elm_main.c | 18 +++- legacy/elementary/src/lib/elm_priv.h | 10 +- legacy/elementary/src/lib/elm_win.c | 6 ++ legacy/elementary/src/lib/els_pan.c | 2 + 12 files changed, 180 insertions(+), 48 deletions(-) rename legacy/elementary/src/lib/{Elementary.h => Elementary.h.in} (96%) diff --git a/legacy/elementary/configure.in b/legacy/elementary/configure.in index 801eee626c..967552a40d 100644 --- a/legacy/elementary/configure.in +++ b/legacy/elementary/configure.in @@ -4,6 +4,8 @@ rm -f config.cache AC_INIT(elementary, 0.1.0.0, enlightenment-devel@lists.sourceforge.net) AC_PREREQ(2.52) AC_CONFIG_SRCDIR(configure.in) +AC_CANONICAL_BUILD +AC_CANONICAL_HOST AM_INIT_AUTOMAKE(1.6 dist-bzip2) AM_CONFIG_HEADER(elementary_config.h) @@ -28,39 +30,82 @@ VMIC=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $3);}'` SNAP=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $4);}'` version_info=`expr $VMAJ + $VMIN`":$VMIC:$VMIN" AC_SUBST(version_info) + PKG_PROG_PKG_CONFIG -PKG_CHECK_MODULES([ELEMENTARY], [ - eina-0 - eet - evas - ecore - ecore-evas - ecore-job - ecore-txt - ecore-file - edje - edbus - ]) +lt_enable_auto_import="" +ELM_UNIX_DEF="#undef" +ELM_WIN32_DEF="#undef" +ELM_WINCE_DEF="#undef" +case "$host_os" in + mingw32* | cegcc*) + PKG_CHECK_MODULES([EVIL], [evil]) + AC_DEFINE(HAVE_EVIL, 1, [Set to 1 if evil package is installed.]) + dnl needed for correct definition of EAPI + AC_DEFINE(ELEMENTARY_BUILD, 1, [Define to mention that evas is built]) + lt_enable_auto_import="-Wl,--enable-auto-import" + ELM_WINCE_DEF="#define" + ;; + mingw*) + PKG_CHECK_MODULES([EVIL], [evil]) + AC_DEFINE(HAVE_EVIL, 1, [Set to 1 if evil package is installed.]) + dnl needed for correct definition of EAPI + AC_DEFINE(ELEMENTARY_BUILD, 1, [Define to mention that evas is built]) + lt_enable_auto_import="-Wl,--enable-auto-import" + ELM_WIN32_DEF="#define" + ;; + *) + ELM_UNIX_DEF="#define" + ;; +esac +AC_SUBST(lt_enable_auto_import) +AC_SUBST(ELM_UNIX_DEF) +AC_SUBST(ELM_WIN32_DEF) +AC_SUBST(ELM_WINCE_DEF) + +PKG_CHECK_MODULES([ELEMENTARY], + [ + eina-0 + eet + evas + ecore + ecore-evas + ecore-job + ecore-txt + ecore-file + edje + ] +) have_elementary_x="no" -PKG_CHECK_MODULES([ELEMENTARY_X], [ecore-x], [ - AC_DEFINE(HAVE_ELEMENTARY_X, 1, [X11 support for Elementary]) - have_elementary_x="yes" - ], [ - have_elementary_x="no" - ]) - -AC_SUBST(ELEMENTARY_X_CFLAGS) -AC_SUBST(ELEMENTARY_X_LIBS) +PKG_CHECK_MODULES([ELEMENTARY_X], + [ecore-x], + [ + AC_DEFINE(HAVE_ELEMENTARY_X, 1, [X11 support for Elementary]) + have_elementary_x="yes" + ], + [have_elementary_x="no"] +) have_elementary_fb="no" -PKG_CHECK_MODULES([ELEMENTARY_FB], [ecore-fb], [ - AC_DEFINE(HAVE_ELEMENTARY_FB, 1, [FB support for Elementary]) - have_elementary_fb="yes" - ], [ - have_elementary_fb="no" - ]) +PKG_CHECK_MODULES([ELEMENTARY_FB], + [ecore-fb], + [ + AC_DEFINE(HAVE_ELEMENTARY_FB, 1, [FB support for Elementary]) + have_elementary_fb="yes" + ], + [have_elementary_fb="no"] +) + +have_elementary_wince="no" +PKG_CHECK_MODULES([ELEMENTARY_WINCE], + [ecore-wince], + [ + AC_DEFINE(HAVE_ELEMENTARY_WINCE, 1, [Windows CE support for Elementary]) + have_elementary_wince="yes" + ], + [have_elementary_wince="no"] +) my_libs="-lm" AC_SUBST(my_libs) @@ -70,6 +115,7 @@ Makefile elementary.pc src/Makefile src/lib/Makefile +src/lib/Elementary.h src/bin/Makefile data/Makefile data/themes/Makefile @@ -93,6 +139,7 @@ echo echo "Engines:" echo " X11...........: ${have_elementary_x}" echo " Framebuffer...: ${have_elementary_fb}" +echo " Windows CE....: ${have_elementary_wince}" echo echo "------------------------------------------------------------------------" echo diff --git a/legacy/elementary/data/objects/Makefile.am b/legacy/elementary/data/objects/Makefile.am index 168440d116..2fc9326e4a 100644 --- a/legacy/elementary/data/objects/Makefile.am +++ b/legacy/elementary/data/objects/Makefile.am @@ -2,7 +2,7 @@ AUTOMAKE_OPTIONS = 1.4 foreign MAINTAINERCLEANFILES = Makefile.in EDJE_CC = edje_cc -EDJE_FLAGS = -v -id $(top_srcdir)/data -fd $(top_srcdir)/data +EDJE_FLAGS = -v -id $(top_srcdir)/data/objects -fd $(top_srcdir)/data/objects filesdir = $(datadir)/elementary/objects diff --git a/legacy/elementary/data/themes/Makefile.am b/legacy/elementary/data/themes/Makefile.am index 1bf15d876c..ab66750961 100644 --- a/legacy/elementary/data/themes/Makefile.am +++ b/legacy/elementary/data/themes/Makefile.am @@ -68,6 +68,25 @@ outdent-bottom.png \ updown.png \ leftright.png \ hoversel_entry_bg.png \ +cur_box.png \ +cur_hi.png \ +cur_shad.png \ +cur_shine.png \ +cur_glow.png \ +bubble_3.png \ +bubble_shine3.png \ +bubble_4.png \ +bubble_shine4.png \ +bubble_1.png \ +bubble_shine.png \ +bubble_2.png \ +icon_home.png \ +icon_close.png \ +icon_apps.png \ +icon_arrow_up.png \ +icon_arrow_down.png \ +icon_arrow_left.png \ +icon_arrow_right.png \ bt_dis_shine.png \ icon_left_arrow.png \ icon_right_arrow.png \ diff --git a/legacy/elementary/elementary.pc.in b/legacy/elementary/elementary.pc.in index 6ee3ecce28..bc78783228 100644 --- a/legacy/elementary/elementary.pc.in +++ b/legacy/elementary/elementary.pc.in @@ -8,5 +8,5 @@ Description: Mobile device touchscreen widget library Requires: evas ecore ecore-x ecore-evas ecore-job ecore-txt ecore-file eet edje Version: @VERSION@ Libs: -L${libdir} -lelementary -Libs.private: @my_libs@ @ELEMENTARY_LIBS@ @ELEMENTARY_X_LIBS@ @ELEMENTARY_FB_LIBS@ -Cflags: -I${includedir} -I${includedir}/elementary @ELEMENTARY_CFLAGS@ @ELEMENTARY_X_CFLAGS@ @ELEMENTARY_FB_CFLAGS@ +Libs.private: @my_libs@ @ELEMENTARY_LIBS@ @ELEMENTARY_X_LIBS@ @ELEMENTARY_FB_LIBS@ @ELEMENTARY_WINCE_LIBS@ +Cflags: -I${includedir} -I${includedir}/elementary @ELEMENTARY_CFLAGS@ @ELEMENTARY_X_CFLAGS@ @ELEMENTARY_FB_CFLAGS@ @ELEMENTARY_WINCE_CFLAGS@ diff --git a/legacy/elementary/src/bin/Makefile.am b/legacy/elementary/src/bin/Makefile.am index 5cd5c395c2..0ba67d24cc 100644 --- a/legacy/elementary/src/bin/Makefile.am +++ b/legacy/elementary/src/bin/Makefile.am @@ -7,11 +7,13 @@ AM_CPPFLAGS = \ -I$(top_srcdir)/src/lib \ -I$(top_srcdir)/src/bin \ -DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \ -@ELEMENTARY_CFLAGS@ @ELEMENTARY_X_CFLAGS@ @ELEMENTARY_FB_CFLAGS@ +@ELEMENTARY_CFLAGS@ \ +@ELEMENTARY_X_CFLAGS@ \ +@ELEMENTARY_FB_CFLAGS@ \ +@ELEMENTARY_WINCE_CFLAGS@ bin_PROGRAMS = elementary_test elementary_test_SOURCES = test.c elementary_test_LDADD = $(top_builddir)/src/lib/libelementary.la elementary_test_LDFLAGS = -elementary_test_DEPENDENCIES = $(top_builddir)/src/lib/libelementary.la diff --git a/legacy/elementary/src/lib/Elementary.h b/legacy/elementary/src/lib/Elementary.h.in similarity index 96% rename from legacy/elementary/src/lib/Elementary.h rename to legacy/elementary/src/lib/Elementary.h.in index 1c04f7302e..16fc2cfd74 100644 --- a/legacy/elementary/src/lib/Elementary.h +++ b/legacy/elementary/src/lib/Elementary.h.in @@ -16,6 +16,10 @@ * */ +@ELM_UNIX_DEF@ ELM_UNIX +@ELM_WIN32_DEF@ ELM_WIN32 +@ELM_WINCE_DEF@ ELM_WINCE + /* Standard headers for standard system calls etc. */ #include #include @@ -51,6 +55,34 @@ #include #include + +#ifdef EAPI +# undef EAPI +#endif + +#ifdef _WIN32 +# ifdef ELEMENTARY_BUILD +# ifdef DLL_EXPORT +# define EAPI __declspec(dllexport) +# else +# define EAPI +# endif /* ! DLL_EXPORT */ +# else +# define EAPI __declspec(dllimport) +# endif /* ! EFL_EVAS_BUILD */ +#else +# ifdef __GNUC__ +# if __GNUC__ >= 4 +# define EAPI __attribute__ ((visibility("default"))) +# else +# define EAPI +# endif +# else +# define EAPI +# endif +#endif /* ! _WIN32 */ + + /* allow usage from c++ */ #ifdef __cplusplus extern "C" { @@ -315,8 +347,8 @@ extern "C" { typedef enum _Elm_Icon_Type { ELM_ICON_NONE, - ELM_ICON_FILE, - ELM_ICON_STANDARD + ELM_ICON_FILE, + ELM_ICON_STANDARD } Elm_Icon_Type; typedef struct _Elm_Hoversel_Item Elm_Hoversel_Item; EAPI Evas_Object *elm_hoversel_add(Evas_Object *parent); @@ -326,13 +358,17 @@ extern "C" { EAPI void elm_hoversel_hover_end(Evas_Object *obj); EAPI Elm_Hoversel_Item *elm_hoversel_item_add(Evas_Object *obj, const char *label, const char *icon_file, Elm_Icon_Type icon_type, void (*func) (void *data, Evas_Object *obj, void *event_info), const void *data); EAPI void elm_hoversel_item_del(Elm_Hoversel_Item *item); - + /* smart callbacks called: + */ + typedef struct _Elm_Toolbar_Item Elm_Toolbar_Item; EAPI Evas_Object *elm_toolbar_add(Evas_Object *parent); EAPI Elm_Toolbar_Item *elm_toolbar_item_add(Evas_Object *obj, Evas_Object *icon, const char *label, void (*func) (void *data, Evas_Object *obj, void *event_info), const void *data); EAPI void elm_toolbar_item_del(Elm_Toolbar_Item *item); EAPI void elm_toolbar_item_select(Elm_Toolbar_Item *item); EAPI void elm_toolbar_scrollable_set(Evas_Object *obj, Evas_Bool scrollable); + /* smart callbacks called: + */ //////////////////////////////////////////////////////////////////////////// /// FIXME: TODO LIST /////////////////////////////////////////////////////// diff --git a/legacy/elementary/src/lib/Makefile.am b/legacy/elementary/src/lib/Makefile.am index 98b33cfdbe..d9d2e08905 100644 --- a/legacy/elementary/src/lib/Makefile.am +++ b/legacy/elementary/src/lib/Makefile.am @@ -7,7 +7,10 @@ AM_CPPFLAGS = \ -I$(top_srcdir) \ -I$(top_srcdir)/src/lib \ -DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \ -@ELEMENTARY_CFLAGS@ @ELEMENTARY_X_CFLAGS@ @ELEMENTARY_FB_CFLAGS@ +@ELEMENTARY_CFLAGS@ \ +@ELEMENTARY_X_CFLAGS@ \ +@ELEMENTARY_FB_CFLAGS@ \ +@ELEMENTARY_WINCE_CFLAGS@ lib_LTLIBRARIES = libelementary.la @@ -54,11 +57,6 @@ els_icon.c \ els_icon.h -libelementary_la_CFLAGS = -libelementary_la_LIBADD = @my_libs@ @ELEMENTARY_LIBS@ @ELEMENTARY_X_LIBS@ @ELEMENTARY_FB_LIBS@ -libelementary_la_LDFLAGS = -version-info @version_info@ -libelementary_la_DEPENDENCIES = $(top_builddir)/elementary_config.h - -clean-local: - @rm -rf *.gcno - +libelementary_la_CFLAGS = +libelementary_la_LIBADD = @ELEMENTARY_LIBS@ @ELEMENTARY_X_LIBS@ @ELEMENTARY_FB_LIBS@ @ELEMENTARY_WINCE_LIBS@ @my_libs@ +libelementary_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ diff --git a/legacy/elementary/src/lib/elm_bg.c b/legacy/elementary/src/lib/elm_bg.c index 299ebfd6dc..5996d34043 100644 --- a/legacy/elementary/src/lib/elm_bg.c +++ b/legacy/elementary/src/lib/elm_bg.c @@ -1,3 +1,5 @@ +#include + #include #include "elm_priv.h" diff --git a/legacy/elementary/src/lib/elm_main.c b/legacy/elementary/src/lib/elm_main.c index 28133fe570..325f9a6513 100644 --- a/legacy/elementary/src/lib/elm_main.c +++ b/legacy/elementary/src/lib/elm_main.c @@ -1,3 +1,11 @@ +#ifdef HAVE_CONFIG_H +# include "elementary_config.h" +#endif + +#ifdef HAVE_EVIL +# include +#endif + #include #include "elm_priv.h" @@ -107,6 +115,10 @@ elm_init(int argc, char **argv) (!strcasecmp(elm_engine, "opengl-x11")) || (!strcasecmp(elm_engine, "opengl_x11"))) _elm_config->engine = ELM_OPENGL_X11; + else if ((!strcasecmp(elm_engine, "wince-fb")) || + (!strcasecmp(elm_engine, "software-16-wince-fb")) || + (!strcasecmp(elm_engine, "software_16_wince_fb"))) + _elm_config->engine = ELM_SOFTWARE_16_WINCE; } _elm_config->thumbscroll_enable = 1; @@ -121,7 +133,8 @@ elm_init(int argc, char **argv) if ((_elm_config->engine == ELM_SOFTWARE_X11) || (_elm_config->engine == ELM_SOFTWARE_16_X11) || (_elm_config->engine == ELM_XRENDER_X11) || - (_elm_config->engine == ELM_OPENGL_X11)) + (_elm_config->engine == ELM_OPENGL_X11) || + (_elm_config->engine == ELM_SOFTWARE_16_WINCE)) { #ifdef HAVE_ELEMENTARY_X int val = 1000; @@ -179,7 +192,8 @@ elm_shutdown(void) if ((_elm_config->engine == ELM_SOFTWARE_X11) || (_elm_config->engine == ELM_SOFTWARE_16_X11) || (_elm_config->engine == ELM_XRENDER_X11) || - (_elm_config->engine == ELM_OPENGL_X11)) + (_elm_config->engine == ELM_OPENGL_X11) || + (_elm_config->engine == ELM_SOFTWARE_16_WINCE)) { #ifdef HAVE_ELEMENTARY_X ecore_event_handler_del(_elm_event_property_change); diff --git a/legacy/elementary/src/lib/elm_priv.h b/legacy/elementary/src/lib/elm_priv.h index fe38b76d65..17fb9bb40c 100644 --- a/legacy/elementary/src/lib/elm_priv.h +++ b/legacy/elementary/src/lib/elm_priv.h @@ -1,7 +1,9 @@ #ifndef ELM_PRIV_H #define ELM_PRIV_H -#include "elementary_config.h" +#ifdef HAVE_CONFIG_H +# include "elementary_config.h" +#endif #ifdef HAVE_ELEMENTARY_X #include @@ -9,6 +11,9 @@ #ifdef HAVE_ELEMENTARY_FB #include #endif +#ifdef HAVE_ELEMENTARY_WINCE +/* #include */ +#endif #ifdef HAVE_ALLOCA_H #include #endif @@ -27,7 +32,8 @@ typedef enum _Elm_Engine ELM_SOFTWARE_FB, ELM_SOFTWARE_16_X11, ELM_XRENDER_X11, - ELM_OPENGL_X11 + ELM_OPENGL_X11, + ELM_SOFTWARE_16_WINCE } Elm_Engine; typedef struct _Elm_Config Elm_Config; diff --git a/legacy/elementary/src/lib/elm_win.c b/legacy/elementary/src/lib/elm_win.c index 3309ab9fc4..2649a40a34 100644 --- a/legacy/elementary/src/lib/elm_win.c +++ b/legacy/elementary/src/lib/elm_win.c @@ -83,6 +83,7 @@ _elm_win_obj_intercept_resize(void *data, Evas_Object *obj, Evas_Coord w, Evas_C switch (_elm_config->engine) { case ELM_SOFTWARE_FB: + case ELM_SOFTWARE_16_WINCE: break; case ELM_SOFTWARE_X11: case ELM_SOFTWARE_16_X11: @@ -245,6 +246,7 @@ _elm_win_xwindow_get(Elm_Win *win) if (win->ee) win->xwin = ecore_evas_software_x11_window_get(win->ee); break; case ELM_SOFTWARE_FB: + case ELM_SOFTWARE_16_WINCE: break; case ELM_SOFTWARE_16_X11: if (win->ee) win->xwin = ecore_evas_software_x11_16_window_get(win->ee); @@ -393,6 +395,9 @@ elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type) case ELM_OPENGL_X11: win->ee = ecore_evas_gl_x11_new(NULL, 0, 0, 0, 1, 1); break; + case ELM_SOFTWARE_16_WINCE: + win->ee = ecore_evas_software_wince_fb_new(NULL, 0, 0, 1, 1); + break; default: break; } @@ -454,6 +459,7 @@ elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type) switch (_elm_config->engine) { + case ELM_SOFTWARE_16_WINCE: case ELM_SOFTWARE_FB: ecore_evas_fullscreen_set(win->ee, 1); break; diff --git a/legacy/elementary/src/lib/els_pan.c b/legacy/elementary/src/lib/els_pan.c index b63420a56d..d686faeca0 100644 --- a/legacy/elementary/src/lib/els_pan.c +++ b/legacy/elementary/src/lib/els_pan.c @@ -1,3 +1,5 @@ +#include + #include #include "elm_priv.h"