diff --git src echoicebox src echoicebox index 3d3e892 5039399 100644

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
diff --git a/src/echoicebox.h b/src/echoicebox.h
index 3d3e892..5039399 100644
--- a/src/echoicebox.h
+++ b/src/echoicebox.h
@@ -80,5 +80,53 @@ void choicebox_activate_nth_visible(Evas_Object* e, int nth, bool is_alt);
void choicebox_activate_current(Evas_Object* e, bool is_alt);
void choicebox_set_selection(Evas_Object* e, int item_num);
+/*
+ * Returns -1 if no item is selected.
+ */
+int choicebox_get_selection(Evas_Object* e);
+
+/*
+ * Auxiliary utility functions
+ */
+
+/*
+ * Sample implementation of footer (page) handler, drawing (l10ed) "N/M" text in
+ * given edje text field.
+ *
+ * Usage:
+ *
+ * void page_handler(Evas_Object* choicebox, int cur_page, int total_pages, void* param)
+ * {
+ * Evas* canvas = evas_object_evas_get(choicebox);
+ * Evas_Object* footer = evas_object_name_find(canvas, "footer");
+ *
+ * choicebox_aux_footer_handler(footer, "pagination", cur_page, total_pages);
+ * }
+ */
+void choicebox_aux_edje_footer_hadler(Evas_Object* footer, const char* part,
+ int cur_page, int total_pages);
+
+/*
+ * Sample implementation of Key_Down handler:
+ * - 1,2..,9,0 activate 0..10th item
+ * - Up/Down moves cursor up/down
+ * - Left/Right/Prior/Next switches page
+ * - Enter activates current item
+ *
+ * Note that Escape is not handled!
+ *
+ * Usage:
+ *
+ * void key_down_handler(void* param, Evas* e, Evas_Object* o, void* event_info)
+ * {
+ * Evas_Event_Key_down* ev = (Evas_Event_Key_Down*)event_info;
+ * / * custom processing as needed * /
+ *
+ * choicebox_aux_key_down_handler(o, ev);
+ * }
+ */
+
+void choicebox_aux_key_down_handler(Evas_Object* choicebox,
+ Evas_Event_Key_Down* ev);
#endif