Re: [E-devel] E SVN: discomfitor trunk/elementary/src/bin
On 03/03/2012 02:29 AM, Daniel Juyung Seo wrote: Hello, On Fri, Mar 2, 2012 at 5:34 AM, Leif Middelschulte leif.middelschu...@gmail.com wrote: Since the order is important, why not use single select and dnd to sort the list? Like this, the reason for multiselect isn't communicated at all. Only people who know that elm has fallbacks could conclude this. Agreed. This is a better solution :) Daniel Juyung Seo (SeoZ) Agreed. dh 2012/3/1 Enlightenment SVNno-re...@enlightenment.org: Log: @68591: multiselect here is intentional to allow for theme overlays try asking in irc or mailing list before randomly changing things like this. Author: discomfitor Date: 2012-03-01 12:16:28 -0800 (Thu, 01 Mar 2012) New Revision: 68592 Trac: http://trac.enlightenment.org/e/changeset/68592 Modified: trunk/elementary/src/bin/config.c Modified: trunk/elementary/src/bin/config.c === -- Virtualization Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] E SVN: discomfitor trunk/elementary/src/bin
Hello, On Fri, Mar 2, 2012 at 5:34 AM, Leif Middelschulte leif.middelschu...@gmail.com wrote: Since the order is important, why not use single select and dnd to sort the list? Like this, the reason for multiselect isn't communicated at all. Only people who know that elm has fallbacks could conclude this. Agreed. This is a better solution :) Daniel Juyung Seo (SeoZ) 2012/3/1 Enlightenment SVN no-re...@enlightenment.org: Log: @68591: multiselect here is intentional to allow for theme overlays try asking in irc or mailing list before randomly changing things like this. Author: discomfitor Date: 2012-03-01 12:16:28 -0800 (Thu, 01 Mar 2012) New Revision: 68592 Trac: http://trac.enlightenment.org/e/changeset/68592 Modified: trunk/elementary/src/bin/config.c Modified: trunk/elementary/src/bin/config.c === --- trunk/elementary/src/bin/config.c 2012-03-01 20:12:47 UTC (rev 68591) +++ trunk/elementary/src/bin/config.c 2012-03-01 20:16:28 UTC (rev 68592) @@ -1335,6 +1335,7 @@ evas_object_show(pd); li = elm_list_add(win); + elm_list_multi_select_set(li, EINA_TRUE); evas_object_size_hint_weight_set(li, 1.0, 1.0); evas_object_size_hint_align_set(li, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_content_set(pd, li); -- Virtualization Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ ___ enlightenment-svn mailing list enlightenment-...@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-svn -- Leif -- Virtualization Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Virtualization Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] E SVN: discomfitor trunk/elementary/src/bin
Since the order is important, why not use single select and dnd to sort the list? Like this, the reason for multiselect isn't communicated at all. Only people who know that elm has fallbacks could conclude this. 2012/3/1 Enlightenment SVN no-re...@enlightenment.org: Log: @68591: multiselect here is intentional to allow for theme overlays try asking in irc or mailing list before randomly changing things like this. Author: discomfitor Date: 2012-03-01 12:16:28 -0800 (Thu, 01 Mar 2012) New Revision: 68592 Trac: http://trac.enlightenment.org/e/changeset/68592 Modified: trunk/elementary/src/bin/config.c Modified: trunk/elementary/src/bin/config.c === --- trunk/elementary/src/bin/config.c 2012-03-01 20:12:47 UTC (rev 68591) +++ trunk/elementary/src/bin/config.c 2012-03-01 20:16:28 UTC (rev 68592) @@ -1335,6 +1335,7 @@ evas_object_show(pd); li = elm_list_add(win); + elm_list_multi_select_set(li, EINA_TRUE); evas_object_size_hint_weight_set(li, 1.0, 1.0); evas_object_size_hint_align_set(li, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_content_set(pd, li); -- Virtualization Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ ___ enlightenment-svn mailing list enlightenment-...@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-svn -- Leif -- Virtualization Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] E SVN: discomfitor trunk/elementary/src/bin
On Sun, 17 Jul 2011 23:51:45 -0700 Enlightenment SVN no-re...@enlightenment.org wrote: Log: more elm_config features! theme list will now autoselect your current theme(s) on load. it might even select them correctly! overlay themes sometimes don't get applied to the sample for some reason, but they will still be applied when 'use theme' is clicked Author: discomfitor Date: 2011-07-17 23:51:45 -0700 (Sun, 17 Jul 2011) New Revision: 61466 Trac: http://trac.enlightenment.org/e/changeset/61466 Modified: trunk/elementary/src/bin/config.c Modified: trunk/elementary/src/bin/config.c === --- trunk/elementary/src/bin/config.c 2011-07-18 06:24:34 UTC (rev 61465) +++ trunk/elementary/src/bin/config.c 2011-07-18 06:51:45 UTC (rev 61466) @@ -1073,17 +1073,19 @@ } static void -_theme_sel(void*data, +_theme_sel(void*data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__) { - Theme *t = data; Evas_Object *win = elm_object_top_widget_get(obj); Evas_Object *sample = evas_object_data_get(win, theme_preview); Elm_Theme *th, *sth; - const char *defth, *rest; + Elm_List_Item *it; + const char *defth; Eina_Strbuf *newth; + Eina_List *l; + if (!sample) return; tsel = elm_list_selected_items_get(obj); sth = elm_object_theme_get(sample); defth = elm_theme_get(sth); @@ -1095,15 +1097,13 @@ eina_strbuf_free(newth); return; } - if (eina_list_count(tsel) 1) - eina_strbuf_append_printf(newth, %s:%s, t-name, defth); - else + EINA_LIST_REVERSE_FOREACH((Eina_List*)tsel, l, it) { -rest = strchr(defth, ':'); -if (!rest) - eina_strbuf_append(newth, t-name); -else - eina_strbuf_append_printf(newth, %s%s, t-name, rest); +Theme *t = elm_list_item_data_get(it); +eina_strbuf_append_printf(newth, %s:, t-name); +if ((!l-prev) strcmp(t-name, default)) + /* ensure default theme is always there for fallback */ + eina_strbuf_append(newth, default); } elm_theme_set(th, eina_strbuf_string_get(newth)); eina_strbuf_free(newth); @@ -1266,6 +1266,10 @@ Evas_Object *tb, *rc, *sc, *sp, *li, *pd, *fr, *bt, *sample; Eina_List *list, *l; char *th, *s, *ext; + Elm_Theme *d; + Elm_List_Item *it, *def_it; + const char *theme_name, *sep[20]; + unsigned int x; tb = elm_table_add(win); evas_object_size_hint_weight_set(tb, 1.0, 1.0); @@ -1298,10 +1302,18 @@ evas_object_show(li); list = elm_theme_name_available_list_new(); + d = elm_theme_default_get(); + theme_name = elm_theme_get(d); + for (x = 1, sep[0] = theme_name; x sizeof(sep) / sizeof(sep[0]); x++) + { +sep[x] = strchr(sep[x - 1] + 1, ':'); +if (!sep[x]) break; + } EINA_LIST_FOREACH(list, l, th) { Theme *t; - +int y; + t = calloc(1, sizeof(Theme)); t-name = eina_stringshare_add(th); s = elm_theme_list_item_path_get(th, (t-in_search_path)); @@ -1337,8 +1349,23 @@ t-label = eina_stringshare_add(s); } themes = eina_list_append(themes, t); -elm_list_item_append(li, t-label, NULL, NULL, _theme_sel, t); +it = elm_list_item_append(li, t-label, NULL, NULL, NULL, t); +if (!strcmp(t-name, default)) def_it = it; +for (y = x - 1 /* ignore default e theme */; y 0; y--) + { + const char *start = (sep[y - 1][0] == ':') ? sep[y - 1] + 1 : sep[y - 1]; + unsigned int len = (unsigned int)(sep[y] - start); + if (strncmp(start , t-name, len) || (strlen(t-name) != len)) continue; + + if (!elm_list_item_selected_get(it)) + elm_list_item_selected_set(it, EINA_TRUE); + break; + } } + if (!elm_list_selected_items_get(li)) + elm_list_item_selected_set(def_it, EINA_TRUE); + evas_object_smart_callback_add(li, selected, _theme_sel, NULL); + evas_object_smart_callback_add(li, unselected, _theme_sel, NULL); elm_theme_name_available_list_free(list); elm_list_go(li); this sort of does the smart selection that we were talking about. it's a little buggy wrt overlay themes + preview, but the rest of it works so it's close enough for me since I'm probably the only one who uses an overlay theme -- Mike Blumenkrantz Zentific: Coding in binary since '10. -- AppSumo Presents a FREE Video for the SourceForge Community by Eric Ries, the creator of the Lean Startup Methodology on Lean Startup Secrets Revealed. This video shows you how to validate your ideas, optimize your ideas and identify your business
Re: [E-devel] E SVN: discomfitor trunk/elementary/src/bin
On Sat, 16 Jul 2011 10:48:53 -0400 Mike Blumenkrantz m...@zentific.com said: On Sat, 16 Jul 2011 07:45:41 -0700 Enlightenment SVN no-re...@enlightenment.org wrote: Log: elm_config gains a new feature: multitheme selection! themes are added in the order of selection, so to use an overlay for a theme you would select the base theme first, then the overlay part. then just click use theme and zooon Author: discomfitor Date: 2011-07-16 07:45:41 -0700 (Sat, 16 Jul 2011) New Revision: 61426 Trac: http://trac.enlightenment.org/e/changeset/61426 Modified: trunk/elementary/src/bin/config.c Modified: trunk/elementary/src/bin/config.c === --- trunk/elementary/src/bin/config.c 2011-07-16 14:27:33 UTC (rev 61425) +++ trunk/elementary/src/bin/config.c2011-07-16 14:45:41 UTC (rev 61426) @@ -17,7 +17,7 @@ Eina_Bool in_search_path; }; -static Theme *tsel = NULL; +static const Eina_List *tsel = NULL; static Eina_List *themes = NULL; struct _Elm_Text_Class_Data @@ -1063,28 +1063,13 @@ void *event_info __UNUSED__) { const char *defth; - char *newth; - Theme *t = tsel; + Elm_Theme *th; + Evas_Object *win = elm_object_top_widget_get(obj); + Evas_Object *sample = evas_object_data_get(win, theme_preview); - if (!t) return; - defth = elm_theme_get(NULL); - newth = malloc(strlen(defth) + 1 + strlen(t-name) + 1); - if (newth) - { -char *rest; - -newth[0] = 0; -rest = strchr(defth, ':'); -if (!rest) - strcpy(newth, t-name); -else - { - strcpy(newth, t-name); - strcat(newth, rest); - } -elm_theme_all_set(newth); -free(newth); - } + th = elm_object_theme_get(sample); + defth = elm_theme_get(th); + elm_theme_all_set(defth); } static void @@ -1095,30 +1080,33 @@ Theme *t = data; Evas_Object *win = elm_object_top_widget_get(obj); Evas_Object *sample = evas_object_data_get(win, theme_preview); - Elm_Theme *th; - const char *defth; - char *newth; + Elm_Theme *th, *sth; + const char *defth, *rest; + Eina_Strbuf *newth; - tsel = t; - defth = elm_theme_get(NULL); - newth = malloc(strlen(defth) + 1 + strlen(t-name) + 1); + tsel = elm_list_selected_items_get(obj); + sth = elm_object_theme_get(sample); + defth = elm_theme_get(sth); + newth = eina_strbuf_new(); + EINA_SAFETY_ON_NULL_RETURN(newth); th = elm_theme_new(); - if (newth) + if (!th) { -char *rest; - -newth[0] = 0; +eina_strbuf_free(newth); +return; + } + if (eina_list_count(tsel) 1) + eina_strbuf_append_printf(newth, %s:%s, t-name, defth); + else + { rest = strchr(defth, ':'); if (!rest) - strcpy(newth, t-name); + eina_strbuf_append(newth, t-name); else - { - strcpy(newth, t-name); - strcat(newth, rest); - } -elm_theme_set(th, newth); -free(newth); + eina_strbuf_append_printf(newth, %s%s, t-name, rest); } + elm_theme_set(th, eina_strbuf_string_get(newth)); + eina_strbuf_free(newth); elm_object_theme_set(sample, th); elm_theme_free(th); } @@ -1303,6 +1291,7 @@ evas_object_show(pd); li = elm_list_add(win); + elm_list_multi_select_set(li, EINA_TRUE); evas_object_size_hint_weight_set(li, 1.0, 1.0); evas_object_size_hint_align_set(li, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_frame_content_set(pd, li); now it is possible to use theme overlays such as darkness-desktop with great ease! but with great ease comes great responsibility, so don't go selecting all the themes at once... not sure we want multiselect... as ORDER is important when defining multiple themes... which one comes first etc. ... so you need an advanced select mode to do multiselect AND ordering. not hard to do... just multiselect as it stands is like giving you ls and not rm. :) -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- AppSumo Presents a FREE Video for the SourceForge Community by Eric Ries, the creator of the Lean Startup Methodology on Lean Startup Secrets Revealed. This video shows you how to validate your ideas, optimize your ideas and identify your business strategy. http://p.sf.net/sfu/appsumosfdev2dev ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net
Re: [E-devel] E SVN: discomfitor trunk/elementary/src/bin
On Sun, 17 Jul 2011 21:37:39 +0900 Carsten Haitzler (The Rasterman) ras...@rasterman.com wrote: On Sat, 16 Jul 2011 10:48:53 -0400 Mike Blumenkrantz m...@zentific.com said: On Sat, 16 Jul 2011 07:45:41 -0700 Enlightenment SVN no-re...@enlightenment.org wrote: Log: elm_config gains a new feature: multitheme selection! themes are added in the order of selection, so to use an overlay for a theme you would select the base theme first, then the overlay part. then just click use theme and zooon Author: discomfitor Date: 2011-07-16 07:45:41 -0700 (Sat, 16 Jul 2011) New Revision: 61426 Trac: http://trac.enlightenment.org/e/changeset/61426 Modified: trunk/elementary/src/bin/config.c Modified: trunk/elementary/src/bin/config.c === --- trunk/elementary/src/bin/config.c 2011-07-16 14:27:33 UTC (rev 61425) +++ trunk/elementary/src/bin/config.c 2011-07-16 14:45:41 UTC (rev 61426) @@ -17,7 +17,7 @@ Eina_Bool in_search_path; }; -static Theme *tsel = NULL; +static const Eina_List *tsel = NULL; static Eina_List *themes = NULL; struct _Elm_Text_Class_Data @@ -1063,28 +1063,13 @@ void *event_info __UNUSED__) { const char *defth; - char *newth; - Theme *t = tsel; + Elm_Theme *th; + Evas_Object *win = elm_object_top_widget_get(obj); + Evas_Object *sample = evas_object_data_get(win, theme_preview); - if (!t) return; - defth = elm_theme_get(NULL); - newth = malloc(strlen(defth) + 1 + strlen(t-name) + 1); - if (newth) - { -char *rest; - -newth[0] = 0; -rest = strchr(defth, ':'); -if (!rest) - strcpy(newth, t-name); -else - { - strcpy(newth, t-name); - strcat(newth, rest); - } -elm_theme_all_set(newth); -free(newth); - } + th = elm_object_theme_get(sample); + defth = elm_theme_get(th); + elm_theme_all_set(defth); } static void @@ -1095,30 +1080,33 @@ Theme *t = data; Evas_Object *win = elm_object_top_widget_get(obj); Evas_Object *sample = evas_object_data_get(win, theme_preview); - Elm_Theme *th; - const char *defth; - char *newth; + Elm_Theme *th, *sth; + const char *defth, *rest; + Eina_Strbuf *newth; - tsel = t; - defth = elm_theme_get(NULL); - newth = malloc(strlen(defth) + 1 + strlen(t-name) + 1); + tsel = elm_list_selected_items_get(obj); + sth = elm_object_theme_get(sample); + defth = elm_theme_get(sth); + newth = eina_strbuf_new(); + EINA_SAFETY_ON_NULL_RETURN(newth); th = elm_theme_new(); - if (newth) + if (!th) { -char *rest; - -newth[0] = 0; +eina_strbuf_free(newth); +return; + } + if (eina_list_count(tsel) 1) + eina_strbuf_append_printf(newth, %s:%s, t-name, defth); + else + { rest = strchr(defth, ':'); if (!rest) - strcpy(newth, t-name); + eina_strbuf_append(newth, t-name); else - { - strcpy(newth, t-name); - strcat(newth, rest); - } -elm_theme_set(th, newth); -free(newth); + eina_strbuf_append_printf(newth, %s%s, t-name, rest); } + elm_theme_set(th, eina_strbuf_string_get(newth)); + eina_strbuf_free(newth); elm_object_theme_set(sample, th); elm_theme_free(th); } @@ -1303,6 +1291,7 @@ evas_object_show(pd); li = elm_list_add(win); + elm_list_multi_select_set(li, EINA_TRUE); evas_object_size_hint_weight_set(li, 1.0, 1.0); evas_object_size_hint_align_set(li, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_frame_content_set(pd, li); now it is possible to use theme overlays such as darkness-desktop with great ease! but with great ease comes great responsibility, so don't go selecting all the themes at once... not sure we want multiselect... as ORDER is important when defining multiple themes... which one comes first etc. ... so you need an advanced select mode to do multiselect AND ordering. not hard to do... just multiselect as it stands is like giving you ls and not rm. :) if you're saying the select mode would also need to be able to determine which is the base part of the theme, I think we would need to embed some info into the edc to provide that, no? -- Mike Blumenkrantz Zentific: Coding in binary since '10. -- AppSumo Presents a FREE Video for the SourceForge Community by Eric Ries, the creator of the Lean Startup
Re: [E-devel] E SVN: discomfitor trunk/elementary/src/bin
On Sun, 17 Jul 2011 14:39:05 -0400 Mike Blumenkrantz m...@zentific.com said: if you're saying the select mode would also need to be able to determine which is the base part of the theme, I think we would need to embed some info into the edc to provide that, no? no - i'm saying themes can be listed in order: theme1:theme2:theme3:theme4:... elm will look for stuff first in theme1, if not found then theme2, then theme3, then theme4 and finally... if not found in default. if you have 2 themes which only provide SOME elements, but they overlap as to which elements they provide... who comes first? you need to be able to order them. -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- AppSumo Presents a FREE Video for the SourceForge Community by Eric Ries, the creator of the Lean Startup Methodology on Lean Startup Secrets Revealed. This video shows you how to validate your ideas, optimize your ideas and identify your business strategy. http://p.sf.net/sfu/appsumosfdev2dev ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] E SVN: discomfitor trunk/elementary/src/bin
On Mon, 18 Jul 2011 08:20:02 +0900 Carsten Haitzler (The Rasterman) ras...@rasterman.com wrote: On Sun, 17 Jul 2011 14:39:05 -0400 Mike Blumenkrantz m...@zentific.com said: if you're saying the select mode would also need to be able to determine which is the base part of the theme, I think we would need to embed some info into the edc to provide that, no? no - i'm saying themes can be listed in order: theme1:theme2:theme3:theme4:... elm will look for stuff first in theme1, if not found then theme2, then theme3, then theme4 and finally... if not found in default. if you have 2 themes which only provide SOME elements, but they overlap as to which elements they provide... who comes first? you need to be able to order them. right, and you can order them properly since the selection code I added adds based on the order that you select in. it's not perfect, but it works fine -- Mike Blumenkrantz Zentific: Coding in binary since '10. -- AppSumo Presents a FREE Video for the SourceForge Community by Eric Ries, the creator of the Lean Startup Methodology on Lean Startup Secrets Revealed. This video shows you how to validate your ideas, optimize your ideas and identify your business strategy. http://p.sf.net/sfu/appsumosfdev2dev ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] E SVN: discomfitor trunk/elementary/src/bin
On Sun, 17 Jul 2011 19:25:33 -0400 Mike Blumenkrantz m...@zentific.com said: On Mon, 18 Jul 2011 08:20:02 +0900 Carsten Haitzler (The Rasterman) ras...@rasterman.com wrote: On Sun, 17 Jul 2011 14:39:05 -0400 Mike Blumenkrantz m...@zentific.com said: if you're saying the select mode would also need to be able to determine which is the base part of the theme, I think we would need to embed some info into the edc to provide that, no? no - i'm saying themes can be listed in order: theme1:theme2:theme3:theme4:... elm will look for stuff first in theme1, if not found then theme2, then theme3, then theme4 and finally... if not found in default. if you have 2 themes which only provide SOME elements, but they overlap as to which elements they provide... who comes first? you need to be able to order them. right, and you can order them properly since the selection code I added adds based on the order that you select in. it's not perfect, but it works fine OUCH!... and how do you see that order later on when u re-run the tool? :) -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- AppSumo Presents a FREE Video for the SourceForge Community by Eric Ries, the creator of the Lean Startup Methodology on Lean Startup Secrets Revealed. This video shows you how to validate your ideas, optimize your ideas and identify your business strategy. http://p.sf.net/sfu/appsumosfdev2dev ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] E SVN: discomfitor trunk/elementary/src/bin
On Mon, 18 Jul 2011 11:35:16 +0900 Carsten Haitzler (The Rasterman) ras...@rasterman.com wrote: On Sun, 17 Jul 2011 19:25:33 -0400 Mike Blumenkrantz m...@zentific.com said: On Mon, 18 Jul 2011 08:20:02 +0900 Carsten Haitzler (The Rasterman) ras...@rasterman.com wrote: On Sun, 17 Jul 2011 14:39:05 -0400 Mike Blumenkrantz m...@zentific.com said: if you're saying the select mode would also need to be able to determine which is the base part of the theme, I think we would need to embed some info into the edc to provide that, no? no - i'm saying themes can be listed in order: theme1:theme2:theme3:theme4:... elm will look for stuff first in theme1, if not found then theme2, then theme3, then theme4 and finally... if not found in default. if you have 2 themes which only provide SOME elements, but they overlap as to which elements they provide... who comes first? you need to be able to order them. right, and you can order them properly since the selection code I added adds based on the order that you select in. it's not perfect, but it works fine OUCH!... and how do you see that order later on when u re-run the tool? :) details, details :P -- Mike Blumenkrantz Zentific: Coding in binary since '10. -- AppSumo Presents a FREE Video for the SourceForge Community by Eric Ries, the creator of the Lean Startup Methodology on Lean Startup Secrets Revealed. This video shows you how to validate your ideas, optimize your ideas and identify your business strategy. http://p.sf.net/sfu/appsumosfdev2dev ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] E SVN: discomfitor trunk/elementary/src/bin
On Sat, 16 Jul 2011 07:45:41 -0700 Enlightenment SVN no-re...@enlightenment.org wrote: Log: elm_config gains a new feature: multitheme selection! themes are added in the order of selection, so to use an overlay for a theme you would select the base theme first, then the overlay part. then just click use theme and zooon Author: discomfitor Date: 2011-07-16 07:45:41 -0700 (Sat, 16 Jul 2011) New Revision: 61426 Trac: http://trac.enlightenment.org/e/changeset/61426 Modified: trunk/elementary/src/bin/config.c Modified: trunk/elementary/src/bin/config.c === --- trunk/elementary/src/bin/config.c 2011-07-16 14:27:33 UTC (rev 61425) +++ trunk/elementary/src/bin/config.c 2011-07-16 14:45:41 UTC (rev 61426) @@ -17,7 +17,7 @@ Eina_Bool in_search_path; }; -static Theme *tsel = NULL; +static const Eina_List *tsel = NULL; static Eina_List *themes = NULL; struct _Elm_Text_Class_Data @@ -1063,28 +1063,13 @@ void *event_info __UNUSED__) { const char *defth; - char *newth; - Theme *t = tsel; + Elm_Theme *th; + Evas_Object *win = elm_object_top_widget_get(obj); + Evas_Object *sample = evas_object_data_get(win, theme_preview); - if (!t) return; - defth = elm_theme_get(NULL); - newth = malloc(strlen(defth) + 1 + strlen(t-name) + 1); - if (newth) - { -char *rest; - -newth[0] = 0; -rest = strchr(defth, ':'); -if (!rest) - strcpy(newth, t-name); -else - { - strcpy(newth, t-name); - strcat(newth, rest); - } -elm_theme_all_set(newth); -free(newth); - } + th = elm_object_theme_get(sample); + defth = elm_theme_get(th); + elm_theme_all_set(defth); } static void @@ -1095,30 +1080,33 @@ Theme *t = data; Evas_Object *win = elm_object_top_widget_get(obj); Evas_Object *sample = evas_object_data_get(win, theme_preview); - Elm_Theme *th; - const char *defth; - char *newth; + Elm_Theme *th, *sth; + const char *defth, *rest; + Eina_Strbuf *newth; - tsel = t; - defth = elm_theme_get(NULL); - newth = malloc(strlen(defth) + 1 + strlen(t-name) + 1); + tsel = elm_list_selected_items_get(obj); + sth = elm_object_theme_get(sample); + defth = elm_theme_get(sth); + newth = eina_strbuf_new(); + EINA_SAFETY_ON_NULL_RETURN(newth); th = elm_theme_new(); - if (newth) + if (!th) { -char *rest; - -newth[0] = 0; +eina_strbuf_free(newth); +return; + } + if (eina_list_count(tsel) 1) + eina_strbuf_append_printf(newth, %s:%s, t-name, defth); + else + { rest = strchr(defth, ':'); if (!rest) - strcpy(newth, t-name); + eina_strbuf_append(newth, t-name); else - { - strcpy(newth, t-name); - strcat(newth, rest); - } -elm_theme_set(th, newth); -free(newth); + eina_strbuf_append_printf(newth, %s%s, t-name, rest); } + elm_theme_set(th, eina_strbuf_string_get(newth)); + eina_strbuf_free(newth); elm_object_theme_set(sample, th); elm_theme_free(th); } @@ -1303,6 +1291,7 @@ evas_object_show(pd); li = elm_list_add(win); + elm_list_multi_select_set(li, EINA_TRUE); evas_object_size_hint_weight_set(li, 1.0, 1.0); evas_object_size_hint_align_set(li, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_frame_content_set(pd, li); now it is possible to use theme overlays such as darkness-desktop with great ease! but with great ease comes great responsibility, so don't go selecting all the themes at once... -- Mike Blumenkrantz Zentific: Coding in binary since '10. -- AppSumo Presents a FREE Video for the SourceForge Community by Eric Ries, the creator of the Lean Startup Methodology on Lean Startup Secrets Revealed. This video shows you how to validate your ideas, optimize your ideas and identify your business strategy. http://p.sf.net/sfu/appsumosfdev2dev ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel