* Add elm_need_edbus() and EDBus.h support with ELM_EDBUS2 macro to integrate edbus (v2). Deprecated elm_need_e_dbus() (e_dbus, v1).
* Add window profile set/get API in elm_win
* Add elm_sys_notify.[ch]
+ * Add elm_need_elocation() and Elocation.h support with ELM_ELOCATION macro to integrate elocation.
Improvements:
fi
AC_SUBST(ELM_EDBUS2_DEF)
+ELM_ELOCATION_DEF="#undef"
+have_elementary_elocation="no"
+want_elementary_elocation="auto"
+AC_ARG_ENABLE([elocation],
+ [AC_HELP_STRING([--disable-elocation], [disable elocation support. @<:@default=detect@:>@])],
+ [want_elementary_elocation=$enableval], [])
+
+if test "x$want_elementary_elocation" != "xno"; then
+ PKG_CHECK_MODULES([ELEMENTARY_ELOCATION],
+ [
+ elocation >= 0.1.0
+ ],
+ [
+ AC_DEFINE(HAVE_ELEMENTARY_ELOCATION, 1, [Elocation support for Elementary])
+ have_elementary_elocation="yes"
+ ELM_ELOCATION_DEF="#define"
+ requirement_elm="elocation >= 1.7.99 ${requirement_elm}"
+ ],
+ [have_elementary_elocation="no"]
+ )
+else
+ have_elementary_elocation="no"
+fi
+if test "x$want_elementary_elocation" = "xyes" -a "x$have_elementary_elocation" = "xno"; then
+ AC_MSG_ERROR([EDBus (v2) support requested, but no elocation found by pkg-config.])
+fi
+AC_SUBST(ELM_ELOCATION_DEF)
+
ELM_EFREET_DEF="#undef"
have_elementary_efreet="no"
want_elementary_efreet="auto"
echo " Quick Launch...........: ${have_fork}"
echo " EIO....................: ${have_eio}"
echo " Emotion................: ${have_emotion}"
+echo " Elocation..............: ${have_elementary_elocation}"
echo
echo " eet......................: ${eet_eet}"
echo " edje_cc..................: ${edje_cc}"
@ELEMENTARY_WINCE_CFLAGS@ \
@ELEMENTARY_EDBUS_CFLAGS@ \
@ELEMENTARY_EDBUS2_CFLAGS@ \
+@ELEMENTARY_ELOCATION_CFLAGS@ \
@ELEMENTARY_EFREET_CFLAGS@ \
@ELEMENTARY_EWEATHER_CFLAGS@ \
@ELEMENTARY_ETHUMB_CFLAGS@ \
@ELEMENTARY_EDBUS_CFLAGS@ \
@ELEMENTARY_EDBUS2_CFLAGS@ \
@ELEMENTARY_EFREET_CFLAGS@ \
+@ELEMENTARY_ELOCATION_CFLAGS@ \
@ELEMENTARY_EWEATHER_CFLAGS@ \
@ELEMENTARY_ETHUMB_CFLAGS@ \
@ELEMENTARY_WEB_CFLAGS@ \
@ELEMENTARY_EDBUS_LIBS@ \
@ELEMENTARY_EDBUS2_LIBS@ \
@ELEMENTARY_EFREET_LIBS@ \
+ @ELEMENTARY_ELOCATION_LIBS@ \
@ELEMENTARY_EMAP_LIBS@ \
@ELEMENTARY_LIBS@ \
@EIO_LIBS@ \
@ELEMENTARY_EDBUS_LIBS@ \
@ELEMENTARY_EDBUS2_LIBS@ \
@ELEMENTARY_EFREET_LIBS@ \
+ @ELEMENTARY_ELOCATION_LIBS@ \
@ELEMENTARY_EMAP_LIBS@ \
@ELEMENTARY_LIBS@ \
@EIO_LIBS@ \
@ELEMENTARY_EDBUS_LIBS@ \
@ELEMENTARY_EDBUS2_LIBS@ \
@ELEMENTARY_EFREET_LIBS@ \
+ @ELEMENTARY_ELOCATION_LIBS@ \
@ELEMENTARY_EMAP_LIBS@ \
@ELEMENTARY_LIBS@ \
@EIO_LIBS@ \
@ELEMENTARY_EDBUS_LIBS@ \
@ELEMENTARY_EDBUS2_LIBS@ \
@ELEMENTARY_EFREET_LIBS@ \
+ @ELEMENTARY_ELOCATION_LIBS@ \
@ELEMENTARY_EMAP_LIBS@ \
@ELEMENTARY_LIBS@ \
@EIO_LIBS@ \
@ELEMENTARY_EDBUS_LIBS@ \
@ELEMENTARY_EDBUS2_LIBS@ \
@ELEMENTARY_EFREET_LIBS@ \
+ @ELEMENTARY_ELOCATION_LIBS@ \
@ELEMENTARY_EMAP_LIBS@ \
@ELEMENTARY_LIBS@ \
@EIO_LIBS@ \
@ELEMENTARY_EDBUS_LIBS@ \
@ELEMENTARY_EDBUS2_LIBS@ \
@ELEMENTARY_EFREET_LIBS@ \
+ @ELEMENTARY_ELOCATION_LIBS@ \
@ELEMENTARY_EMAP_LIBS@ \
@ELEMENTARY_LIBS@ \
@EIO_LIBS@ \
@ELEMENTARY_EDBUS_CFLAGS@ \
@ELEMENTARY_EDBUS2_CFLAGS@ \
@ELEMENTARY_EFREET_CFLAGS@ \
+@ELEMENTARY_ELOCATION_CFLAGS@ \
@ELEMENTARY_ETHUMB_CFLAGS@ \
@ELEMENTARY_EMAP_CFLAGS@ \
@ELEMENTARY_ECORE_CON_CFLAGS@ \
@ELEMENTARY_EDBUS_CFLAGS@ \
@ELEMENTARY_EDBUS2_CFLAGS@ \
@ELEMENTARY_EFREET_CFLAGS@ \
+@ELEMENTARY_ELOCATION_CFLAGS@ \
@ELEMENTARY_EWEATHER_CFLAGS@ \
@ELEMENTARY_ETHUMB_CFLAGS@ \
@ELEMENTARY_EMAP_CFLAGS@ \
list_example_01.c \
list_example_02.c \
list_example_03.c \
+location_example_01.c \
map_example_01.c \
map_example_02.c \
map_example_03.c \
list_example_01 \
list_example_02 \
list_example_03 \
+location_example_01 \
map_example_01 \
map_example_02 \
map_example_03 \
--- /dev/null
+//Compile with:
+//gcc -o location_example_01 location_example_01.c -g `pkg-config --cflags --libs elementary`
+
+#include <Elementary.h>
+#ifdef ELM_ELOCATION
+#include <Elocation.h>
+#endif
+
+static Evas_Object *bg, *label, *win;
+
+#ifdef ELM_ELOCATION
+static void
+_print_position(Elocation_Position *position)
+{
+ char buffer[1024];
+
+ if (!position) return;
+ snprintf(buffer, sizeof(buffer),
+ "<b>GeoClue position reply with data from timestamp</b> %i<br/>"
+ "<b>Latitude:</b> %f<br/>"
+ "<b>Longitude:</b> %f<br/>"
+ "<b>Altitude:</b> %f<br/>"
+ "<b>Accuracy level:</b> %i<br/>"
+ "<b>Accuracy horizontal:</b> %f<br/>"
+ "<b>Accuracy vertical:</b> %f",
+ position->timestamp, position->latitude, position->longitude,
+ position->altitude, position->accur->level,
+ position->accur->horizontal, position->accur->vertical);
+ elm_object_text_set(label, buffer);
+}
+
+static Eina_Bool
+_position_changed(void *data, int ev_type, void *event)
+{
+ Elocation_Position *position;
+
+ position = event;
+ _print_position(position);
+ return ECORE_CALLBACK_DONE;
+}
+#endif
+
+EAPI_MAIN int
+elm_main(int argc, char *argv[])
+{
+#ifdef ELM_ELOCATION
+ Elocation_Address *address;
+ Elocation_Position *position;
+#endif
+
+ /* The program will proceed only if Ewebkit library is available. */
+ if (elm_need_elocation() == EINA_FALSE)
+ return -1;
+
+ elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
+
+ win = elm_win_add(NULL, "Elocation example", ELM_WIN_BASIC);
+ elm_win_autodel_set(win, EINA_TRUE);
+ evas_object_resize(win, 600, 480);
+ evas_object_show(win);
+
+ bg = elm_bg_add(win);
+ evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(win, bg);
+ evas_object_show(bg);
+
+ label = elm_label_add(win);
+ elm_label_line_wrap_set(label, ELM_WRAP_CHAR);
+ elm_object_text_set(label, "Getting location ...");
+ evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, 0.0);
+ evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_label_slide_set(label, EINA_TRUE);
+ evas_object_resize(label, 600, 480);
+ evas_object_show(label);
+
+#ifdef ELM_ELOCATION
+ address = elocation_address_new();
+ position = elocation_position_new();
+
+ ecore_event_handler_add(ELOCATION_EVENT_POSITION, _position_changed, NULL);
+
+ elocation_position_get(position);
+ _print_position(position);
+#endif
+
+ elm_run();
+
+#ifdef ELM_ELOCATION
+ elocation_position_free(position);
+ elocation_address_free(address);
+#endif
+
+ elm_shutdown();
+
+ return 0;
+}
+ELM_MAIN()
+
@ELM_EDBUS_DEF@ ELM_EDBUS
@ELM_EDBUS2_DEF@ ELM_EDBUS2
@ELM_EFREET_DEF@ ELM_EFREET
+@ELM_ELOCATION_DEF@ ELM_ELOCATION
@ELM_ETHUMB_DEF@ ELM_ETHUMB
@ELM_WEB_DEF@ ELM_WEB
@ELM_EMAP_DEF@ ELM_EMAP
#include <Efreet_Trash.h>
#endif
+#ifdef ELM_ELOCATION
+#include <Elocation.h>
+#endif
+
#ifdef ELM_ETHUMB
#include <Ethumb_Client.h>
#endif
@ELEMENTARY_EDBUS_CFLAGS@ \
@ELEMENTARY_EDBUS2_CFLAGS@ \
@ELEMENTARY_EFREET_CFLAGS@ \
+@ELEMENTARY_ELOCATION_CFLAGS@ \
@ELEMENTARY_EWEATHER_CFLAGS@ \
@ELEMENTARY_ETHUMB_CFLAGS@ \
@ELEMENTARY_WEB_CFLAGS@ \
@ELEMENTARY_EDBUS_LIBS@ \
@ELEMENTARY_EDBUS2_LIBS@ \
@ELEMENTARY_EFREET_LIBS@ \
+@ELEMENTARY_ELOCATION_LIBS@ \
@ELEMENTARY_ETHUMB_LIBS@ \
@ELEMENTARY_WEB_LIBS@ \
@ELEMENTARY_EMAP_LIBS@ \
#endif
}
+#ifdef ELM_ELOCATION
+static Eina_Bool _elm_need_elocation = EINA_FALSE;
+#endif
+EAPI Eina_Bool
+elm_need_elocation(void)
+{
+#ifdef ELM_ELOCATION
+ if (_elm_need_elocation) return EINA_TRUE;
+ _elm_need_elocation = EINA_TRUE;
+ elocation_init();
+ return EINA_TRUE;
+#else
+ return EINA_FALSE;
+#endif
+}
+
+static void
+_elm_unneed_elocation(void)
+{
+#ifdef ELM_ELOCATION
+ if (!_elm_need_elocation) return;
+ _elm_need_elocation = EINA_FALSE;
+ edbus_shutdown();
+#endif
+}
+
#ifdef ELM_EFREET
static Eina_Bool _elm_need_efreet = EINA_FALSE;
#endif
_elm_unneed_efreet();
_elm_unneed_e_dbus();
_elm_unneed_edbus();
+ _elm_unneed_elocation();
_elm_unneed_ethumb();
_elm_unneed_web();
ecore_file_shutdown();
EAPI Eina_Bool elm_need_edbus(void);
/**
+ * Request that your elementary application needs elocation
+ *
+ * This initializes the elocation library when called and if
+ * support exists it returns EINA_TRUE, otherwise returns
+ * EINA_FALSE. This must be called before any elocation usage.
+ *
+ * @return EINA_TRUE if support exists and initialization succeeded.
+ *
+ * @since 1.8.0
+ *
+ * @ingroup edbus
+ */
+EAPI Eina_Bool elm_need_elocation(void);
+
+/**
* Request that your elementary application needs ethumb
*
* This initializes the Ethumb library when called and if support exists
@ELEMENTARY_EDBUS_CFLAGS@ \
@ELEMENTARY_EDBUS2_CFLAGS@ \
@ELEMENTARY_EFREET_CFLAGS@ \
+@ELEMENTARY_ELOCATION_CFLAGS@ \
@ELEMENTARY_EWEATHER_CFLAGS@ \
@ELEMENTARY_ETHUMB_CFLAGS@ \
@ELEMENTARY_WEB_CFLAGS@ \
@ELEMENTARY_EDBUS_CFLAGS@ \
@ELEMENTARY_EDBUS2_CFLAGS@ \
@ELEMENTARY_EFREET_CFLAGS@ \
+@ELEMENTARY_ELOCATION_CFLAGS@ \
@ELEMENTARY_EWEATHER_CFLAGS@ \
@ELEMENTARY_ETHUMB_CFLAGS@ \
@ELEMENTARY_WEB_CFLAGS@ \
@ELEMENTARY_EDBUS_CFLAGS@ \
@ELEMENTARY_EDBUS2_CFLAGS@ \
@ELEMENTARY_EFREET_CFLAGS@ \
+@ELEMENTARY_ELOCATION_CFLAGS@ \
@ELEMENTARY_ETHUMB_CFLAGS@ \
@ELEMENTARY_WEB_CFLAGS@ \
@ELEMENTARY_EMAP_CFLAGS@ \
@ELEMENTARY_EDBUS_CFLAGS@ \
@ELEMENTARY_EDBUS2_CFLAGS@ \
@ELEMENTARY_EFREET_CFLAGS@ \
+@ELEMENTARY_ELOCATION_CFLAGS@ \
@ELEMENTARY_EWEATHER_CFLAGS@ \
@ELEMENTARY_ETHUMB_CFLAGS@ \
@ELEMENTARY_WEB_CFLAGS@ \
@ELEMENTARY_EDBUS_CFLAGS@ \
@ELEMENTARY_EDBUS2_CFLAGS@ \
@ELEMENTARY_EFREET_CFLAGS@ \
+@ELEMENTARY_ELOCATION_CFLAGS@ \
@ELEMENTARY_EWEATHER_CFLAGS@ \
@ELEMENTARY_ETHUMB_CFLAGS@ \
@ELEMENTARY_WEB_CFLAGS@ \