Added a config value 'effect_file' on E_Comp_Config to load specific effect edc 60/32660/3
authorMinJeong Kim <minjjj.kim@samsung.com>
Mon, 22 Dec 2014 09:32:05 +0000 (18:32 +0900)
committerMinJeong Kim <minjjj.kim@samsung.com>
Tue, 23 Dec 2014 10:14:00 +0000 (19:14 +0900)
Change-Id: I508a0c31c3a0e4d176fbf504bb0b14e8c4c82bdf
Signed-off-by: MinJeong Kim <minjjj.kim@samsung.com>
src/bin/e_comp_cfdata.c
src/bin/e_comp_cfdata.h
src/bin/e_comp_object.c

index 3f29ebbd748d2acbb68b2886b69b9af1633a59cc..3fe58474dd2ed91444eae9adcd22ff5b7f649e35 100644 (file)
@@ -33,6 +33,7 @@ e_comp_cfdata_edd_init(E_Config_DD **conf_edd, E_Config_DD **match_edd)
    E_CONFIG_VAL(D, T, version, INT);
    E_CONFIG_VAL(D, T, shadow_style, STR);
    E_CONFIG_VAL(D, T, engine, INT);
+   E_CONFIG_VAL(D, T, effect_file, STR);
    //E_CONFIG_VAL(D, T, max_unmapped_pixels, INT);
    E_CONFIG_VAL(D, T, max_unmapped_time, INT);
    E_CONFIG_VAL(D, T, min_unmapped_time, INT);
@@ -79,6 +80,7 @@ e_comp_cfdata_config_new(void)
    cfg = E_NEW(E_Comp_Config, 1);
    cfg->version = E_COMP_VERSION;
    cfg->shadow_style = eina_stringshare_add("default");
+   cfg->effect_file = NULL;
    cfg->engine = E_COMP_ENGINE_SW;
    cfg->max_unmapped_pixels = 32 * 1024;  // implement
    cfg->max_unmapped_time = 10 * 3600; // implement
@@ -211,6 +213,7 @@ EAPI void
 e_comp_cfdata_config_free(E_Comp_Config *cfg)
 {
    if (!cfg) return;
+   eina_stringshare_del(cfg->effect_file);
    eina_stringshare_del(cfg->shadow_style);
 
    E_FREE_LIST(cfg->match.popups, e_comp_cfdata_match_free);
index b1620eb43cde64f05ca5f9d00f2b35d67cb4e67a..cac830875b014714253a83abb731573d2c91a335 100644 (file)
@@ -10,6 +10,7 @@ struct _E_Comp_Config
 {
    int           version;
    const char   *shadow_style;
+   const char   *effect_file;
    int           engine;
    int           max_unmapped_pixels;
    int           max_unmapped_time;
index e5f3bcbc1af2c7d40b8d1e18358eb4d79250f371..789d7e834262f9894e22cd379e265418bb883fca 100644 (file)
@@ -3416,19 +3416,32 @@ e_comp_object_effect_set(Evas_Object *obj, const char *effect)
 {
    char buf[4096];
    Eina_Stringshare *grp;
+   E_Comp_Config *config;
+   Eina_Bool loaded = EINA_FALSE;
 
    API_ENTRY;
    if (!cw->shobj) return; //input window
 
    if (!effect) effect = "none";
    snprintf(buf, sizeof(buf), "e/comp/effects/%s", effect);
-   edje_object_file_get(cw->effect_obj, NULL, &grp);
-   if (!e_util_strcmp(buf, grp)) return;
-   if (!e_theme_edje_object_set(cw->effect_obj, "base/theme/comp", buf))
+
+   config = e_comp_config_get();
+   if ((config) && (config->effect_file))
+     {
+        if (edje_object_file_set(cw->effect_obj, config->effect_file, buf))
+          loaded = EINA_TRUE;
+     }
+
+   if (!loaded)
      {
-        snprintf(buf, sizeof(buf), "e/comp/effects/auto/%s", effect);
+        edje_object_file_get(cw->effect_obj, NULL, &grp);
+        if (!e_util_strcmp(buf, grp)) return;
         if (!e_theme_edje_object_set(cw->effect_obj, "base/theme/comp", buf))
-          if (!e_theme_edje_object_set(cw->effect_obj, "base/theme/comp", "e/comp/effects/none")) return;
+          {
+             snprintf(buf, sizeof(buf), "e/comp/effects/auto/%s", effect);
+             if (!e_theme_edje_object_set(cw->effect_obj, "base/theme/comp", buf))
+               if (!e_theme_edje_object_set(cw->effect_obj, "base/theme/comp", "e/comp/effects/none")) return;
+          }
      }
    edje_object_part_swallow(cw->effect_obj, "e.swallow.content", cw->shobj);
    if (cw->effect_clip)