taxi2se pushed a commit to branch feature/eo_theme.

http://git.enlightenment.org/core/efl.git/commit/?id=a2a082ab2715436ae8cebcf810f1c07b512d6352

commit a2a082ab2715436ae8cebcf810f1c07b512d6352
Author: Sungtaek Hong <sth253.h...@samsung.com>
Date:   Wed Nov 29 20:21:14 2017 +0900

    efl_ui_popup: apply new theme logic for efl_ui_popup
---
 data/elementary/themes/Makefile.am       |   1 +
 data/elementary/themes/default.edc       |   1 +
 data/elementary/themes/edc/efl/popup.edc | 238 +++++++++++++++++++++++++++++++
 data/elementary/themes/edc/elm/popup.edc | 229 -----------------------------
 src/lib/elementary/efl_ui_popup.c        |  12 +-
 src/lib/elementary/efl_ui_popup_alert.c  |  57 +++++---
 src/lib/elementary/efl_ui_popup_anchor.c |   2 +
 7 files changed, 291 insertions(+), 249 deletions(-)

diff --git a/data/elementary/themes/Makefile.am 
b/data/elementary/themes/Makefile.am
index 758f7781c2..4bc6ec9987 100644
--- a/data/elementary/themes/Makefile.am
+++ b/data/elementary/themes/Makefile.am
@@ -1028,6 +1028,7 @@ elementary/themes/edc/efl/multibuttonentry.edc \
 elementary/themes/edc/efl/nstate.edc \
 elementary/themes/edc/efl/panes.edc \
 elementary/themes/edc/efl/photocam.edc \
+elementary/themes/edc/efl/popup.edc \
 elementary/themes/edc/efl/progress.edc \
 elementary/themes/edc/efl/radio.edc \
 elementary/themes/edc/efl/scroller.edc \
diff --git a/data/elementary/themes/default.edc 
b/data/elementary/themes/default.edc
index d3254be0e2..1bbd492217 100644
--- a/data/elementary/themes/default.edc
+++ b/data/elementary/themes/default.edc
@@ -179,6 +179,7 @@ collections {
 #include "edc/efl/slider.edc"
 #include "edc/efl/radio.edc"
 #include "edc/efl/panes.edc"
+#include "edc/efl/popup.edc"
 #include "edc/efl/video.edc"
 #include "edc/efl/focus.edc"
 #include "edc/efl/multibuttonentry.edc"
diff --git a/data/elementary/themes/edc/efl/popup.edc 
b/data/elementary/themes/edc/efl/popup.edc
new file mode 100644
index 0000000000..f617b30bfd
--- /dev/null
+++ b/data/elementary/themes/edc/efl/popup.edc
@@ -0,0 +1,238 @@
+//Efl.Ui.Popup Themes
+group { "efl/popup";
+   images.image: "rounded_square.png" COMP;
+   parts {
+      spacer { "base";
+         desc { "default";
+            rel1.offset: 10 10;
+            rel2.offset: -11 -11;
+         }
+      }
+      image { "bg";
+         desc { "default";
+            min: 100 100;
+            image.border: 15 15 15 15;
+            image.normal: "rounded_square.png";
+         }
+      }
+      swallow { "elm.swallow.content";
+         desc { "default";
+            rel.to: "base";
+         }
+      }
+   }
+}
+
+group { "efl/popup.alert";
+   images.image: "rounded_square.png" COMP;
+   parts {
+      image { "bg";
+         desc { "default";
+            min: 100 100;
+            image.border: 15 15 15 15;
+            image.normal: "rounded_square.png";
+                  }
+      }
+      spacer { "base";
+         desc { "default";
+            rel.to: "bg";
+            rel1.offset: 10 10;
+            rel2.offset: -11 -11;
+         }
+      }
+      rect { "title_bg";
+         desc { "default";
+            fixed: 0 1;
+            min: 0 0;
+            rel.to: "base";
+            rel2.relative: 1.0 0.0;
+            align: 0.5 0.0;
+            color: 0 0 0 0;
+         }
+         desc { "title_visible";
+            inherit: "default";
+            min: 0 20;
+         }
+      }
+      textblock { "elm.text.title";
+         scale;
+         desc { "default";
+            fixed: 1 1;
+            text {
+              style: "popup_title_style_ellipsis";
+            }
+            rel.to: "title_bg";
+            hid;
+         }
+         desc { "title_visible";
+            inherit: "default";
+            vis;
+         }
+      }
+      swallow { "buttons";
+         desc { "default";
+            fixed: 0 1;
+            rel.to: "base";
+            rel1.relative: 0.0 1.0;
+            align: 0.5 1.0;
+            min: 0 0;
+         }
+         desc { "button_visible";
+            inherit: "default";
+            min: 0 30;
+         }
+      }
+      swallow { "elm.swallow.content";
+         desc { "default";
+            rel1.to_x: "base";
+            rel1.to_y: "title_bg";
+            rel2.to_x: "base";
+            rel2.to_y: "buttons";
+            rel1.relative: 0.0 1.0;
+            rel2.relative: 1.0 0.0;
+         }
+      }
+   }
+   programs {
+      program {
+         signal: "elm,title,show"; source: "elm";
+         action: STATE_SET "title_visible" 0.0;
+         target: "title_bg";
+         target: "elm.text.title";
+      }
+      program {
+         signal: "elm,buttons,show"; source: "elm";
+         action: STATE_SET "button_visible" 0.0;
+         target: "buttons";
+      }
+   }
+}
+
+group { "efl/popup.anchor";
+   inherit: "efl/popup";
+}
+
+group { "efl/popup/backwall";
+   alias: "efl/popup.alert/backwall";
+   alias: "efl/popup.anchor/backwall";
+   parts {
+      rect { "base";
+         desc { "default";
+            color: 0 0 0 64;
+         }
+         desc { "show_image";
+            inherit: "default";
+            hid;
+         }
+      }
+      swallow { "elm.swallow.image";
+         desc { "default";
+            rel.to: "base";
+            hid;
+         }
+         desc { "show_image";
+            inherit: "default";
+            vis;
+         }
+      }
+      rect { "block";
+         desc { "default";
+            rel.to: "base";
+            color: 0 0 0 0;
+         }
+      }
+   }
+
+   programs {
+      program {
+         signal: "elm,state,image,visible"; source: "elm";
+         action: STATE_SET "show_image" 0.0;
+         target: "base";
+         target: "elm.swallow.image";
+      }
+      program {
+         signal: "elm,state,image,hidden"; source: "elm";
+         action: STATE_SET "default" 0.0;
+         target: "base";
+         target: "elm.swallow.image";
+      }
+      program {
+         signal: "mouse,clicked,1"; source: "block";
+         action: SIGNAL_EMIT "elm,action,clicked" "elm";
+      }
+   }
+}
+
+group { "efl/popup.alert/button_layout1";
+   parts {
+      swallow { "elm.swallow.button1";
+      }
+   }
+}
+
+group { "efl/popup.alert/button_layout2";
+   parts {
+      spacer { "div1";
+         desc { "default";
+            rel1.relative: 0.5 0.5;
+            rel2.relative: 0.5 0.5;
+            min: 5 5;
+         }
+      }
+      swallow { "elm.swallow.button1";
+         desc { "default";
+            rel2.to_x: "div1";
+            rel2.relative: 0.0 1.0;
+         }
+      }
+      swallow { "elm.swallow.button2";
+         desc { "default";
+            rel1.to_x: "div1";
+            rel1.relative: 1.0 0.0;
+         }
+      }
+   }
+}
+
+group { "efl/popup.alert/button_layout3";
+   parts {
+      spacer { "div1";
+         desc { "default";
+            rel1.relative: 0.333 0.5;
+            rel2.relative: 0.333 0.5;
+            min: 5 5;
+         }
+      }
+      spacer { "div2";
+         desc { "default";
+            rel1.relative: 0.666 0.5;
+            rel2.relative: 0.666 0.5;
+            min: 5 5;
+         }
+      }
+      swallow { "elm.swallow.button1";
+         desc { "default";
+            rel2.to_x: "div1";
+            rel2.relative: 0.0 1.0;
+         }
+      }
+      swallow { "elm.swallow.button2";
+         desc { "default";
+            rel1.to_x: "div1";
+            rel2.to_x: "div2";
+            rel1.relative: 1.0 0.0;
+            rel2.relative: 0.0 1.0;
+         }
+      }
+      swallow { "elm.swallow.button3";
+         desc { "default";
+            rel1.to_x: "div2";
+            rel1.relative: 1.0 0.0;
+         }
+      }
+   }
+}
+
+group { "efl/popup.alert/button";
+   inherit: "efl/button";
+}
\ No newline at end of file
diff --git a/data/elementary/themes/edc/elm/popup.edc 
b/data/elementary/themes/edc/elm/popup.edc
index e39b5cd5c3..a4c5f07d7e 100644
--- a/data/elementary/themes/edc/elm/popup.edc
+++ b/data/elementary/themes/edc/elm/popup.edc
@@ -515,232 +515,3 @@ group { name: "elm/popup/base/subpopup";
       }
    }
 }
-
-//Efl.Ui.Popup Themes
-group { "elm/popup/base/view";
-   images.image: "rounded_square.png" COMP;
-   parts {
-      spacer { "base";
-         desc { "default";
-            rel1.offset: 10 10;
-            rel2.offset: -11 -11;
-         }
-      }
-      image { "bg";
-         desc { "default";
-            min: 100 100;
-            image.border: 15 15 15 15;
-            image.normal: "rounded_square.png";
-         }
-      }
-      swallow { "elm.swallow.content";
-         desc { "default";
-            rel.to: "base";
-         }
-      }
-   }
-}
-
-group { "elm/popup/base/alert";
-   images.image: "rounded_square.png" COMP;
-   parts {
-      image { "bg";
-         desc { "default";
-            min: 100 100;
-            image.border: 15 15 15 15;
-            image.normal: "rounded_square.png";
-                  }
-      }
-      spacer { "base";
-         desc { "default";
-            rel.to: "bg";
-            rel1.offset: 10 10;
-            rel2.offset: -11 -11;
-         }
-      }
-      rect { "title_bg";
-         desc { "default";
-            fixed: 0 1;
-            min: 0 0;
-            rel.to: "base";
-            rel2.relative: 1.0 0.0;
-            align: 0.5 0.0;
-            color: 0 0 0 0;
-         }
-         desc { "title_visible";
-            inherit: "default";
-            min: 0 20;
-         }
-      }
-      textblock { "elm.text.title";
-         scale;
-         desc { "default";
-            fixed: 1 1;
-            text {
-              style: "popup_title_style_ellipsis";
-            }
-            rel.to: "title_bg";
-            hid;
-         }
-         desc { "title_visible";
-            inherit: "default";
-            vis;
-         }
-      }
-      swallow { "buttons";
-         desc { "default";
-            fixed: 0 1;
-            rel.to: "base";
-            rel1.relative: 0.0 1.0;
-            align: 0.5 1.0;
-            min: 0 0;
-         }
-         desc { "button_visible";
-            inherit: "default";
-            min: 0 30;
-         }
-      }
-      swallow { "elm.swallow.content";
-         desc { "default";
-            rel1.to_x: "base";
-            rel1.to_y: "title_bg";
-            rel2.to_x: "base";
-            rel2.to_y: "buttons";
-            rel1.relative: 0.0 1.0;
-            rel2.relative: 1.0 0.0;
-         }
-      }
-   }
-   programs {
-      program {
-         signal: "elm,title,show"; source: "elm";
-         action: STATE_SET "title_visible" 0.0;
-         target: "title_bg";
-         target: "elm.text.title";
-      }
-      program {
-         signal: "elm,buttons,show"; source: "elm";
-         action: STATE_SET "button_visible" 0.0;
-         target: "buttons";
-      }
-   }
-}
-
-group { "elm/popup/base/backwall";
-   parts {
-      rect { "base";
-         desc { "default";
-            color: 0 0 0 64;
-         }
-         desc { "show_image";
-            inherit: "default";
-            hid;
-         }
-      }
-      swallow { "elm.swallow.image";
-         desc { "default";
-            rel.to: "base";
-            hid;
-         }
-         desc { "show_image";
-            inherit: "default";
-            vis;
-         }
-      }
-      rect { "block";
-         desc { "default";
-            rel.to: "base";
-            color: 0 0 0 0;
-         }
-      }
-   }
-
-   programs {
-      program {
-         signal: "elm,state,image,visible"; source: "elm";
-         action: STATE_SET "show_image" 0.0;
-         target: "base";
-         target: "elm.swallow.image";
-      }
-      program {
-         signal: "elm,state,image,hidden"; source: "elm";
-         action: STATE_SET "default" 0.0;
-         target: "base";
-         target: "elm.swallow.image";
-      }
-      program {
-         signal: "mouse,clicked,1"; source: "block";
-         action: SIGNAL_EMIT "elm,action,clicked" "elm";
-      }
-   }
-}
-
-group { "elm/popup/base/button1";
-   parts {
-      swallow { "elm.swallow.button1";
-      }
-   }
-}
-
-group { "elm/popup/base/button2";
-   parts {
-      spacer { "div1";
-         desc { "default";
-            rel1.relative: 0.5 0.5;
-            rel2.relative: 0.5 0.5;
-            min: 5 5;
-         }
-      }
-      swallow { "elm.swallow.button1";
-         desc { "default";
-            rel2.to_x: "div1";
-            rel2.relative: 0.0 1.0;
-         }
-      }
-      swallow { "elm.swallow.button2";
-         desc { "default";
-            rel1.to_x: "div1";
-            rel1.relative: 1.0 0.0;
-         }
-      }
-   }
-}
-
-group { "elm/popup/base/button3";
-   parts {
-      spacer { "div1";
-         desc { "default";
-            rel1.relative: 0.333 0.5;
-            rel2.relative: 0.333 0.5;
-            min: 5 5;
-         }
-      }
-      spacer { "div2";
-         desc { "default";
-            rel1.relative: 0.666 0.5;
-            rel2.relative: 0.666 0.5;
-            min: 5 5;
-         }
-      }
-      swallow { "elm.swallow.button1";
-         desc { "default";
-            rel2.to_x: "div1";
-            rel2.relative: 0.0 1.0;
-         }
-      }
-      swallow { "elm.swallow.button2";
-         desc { "default";
-            rel1.to_x: "div1";
-            rel2.to_x: "div2";
-            rel1.relative: 1.0 0.0;
-            rel2.relative: 0.0 1.0;
-         }
-      }
-      swallow { "elm.swallow.button3";
-         desc { "default";
-            rel1.to_x: "div2";
-            rel1.relative: 1.0 0.0;
-         }
-      }
-   }
-}
diff --git a/src/lib/elementary/efl_ui_popup.c 
b/src/lib/elementary/efl_ui_popup.c
index 0975386735..285ae39935 100644
--- a/src/lib/elementary/efl_ui_popup.c
+++ b/src/lib/elementary/efl_ui_popup.c
@@ -14,6 +14,8 @@
 #define MY_CLASS EFL_UI_POPUP_CLASS
 #define MY_CLASS_NAME "Efl.Ui.Popup"
 
+static const char PART_NAME_BACKWALL[] = "backwall";
+
 static void
 _backwall_clicked_cb(void *data,
                      Eo *o EINA_UNUSED,
@@ -178,16 +180,22 @@ _efl_ui_popup_efl_object_constructor(Eo *obj, 
Efl_Ui_Popup_Data *pd)
 {
    ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL);
 
+   if (!elm_widget_theme_klass_get(obj))
+     elm_widget_theme_klass_set(obj, "popup");
    obj = efl_constructor(efl_super(obj, MY_CLASS));
    efl_canvas_object_type_set(obj, MY_CLASS_NAME);
 
    elm_widget_sub_object_parent_add(obj);
 
    elm_widget_can_focus_set(obj, EINA_TRUE);
-   elm_layout_theme_set(obj, "popup", "base", "view");
+   if (!elm_widget_theme_object_set(obj, wd->resize_obj,
+                                       elm_widget_theme_klass_get(obj),
+                                       elm_widget_theme_element_get(obj),
+                                       elm_widget_theme_style_get(obj)))
+     CRI("Failed to set layout!");
 
    pd->backwall = edje_object_add(evas_object_evas_get(obj));
-   elm_widget_theme_object_set(obj, pd->backwall, "popup", "base", "backwall");
+   elm_widget_element_update(obj, pd->backwall, PART_NAME_BACKWALL);
    evas_object_smart_member_add(pd->backwall, obj);
    evas_object_stack_below(pd->backwall, wd->resize_obj);
 
diff --git a/src/lib/elementary/efl_ui_popup_alert.c 
b/src/lib/elementary/efl_ui_popup_alert.c
index 13e708f50b..39f7592f13 100644
--- a/src/lib/elementary/efl_ui_popup_alert.c
+++ b/src/lib/elementary/efl_ui_popup_alert.c
@@ -12,6 +12,12 @@
 #define MY_CLASS EFL_UI_POPUP_ALERT_CLASS
 #define MY_CLASS_NAME "Efl.Ui.Popup.Alert"
 
+static const char PART_NAME_BUTTON[] = "button";
+static const char PART_NAME_BUTTON_LAYOUT[EFL_UI_POPUP_ALERT_BUTTON_COUNT][15] 
=
+                                                {"button_layout1",
+                                                 "button_layout2",
+                                                 "button_layout3"};
+
 EOLIAN static void
 _efl_ui_popup_alert_elm_layout_sizing_eval(Eo *obj, Efl_Ui_Popup_Alert_Data 
*pd EINA_UNUSED)
 {
@@ -127,8 +133,9 @@ _efl_ui_popup_alert_button_set(Eo *obj, 
Efl_Ui_Popup_Alert_Data *pd, Efl_Ui_Popu
         efl_del(pd->button[type]);
         pd->button[type] = NULL;
      }
-   pd->button[type] = elm_button_add(obj);
-   elm_object_text_set(pd->button[type], text);
+   pd->button[type] = efl_add(EFL_UI_BUTTON_CLASS, obj,
+                              elm_widget_element_update(obj, efl_added, 
PART_NAME_BUTTON),
+                              efl_text_set(efl_added, text));
 
    switch (type)
      {
@@ -164,8 +171,10 @@ _efl_ui_popup_alert_button_set(Eo *obj, 
Efl_Ui_Popup_Alert_Data *pd, Efl_Ui_Popu
        && pd->button[EFL_UI_POPUP_ALERT_BUTTON_NEGATIVE]
        && pd->button[EFL_UI_POPUP_ALERT_BUTTON_USER])
      {
-        pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_3] = elm_layout_add(obj);
-        elm_layout_theme_set(pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_3], 
"popup", "base", "button3");
+        pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_3]
+           = efl_add(EFL_UI_LAYOUT_CLASS, obj,
+                     elm_widget_element_update(obj, efl_added,
+                                               
PART_NAME_BUTTON_LAYOUT[EFL_UI_POPUP_ALERT_BUTTON_3]));
         
efl_content_set(efl_part(pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_3], 
"elm.swallow.button1"), pd->button[EFL_UI_POPUP_ALERT_BUTTON_USER]);
         
efl_content_set(efl_part(pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_3], 
"elm.swallow.button2"), pd->button[EFL_UI_POPUP_ALERT_BUTTON_POSITIVE]);
         
efl_content_set(efl_part(pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_3], 
"elm.swallow.button3"), pd->button[EFL_UI_POPUP_ALERT_BUTTON_NEGATIVE]);
@@ -174,8 +183,10 @@ _efl_ui_popup_alert_button_set(Eo *obj, 
Efl_Ui_Popup_Alert_Data *pd, Efl_Ui_Popu
    else if (pd->button[EFL_UI_POPUP_ALERT_BUTTON_POSITIVE]
             && pd->button[EFL_UI_POPUP_ALERT_BUTTON_NEGATIVE])
      {
-        pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_2] = elm_layout_add(obj);
-        elm_layout_theme_set(pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_2], 
"popup", "base", "button2");
+        pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_2]
+           = efl_add(EFL_UI_LAYOUT_CLASS, obj,
+                     elm_widget_element_update(obj, efl_added,
+                                               
PART_NAME_BUTTON_LAYOUT[EFL_UI_POPUP_ALERT_BUTTON_2]));
         
efl_content_set(efl_part(pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_2], 
"elm.swallow.button1"), pd->button[EFL_UI_POPUP_ALERT_BUTTON_POSITIVE]);
         
efl_content_set(efl_part(pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_2], 
"elm.swallow.button2"), pd->button[EFL_UI_POPUP_ALERT_BUTTON_NEGATIVE]);
         efl_content_set(efl_part(obj, "buttons"), 
pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_2]);
@@ -183,8 +194,10 @@ _efl_ui_popup_alert_button_set(Eo *obj, 
Efl_Ui_Popup_Alert_Data *pd, Efl_Ui_Popu
    else if (pd->button[EFL_UI_POPUP_ALERT_BUTTON_NEGATIVE]
             && pd->button[EFL_UI_POPUP_ALERT_BUTTON_USER])
      {
-        pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_2] = elm_layout_add(obj);
-        elm_layout_theme_set(pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_2], 
"popup", "base", "button2");
+        pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_2]
+           = efl_add(EFL_UI_LAYOUT_CLASS, obj,
+                     elm_widget_element_update(obj, efl_added,
+                                               
PART_NAME_BUTTON_LAYOUT[EFL_UI_POPUP_ALERT_BUTTON_2]));
         
efl_content_set(efl_part(pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_2], 
"elm.swallow.button1"), pd->button[EFL_UI_POPUP_ALERT_BUTTON_USER]);
         
efl_content_set(efl_part(pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_2], 
"elm.swallow.button2"), pd->button[EFL_UI_POPUP_ALERT_BUTTON_NEGATIVE]);
         efl_content_set(efl_part(obj, "buttons"), 
pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_2]);
@@ -192,30 +205,38 @@ _efl_ui_popup_alert_button_set(Eo *obj, 
Efl_Ui_Popup_Alert_Data *pd, Efl_Ui_Popu
    else if (pd->button[EFL_UI_POPUP_ALERT_BUTTON_POSITIVE]
             && pd->button[EFL_UI_POPUP_ALERT_BUTTON_USER])
      {
-        pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_2] = elm_layout_add(obj);
-        elm_layout_theme_set(pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_2], 
"popup", "base", "button2");
+        pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_2]
+           = efl_add(EFL_UI_LAYOUT_CLASS, obj,
+                     elm_widget_element_update(obj, efl_added,
+                                               
PART_NAME_BUTTON_LAYOUT[EFL_UI_POPUP_ALERT_BUTTON_2]));
         
efl_content_set(efl_part(pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_2], 
"elm.swallow.button1"), pd->button[EFL_UI_POPUP_ALERT_BUTTON_USER]);
         
efl_content_set(efl_part(pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_2], 
"elm.swallow.button2"), pd->button[EFL_UI_POPUP_ALERT_BUTTON_POSITIVE]);
         efl_content_set(efl_part(obj, "buttons"), 
pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_2]);
      }
    else if (pd->button[EFL_UI_POPUP_ALERT_BUTTON_POSITIVE])
      {
-        pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_1] = elm_layout_add(obj);
-        elm_layout_theme_set(pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_1], 
"popup", "base", "button1");
+        pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_1]
+           = efl_add(EFL_UI_LAYOUT_CLASS, obj,
+                     elm_widget_element_update(obj, efl_added,
+                                               
PART_NAME_BUTTON_LAYOUT[EFL_UI_POPUP_ALERT_BUTTON_1]));
         
efl_content_set(efl_part(pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_1], 
"elm.swallow.button1"), pd->button[EFL_UI_POPUP_ALERT_BUTTON_POSITIVE]);
         efl_content_set(efl_part(obj, "buttons"), 
pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_1]);
      }
    else if (pd->button[EFL_UI_POPUP_ALERT_BUTTON_NEGATIVE])
      {
-        pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_1] = elm_layout_add(obj);
-        elm_layout_theme_set(pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_1], 
"popup", "base", "button1");
+        pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_1]
+           = efl_add(EFL_UI_LAYOUT_CLASS, obj,
+                     elm_widget_element_update(obj, efl_added,
+                                               
PART_NAME_BUTTON_LAYOUT[EFL_UI_POPUP_ALERT_BUTTON_1]));
         
efl_content_set(efl_part(pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_1], 
"elm.swallow.button1"), pd->button[EFL_UI_POPUP_ALERT_BUTTON_NEGATIVE]);
         efl_content_set(efl_part(obj, "buttons"), 
pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_1]);
      }
    else if (pd->button[EFL_UI_POPUP_ALERT_BUTTON_USER])
      {
-        pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_1] = elm_layout_add(obj);
-        elm_layout_theme_set(pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_1], 
"popup", "base", "button1");
+        pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_1]
+           = efl_add(EFL_UI_LAYOUT_CLASS, obj,
+                     elm_widget_element_update(obj, efl_added,
+                                               
PART_NAME_BUTTON_LAYOUT[EFL_UI_POPUP_ALERT_BUTTON_1]));
         
efl_content_set(efl_part(pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_1], 
"elm.swallow.button1"), pd->button[EFL_UI_POPUP_ALERT_BUTTON_USER]);
         efl_content_set(efl_part(obj, "buttons"), 
pd->button_layout[EFL_UI_POPUP_ALERT_BUTTON_1]);
      }
@@ -230,13 +251,13 @@ _efl_ui_popup_alert_efl_object_constructor(Eo *obj,
 {
    ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL);
 
+   if (!elm_widget_theme_klass_get(obj))
+     elm_widget_theme_klass_set(obj, "popup.alert");
    obj = efl_constructor(efl_super(obj, MY_CLASS));
    efl_canvas_object_type_set(obj, MY_CLASS_NAME);
 
    elm_widget_sub_object_parent_add(obj);
 
-   elm_layout_theme_set(efl_super(obj, MY_CLASS), "popup", "base", "alert");
-
    return obj;
 }
 
diff --git a/src/lib/elementary/efl_ui_popup_anchor.c 
b/src/lib/elementary/efl_ui_popup_anchor.c
index d1b5672743..2fb571a0b2 100644
--- a/src/lib/elementary/efl_ui_popup_anchor.c
+++ b/src/lib/elementary/efl_ui_popup_anchor.c
@@ -352,6 +352,8 @@ _efl_ui_popup_anchor_efl_object_constructor(Eo *obj,
 {
    ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL);
 
+   if (!elm_widget_theme_klass_get(obj))
+     elm_widget_theme_klass_set(obj, "popup.anchor");
    obj = efl_constructor(efl_super(obj, MY_CLASS));
    efl_canvas_object_type_set(obj, MY_CLASS_NAME);
 

-- 


Reply via email to