and some final touches on signals from entry widget
authorCarsten Haitzler <raster@rasterman.com>
Fri, 17 Oct 2008 14:51:17 +0000 (14:51 +0000)
committerCarsten Haitzler <raster@rasterman.com>
Fri, 17 Oct 2008 14:51:17 +0000 (14:51 +0000)
SVN revision: 36755

src/bin/test.c
src/lib/elm_entry.c

index bbb7a04..b8a916e 100644 (file)
@@ -731,7 +731,7 @@ my_bt_13(void *data, Evas_Object *obj, void *event_info)
    elm_box_pack_end(bx, bx2);
    evas_object_show(bx2);
 
-   // HACK! not exposed! (should expose some later?)
+   // FIXME: HACK! not exposed! (should expose some later?)
    elm_widget_focus_set(en, 1);
    
    evas_object_show(win);
@@ -763,6 +763,7 @@ my_bt_14(void *data, Evas_Object *obj, void *event_info)
    elm_box_pack_end(bx, sc);
    
    en = elm_entry_add(win);
+   // FIXME: HACK! not exposed!
    evas_object_propagate_events_set(en, 0);
    elm_entry_entry_set(en,
                       "This is an entry widget in this window that<br>"
@@ -819,7 +820,7 @@ my_bt_14(void *data, Evas_Object *obj, void *event_info)
    elm_box_pack_end(bx, bx2);
    evas_object_show(bx2);
 
-   // HACK! not exposed! (should expose some later?)
+   // FIXME: HACK! not exposed! (should expose some later?)
    elm_widget_focus_set(en, 1);
 
    evas_object_resize(win, 320, 300);
index cb7d692..bacfc8a 100644 (file)
@@ -130,7 +130,6 @@ _signal_cursor_changed(void *data, Evas_Object *obj, const char *emission, const
    Widget_Data *wd = elm_widget_data_get(data);
    Evas_Coord cx, cy, cw, ch;
    evas_object_smart_callback_call(data, "cursor,changed", NULL);
-   
    // FIXME: handle auto-scroll within parent (get cursor - if not visible
    // jump so it is)
    edje_object_part_text_cursor_geometry_get(wd->ent, "elm.text", &cx, &cy, &cw, &ch);
@@ -149,7 +148,28 @@ static void
 _signal_anchor_up(void *data, Evas_Object *obj, const char *emission, const char *source)
 {
    Widget_Data *wd = elm_widget_data_get(data);
+   char *buf, *buf2, *p, *p2, *n;
+   int buflen;
    printf("UP %s\n", emission);
+   p = strchr(emission, ',');
+   if (p)
+     {
+       n = p + 1;
+       buflen = 200 + strlen(n);
+       buf = alloca(buflen);
+       p2 = p -1;
+       while (p2 >= emission)
+         {
+            if (*p2 == ',') break;
+            p2--;
+         }
+       p2++;
+       buf2 = alloca(5 + p - p2);
+       strncpy(buf2, p2, p - p2);
+       buf2[p - p2] = 0;
+       snprintf(buf, buflen, "anchor,%s,clicked,*s", buf2, n);
+       evas_object_smart_callback_call(data, buf, NULL);
+     }
 }
 
 static void