button: add elm.swallow.background part
authorSungTaek Hong <sth253.hong@samsung.com>
Fri, 5 Feb 2016 07:21:54 +0000 (08:21 +0100)
committerCedric BAIL <cedric@osg.samsung.com>
Fri, 5 Feb 2016 07:45:19 +0000 (08:45 +0100)
Summary:
- This swallow part is for custom bg image.
- previous bg has to be hid.

Reviewers: kimcinoo

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
legacy/elementary/data/themes/edc/elm/button.edc

index 9982c17..d6cfb08 100644 (file)
@@ -8,12 +8,32 @@ group { name: "elm/button/base/default";
 #define MASK     3
 #define DISABLE  4
 #define PRESSED  8
+#define BACKGROUND  16
    script {
       public btmode;
       public eval_mode(m) {
          new m1 = m & MASK;
          new d = m & DISABLE;
          new p = m & PRESSED;
+         new bg = m & BACKGROUND;
+         if (bg) {
+            set_state(PART:"base", "hidden", 0.0);
+            set_state(PART:"elm.swallow.background", "visible", 0.0);
+         } else {
+            set_state(PART:"elm.swallow.background", "default", 0.0);
+            if (!d) {
+               if (!p)
+                 {
+                  set_state(PART:"base", "default", 0.0);
+                  set_state(PART:"base", "default", 0.0);
+                 }
+               else {
+                    set_state(PART:"base", "pressed", 0.0);
+                 }
+            } else {
+               set_state(PART:"base", "disabled", 0.0);
+            }
+         }
          if (m1 == (ICON | LABEL)) {
             if (!d) {
                set_state(PART:"elm.swallow.content", "visible", 0.0);
@@ -22,11 +42,9 @@ group { name: "elm/button/base/default";
                if (!p) {
                   set_state(PART:"elm.text", "visible", 0.0);
                   set_state(PART:"icon_clip", "default", 0.0);
-                  set_state(PART:"base", "default", 0.0);
                } else {
                   set_state(PART:"elm.text", "pressed_visible", 0.0);
                   set_state(PART:"icon_clip", "pressed", 0.0);
-                  set_state(PART:"base", "pressed", 0.0);
                }
             } else {
                set_state(PART:"elm.swallow.content", "visible", 0.0);
@@ -34,7 +52,6 @@ group { name: "elm/button/base/default";
                set_state(PART:"elm.text", "disabled_visible", 0.0);
                set_state(PART:"icon_clip", "disabled", 0.0);
                set_state(PART:"event", "disabled", 0.0);
-               set_state(PART:"base", "disabled", 0.0);
             }
          } else if (m1 == (ICON)) {
             if (!d) {
@@ -42,20 +59,16 @@ group { name: "elm/button/base/default";
                set_state(PART:"sizer.content", "icononly", 0.0);
                set_state(PART:"event", "default", 0.0);
                set_state(PART:"elm.text", "default", 0.0);
-               if (!p) {
+               if (!p)
                   set_state(PART:"icon_clip", "default", 0.0);
-                  set_state(PART:"base", "default", 0.0);
-               } else {
+               else
                   set_state(PART:"icon_clip", "pressed", 0.0);
-                  set_state(PART:"base", "pressed", 0.0);
-               }
             } else {
                set_state(PART:"elm.swallow.content", "icononly", 0.0);
                set_state(PART:"sizer.content", "icononly", 0.0);
                set_state(PART:"elm.text", "default", 0.0);
                set_state(PART:"icon_clip", "disabled", 0.0);
                set_state(PART:"event", "disabled", 0.0);
-               set_state(PART:"base", "disabled", 0.0);
             }
          } else if (m1 == (LABEL)) {
             if (!d) {
@@ -63,20 +76,16 @@ group { name: "elm/button/base/default";
                set_state(PART:"sizer.content", "default", 0.0);
                set_state(PART:"icon_clip", "default", 0.0);
                set_state(PART:"event", "default", 0.0);
-               if (!p) {
+               if (!p)
                   set_state(PART:"elm.text", "textonly", 0.0);
-                  set_state(PART:"base", "default", 0.0);
-               } else {
+               else
                   set_state(PART:"elm.text", "pressed_textonly", 0.0);
-                  set_state(PART:"base", "pressed", 0.0);
-               }
             } else {
                set_state(PART:"elm.swallow.content", "default", 0.0);
                set_state(PART:"sizer.content", "default", 0.0);
                set_state(PART:"elm.text", "disabled_textonly", 0.0);
                set_state(PART:"icon_clip", "disabled", 0.0);
                set_state(PART:"event", "disabled", 0.0);
-               set_state(PART:"base", "disabled", 0.0);
             }
          } else {
             if (!d) {
@@ -85,18 +94,12 @@ group { name: "elm/button/base/default";
                set_state(PART:"elm.text", "icononly", 0.0);
                set_state(PART:"icon_clip", "default", 0.0);
                set_state(PART:"event", "default", 0.0);
-               if (!p) {
-                  set_state(PART:"base", "default", 0.0);
-               } else {
-                  set_state(PART:"base", "pressed", 0.0);
-               }
             } else {
                set_state(PART:"elm.swallow.content", "default", 0.0);
                set_state(PART:"sizer.content", "default", 0.0);
                set_state(PART:"elm.text", "icononly", 0.0);
                set_state(PART:"icon_clip", "disabled", 0.0);
                set_state(PART:"event", "disabled", 0.0);
-               set_state(PART:"base", "disabled", 0.0);
             }
          }
       }
@@ -122,6 +125,21 @@ group { name: "elm/button/base/default";
             inherit: "default";
             color_class: "button_bg_disabled";
          }
+         desc { "hidden";
+            inherit: "default";
+            visible: 0;
+         }
+      }
+      swallow { "elm.swallow.background"; nomouse;
+         desc { "default";
+            rel1.to: "base";
+            rel2.to: "base";
+            visible: 0;
+         }
+         desc { "visible";
+            inherit: "default";
+            visible: 1;
+         }
       }
       rect { "icon_clip";
          desc { "default";
@@ -348,6 +366,22 @@ group { name: "elm/button/base/default";
             eval_mode(m);
          }
       }
+      program { name: "button_background_visible";
+         signal: "elm,state,background,visible"; source: "elm";
+         script {
+            new m = get_int(btmode);
+            m |= BACKGROUND; set_int(btmode, m);
+            eval_mode(m);
+         }
+      }
+      program { name: "button_background_hidden";
+         signal: "elm,state,background,hidden"; source: "elm";
+         script {
+            new m = get_int(btmode);
+            m &= ~BACKGROUND; set_int(btmode, m);
+            eval_mode(m);
+         }
+      }
       program { name: "button_state_disabled";
          signal: "elm,state,disabled"; source: "elm";
          script {
@@ -370,6 +404,7 @@ group { name: "elm/button/base/default";
 #undef MASK
 #undef DISABLE
 #undef PRESSED
+#undef BACKGROUND
 }
 
 group { name: "elm/button/base/anchor";
@@ -465,6 +500,17 @@ group { name: "elm/button/base/anchor";
             color: 255 255 255 64;
          }
       }
+      swallow { "elm.swallow.background"; nomouse;
+         desc { "default";
+            rel1.to: "base";
+            rel2.to: "base";
+            visible: 0;
+         }
+         desc { "visible";
+            inherit: "default";
+            visible: 1;
+         }
+      }
       swallow { "elm.swallow.content"; nomouse;
          clip_to: "icon_clip";
          desc { "default";
@@ -708,6 +754,16 @@ group { name: "elm/button/base/anchor";
             eval_mode(m);
          }
       }
+      program { name: "button_background_visible";
+         signal: "elm,state,background,visible"; source: "elm";
+         action: STATE_SET "visible" 0.0;
+         target: "elm.swallow.background";
+      }
+      program { name: "button_background_hidden";
+         signal: "elm,state,background,hidden"; source: "elm";
+         action:  STATE_SET "default" 0.0;
+         target: "elm.swallow.background";
+      }
       program { name: "button_state_disabled";
          signal: "elm,state,disabled"; source: "elm";
          script {