elm anchorblock_example_01.c: removed deprecated widget example.

anchorview and anchorblock were removed 1 year ago.
This commit is contained in:
Daniel Juyung Seo 2013-03-08 02:58:36 +09:00
parent 9b2d17c506
commit 5408dc3060
1 changed files with 0 additions and 250 deletions

View File

@ -1,250 +0,0 @@
/*
* gcc -o anchorblock_example_01 anchorblock_example_01.c `pkg-config --cflags --libs elementary`
*/
#include <Elementary.h>
static void _anchorblock_clicked_cb(void *data, Evas_Object *obj, void *ev);
static void _anchorview_clicked_cb(void *data, Evas_Object *obj, void *ev);
EAPI_MAIN int
elm_main(int argc, char *argv[])
{
Evas_Object *win, *box, *o, *frame;
const char *anchortext =
"Example of some markup text, a long one at that, using anchors in"
"different ways, like <a href=random>some random text</a>.<br>"
"Something more useful is to have actions over urls, either in direct"
"form: <a href=url:http://www.enlightenment.org>"
"http://www.enlightenment.org</a> or with "
"<a href=url:http://www.enlightenment.org>more random text</a>.<br>"
"In any case, the href part of the anchor is what you will receive on"
"the callback, so it's a good idea to keep anything needed to identify"
"whatever is linked at in there.<br>"
"Playing to be a phone, we can also identify contacts from our address"
"list, like this dude here <a href=contact:42>Thomas Anderson</a>, or"
"phone numbers <a href=tel:+61432123>+61 432 1234</a>.";
elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
win = elm_win_add(NULL, "Anchortwins example", ELM_WIN_BASIC);
elm_win_title_set(win, "Anchortwins example");
elm_win_autodel_set(win, EINA_TRUE);
evas_object_resize(win, 320, 300);
evas_object_show(win);
o = elm_bg_add(win);
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_win_resize_object_add(win, o);
evas_object_show(o);
box = elm_box_add(win);
evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_win_resize_object_add(win, box);
evas_object_show(box);
frame = elm_frame_add(win);
elm_object_text_set(frame, "Anchorblock");
evas_object_size_hint_align_set(frame, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_show(frame);
elm_box_pack_end(box, frame);
o = elm_anchorblock_add(win);
elm_anchorblock_hover_style_set(o, "popout");
elm_anchorblock_hover_parent_set(o, win);
elm_object_text_set(o, anchortext);
evas_object_smart_callback_add(o, "anchor,clicked", _anchorblock_clicked_cb,
NULL);
evas_object_show(o);
elm_object_content_set(frame, o);
frame = elm_frame_add(win);
elm_object_text_set(frame, "Anchorview");
evas_object_size_hint_weight_set(frame, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(frame, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_show(frame);
elm_box_pack_end(box, frame);
o = elm_anchorview_add(win);
elm_anchorview_hover_parent_set(o, frame);
elm_anchorview_bounce_set(o, EINA_FALSE, EINA_TRUE);
elm_object_text_set(o, anchortext);
evas_object_smart_callback_add(o, "anchor,clicked", _anchorview_clicked_cb,
NULL);
evas_object_show(o);
elm_object_content_set(frame, o);
elm_run();
elm_shutdown();
return 0;
}
ELM_MAIN()
static void _anchor_buttons_create(Evas_Object *ao, Elm_Entry_Anchorblock_Info *info, Evas_Smart_Cb btn_end_cb);
static void
_btn_anchorblock_end_cb(void *data, Evas_Object *obj, void *event_info)
{
elm_anchorblock_hover_end((Evas_Object *)data);
}
static void
_anchorblock_clicked_cb(void *data, Evas_Object *obj, void *event_info)
{
Elm_Entry_Anchorblock_Info *info = event_info;
_anchor_buttons_create(obj, info, _btn_anchorblock_end_cb);
}
static void
_btn_anchorview_end_cb(void *data, Evas_Object *obj, void *event_info)
{
elm_anchorview_hover_end((Evas_Object *)data);
}
static void
_anchorview_clicked_cb(void *data, Evas_Object *obj, void *event_info)
{
/* should be an Elm_Entry_Anchorview_Info, but since both of them are
* the same, it simplifies code in this example to use one only */
Elm_Entry_Anchorblock_Info *info = event_info;
_anchor_buttons_create(obj, info, _btn_anchorview_end_cb);
}
static void
_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
{
const char *lbl = elm_object_text_get(obj);
printf("%s: %s\n", lbl, (char *)data);
eina_stringshare_del(data);
}
static void
_anchor_buttons_create(Evas_Object *ao, Elm_Entry_Anchorblock_Info *info, Evas_Smart_Cb btn_end_cb)
{
Evas_Object *btn, *secondary = NULL, *box = NULL;
char *p;
const char *str;
btn = elm_button_add(ao);
evas_object_show(btn);
p = strchr(info->name, ':');
if (!p)
{
elm_object_text_set(btn, "Nothing to see here");
evas_object_smart_callback_add(btn, "clicked", btn_end_cb, ao);
elm_object_part_content_set(info->hover, "middle", btn);
return;
}
str = eina_stringshare_add(p + 1);
if (!strncmp(info->name, "tel:", 4))
{
Evas_Object *o;
elm_object_text_set(btn, "Call");
secondary = elm_button_add(ao);
elm_object_text_set(secondary, "Send SMS");
evas_object_show(secondary);
evas_object_smart_callback_add(secondary, "clicked", btn_end_cb, ao);
evas_object_smart_callback_add(secondary, "clicked", _btn_clicked_cb,
str);
box = elm_box_add(ao);
evas_object_show(box);
o = elm_button_add(ao);
elm_object_text_set(o, "Add to contacts");
elm_box_pack_end(box, o);
evas_object_show(o);
evas_object_smart_callback_add(o, "clicked", btn_end_cb, ao);
evas_object_smart_callback_add(o, "clicked", _btn_clicked_cb, str);
o = elm_button_add(ao);
elm_object_text_set(o, "Send MMS");
elm_box_pack_end(box, o);
evas_object_show(o);
evas_object_smart_callback_add(o, "clicked", btn_end_cb, ao);
evas_object_smart_callback_add(o, "clicked", _btn_clicked_cb, str);
}
else if (!strncmp(info->name, "contact:", 8))
{
Evas_Object *o;
elm_object_text_set(btn, "Call");
secondary = elm_button_add(ao);
elm_object_text_set(secondary, "Send SMS");
evas_object_show(secondary);
evas_object_smart_callback_add(secondary, "clicked", btn_end_cb, ao);
evas_object_smart_callback_add(secondary, "clicked", _btn_clicked_cb,
str);
box = elm_box_add(ao);
evas_object_show(box);
o = elm_button_add(ao);
elm_object_text_set(o, "Send MMS");
elm_box_pack_end(box, o);
evas_object_show(o);
evas_object_smart_callback_add(o, "clicked", btn_end_cb, ao);
evas_object_smart_callback_add(o, "clicked", _btn_clicked_cb, str);
}
else if (!strncmp(info->name, "mailto:", 7))
{
elm_object_text_set(btn, "Send E-Mail");
secondary = elm_button_add(ao);
elm_object_text_set(secondary, "Add to contacts");
evas_object_show(secondary);
evas_object_smart_callback_add(secondary, "clicked", btn_end_cb, ao);
evas_object_smart_callback_add(secondary, "clicked", _btn_clicked_cb,
str);
}
else if (!strncmp(info->name, "url:", 4))
{
Evas_Object *o;
elm_object_text_set(btn, "Launch in browser");
box = elm_box_add(ao);
evas_object_show(box);
o = elm_button_add(ao);
elm_object_text_set(o, "Send as mail to...");
elm_box_pack_end(box, o);
evas_object_show(o);
evas_object_smart_callback_add(o, "clicked", btn_end_cb, ao);
evas_object_smart_callback_add(o, "clicked", _btn_clicked_cb, str);
o = elm_button_add(ao);
elm_object_text_set(o, "Send as SMS to...");
elm_box_pack_end(box, o);
evas_object_show(o);
evas_object_smart_callback_add(o, "clicked", btn_end_cb, ao);
evas_object_smart_callback_add(o, "clicked", _btn_clicked_cb, str);
}
evas_object_smart_callback_add(btn, "clicked", btn_end_cb, ao);
evas_object_smart_callback_add(btn, "clicked", _btn_clicked_cb, str);
elm_object_part_content_set(info->hover, "middle", btn);
if (secondary)
{
if (info->hover_right)
elm_object_part_content_set(info->hover, "right", secondary);
else if (info->hover_left)
elm_object_part_content_set(info->hover, "left", secondary);
else
evas_object_del(secondary);
}
if (box)
{
if (info->hover_bottom)
elm_object_part_content_set(info->hover, "bottom", box);
else if (info->hover_top)
elm_object_part_content_set(info->hover, "top", box);
else
evas_object_del(box);
}
}