Elm test : add eweather.
authorJonathan Atton <jonathan.atton@gmail.com>
Wed, 25 Nov 2009 20:37:53 +0000 (20:37 +0000)
committerJonathan Atton <jonathan.atton@gmail.com>
Wed, 25 Nov 2009 20:37:53 +0000 (20:37 +0000)
SVN revision: 43988

configure.ac
src/bin/Makefile.am
src/bin/test.c
src/bin/test_map.c
src/bin/test_weather.c [new file with mode: 0644]
src/lib/elm_map.c

index 793d027..d695d7a 100644 (file)
@@ -222,6 +222,22 @@ PKG_CHECK_MODULES([ELEMENTARY_EFREET],
 )
 AC_SUBST(ELM_EFREET_DEF)
 
+ELM_EWEATHER_DEF="#undef"
+have_elementary_eweather="no"
+PKG_CHECK_MODULES([ELEMENTARY_EWEATHER],
+   [
+    eweather
+   ],
+   [
+    AC_DEFINE(HAVE_ELEMENTARY_EWEATHER, 1, [EWeather support for Elementary])
+    have_elementary_eweather="yes"
+    ELM_EWEATHER_DEF="#define"
+    requirement_elm="eweather ${requirement_elm}"
+   ],
+   [have_elementary_eweather="no"]
+)
+AC_SUBST(ELM_EWEATHER_DEF)
+
 ELM_ALLOCA_H_DEF="#undef"
 AC_CHECK_HEADER(alloca.h, [ELM_ALLOCA_H_DEF="#define"])
 AC_SUBST(ELM_ALLOCA_H_DEF)
@@ -284,6 +300,7 @@ echo
 echo "Features:"
 echo "  EDBus.........: ${have_elementary_edbus}"
 echo "  EFreet........: ${have_elementary_efreet}"
+echo "  EWeather......: ${have_elementary_eweather}"
 echo
 echo "edje_cc.........: ${edje_cc}"
 echo
index 6b20dde..5797e07 100644 (file)
@@ -14,7 +14,8 @@ AM_CPPFLAGS = \
 @ELEMENTARY_WIN32_CFLAGS@ \
 @ELEMENTARY_WINCE_CFLAGS@ \
 @ELEMENTARY_EDBUS_CFLAGS@ \
-@ELEMENTARY_EFREET_CFLAGS@
+@ELEMENTARY_EFREET_CFLAGS@ \
+@ELEMENTARY_EWEATHER_CFLAGS@
 
 if ELEMENTARY_WINDOWS_BUILD
 AM_CPPFLAGS += -DELEMENTARY_BUILD
@@ -65,14 +66,15 @@ test_notify.c \
 test_slideshow.c \
 test_menu.c \
 test_panel.c \
-test_map.c
+test_map.c \
+test_weather.c
 
-elementary_test_LDADD = $(top_builddir)/src/lib/libelementary.la
+elementary_test_LDADD = $(top_builddir)/src/lib/libelementary.la @ELEMENTARY_EWEATHER_LIBS@
 elementary_test_LDFLAGS =
 
 if BUILD_QUICKLAUNCH
 elementary_quicklaunch_SOURCES = quicklaunch.c
-elementary_quicklaunch_LDADD = $(top_builddir)/src/lib/libelementary.la
+elementary_quicklaunch_LDADD = $(top_builddir)/src/lib/libelementary.la @ELEMENTARY_EWEATHER_LIBS@
 elementary_quicklaunch_LDFLAGS =
 
 if BUILD_RUN
index 6b2e8c0..716b3d1 100644 (file)
@@ -54,6 +54,8 @@ void test_slideshow(void *data, Evas_Object *obj, void *event_info);
 void test_menu(void *data, Evas_Object *obj, void *event_info);
 void test_panel(void *data, Evas_Object *obj, void *event_info);
 void test_map(void *data, Evas_Object *obj, void *event_info);
+void test_weather(void *data, Evas_Object *obj, void *event_info);
+
 
 static void
 my_win_del(void *data, Evas_Object *obj, void *event_info)
@@ -190,6 +192,7 @@ my_win_main(void)
    elm_list_item_append(li, "Menu", NULL, NULL, test_menu, NULL);
    elm_list_item_append(li, "Panel", NULL, NULL, test_panel, NULL);
    elm_list_item_append(li, "Map", NULL, NULL, test_map, NULL);
+   elm_list_item_append(li, "Weather", NULL, NULL, test_weather, NULL);
 
    elm_list_go(li);
 
index 64ddc5a..bef555d 100644 (file)
@@ -26,128 +26,118 @@ Marker_Data data11= {PACKAGE_DATA_DIR"/images/wood_01.jpg"};
 static void
 my_map_clicked(void *data, Evas_Object *obj, void *event_info)
 {
-   Evas_Object *win = data;
+   //Evas_Object *win = data;
    printf("clicked\n");
 }
 
 static void
 my_map_press(void *data, Evas_Object *obj, void *event_info)
 {
-   Evas_Object *win = data;
+   //Evas_Object *win = data;
    printf("press\n");
 }
 
 static void
 my_map_longpressed(void *data, Evas_Object *obj, void *event_info)
 {
-   Evas_Object *win = data;
+   //Evas_Object *win = data;
    printf("longpressed\n");
 }
 
 static void
 my_map_clicked_double(void *data, Evas_Object *obj, void *event_info)
 {
-   Evas_Object *win = data;
+   //Evas_Object *win = data;
    printf("clicked,double\n");
 }
 
 static void
 my_map_load(void *data, Evas_Object *obj, void *event_info)
 {
-   Evas_Object *win = data;
+   //Evas_Object *win = data;
    printf("load\n");
 }
 
 static void
 my_map_loaded(void *data, Evas_Object *obj, void *event_info)
 {
-   Evas_Object *win = data;
+   //Evas_Object *win = data;
    printf("loaded\n");
 }
 
 static void
 my_map_load_details(void *data, Evas_Object *obj, void *event_info)
 {
-   Evas_Object *win = data;
+   //Evas_Object *win = data;
    printf("load,details\n");
 }
 
 static void
 my_map_loaded_details(void *data, Evas_Object *obj, void *event_info)
 {
-   Evas_Object *win = data;
+   //Evas_Object *win = data;
    printf("loaded,details\n");
 }
 
 static void
 my_map_zoom_start(void *data, Evas_Object *obj, void *event_info)
 {
-   Evas_Object *win = data;
+   //Evas_Object *win = data;
    printf("zoom,start\n");
 }
 
 static void
 my_map_zoom_stop(void *data, Evas_Object *obj, void *event_info)
 {
-   Evas_Object *win = data;
+   //Evas_Object *win = data;
    printf("zoom,stop\n");
 }
 
 static void
 my_map_zoom_change(void *data, Evas_Object *obj, void *event_info)
 {
-   Evas_Object *win = data;
+   //Evas_Object *win = data;
    printf("zoom,change\n");
 }
 
 static void
 my_map_anim_start(void *data, Evas_Object *obj, void *event_info)
 {
-   Evas_Object *win = data;
+   //Evas_Object *win = data;
    printf("anim,start\n");
 }
 
 static void
 my_map_anim_stop(void *data, Evas_Object *obj, void *event_info)
 {
-   Evas_Object *win = data;
+   //Evas_Object *win = data;
    printf("anim,stop\n");
 }
 
 static void
 my_map_drag_start(void *data, Evas_Object *obj, void *event_info)
 {
-   Evas_Object *win = data;
+   //Evas_Object *win = data;
    printf("drag,start\n");
 }
 
 static void
 my_map_drag_stop(void *data, Evas_Object *obj, void *event_info)
 {
-   Evas_Object *win = data;
+   //Evas_Object *win = data;
    printf("drag_stop\n");
 }
 
 static void
 my_map_scroll(void *data, Evas_Object *obj, void *event_info)
 {
-   Evas_Object *win = data;
+   //Evas_Object *win = data;
    double lon, lat;
    elm_map_geo_region_get(obj, &lon, &lat);
    printf("scroll longitude : %f latitude : %f\n", lon, lat);
 }
 
 static void
-sel_done(void *data, Evas_Object *obj, void *event_info)
-{
-   Evas_Object *map, *iw;
-
-   map = data;
-   iw = evas_object_data_get(map, "inwin");
-   evas_object_del(iw);
-}
-
-static void
 my_bt_show_reg(void *data, Evas_Object *obj, void *event_info)
 {
    Eina_Bool b = elm_map_paused_get(data);
@@ -244,7 +234,6 @@ static void
 _map_mouse_wheel_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
 {
    Evas_Object *map = data;
-   Evas_Object *ph = data;
    Evas_Event_Mouse_Wheel *ev = (Evas_Event_Mouse_Wheel*) event_info;
    int zoom;
    //unset the mouse wheel
@@ -275,7 +264,6 @@ void
 test_map(void *data, Evas_Object *obj, void *event_info)
 {
    Evas_Object *win, *bg, *map, *tb2, *bt;
-   char buf[PATH_MAX];
 
    win = elm_win_add(NULL, "map", ELM_WIN_BASIC);
    elm_win_title_set(win, "Map");
diff --git a/src/bin/test_weather.c b/src/bin/test_weather.c
new file mode 100644 (file)
index 0000000..7f29308
--- /dev/null
@@ -0,0 +1,108 @@
+#include <Elementary.h>
+#include "../../elementary_config.h"
+#ifndef ELM_LIB_QUICKLAUNCH
+
+#ifdef HAVE_ELEMENTARY_EWEATHER
+# include "EWeather_Smart.h"
+#endif
+
+static Evas_Object *en, *hv;
+static EWeather *eweather;
+static Eina_Module *module;
+
+
+static void _apply_cb(void *data, Evas_Object *o, void *event_info)
+{
+    if(module)
+        eweather_plugin_set(eweather, module);
+
+    eweather_code_set(eweather, elm_entry_entry_get(en));
+}
+
+static void _hover_select_cb(void *data, Evas_Object *obj, void *event_info)
+{
+    module = data;
+}
+
+void
+test_weather(void *data, Evas_Object *obj, void *event_info)
+{
+   Evas_Object *win, *bg, *weather, *bx, *bx0, *bt;
+   Eina_Array_Iterator it;
+   Eina_Array *array;
+   Eina_Module *m;
+   int i;
+
+   win = elm_win_add(NULL, "weather", ELM_WIN_BASIC);
+   elm_win_title_set(win, "Weather");
+   elm_win_autodel_set(win, 1);
+
+   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);
+
+#ifdef HAVE_ELEMENTARY_EWEATHER 
+   bx = elm_box_add(win);
+   elm_win_resize_object_add(win, bx);
+   evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   evas_object_show(bx);
+
+   weather = eweather_object_add(evas_object_evas_get(win));
+   eweather = eweather_object_eweather_get(weather);
+   evas_object_size_hint_weight_set(weather, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   evas_object_size_hint_align_set(weather, -1.0, -1.0);
+   elm_box_pack_end(bx, weather);
+   evas_object_show(weather);
+
+   bx0 = elm_box_add(win);
+   elm_box_horizontal_set(bx0, EINA_TRUE);
+   evas_object_size_hint_weight_set(bx0, 1.0, 0.0);
+   elm_box_pack_end(bx, bx0);
+   evas_object_show(bx0);
+
+   hv = elm_hoversel_add(win);
+   elm_hoversel_hover_parent_set(hv, win);
+   elm_hoversel_label_set(hv, "data source");
+   evas_object_size_hint_weight_set(hv, 0.0, 0.0);
+   evas_object_size_hint_align_set(hv, 0.5, 0.5);
+   elm_box_pack_end(bx0, hv);
+   evas_object_show(hv);
+
+   array = eweather_plugins_list_get(eweather);
+
+   EINA_ARRAY_ITER_NEXT(array, i, m, it)
+   {
+       elm_hoversel_item_add(hv, eweather_plugin_name_get(eweather, i), NULL, ELM_ICON_NONE, _hover_select_cb, m);
+   }
+
+   en = elm_entry_add(win);
+   elm_entry_line_wrap_set(en, 0);
+   elm_entry_single_line_set(en, EINA_TRUE);
+   elm_entry_entry_set(en, "Paris");
+   evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_box_pack_end(bx0, en);
+   evas_object_show(en);
+
+   bt = elm_button_add(win);
+   elm_button_label_set(bt, "Apply");
+   evas_object_show(bt);
+   elm_box_pack_end(bx0, bt);
+   evas_object_smart_callback_add(bt, "clicked", _apply_cb, NULL);
+
+
+#else
+    Evas_Object *lbl;
+    
+    lbl = elm_label_add(win);
+    elm_win_resize_object_add(win, lbl);
+    elm_label_label_set(lbl, "libeweather is required to display the forecast.");
+    evas_object_show(lbl);
+#endif
+
+    evas_object_resize(win, 244, 388);
+    evas_object_show(win);
+}
+
+#endif
index 63ebe20..b45cdbf 100644 (file)
@@ -2037,6 +2037,7 @@ elm_map_marker_remove(Elm_Map_Marker *marker)
          {
                wd->markers[i] = eina_list_remove(wd->markers[i], marker->groups[i]);
                _group_object_free(marker->groups[i]);
+               _group_bubble_free(marker->groups[i]);
                free(marker->groups[i]);
          }
      }