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 [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
