add del for overlays/extensions and also an explicit flush

SVN revision: 43230
This commit is contained in:
Carsten Haitzler 2009-10-23 14:42:39 +00:00
parent 003b84963e
commit da355f2db2
2 changed files with 42 additions and 1 deletions

View File

@ -196,8 +196,11 @@ extern "C" {
EAPI void elm_coords_finger_size_adjust(int times_w, Evas_Coord *w, int times_h, Evas_Coord *h);
EAPI void elm_theme_overlay_add(const char *item);
EAPI void elm_theme_overlay_del(const char *item);
EAPI void elm_theme_extension_add(const char *item);
EAPI void elm_theme_extension_del(const char *item);
EAPI void elm_theme_flush(void);
EAPI Evas_Object *elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type);
EAPI void elm_win_resize_object_add(Evas_Object *obj, Evas_Object *subobj);
EAPI void elm_win_resize_object_del(Evas_Object *obj, Evas_Object *subobj);

View File

@ -83,6 +83,21 @@ elm_theme_overlay_add(const char *item)
{
const char *f = eina_stringshare_add(item);
if (f) overlay = eina_list_prepend(overlay, f);
elm_theme_flush();
}
EAPI void
elm_theme_overlay_del(const char *item)
{
const Eina_List *l;
const char *f;
EINA_LIST_FOREACH(overlay, l, f)
{
eina_stringshare_del(f);
overlay = eina_list_remove_list(overlay, l);
return;
}
elm_theme_flush();
}
EAPI void
@ -90,6 +105,29 @@ elm_theme_extension_add(const char *item)
{
const char *f = eina_stringshare_add(item);
if (f) extension = eina_list_append(extension, f);
elm_theme_flush();
}
EAPI void
elm_theme_extension_del(const char *item)
{
const Eina_List *l;
const char *f;
EINA_LIST_FOREACH(extension, l, f)
{
eina_stringshare_del(f);
extension = eina_list_remove_list(extension, l);
return;
}
elm_theme_flush();
}
EAPI void
elm_theme_flush(void)
{
if (cache) eina_hash_free(cache);
cache = NULL;
_elm_win_rescale();
}
int