theme: efl,state,(content|text),(set|unset) -> efl,(content|text),(set|unset)
authorMike Blumenkrantz <zmike@samsung.com>
Wed, 25 Sep 2019 21:55:35 +0000 (17:55 -0400)
committerJongmin Lee <jm105.lee@samsung.com>
Thu, 26 Sep 2019 21:34:17 +0000 (06:34 +0900)
Summary:
this is versioned, so the correct signal will always be emitted for the theme
version that is provided

ref T8231

Depends on D10164

Reviewers: segfaultxavi

Reviewed By: segfaultxavi

Subscribers: segfaultxavi, cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8231

Differential Revision: https://phab.enlightenment.org/D10158

data/elementary/themes/edc/efl/button.edc
data/elementary/themes/edc/efl/check.edc
data/elementary/themes/edc/efl/popup.edc
data/elementary/themes/edc/efl/progress.edc
data/elementary/themes/edc/efl/radio.edc
data/elementary/themes/edc/efl/tab_bar.edc
src/lib/elementary/efl_ui_layout.c

index 0f24ebb..cf86312 100644 (file)
@@ -331,7 +331,7 @@ group { name: "efl/button"; data.item: "version" "123";
          target: "base";
       }
       program { name: "button_text_visible";
-         signal: "efl,state,text,set"; source: "efl";
+         signal: "efl,text,set"; source: "efl";
          script {
             new m = get_int(btmode);
             m |= LABEL; set_int(btmode, m);
@@ -339,7 +339,7 @@ group { name: "efl/button"; data.item: "version" "123";
          }
       }
       program { name: "button_text_hidden";
-         signal: "efl,state,text,unset"; source: "efl";
+         signal: "efl,text,unset"; source: "efl";
          script {
             new m = get_int(btmode);
             m &= ~LABEL; set_int(btmode, m);
@@ -347,7 +347,7 @@ group { name: "efl/button"; data.item: "version" "123";
          }
       }
       program { name: "button_icon_visible";
-         signal: "efl,state,content,set"; source: "efl";
+         signal: "efl,content,set"; source: "efl";
          script {
             new m = get_int(btmode);
             m |= ICON; set_int(btmode, m);
@@ -355,7 +355,7 @@ group { name: "efl/button"; data.item: "version" "123";
          }
       }
       program { name: "button_icon_hidden";
-         signal: "efl,state,content,unset"; source: "efl";
+         signal: "efl,content,unset"; source: "efl";
          script {
             new m = get_int(btmode);
             m &= ~ICON; set_int(btmode, m);
@@ -713,7 +713,7 @@ group { name: "efl/button:anchor"; data.item: "version" "123";
          action: SIGNAL_EMIT "efl,action,click" "efl";
       }
       program { name: "button_text_visible";
-         signal: "efl,state,text,set"; source: "efl";
+         signal: "efl,text,set"; source: "efl";
          script {
             new m = get_int(btmode);
             m |= LABEL; set_int(btmode, m);
@@ -721,7 +721,7 @@ group { name: "efl/button:anchor"; data.item: "version" "123";
          }
       }
       program { name: "button_text_hidden";
-         signal: "efl,state,text,unset"; source: "efl";
+         signal: "efl,text,unset"; source: "efl";
          script {
             new m = get_int(btmode);
             m &= ~LABEL; set_int(btmode, m);
@@ -729,7 +729,7 @@ group { name: "efl/button:anchor"; data.item: "version" "123";
          }
       }
       program { name: "button_icon_visible";
-         signal: "efl,state,content,set"; source: "efl";
+         signal: "efl,content,set"; source: "efl";
          script {
             new m = get_int(btmode);
             m |= ICON; set_int(btmode, m);
@@ -737,7 +737,7 @@ group { name: "efl/button:anchor"; data.item: "version" "123";
          }
       }
       program { name: "button_icon_hidden";
-         signal: "efl,state,content,unset"; source: "efl";
+         signal: "efl,content,unset"; source: "efl";
          script {
             new m = get_int(btmode);
             m &= ~ICON; set_int(btmode, m);
index 62d85ed..5aabede 100644 (file)
@@ -268,7 +268,7 @@ group { "efl/check"; data.item: "version" "123";
          target: "indicator";
       }
       program {
-         signal: "efl,state,text,set"; source: "efl";
+         signal: "efl,text,set"; source: "efl";
          script {
             new m = get_int(btmode);
             m |= LABEL; set_int(btmode, m);
@@ -276,7 +276,7 @@ group { "efl/check"; data.item: "version" "123";
          }
       }
       program {
-         signal: "efl,state,text,unset"; source: "efl";
+         signal: "efl,text,unset"; source: "efl";
          script {
             new m = get_int(btmode);
             m &= ~LABEL; set_int(btmode, m);
@@ -284,7 +284,7 @@ group { "efl/check"; data.item: "version" "123";
          }
       }
       program {
-         signal: "efl,state,content,set"; source: "efl";
+         signal: "efl,content,set"; source: "efl";
          script {
             new m = get_int(btmode);
             m |= ICON; set_int(btmode, m);
@@ -292,7 +292,7 @@ group { "efl/check"; data.item: "version" "123";
          }
       }
       program {
-         signal: "efl,state,content,unset"; source: "efl";
+         signal: "efl,content,unset"; source: "efl";
          script {
             new m = get_int(btmode);
             m &= ~ICON; set_int(btmode, m);
@@ -864,7 +864,7 @@ group { "efl/check:toggle"; data.item: "version" "123";
          target: "glow_but";
       }
       program {
-         signal: "efl,state,text,set"; source: "efl";
+         signal: "efl,text,set"; source: "efl";
          script {
             new m = get_int(btmode);
             m |= LABEL; set_int(btmode, m);
@@ -872,7 +872,7 @@ group { "efl/check:toggle"; data.item: "version" "123";
          }
       }
       program {
-         signal: "efl,state,text,unset"; source: "efl";
+         signal: "efl,text,unset"; source: "efl";
          script {
             new m = get_int(btmode);
             m &= ~LABEL; set_int(btmode, m);
@@ -880,7 +880,7 @@ group { "efl/check:toggle"; data.item: "version" "123";
          }
       }
       program {
-         signal: "efl,state,content,set"; source: "efl";
+         signal: "efl,content,set"; source: "efl";
          script {
             new m = get_int(btmode);
             m |= ICON; set_int(btmode, m);
@@ -888,7 +888,7 @@ group { "efl/check:toggle"; data.item: "version" "123";
          }
       }
       program {
-         signal: "efl,state,content,unset"; source: "efl";
+         signal: "efl,content,unset"; source: "efl";
          script {
             new m = get_int(btmode);
             m &= ~ICON; set_int(btmode, m);
index 462fe29..44557dc 100644 (file)
@@ -157,13 +157,13 @@ group { "efl/popup/backwall"; data.item: "version" "123";
 
    programs {
       program {
-         signal: "efl,state,content,set"; source: "efl";
+         signal: "efl,content,set"; source: "efl";
          action: STATE_SET "content_visible" 0.0;
          target: "base";
          target: "efl.content";
       }
       program {
-         signal: "efl,state,content,unset"; source: "efl";
+         signal: "efl,content,unset"; source: "efl";
          action: STATE_SET "default" 0.0;
          target: "base";
          target: "efl.content";
index 23f3e07..d319097 100644 (file)
@@ -505,7 +505,7 @@ group { "efl/progressbar/horizontal";
          target: "efl.text.status";
       }
       program { name: "text-visible";
-         signal: "efl,state,text,set"; source: "efl";
+         signal: "efl,text,set"; source: "efl";
          script {
             new m = get_int(slmode);
             m |= LABEL; set_int(slmode, m);
@@ -513,7 +513,7 @@ group { "efl/progressbar/horizontal";
          }
       }
       program { name: "text-hidden";
-         signal: "efl,state,text,unset"; source: "efl";
+         signal: "efl,text,unset"; source: "efl";
          script {
             new m = get_int(slmode);
             m &= ~LABEL; set_int(slmode, m);
@@ -521,7 +521,7 @@ group { "efl/progressbar/horizontal";
          }
       }
       program { name: "icon-visible";
-         signal: "efl,state,content,set"; source: "efl";
+         signal: "efl,content,set"; source: "efl";
          script {
             new m = get_int(slmode);
             m |= ICON; set_int(slmode, m);
@@ -529,7 +529,7 @@ group { "efl/progressbar/horizontal";
          }
       }
       program { name: "icon-hidden";
-         signal: "efl,state,content,unset"; source: "efl";
+         signal: "efl,content,unset"; source: "efl";
          script {
             new m = get_int(slmode);
             m &= ~ICON; set_int(slmode, m);
@@ -1079,7 +1079,7 @@ group { "efl/progressbar/vertical";
          target: "efl.text.status";
       }
       program { name: "text-visible";
-         signal: "efl,state,text,set"; source: "efl";
+         signal: "efl,text,set"; source: "efl";
          script {
             new m = get_int(slmode);
             m |= LABEL; set_int(slmode, m);
@@ -1087,7 +1087,7 @@ group { "efl/progressbar/vertical";
          }
       }
       program { name: "text-hidden";
-         signal: "efl,state,text,unset"; source: "efl";
+         signal: "efl,text,unset"; source: "efl";
          script {
             new m = get_int(slmode);
             m &= ~LABEL; set_int(slmode, m);
@@ -1095,7 +1095,7 @@ group { "efl/progressbar/vertical";
          }
       }
       program { name: "icon-visible";
-         signal: "efl,state,content,set"; source: "efl";
+         signal: "efl,content,set"; source: "efl";
          script {
             new m = get_int(slmode);
             m |= ICON; set_int(slmode, m);
@@ -1103,7 +1103,7 @@ group { "efl/progressbar/vertical";
          }
       }
       program { name: "icon-hidden";
-         signal: "efl,state,content,unset"; source: "efl";
+         signal: "efl,content,unset"; source: "efl";
          script {
             new m = get_int(slmode);
             m &= ~ICON; set_int(slmode, m);
index c2fc214..06b064c 100644 (file)
@@ -235,7 +235,7 @@ group { "efl/radio";
          target: "indicator";
       }
       program {
-         signal: "efl,state,text,set"; source: "efl";
+         signal: "efl,text,set"; source: "efl";
          script {
             new m = get_int(btmode);
             m |= LABEL; set_int(btmode, m);
@@ -243,7 +243,7 @@ group { "efl/radio";
          }
       }
       program {
-         signal: "efl,state,text,unset"; source: "efl";
+         signal: "efl,text,unset"; source: "efl";
          script {
             new m = get_int(btmode);
             m &= ~LABEL; set_int(btmode, m);
@@ -251,7 +251,7 @@ group { "efl/radio";
          }
       }
       program {
-         signal: "efl,state,content,set"; source: "efl";
+         signal: "efl,content,set"; source: "efl";
          script {
             new m = get_int(btmode);
             m |= ICON; set_int(btmode, m);
@@ -259,7 +259,7 @@ group { "efl/radio";
          }
       }
       program {
-         signal: "efl,state,content,unset"; source: "efl";
+         signal: "efl,content,unset"; source: "efl";
          script {
             new m = get_int(btmode);
             m &= ~ICON; set_int(btmode, m);
index 6573bfe..8f1a105 100644 (file)
@@ -484,7 +484,7 @@ group { "efl/tab_bar/tab";
          target: "highlight";
       }
       program { name: "st1";
-         signal: "efl,state,text,unset"; source: "efl";
+         signal: "efl,text,unset"; source: "efl";
          script {
             new m = get_int(btmode);
             m &= ~LABEL; set_int(btmode, m);
@@ -492,7 +492,7 @@ group { "efl/tab_bar/tab";
          }
       }
       program { name: "st2";
-         signal: "efl,state,text,set"; source: "efl";
+         signal: "efl,text,set"; source: "efl";
          script {
             new m = get_int(btmode);
             m |= LABEL; set_int(btmode, m);
index 3600ec4..2da526c 100644 (file)
@@ -256,23 +256,30 @@ _defer_version_signal(Efl_Ui_Layout_Data *sd, Eina_Stringshare *old_sig, Eina_St
 
 /* common content cases for layout objects: icon and text */
 static inline void
-_signals_emit(Eo *obj,
+_signals_emit(Efl_Ui_Layout_Data *sd,
               const char *type,
               Eina_Bool set)
 {
    char buf[1024];
 
-   if (elm_widget_is_legacy(obj))
+   if (elm_widget_is_legacy(sd->obj))
      {
         snprintf(buf, sizeof(buf), "elm,state,%s,%s", type,
                  set ? "visible" : "hidden");
-        efl_layout_signal_emit(obj, buf, "elm");
+        efl_layout_signal_emit(sd->obj, buf, "elm");
      }
    else
      {
-        snprintf(buf, sizeof(buf), "efl,state,%s,%s", type,
-                 set ? "set" : "unset");
-        efl_layout_signal_emit(obj, buf, "efl");
+        char buf2[1024];
+        char *use = buf;
+        if (sd->version >= 123) // efl,state,(content|text),(set|unset) -> efl,(content|text),(set|unset)
+          use = buf2;
+        snprintf(buf, sizeof(buf), "efl,state,%s,%s", type, set ? "set" : "unset");
+        snprintf(buf2, sizeof(buf2), "efl,%s,%s", type, set ? "set" : "unset");
+        if (efl_finalized_get(sd->obj))
+          efl_layout_signal_emit(sd->obj, use, "efl");
+        else
+          _defer_version_signal(sd, eina_stringshare_add(buf), eina_stringshare_add(buf2), 123);
      }
 }
 
@@ -323,7 +330,7 @@ _icon_signal_emit(Efl_Ui_Layout_Data *sd,
           type = sub_d->part;
      }
 
-   _signals_emit(sd->obj, type, visible);
+   _signals_emit(sd, type, visible);
 
    /* themes might need immediate action here */
    efl_layout_signal_process(sd->obj, EINA_FALSE);
@@ -371,7 +378,7 @@ _text_signal_emit(Efl_Ui_Layout_Data *sd,
           type = sub_d->part;
      }
 
-   _signals_emit(sd->obj, type, visible);
+   _signals_emit(sd, type, visible);
 
    /* TODO: is this right? It was like that, but IMO it should be removed: */