aboutsummaryrefslogtreecommitdiffstats
path: root/egraph/examples/demoapp.c
diff options
context:
space:
mode:
Diffstat (limited to 'egraph/examples/demoapp.c')
-rw-r--r--egraph/examples/demoapp.c371
1 files changed, 0 insertions, 371 deletions
diff --git a/egraph/examples/demoapp.c b/egraph/examples/demoapp.c
deleted file mode 100644
index 4e64363..0000000
--- a/egraph/examples/demoapp.c
+++ /dev/null
@@ -1,371 +0,0 @@
-#include <err.h>
-
-#include <Elementary.h>
-#include <Egraph.h>
-
-Evas_Object *_mainwin;
-Evas_Object *_egraph;
-Eina_List *_vertice_list = NULL;
-Eina_List *_group_list = NULL;
-
-static void
-_cb_add_edge(void *data, Evas_Object *obj, void *event_info)
-{
- Egraph_Vertice *a, *b;
- int ran, count;
- char buf[64];
-
- if (!_egraph)
- return;
-
- count = eina_list_count(_vertice_list);
- if (count == 0) {
- a = egraph_vertice_add(_egraph, "first", NULL);
- _vertice_list = eina_list_append(_vertice_list, a);
- } else {
- ran = random() % count;
- a = eina_list_nth(_vertice_list, ran);
- }
- b = egraph_vertice_add(_egraph, NULL, NULL);
- snprintf(buf, sizeof(buf), "%d", b->id);
- egraph_vertice_rename(_egraph, b, buf);
- _vertice_list = eina_list_append(_vertice_list, b);
-
- egraph_edge_add(_egraph, a, b, NULL);
-}
-
-static void
-_cb_add_50edges(void *data, Evas_Object *obj, void *event_info)
-{
- int i;
-
- if (!_egraph)
- return;
-
- for (i=0; i<50; i++)
- _cb_add_edge(data, obj, event_info);
-}
-
-static void
-_cb_add_500edges(void *data, Evas_Object *obj, void *event_info)
-{
- int i;
-
- if (!_egraph)
- return;
-
- for (i=0; i<500; i++)
- _cb_add_edge(data, obj, event_info);
-}
-
-static void
-_cb_del_edges(void *data, Evas_Object *obj, void *event_info)
-{
- Eina_List *l;
- Egraph_Vertice *v;
-
- if (!_egraph)
- return;
-
- egraph_clear(_egraph);
- _vertice_list = eina_list_free(_vertice_list);
- _group_list = eina_list_free(_group_list);
-}
-
-static void
-_cb_add_node(void *data, Evas_Object *obj, void *event_info)
-{
- Egraph_Vertice *v;
- char buf[64];
-
- if (!_egraph)
- return;
-
- v = egraph_vertice_add(_egraph, NULL, NULL);
- snprintf(buf, sizeof(buf), "%d", v->id);
- egraph_vertice_rename(_egraph, v, buf);
- _vertice_list = eina_list_append(_vertice_list, v);
-}
-
-static void
-_cb_send_100blobs(void *data, Evas_Object *obj, void *event_info)
-{
- Egraph_Vertice *a, *b;
- int count, ran, i;
-
- count = eina_list_count(_vertice_list);
- if (!count)
- return;
-
- for (i=0; i<100; i++) {
- ran = random() % count;
- a = eina_list_nth(_vertice_list, ran);
- ran = random() % count;
- b = eina_list_nth(_vertice_list, ran);
- egraph_vertice_send_blob(_egraph, a, b, 5, 0xFF000000);
- }
-}
-
-static void
-_cb_add_10n_group(void *data, Evas_Object *obj, void *event_info)
-{
- Egraph_Vertice *group, *v;
- char buf[64];
- int i;
-
- if (!_egraph)
- return;
-
- group = egraph_group_add(_egraph, NULL, NULL);
- snprintf(buf, sizeof(buf), "%d-group", group->id);
- egraph_vertice_rename(_egraph, group, buf);
- _group_list = eina_list_append(_group_list, group);
- for (i=0; i<10; i++) {
- v = egraph_vertice_add(_egraph, NULL, NULL);
- snprintf(buf, sizeof(buf), "%d-child(%d)", v->id, group->id);
- egraph_vertice_rename(_egraph, v, buf);
- egraph_group_vertice_attach(_egraph, group, v);
- _vertice_list = eina_list_append(_vertice_list, v);
- }
-}
-
-
-static void
-_cb_show_nodes(void *data, Evas_Object *obj, void *event_info)
-{
- egraph_display_vertices_set(_egraph, elm_check_state_get(obj));
-}
-
-static void
-_cb_show_labels(void *data, Evas_Object *obj, void *event_info)
-{
- if (!_egraph)
- return;
-
- egraph_display_names_set(_egraph, elm_check_state_get(obj));
-}
-
-static void
-_cb_show_edges(void *data, Evas_Object *obj, void *event_info)
-{
- if (!_egraph)
- return;
-
- egraph_display_edges_set(_egraph, elm_check_state_get(obj));
-}
-
-static void
-_cb_use_animations(void *data, Evas_Object *obj, void *event_info)
-{
- if (!_egraph)
- return;
-
- egraph_use_animations_set(_egraph, elm_check_state_get(obj));
-}
-
-static void
-_cb_do_improvements(void *data, Evas_Object *obj, void *event_info)
-{
- if (!_egraph)
- return;
-
- egraph_do_improvements_set(_egraph, elm_check_state_get(obj));
-}
-
-static void
-_cb_use_theme_e(void *data, Evas_Object *obj, void *event_info)
-{
- if (!_egraph)
- return;
-
- egraph_theme_edges_set(_egraph, elm_check_state_get(obj));
-}
-
-static void
-_cb_layout_changed(void *data, Evas_Object *obj, void *event_info)
-{
- Elm_Object_Item *it;
- char *selected;
- int layout;
-
- if (!_egraph)
- return;
-
- it = event_info;
- selected = elm_object_item_text_get(it);
- layout = EGRAPH_LAYOUT_DEFAULT;
- if (!strcmp(selected, "Kamada K."))
- layout = EGRAPH_LAYOUT_KAMADAKAWAI;
- else if (!strcmp(selected, "GraphOpt"))
- layout = EGRAPH_LAYOUT_GRAPHOPT;
- else if (!strcmp(selected, "Fruchterman R."))
- layout = EGRAPH_LAYOUT_FRUCHTERMANREINGOLD;
-
- egraph_layout_set(_egraph, layout);
-}
-
-static void
-_cb_on_done(void *data, Evas_Object *obj, void *event_info)
-{
- elm_exit();
-}
-
-EAPI_MAIN int
-elm_main(int argc, char **argv)
-{
- Evas_Object *win, *bg, *egraph, *panes;
- Evas_Object *bx, *tb, *tb_it, *ck, *sc, *seg_it, *lb;
- Evas *evas;
- int retval = -1;
-
- win = elm_win_add(NULL, "panes", ELM_WIN_BASIC);
- evas = evas_object_evas_get(win);
- elm_win_title_set(win, "Egraph demo app");
- evas_object_smart_callback_add(win, "delete,request", _cb_on_done, NULL);
-
- bg = elm_bg_add(win);
- elm_win_resize_object_add(win, bg);
- evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_color_set(bg, 0, 0, 0, 255);
- evas_object_show(bg);
-
- bx = elm_box_add(win);
- elm_box_horizontal_set(bx, EINA_TRUE);
- evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_win_resize_object_add(win, bx);
- evas_object_show(bx);
-
- tb = elm_toolbar_add(win);
- elm_toolbar_homogeneous_set(tb, EINA_FALSE);
- elm_toolbar_horizontal_set(tb, EINA_FALSE);
- elm_toolbar_shrink_mode_set(tb, ELM_TOOLBAR_SHRINK_EXPAND);
- elm_toolbar_select_mode_set(tb, ELM_OBJECT_SELECT_MODE_ALWAYS);
- elm_toolbar_transverse_expanded_set(tb, EINA_TRUE);
- elm_object_style_set(tb, "item_centered");
- evas_object_size_hint_weight_set(tb, 0.0, EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(tb, EVAS_HINT_FILL, EVAS_HINT_FILL);
- elm_box_pack_end(bx, tb);
- evas_object_show(tb);
- elm_toolbar_item_append(tb, "object-rotate-right", "Add 1 edge",
- _cb_add_edge, NULL);
- elm_toolbar_item_append(tb, "object-rotate-right", "Add 50 edges",
- _cb_add_50edges, NULL);
- elm_toolbar_item_append(tb, "object-rotate-right", "Add 500 edges",
- _cb_add_500edges, NULL);
- elm_toolbar_item_append(tb, "object-rotate-right", "Add 1 node alone",
- _cb_add_node, NULL);
- elm_toolbar_item_append(tb, "edit-delete", "Delete all",
- _cb_del_edges, NULL);
- elm_toolbar_item_append(tb, "object-rotate-right", "Send 100 blobs",
- _cb_send_100blobs, NULL);
- elm_toolbar_item_append(tb, "object-rotate-right", "Add a 10n group",
- _cb_add_10n_group, NULL);
- elm_toolbar_item_separator_set(elm_toolbar_item_append(tb, NULL, NULL, NULL, NULL), EINA_FALSE);
- lb = elm_label_add(win);
- elm_object_text_set(lb, "<b>Layout</b>");
- evas_object_size_hint_weight_set(lb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(lb, EVAS_HINT_FILL, EVAS_HINT_FILL);
- tb_it = elm_toolbar_item_append(tb, NULL, NULL, NULL, NULL);
- elm_object_item_part_content_set(tb_it, "object", lb);
- sc = elm_segment_control_add(win);
- //evas_object_size_hint_weight_set(sc, em->weight.w, em->weight.h);
- //evas_object_size_hint_align_set(sc, em->align.x, em->align.y);
- seg_it = elm_segment_control_item_add(sc, NULL, "GraphOpt");
- elm_segment_control_item_selected_set(seg_it, EINA_TRUE);
- seg_it = elm_segment_control_item_add(sc, NULL, "Kamada K.");
- elm_segment_control_item_selected_set(seg_it, EINA_FALSE);
- seg_it = elm_segment_control_item_add(sc, NULL, "Fruchterman R.");
- elm_segment_control_item_selected_set(seg_it, EINA_FALSE);
- evas_object_smart_callback_add(sc, "changed", _cb_layout_changed, NULL);
- evas_object_show(sc);
- tb_it = elm_toolbar_item_append(tb, NULL, NULL, NULL, NULL);
- elm_object_item_part_content_set(tb_it, "object", sc);
- //elm_toolbar_item_separator_set(elm_toolbar_item_append(tb, NULL, NULL, NULL, NULL), EINA_FALSE);
- ck = elm_check_add(win);
- elm_object_text_set(ck, "Show Node");
- elm_check_state_set(ck, EINA_TRUE);
- evas_object_show(ck);
- evas_object_smart_callback_add(ck, "changed", _cb_show_nodes, NULL);
- tb_it = elm_toolbar_item_append(tb, NULL, NULL, NULL, NULL);
- elm_object_item_part_content_set(tb_it, "object", ck);
- ck = elm_check_add(win);
- elm_object_text_set(ck, "Show Label");
- elm_check_state_set(ck, EINA_TRUE);
- evas_object_show(ck);
- evas_object_smart_callback_add(ck, "changed", _cb_show_labels, NULL);
- tb_it = elm_toolbar_item_append(tb, NULL, NULL, NULL, NULL);
- elm_object_item_part_content_set(tb_it, "object", ck);
- ck = elm_check_add(win);
- elm_object_text_set(ck, "Show Edges");
- elm_check_state_set(ck, EINA_TRUE);
- evas_object_show(ck);
- evas_object_smart_callback_add(ck, "changed", _cb_show_edges, NULL);
- tb_it = elm_toolbar_item_append(tb, NULL, NULL, NULL, NULL);
- elm_object_item_part_content_set(tb_it, "object", ck);
- ck = elm_check_add(win);
- elm_object_text_set(ck, "Use animations");
- elm_check_state_set(ck, EINA_TRUE);
- evas_object_show(ck);
- evas_object_smart_callback_add(ck, "changed", _cb_use_animations, NULL);
- tb_it = elm_toolbar_item_append(tb, NULL, NULL, NULL, NULL);
- elm_object_item_part_content_set(tb_it, "object", ck);
- ck = elm_check_add(win);
- elm_object_text_set(ck, "Do improvements");
- elm_check_state_set(ck, EINA_TRUE);
- evas_object_show(ck);
- evas_object_smart_callback_add(ck, "changed", _cb_do_improvements, NULL);
- tb_it = elm_toolbar_item_append(tb, NULL, NULL, NULL, NULL);
- elm_object_item_part_content_set(tb_it, "object", ck);
- ck = elm_check_add(win);
- elm_object_text_set(ck, "Use theme for edges");
- elm_check_state_set(ck, EINA_TRUE);
- evas_object_show(ck);
- evas_object_smart_callback_add(ck, "changed", _cb_use_theme_e, NULL);
- tb_it = elm_toolbar_item_append(tb, NULL, NULL, NULL, NULL);
- elm_object_item_part_content_set(tb_it, "object", ck);
- //elm_toolbar_item_separator_set(elm_toolbar_item_append(tb, NULL, NULL, NULL, NULL), EINA_FALSE);
- elm_toolbar_item_append(tb, "exit", "Quit",
- _cb_on_done, NULL);
-
- panes = elm_panes_add(win);
- evas_object_size_hint_weight_set(panes, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(panes, EVAS_HINT_FILL, EVAS_HINT_FILL);
- elm_panes_content_right_size_set(panes, 0.0);
- elm_box_pack_end(bx, panes);
- evas_object_show(panes);
-
- egraph = egraph_new(evas, 1);
- if (!egraph)
- goto quit;
- evas_object_size_hint_weight_set(egraph, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(egraph, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_show(egraph);
- elm_object_part_content_set(panes, "left", egraph);
-
- lb = elm_label_add(win);
- elm_object_style_set(lb, "marker");
- evas_object_color_set(lb, 255, 255, 255, 255);
- elm_object_text_set(lb,
- "Demo application for Egraph<br/>"
- "<br/>"
- "Enjoy !<br/>");
- evas_object_show(lb);
- elm_object_part_content_set(panes, "right", lb);
-
- evas_object_resize(win, 150, 150); // XXX workaround elm sizing issue
- evas_object_show(win);
- evas_object_resize(win, 950, 715);
- evas_object_show(win);
- _egraph = egraph;
- _mainwin = win;
-
- _cb_add_50edges(NULL, NULL, NULL);
-
- elm_run();
- retval = 0;
-
-quit:
- elm_shutdown();
- return retval;
-}
-ELM_MAIN()