Re: [E-devel] [EGIT] [misc/entrance] master 02/02: entrance: Implemented session to use in entrance_conf_user.
if user have no previous session, the pointer lsess will be null. So you will segfault 2014-04-09 9:42 GMT+02:00 Marcel Hollerbach marcel.hollerb...@stzedn.de: bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/misc/entrance.git/commit/?id=1a0e7a59daaebd294df7d0a521fd6ae9fe81cf3c commit 1a0e7a59daaebd294df7d0a521fd6ae9fe81cf3c Author: Marcel Hollerbach marcel.hollerb...@stzedn.de Date: Wed Apr 9 09:41:11 2014 +0200 entrance: Implemented session to use in entrance_conf_user. --- src/bin/entrance_conf_user.c | 58 +++- 1 file changed, 57 insertions(+), 1 deletion(-) diff --git a/src/bin/entrance_conf_user.c b/src/bin/entrance_conf_user.c index 111ebf0..12eb1cd 100644 --- a/src/bin/entrance_conf_user.c +++ b/src/bin/entrance_conf_user.c @@ -100,10 +100,64 @@ _entrance_conf_user_icon_fill_cb(void *data, Elm_Object_Item *it) return EINA_FALSE; } +static void +_entrance_conf_session_update(Evas_Object *session_sel) +{ + const Eina_List *sessions, *node; + Entrance_Xsession *session; + const char *icon = NULL; + Evas_Object *ic; + + sessions = entrance_gui_xsessions_get(); + //search the correct struct + elm_object_text_set(session_sel, _entrance_int_conf_user-lsess); + EINA_LIST_FOREACH(sessions, node, session) + { +if (!strcmp(_entrance_int_conf_user-lsess,session-name)) + { + icon = session-icon; + } + } + //create the icon + ic = elm_object_part_content_get(session_sel, icon); + if (icon) + { +if (!ic) + ic = elm_icon_add(session_sel); +elm_image_file_set(ic, icon, NULL); +elm_object_part_content_set(session_sel, icon, ic); + } + else + { +if (ic) + evas_object_del(ic); +elm_object_part_content_set(ic, icon, NULL); + } + +} + +static void +_entrance_conf_session_sel(void *data EINA_UNUSED, Evas_Object *obj, void *event_info) +{ + Entrance_Xsession *exs; + exs = elm_object_item_data_get(event_info); + _entrance_int_conf_user-lsess = exs-name; + _entrance_conf_session_update(obj); + entrance_conf_changed(); +} + static char * _entrance_conf_session_text_get(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, const char *part EINA_UNUSED) { - return NULL; + Entrance_Xsession *exs; + exs = data; + if (!part) + return strdup(exs-name); + else + if (exs-icon) + return strdup(exs-icon); + else + return NULL; } static Evas_Object * @@ -336,6 +390,8 @@ _entrance_conf_user_build_cb(Evas_Object *t, Entrance_Login *eu) elm_table_pack(t, o, 1, j, 1, 1); evas_object_show(o); ++j; + entrance_fill(o, _entrance_session_fill, entrance_gui_xsessions_get(), NULL, _entrance_conf_session_sel, NULL); + _entrance_conf_session_update(o); /* Remember last session */ o = elm_label_add(t); -- -- Michaël Bouchaud (yoz) y...@efl.so -- Put Bad Developers to Shame Dominate Development with Jenkins Continuous Integration Continuously Automate Build, Test Deployment Start a new project now. Try Jenkins in the cloud. http://p.sf.net/sfu/13600_Cloudbees ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [misc/entrance] master 02/02: entrance: Implemented session to use in entrance_conf_user.
And about text_get func, check if we want the part icon to return the path of icon. That would be better 2014-04-09 9:47 GMT+02:00 Michaël Bouchaud y...@efl.so: if user have no previous session, the pointer lsess will be null. So you will segfault 2014-04-09 9:42 GMT+02:00 Marcel Hollerbach marcel.hollerb...@stzedn.de: bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/misc/entrance.git/commit/?id=1a0e7a59daaebd294df7d0a521fd6ae9fe81cf3c commit 1a0e7a59daaebd294df7d0a521fd6ae9fe81cf3c Author: Marcel Hollerbach marcel.hollerb...@stzedn.de Date: Wed Apr 9 09:41:11 2014 +0200 entrance: Implemented session to use in entrance_conf_user. --- src/bin/entrance_conf_user.c | 58 +++- 1 file changed, 57 insertions(+), 1 deletion(-) diff --git a/src/bin/entrance_conf_user.c b/src/bin/entrance_conf_user.c index 111ebf0..12eb1cd 100644 --- a/src/bin/entrance_conf_user.c +++ b/src/bin/entrance_conf_user.c @@ -100,10 +100,64 @@ _entrance_conf_user_icon_fill_cb(void *data, Elm_Object_Item *it) return EINA_FALSE; } +static void +_entrance_conf_session_update(Evas_Object *session_sel) +{ + const Eina_List *sessions, *node; + Entrance_Xsession *session; + const char *icon = NULL; + Evas_Object *ic; + + sessions = entrance_gui_xsessions_get(); + //search the correct struct + elm_object_text_set(session_sel, _entrance_int_conf_user-lsess); + EINA_LIST_FOREACH(sessions, node, session) + { +if (!strcmp(_entrance_int_conf_user-lsess,session-name)) + { + icon = session-icon; + } + } + //create the icon + ic = elm_object_part_content_get(session_sel, icon); + if (icon) + { +if (!ic) + ic = elm_icon_add(session_sel); +elm_image_file_set(ic, icon, NULL); +elm_object_part_content_set(session_sel, icon, ic); + } + else + { +if (ic) + evas_object_del(ic); +elm_object_part_content_set(ic, icon, NULL); + } + +} + +static void +_entrance_conf_session_sel(void *data EINA_UNUSED, Evas_Object *obj, void *event_info) +{ + Entrance_Xsession *exs; + exs = elm_object_item_data_get(event_info); + _entrance_int_conf_user-lsess = exs-name; + _entrance_conf_session_update(obj); + entrance_conf_changed(); +} + static char * _entrance_conf_session_text_get(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, const char *part EINA_UNUSED) { - return NULL; + Entrance_Xsession *exs; + exs = data; + if (!part) + return strdup(exs-name); + else + if (exs-icon) + return strdup(exs-icon); + else + return NULL; } static Evas_Object * @@ -336,6 +390,8 @@ _entrance_conf_user_build_cb(Evas_Object *t, Entrance_Login *eu) elm_table_pack(t, o, 1, j, 1, 1); evas_object_show(o); ++j; + entrance_fill(o, _entrance_session_fill, entrance_gui_xsessions_get(), NULL, _entrance_conf_session_sel, NULL); + _entrance_conf_session_update(o); /* Remember last session */ o = elm_label_add(t); -- -- Michaël Bouchaud (yoz) y...@efl.so -- Michaël Bouchaud (yoz) y...@efl.so -- Put Bad Developers to Shame Dominate Development with Jenkins Continuous Integration Continuously Automate Build, Test Deployment Start a new project now. Try Jenkins in the cloud. http://p.sf.net/sfu/13600_Cloudbees ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [misc/entrance] master 02/02: entrance: Implemented session to use in entrance_conf_user.
Both are done! On Wed, Apr 09, 2014 at 09:51:04AM +0200, Michaël Bouchaud wrote: And about text_get func, check if we want the part icon to return the path of icon. That would be better 2014-04-09 9:47 GMT+02:00 Michaël Bouchaud y...@efl.so: if user have no previous session, the pointer lsess will be null. So you will segfault 2014-04-09 9:42 GMT+02:00 Marcel Hollerbach marcel.hollerb...@stzedn.de: bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/misc/entrance.git/commit/?id=1a0e7a59daaebd294df7d0a521fd6ae9fe81cf3c commit 1a0e7a59daaebd294df7d0a521fd6ae9fe81cf3c Author: Marcel Hollerbach marcel.hollerb...@stzedn.de Date: Wed Apr 9 09:41:11 2014 +0200 entrance: Implemented session to use in entrance_conf_user. --- src/bin/entrance_conf_user.c | 58 +++- 1 file changed, 57 insertions(+), 1 deletion(-) diff --git a/src/bin/entrance_conf_user.c b/src/bin/entrance_conf_user.c index 111ebf0..12eb1cd 100644 --- a/src/bin/entrance_conf_user.c +++ b/src/bin/entrance_conf_user.c @@ -100,10 +100,64 @@ _entrance_conf_user_icon_fill_cb(void *data, Elm_Object_Item *it) return EINA_FALSE; } +static void +_entrance_conf_session_update(Evas_Object *session_sel) +{ + const Eina_List *sessions, *node; + Entrance_Xsession *session; + const char *icon = NULL; + Evas_Object *ic; + + sessions = entrance_gui_xsessions_get(); + //search the correct struct + elm_object_text_set(session_sel, _entrance_int_conf_user-lsess); + EINA_LIST_FOREACH(sessions, node, session) + { +if (!strcmp(_entrance_int_conf_user-lsess,session-name)) + { + icon = session-icon; + } + } + //create the icon + ic = elm_object_part_content_get(session_sel, icon); + if (icon) + { +if (!ic) + ic = elm_icon_add(session_sel); +elm_image_file_set(ic, icon, NULL); +elm_object_part_content_set(session_sel, icon, ic); + } + else + { +if (ic) + evas_object_del(ic); +elm_object_part_content_set(ic, icon, NULL); + } + +} + +static void +_entrance_conf_session_sel(void *data EINA_UNUSED, Evas_Object *obj, void *event_info) +{ + Entrance_Xsession *exs; + exs = elm_object_item_data_get(event_info); + _entrance_int_conf_user-lsess = exs-name; + _entrance_conf_session_update(obj); + entrance_conf_changed(); +} + static char * _entrance_conf_session_text_get(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, const char *part EINA_UNUSED) { - return NULL; + Entrance_Xsession *exs; + exs = data; + if (!part) + return strdup(exs-name); + else + if (exs-icon) + return strdup(exs-icon); + else + return NULL; } static Evas_Object * @@ -336,6 +390,8 @@ _entrance_conf_user_build_cb(Evas_Object *t, Entrance_Login *eu) elm_table_pack(t, o, 1, j, 1, 1); evas_object_show(o); ++j; + entrance_fill(o, _entrance_session_fill, entrance_gui_xsessions_get(), NULL, _entrance_conf_session_sel, NULL); + _entrance_conf_session_update(o); /* Remember last session */ o = elm_label_add(t); -- -- Michaël Bouchaud (yoz) y...@efl.so -- Michaël Bouchaud (yoz) y...@efl.so -- Put Bad Developers to Shame Dominate Development with Jenkins Continuous Integration Continuously Automate Build, Test Deployment Start a new project now. Try Jenkins in the cloud. http://p.sf.net/sfu/13600_Cloudbees ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Put Bad Developers to Shame Dominate Development with Jenkins Continuous Integration Continuously Automate Build, Test Deployment Start a new project now. Try Jenkins in the cloud. http://p.sf.net/sfu/13600_Cloudbees ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel