Hi all, Got another two patches for the illume keyboard:
1: illume.compilewarnings.diff fixes the compiler warnings about implicit function declarations and also a type in e_md_win.c 2: The keyboard uses for the match/dict/layout popups a e_scrollpane with an e_ilist inside it. The calculation of the size of the ilist seem to go wrong (at least for me). The ilist is always a bit to large and thus the scrollframe always shows the scrollbars. In illume.e_widget_ilist.diff I changed it to use the e_widget_ilist instead, this solves the problem. On Mon, Dec 01, 2008 at 04:48:05PM +0100, I wrote: > Attached are two patches related to the illume keyboard: > - When the ctrl and/or alt key are pressed they can't be deselected > again by pressing them, illume.ctrlalt.diff fixes this. > - it is possible to open both the layout and dict/matches ilists > over each other. > With illume.lists.diff the other open lists are closed when a new > list is show. It also closes the matcheslist when a char is > entered/removed (though it probably would be beter to update the > matcheslist with the new matches). Didn't receive any reply on my earlier patches. I've attached them again, now I made them from the root of the trunk (instead of from the illume dir as I did earlier). kind regards, Peter van de Werken -- Everything fears time, but time fears the pyramids -- ancient Egyptian proverb
Index: e/src/modules/illume/e_mod_win.c =================================================================== --- e/src/modules/illume/e_mod_win.c (revision 38272) +++ e/src/modules/illume/e_mod_win.c (working copy) @@ -140,7 +140,7 @@ busycover = e_busycover_new(zone, e_module_dir_get(m)); flaunch = e_flaunch_new(zone, e_module_dir_get(m)); - e_flaunch_desktop_exec_callabck_set(flaunch, _desktop_run); + e_flaunch_desktop_exec_cb_set(flaunch, _desktop_run); handlers = eina_list_append (handlers, ecore_event_handler_add Index: e/src/modules/illume/e_simplelock.c =================================================================== --- e/src/modules/illume/e_simplelock.c (revision 38272) +++ e/src/modules/illume/e_simplelock.c (working copy) @@ -151,7 +151,7 @@ { Eina_List *managers, *l, *l2, *l3; - if (locks) return; + if (locks) return 1; for (l = e_manager_list(); l; l = l->next) { E_Manager *man; Index: e/src/modules/illume/e_mod_layout.c =================================================================== --- e/src/modules/illume/e_mod_layout.c (revision 38272) +++ e/src/modules/illume/e_mod_layout.c (working copy) @@ -3,6 +3,7 @@ #include "e_mod_layout.h" #include "e_kbd.h" #include "e_cfg.h" +#include "e_slipshelf.h" /* FIXME: THIS CODE IS UGLY. MUST FIX!!!!! */ Index: e/src/modules/illume/e_busycover.c =================================================================== --- e/src/modules/illume/e_busycover.c (revision 38272) +++ e/src/modules/illume/e_busycover.c (working copy) @@ -1,6 +1,7 @@ #include "e.h" #include "e_busycover.h" #include "e_cfg.h" +#include "e_slipshelf.h" // FIXME: make code work - place busycover in safe area // FIXME: make theme for it Index: e/src/modules/illume/e_cfg.c =================================================================== --- e/src/modules/illume/e_cfg.c (revision 38272) +++ e/src/modules/illume/e_cfg.c (working copy) @@ -1,6 +1,7 @@ #include "config.h" #include "e.h" #include "e_cfg.h" +#include "e_pwr.h" #include "e_slipshelf.h" #include "e_mod_win.h" Index: e/src/modules/illume/e_kbd_int.c =================================================================== --- e/src/modules/illume/e_kbd_int.c (revision 38272) +++ e/src/modules/illume/e_kbd_int.c (working copy) @@ -3,6 +3,7 @@ #include "e_kbd_int.h" #include "e_kbd_send.h" #include "e_cfg.h" +#include "e_slipshelf.h" enum { NORMAL = 0,
Index: e/src/modules/illume/e_kbd_int.c =================================================================== --- e/src/modules/illume/e_kbd_int.c (revision 38272) +++ e/src/modules/illume/e_kbd_int.c (working copy) @@ -1358,13 +1358,15 @@ } static void -_e_kbd_int_cb_dictlist_item_sel(void *data, void *data2) +_e_kbd_int_cb_dictlist_item_sel(void *data) { E_Kbd_Int *ki; const char *str; + int i; ki = data; - str = data2; + i = e_widget_ilist_selected_get(ki->dictlist.ilist_obj); + str = eina_list_nth(ki->dictlist.matches, i); e_kbd_buf_clear(ki->kbuf); if (ki->layout.state & (SHIFT | CTRL | ALT)) { @@ -1402,13 +1404,8 @@ "e/modules/kbd/match/default"); ki->dictlist.base_obj = o; - o = e_scrollframe_add(ki->dictlist.popup->evas); - edje_object_part_swallow(ki->dictlist.base_obj, "e.swallow.content", o); - evas_object_show(o); - ki->dictlist.scrollframe_obj = o; - - o = e_ilist_add(ki->dictlist.popup->evas); - e_ilist_selector_set(o, 1); + o = e_widget_ilist_add(ki->dictlist.popup->evas, 32 * e_scale, 32 * e_scale, NULL); + e_widget_ilist_selector_set(o, 1); e_ilist_freeze(o); ki->dictlist.ilist_obj = o; @@ -1442,8 +1439,8 @@ *pp = 0; str = evas_stringshare_add(file); ki->dictlist.matches = eina_list_append(ki->dictlist.matches, str); - e_ilist_append(o, NULL, p, 0, _e_kbd_int_cb_dictlist_item_sel, - NULL, ki, (char *)str); + e_widget_ilist_append(o, NULL, p, _e_kbd_int_cb_dictlist_item_sel, + ki, NULL); free(p); } } @@ -1481,8 +1478,8 @@ *pp = 0; str = evas_stringshare_add(file); ki->dictlist.matches = eina_list_append(ki->dictlist.matches, str); - e_ilist_append(o, NULL, p, 0, _e_kbd_int_cb_dictlist_item_sel, - NULL, ki, (char *)str); + e_widget_ilist_append(o, NULL, p, _e_kbd_int_cb_dictlist_item_sel, + ki, NULL); free(p); } } @@ -1491,26 +1488,19 @@ } ecore_list_destroy(files); } - e_ilist_thaw(o); + e_widget_ilist_thaw(o); + e_widget_ilist_go(o); - e_ilist_min_size_get(o, &mw, &mh); - evas_object_resize(o, ki->win->w, mh); - e_scrollframe_child_set(ki->dictlist.scrollframe_obj, o); - - e_scrollframe_child_viewport_size_get(ki->dictlist.scrollframe_obj, &vw, &vh); - evas_object_geometry_get(ki->dictlist.scrollframe_obj, NULL, NULL, &w, &h); - if (mw > vw) mw = mw + (w - vw); - else if (mw < vw) evas_object_resize(o, vw, mh); - evas_object_show(o); - - edje_extern_object_min_size_set(ki->dictlist.scrollframe_obj, mw, mh); + e_widget_ilist_preferred_size_get(o, &mw, &mh); + + edje_extern_object_min_size_set(ki->dictlist.ilist_obj, mw, mh); edje_object_part_swallow(ki->dictlist.base_obj, "e.swallow.content", - ki->dictlist.scrollframe_obj); + ki->dictlist.ilist_obj); edje_object_size_min_calc(ki->dictlist.base_obj, &mw, &mh); - edje_extern_object_min_size_set(ki->dictlist.scrollframe_obj, 0, 0); + edje_extern_object_min_size_set(ki->dictlist.ilist_obj, 0, 0); edje_object_part_swallow(ki->dictlist.base_obj, "e.swallow.content", - ki->dictlist.scrollframe_obj); + ki->dictlist.ilist_obj); e_slipshelf_safe_app_region_get(ki->win->border->zone, &sx, &sy, &sw, &sh); mw = ki->win->w; @@ -1538,13 +1528,13 @@ } static void -_e_kbd_int_cb_matchlist_item_sel(void *data, void *data2) +_e_kbd_int_cb_matchlist_item_sel(void *data) { E_Kbd_Int *ki; const char *str; ki = data; - str = data2; + str = e_widget_ilist_selected_label_get(ki->matchlist.ilist_obj); _e_kbd_int_string_send(ki, str); e_kbd_buf_clear(ki->kbuf); e_kbd_send_keysym_press("space", 0); @@ -1574,16 +1564,12 @@ "e/modules/kbd/match/default"); ki->matchlist.base_obj = o; - o = e_scrollframe_add(ki->matchlist.popup->evas); + o = e_widget_ilist_add(ki->matchlist.popup->evas, 32 * e_scale, 32 * e_scale, NULL); + e_widget_ilist_selector_set(o, 1); + ki->matchlist.ilist_obj = o; edje_object_part_swallow(ki->matchlist.base_obj, "e.swallow.content", o); evas_object_show(o); - ki->matchlist.scrollframe_obj = o; - o = e_ilist_add(ki->matchlist.popup->evas); - e_ilist_selector_set(o, 1); - e_ilist_freeze(o); - ki->matchlist.ilist_obj = o; - for (l = e_kbd_buf_string_matches_get(ki->kbuf); l; l = l->next) { const char *str; @@ -1595,36 +1581,29 @@ { str = evas_stringshare_add(str); ki->matchlist.matches = eina_list_append(ki->matchlist.matches, str); - e_ilist_append(o, NULL, str, 0, _e_kbd_int_cb_matchlist_item_sel, - NULL, ki, (char *)str); + e_widget_ilist_append(o, NULL, str, _e_kbd_int_cb_matchlist_item_sel, + ki, NULL); } } str = l->data; str = evas_stringshare_add(str); ki->matchlist.matches = eina_list_append(ki->matchlist.matches, str); - e_ilist_append(o, NULL, str, 0, _e_kbd_int_cb_matchlist_item_sel, - NULL, ki, (char *)str); + e_widget_ilist_append(o, NULL, str, _e_kbd_int_cb_matchlist_item_sel, + ki, NULL); } - e_ilist_thaw(o); + e_widget_ilist_thaw(o); + e_widget_ilist_go(o); - e_ilist_min_size_get(o, &mw, &mh); - evas_object_resize(o, ki->win->w, mh); - e_scrollframe_child_set(ki->matchlist.scrollframe_obj, o); + e_widget_ilist_preferred_size_get(o, &mw, &mh); - e_scrollframe_child_viewport_size_get(ki->matchlist.scrollframe_obj, &vw, &vh); - evas_object_geometry_get(ki->matchlist.scrollframe_obj, NULL, NULL, &w, &h); - if (mw > vw) mw = mw + (w - vw); - else if (mw < vw) evas_object_resize(o, vw, mh); - evas_object_show(o); - - edje_extern_object_min_size_set(ki->matchlist.scrollframe_obj, mw, mh); + edje_extern_object_min_size_set(ki->matchlist.ilist_obj, mw, mh); edje_object_part_swallow(ki->matchlist.base_obj, "e.swallow.content", - ki->matchlist.scrollframe_obj); + ki->matchlist.ilist_obj); edje_object_size_min_calc(ki->matchlist.base_obj, &mw, &mh); - edje_extern_object_min_size_set(ki->matchlist.scrollframe_obj, 0, 0); + edje_extern_object_min_size_set(ki->matchlist.ilist_obj, 0, 0); edje_object_part_swallow(ki->matchlist.base_obj, "e.swallow.content", - ki->matchlist.scrollframe_obj); + ki->matchlist.ilist_obj); e_slipshelf_safe_app_region_get(ki->win->border->zone, &sx, &sy, &sw, &sh); mw = ki->win->w; @@ -1674,13 +1653,15 @@ } static void -_e_kbd_int_cb_layoutlist_item_sel(void *data, void *data2) +_e_kbd_int_cb_layoutlist_item_sel(void *data) { E_Kbd_Int *ki; E_Kbd_Int_Layout *kil; + int i; ki = data; - kil = data2; + i = e_widget_ilist_selected_get(ki->layoutlist.ilist_obj); + kil = eina_list_nth(ki->layouts, i); _e_kbd_int_layout_select(ki, kil); _e_kbd_int_layoutlist_down(ki); } @@ -1690,7 +1671,7 @@ { Eina_List *l; Evas_Object *o, *o2; - Evas_Coord w, h, mw, mh, vw, vh; + Evas_Coord mw, mh; int sx, sy, sw, sh; if (ki->layoutlist.popup) return; @@ -1701,16 +1682,13 @@ "e/modules/kbd/match/default"); ki->layoutlist.base_obj = o; - o = e_scrollframe_add(ki->layoutlist.popup->evas); + o = e_widget_ilist_add(ki->layoutlist.popup->evas, 32 * e_scale, 32 * e_scale, NULL); + ki->layoutlist.ilist_obj = o; + e_widget_ilist_selector_set(o, 1); edje_object_part_swallow(ki->layoutlist.base_obj, "e.swallow.content", o); evas_object_show(o); - ki->layoutlist.scrollframe_obj = o; - o = e_ilist_add(ki->layoutlist.popup->evas); - e_ilist_selector_set(o, 1); - e_ilist_freeze(o); - ki->layoutlist.ilist_obj = o; - + e_widget_ilist_freeze(o); for (l = ki->layouts; l; l = l->next) { E_Kbd_Int_Layout *kil; @@ -1731,29 +1709,23 @@ e_icon_file_set(o2, kil->icon); } evas_object_show(o2); - e_ilist_append(o, o2, kil->name, 0, _e_kbd_int_cb_layoutlist_item_sel, - NULL, ki, kil); + e_widget_ilist_append(o, o2, kil->name, + _e_kbd_int_cb_layoutlist_item_sel, ki, NULL); } - e_ilist_thaw(o); + e_widget_ilist_thaw(o); + e_widget_ilist_go(o); - e_ilist_min_size_get(o, &mw, &mh); - evas_object_resize(o, ki->win->w, mh); - e_scrollframe_child_set(ki->layoutlist.scrollframe_obj, o); + e_widget_ilist_preferred_size_get(o, &mw, &mh); - e_scrollframe_child_viewport_size_get(ki->layoutlist.scrollframe_obj, &vw, &vh); - evas_object_geometry_get(ki->layoutlist.scrollframe_obj, NULL, NULL, &w, &h); - if (mw > vw) mw = mw + (w - vw); - else if (mw < vw) evas_object_resize(o, vw, mh); - evas_object_show(o); - - edje_extern_object_min_size_set(ki->layoutlist.scrollframe_obj, mw, mh); + edje_extern_object_min_size_set(ki->layoutlist.ilist_obj, mw, mh); edje_object_part_swallow(ki->layoutlist.base_obj, "e.swallow.content", - ki->layoutlist.scrollframe_obj); + ki->layoutlist.ilist_obj); + edje_object_size_min_calc(ki->layoutlist.base_obj, &mw, &mh); - edje_extern_object_min_size_set(ki->layoutlist.scrollframe_obj, 0, 0); + edje_extern_object_min_size_set(ki->layoutlist.ilist_obj, 0, 0); edje_object_part_swallow(ki->layoutlist.base_obj, "e.swallow.content", - ki->layoutlist.scrollframe_obj); + ki->layoutlist.ilist_obj); e_slipshelf_safe_app_region_get(ki->win->border->zone, &sx, &sy, &sw, &sh); mw = ki->win->w; Index: e/src/modules/illume/e_kbd_int.h =================================================================== --- e/src/modules/illume/e_kbd_int.h (revision 38272) +++ e/src/modules/illume/e_kbd_int.h (working copy) @@ -49,16 +49,16 @@ } down; struct { E_Popup *popup; - Evas_Object *base_obj, *scrollframe_obj, *ilist_obj; + Evas_Object *base_obj, *ilist_obj; } layoutlist; struct { E_Popup *popup; - Evas_Object *base_obj, *scrollframe_obj, *ilist_obj; + Evas_Object *base_obj, *ilist_obj; Eina_List *matches; } matchlist; struct { E_Popup *popup; - Evas_Object *base_obj, *scrollframe_obj, *ilist_obj; + Evas_Object *base_obj, *ilist_obj; Eina_List *matches; } dictlist; struct {
Index: e/src/modules/illume/e_kbd_int.c =================================================================== --- e/src/modules/illume/e_kbd_int.c (revision 38272) +++ e/src/modules/illume/e_kbd_int.c (working copy) @@ -376,7 +376,6 @@ else ki->layout.state |= CTRL; if (e_kbd_buf_actual_string_get(ki->kbuf)) _e_kbd_int_buf_send(ki); e_kbd_buf_clear(ki->kbuf); - ki->layout.state |= CTRL; _e_kbd_int_layout_state_update(ki); _e_kbd_int_matches_update(ki); return; @@ -387,7 +386,6 @@ else ki->layout.state |= ALT; if (e_kbd_buf_actual_string_get(ki->kbuf)) _e_kbd_int_buf_send(ki); e_kbd_buf_clear(ki->kbuf); - ki->layout.state |= ALT; _e_kbd_int_layout_state_update(ki); _e_kbd_int_matches_update(ki); return;
Index: e/src/modules/illume/e_kbd_int.c =================================================================== --- e/src/modules/illume/e_kbd_int.c (revision 38272) +++ e/src/modules/illume/e_kbd_int.c (working copy) @@ -348,6 +348,8 @@ edje_extern_object_min_size_set(ki->box_obj, 0, mh); edje_object_part_swallow(ki->base_obj, "e.swallow.label", ki->box_obj); evas_event_thaw(ki->win->evas); + + _e_kbd_int_matchlist_down(ki); } static void @@ -1522,6 +1524,9 @@ evas_object_show(ki->dictlist.base_obj); e_popup_edje_bg_object_set(ki->dictlist.popup, ki->dictlist.base_obj); e_popup_show(ki->dictlist.popup); + + _e_kbd_int_layoutlist_down(ki); + _e_kbd_int_matchlist_down(ki); } static void @@ -1636,6 +1641,9 @@ evas_object_show(ki->matchlist.base_obj); e_popup_edje_bg_object_set(ki->matchlist.popup, ki->matchlist.base_obj); e_popup_show(ki->matchlist.popup); + + _e_kbd_int_dictlist_down(ki); + _e_kbd_int_layoutlist_down(ki); } static void @@ -1765,6 +1773,9 @@ evas_object_show(ki->layoutlist.base_obj); e_popup_edje_bg_object_set(ki->layoutlist.popup, ki->layoutlist.base_obj); e_popup_show(ki->layoutlist.popup); + + _e_kbd_int_dictlist_down(ki); + _e_kbd_int_matchlist_down(ki); } static void
signature.asc
Description: Digital signature
------------------------------------------------------------------------------
_______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel