Tizen Native API
5.0
|
In this example we'll explain how to create applications to work with illume, considering space required for virtual keyboards, indicator and softkeys.
Illume is a module for Enlightenment that modifies the user interface to work cleanly and nicely on a mobile device. It has support for virtual keyboard, among other nice features.
Let's start creating a very simple window with a vertical box with multi-line entry between two buttons. This entry will expand filling all space on window not used by buttons.
elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED) { Evas_Object *win, *btn, *bx, *en; elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED); win = elm_win_util_standard_add("conformant", "Conformant Example"); elm_win_autodel_set(win, EINA_TRUE); bx = elm_box_add(win); evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, bx); evas_object_show(bx); btn = elm_button_add(win); elm_object_text_set(btn, "Test Conformant"); evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, 0); evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, 0); elm_box_pack_end(bx, btn); evas_object_show(btn); en = elm_entry_add(win); elm_entry_scrollable_set(en, EINA_TRUE); elm_object_text_set(en, "This is a multi-line entry at the bottom<br>" "This can contain more than 1 line of text and be " "scrolled around to allow for entering of lots of " "content. It is also to test to see that autoscroll " "moves to the right part of a larger multi-line " "text entry that is inside of a scroller than can be " "scrolled around, thus changing the expected position " "as well as cursor changes updating auto-scroll when " "it is enabled."); 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); evas_object_show(en); elm_box_pack_end(bx, en); btn = elm_button_add(win); elm_object_text_set(btn, "Test Conformant"); evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, 0); evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, 0); elm_box_pack_end(bx, btn); evas_object_show(btn); evas_object_resize(win, 240, 480); evas_object_show(win); elm_run(); return 0; }
For information about how to create windows, boxes, buttons or entries, look for documentation for these widgets.
But if you call a virtual keyboard, the window will resize, changing widgets size and position. All the content will shrink.
If you don't want such behaviour, you will need a conformant to account for space taken up by the indicator, virtual keyboard and softkey.
First of all, we need to set the window as an illume conformant window:
elm_win_conformant_set(win, EINA_TRUE);
Next, we'll add a conformant widget, and set it to resize with the window, instead of the box.
conform = elm_conformant_add(win); evas_object_size_hint_weight_set(conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, conform); evas_object_show(conform);
Finally, we'll set the box as conformant's content, just like this:
elm_object_content_set(conform, bx);
Compare both examples code: conformant_example_01.c conformant_example_02.c