Tizen(Headed) Native API
6.5
|
This code places an Elementary flip selector widget on a window, along with two buttons trigerring actions on it (though its API).
The selector is being populated with the following items:
static const char *lbl[] = { "Elementary", "Evas", "Eina", "Edje", "Eet", "Ecore", "Efreet", "Eldbus" };
Next, we create it, populating it with those items and registering two (smart) callbacks on it:
fp = elm_flipselector_add(win); evas_object_size_hint_weight_set(fp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_smart_callback_add(fp, "underflowed", _overflow_cb, NULL); evas_object_smart_callback_add(fp, "overflowed", _underflow_cb, NULL); for (i = 0; i < sizeof(lbl) / sizeof(lbl[0]); i++) elm_flipselector_item_append(fp, lbl[i], NULL, NULL); elm_box_pack_end(bx, fp); evas_object_show(fp);
Those two callbacks will take place whenever one of those smart events occur, and they will just print something to stdout:
void /* underflow callback */ _underflow_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { printf("Underflow!\n"); } void /* overflow callback */ _overflow_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { printf("Overflow!\n"); }
The two buttons below the flip selector will take the actions described in their labels:
bt = elm_button_add(win); elm_object_text_set(bt, "Unselect item"); evas_object_smart_callback_add(bt, "clicked", _unsel_cb, fp); elm_box_pack_end(bx, bt); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Delete item"); evas_object_smart_callback_add(bt, "clicked", _del_cb, fp); elm_box_pack_end(bx, bt); evas_object_show(bt); elm_object_event_callback_add(win, _on_keydown, fp);
void /* unselect the item shown in the flip selector */ _unsel_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Elm_Object_Item *it; Evas_Object *fp = data; it = elm_flipselector_selected_item_get(fp); elm_flipselector_item_selected_set(it, EINA_FALSE); } void /* delete the item shown in the flip selector */ _del_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Elm_Object_Item *it; Evas_Object *fp = data; it = elm_flipselector_selected_item_get(fp); if (it) elm_object_item_del(it); }
Click on them to exercise those flip selector API calls. To interact with the other parts of this API, there's a command line interface, whose help string can be asked for with the 'h' key:
static const char *commands = \ "commands are:\n" "\tn - flip to next item\n" "\tp - flip to previous item\n" "\tf - print first item's label\n" "\tl - print last item's label\n" "\ts - print selected item's label\n" "\th - print help\n";
The 'n' and 'p' keys will exemplify elm_flipselector_flip_next() and elm_flipselector_flip_prev(), respectively. 'f' and 'l' account for elm_flipselector_first_item_get() and elm_flipselector_last_item_get(), respectively. Finally, 's' will issue elm_flipselector_selected_item_get() on our example flip selector widget.
See the full source code for this example.