From: Daniel J. S. <seo...@gm...> - 2012-03-05 23:35:17
|
Hello, I think those two apis need 'const' for getters. How do you think? Daniel Juyung Seo (SeoZ) On Tue, Mar 6, 2012 at 6:48 AM, Enlightenment SVN <no-...@en...> wrote: > Log: > Add overlay_list_get and extension_list_get, and use them in elm_web to correctly set the ewk_view theme > > > Author: sachiel > Date: 2012-03-05 13:48:32 -0800 (Mon, 05 Mar 2012) > New Revision: 68746 > Trac: http://trac.enlightenment.org/e/changeset/68746 > > Modified: > trunk/elementary/src/lib/elm_theme.c trunk/elementary/src/lib/elm_theme.h trunk/elementary/src/lib/elm_web.c > > Modified: trunk/elementary/src/lib/elm_theme.c > =================================================================== > --- trunk/elementary/src/lib/elm_theme.c 2012-03-05 21:25:02 UTC (rev 68745) > +++ trunk/elementary/src/lib/elm_theme.c 2012-03-05 21:48:32 UTC (rev 68746) > @@ -435,6 +435,13 @@ > elm_theme_flush(th); > } > > +EAPI const Eina_List * > +elm_theme_overlay_list_get(Elm_Theme *th) > +{ > + if (!th) th = &(theme_default); > + return th->overlay; > +} > + > EAPI void > elm_theme_extension_add(Elm_Theme *th, const char *item) > { > @@ -464,6 +471,13 @@ > elm_theme_flush(th); > } > > +EAPI const Eina_List * > +elm_theme_extension_list_get(Elm_Theme *th) > +{ > + if (!th) th = &(theme_default); > + return th->extension; > +} > + > EAPI void > elm_theme_set(Elm_Theme *th, const char *theme) > { > > Modified: trunk/elementary/src/lib/elm_theme.h > =================================================================== > --- trunk/elementary/src/lib/elm_theme.h 2012-03-05 21:25:02 UTC (rev 68745) > +++ trunk/elementary/src/lib/elm_theme.h 2012-03-05 21:48:32 UTC (rev 68746) > @@ -180,6 +180,16 @@ > EAPI void elm_theme_overlay_del(Elm_Theme *th, const char *item); > > /** > + * Get the list of registered overlays for the given theme > + * > + * @param th The theme from which to get the overlays > + * @return List of theme overlays. Do not free it. > + * > + * @see elm_theme_overlay_add() > + */ > +EAPI const Eina_List *elm_theme_overlay_list_get(Elm_Theme *th); > + > +/** > * Appends a theme extension to the list of extensions. > * > * @param th The theme to add to, or if NULL, the default theme > @@ -211,6 +221,16 @@ > EAPI void elm_theme_extension_del(Elm_Theme *th, const char *item); > > /** > + * Get the list of registered extensions for the given theme > + * > + * @param th The theme from which to get the extensions > + * @return List of theme extensions. Do not free it. > + * > + * @see elm_theme_extension_add() > + */ > +EAPI const Eina_List *elm_theme_extension_list_get(Elm_Theme *th); > + > +/** > * Set the theme search order for the given theme > * > * @param th The theme to set the search order, or if NULL, the default theme > > Modified: trunk/elementary/src/lib/elm_web.c > =================================================================== > --- trunk/elementary/src/lib/elm_web.c 2012-03-05 21:25:02 UTC (rev 68745) > +++ trunk/elementary/src/lib/elm_web.c 2012-03-05 21:48:32 UTC (rev 68746) > @@ -138,29 +138,45 @@ > { NULL, NULL } > }; > > -static void > -_theme_hook(Evas_Object *obj) > +static char * > +_webkit_theme_find(const Eina_List *list) > { > -#ifdef HAVE_ELEMENTARY_WEB > - Elm_Theme *theme = elm_object_theme_get(obj); > - Widget_Data *wd = elm_widget_data_get(obj); > - const Eina_List *themes, *l; > + const Eina_List *l; > const char *th; > - char *view_theme = NULL; > > - themes = elm_theme_list_get(theme); > - EINA_LIST_FOREACH(themes, l, th) > + EINA_LIST_FOREACH(list, l, th) > { > char *path = elm_theme_list_item_path_get(th, NULL); > if (!path) continue; > if (edje_file_group_exists(path, "webkit/base")) > - { > - view_theme = path; > - break; > - } > + return path; > free(path); > } > > + return NULL; > +} > + > +static void > +_theme_hook(Evas_Object *obj) > +{ > +#ifdef HAVE_ELEMENTARY_WEB > + Elm_Theme *theme = elm_object_theme_get(obj); > + Widget_Data *wd = elm_widget_data_get(obj); > + const Eina_List *themes; > + char *view_theme = NULL; > + > + themes = elm_theme_overlay_list_get(theme); > + view_theme = _webkit_theme_find(themes); > + if (view_theme) goto set; > + > + themes = elm_theme_list_get(theme); > + view_theme = _webkit_theme_find(themes); > + if (view_theme) goto set; > + > + themes = elm_theme_extension_list_get(theme); > + view_theme = _webkit_theme_find(themes); > + > +set: > if (view_theme) > { > ewk_view_theme_set(wd->ewk_view, view_theme); > > > ------------------------------------------------------------------------------ > Try before you buy = See our experts in action! > The most comprehensive online learning library for Microsoft developers > is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, > Metro Style Apps, more. Free future releases when you subscribe now! > http://p.sf.net/sfu/learndevnow-dev2 > _______________________________________________ > enlightenment-svn mailing list > enl...@li... > https://lists.sourceforge.net/lists/listinfo/enlightenment-svn |