ami pushed a commit to branch master.

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

commit 1152fb3e3528e024f0f9e01451783a937fdbe4dc
Author: Yeshwanth Reddivari <r.yeshwa...@samsung.com>
Date:   Mon Mar 28 13:41:27 2016 +0530

    Slider: Theme - Add support for range in edc
    
    phab: https://phab.enlightenment.org/D3821
    Test Plan: elementary_test -to slider
    
    @feature
    
    Change-Id: Ibc3f7c93efb927a6fc602f246a795c426f80bd39
---
 data/elementary/themes/edc/elm/slider.edc       | 473 ++++++++++++++++++++++--
 data/elementary/themes/img/horiz_glow_range.png | Bin 0 -> 131 bytes
 data/elementary/themes/img/vert_glow_range.png  | Bin 0 -> 127 bytes
 3 files changed, 443 insertions(+), 30 deletions(-)

diff --git a/data/elementary/themes/edc/elm/slider.edc 
b/data/elementary/themes/edc/elm/slider.edc
index b39a680..5786dfe 100644
--- a/data/elementary/themes/edc/elm/slider.edc
+++ b/data/elementary/themes/edc/elm/slider.edc
@@ -39,6 +39,7 @@ group { name: "elm/slider/horizontal/default";
    images.image: "slider_run_bevel_horiz.png" COMP;
    images.image: "slider_run_base_light_horiz.png" COMP;
    images.image: "horiz_glow_run.png" COMP;
+   images.image: "horiz_glow_range.png" COMP;
    images.image: "horiz_glow_run_rev.png" COMP;
    images.image: "knob_round_small_normal.png" COMP;
    images.image: "knob_round_small_selected.png" COMP;
@@ -65,6 +66,19 @@ group { name: "elm/slider/horizontal/default";
 #define DISABLE 32
    script {
       public slmode;
+      public range;
+      public g_timer_id;
+      public update_glow()
+        {
+           new x1,y1,w1,h1;
+           new x2,y2,w2,h2;
+           get_geometry(PART:"knob", x1, y1, w1, h1);
+           get_geometry(PART:"knob2", x2, y2, w2, h2);
+           if(x2 < x1)
+             set_state(PART:"glow", "range_reverse", 0.0);
+           else
+             set_state(PART:"glow", "range", 0.0);
+        }
       public eval_mode(m) {
          new ic = m & ICON;
          new l = m & LABEL;
@@ -72,22 +86,36 @@ group { name: "elm/slider/horizontal/default";
          new u = m & UNITS;
          new d = m & DISABLE;
          new i = m & INVERT;
-         if (i) {
-            if (!d) {
-               set_state(PART:"base", "default", 0.0);
-               set_state(PART:"glow", "inverted", 0.0);
-            } else {
-               set_state(PART:"base", "disabled", 0.0);
-               set_state(PART:"glow", "disabled_inverted", 0.0);
-            }
-         } else {
-            if (!d) {
-               set_state(PART:"base", "default", 0.0);
-               set_state(PART:"glow", "default", 0.0);
-            } else {
-               set_state(PART:"base", "disabled", 0.0);
-               set_state(PART:"glow", "disabled", 0.0);
-            }
+         new r = get_int(range);
+         if (!r) {
+           if (i) {
+                if (!d) {
+                     set_state(PART:"base", "default", 0.0);
+                     set_state(PART:"glow", "inverted", 0.0);
+                } else {
+                     set_state(PART:"base", "disabled", 0.0);
+                     set_state(PART:"glow", "disabled_inverted", 0.0);
+                }
+           } else {
+                if (!d) {
+                     set_state(PART:"base", "default", 0.0);
+                     set_state(PART:"glow", "default", 0.0);
+                } else {
+                     set_state(PART:"base", "disabled", 0.0);
+                     set_state(PART:"glow", "disabled", 0.0);
+                }
+           }
+         } else if (d) {
+              new x1,y1,w1,h1;
+              new x2,y2,w2,h2;
+              get_geometry(PART:"knob", x1, y1, w1, h1);
+              get_geometry(PART:"knob2", x2, y2, w2, h2);
+              set_state(PART:"base", "disabled", 0.0);
+              if(x2 < x1)
+                set_state(PART:"glow", "disabled_range_reverse", 0.0);
+              else
+                set_state(PART:"glow", "disabled_range", 0.0);
+
          }
          if (l) {
             if (!d) {
@@ -189,6 +217,32 @@ group { name: "elm/slider/horizontal/default";
             rel2.to: "base";
             image.border: 4 0 0 0;
          }
+         description { state: "range" 0.0;
+            image.normal: "horiz_glow_range.png";
+            rel1.relative: 0.5 1.0;
+            rel1.offset: -1 -2;
+            rel1.to_x: "button";
+            rel1.to_y: "base";
+            rel2.relative: 0.5 1.0;
+            rel2.offset: -1 -2;
+            rel2.to_x: "button2";
+            rel2.to_y: "base";
+            fixed: 0 1;
+            image.border: 0 4 0 0;
+         }
+         description { state: "disabled_range" 0.0;
+            inherit: "range" 0.0;
+            color: 255 255 255 64;
+         }
+         description { state: "range_reverse" 0.0;
+            inherit: "range" 0.0;
+            rel1.to_x: "button2";
+            rel2.to_x: "button";
+         }
+         description { state: "disabled_range_reverse" 0.0;
+            inherit: "range_reverse" 0.0;
+            color: 255 255 255 64;
+         }
          description { state: "disabled_inverted" 0.0;
             inherit: "inverted" 0.0;
             color: 255 255 255 64;
@@ -223,6 +277,7 @@ group { name: "elm/slider/horizontal/default";
             rel2.offset: -1 -3;
             rel2.relative: 0.0 1.0;
             rel2.to_y: "elm.swallow.bar";
+            fixed: 1 0;
          }
          description { state: "visible" 0.0;
             inherit: "default" 0.0;
@@ -297,6 +352,7 @@ group { name: "elm/slider/horizontal/default";
             rel1.offset: 0 2;
             rel1.relative: 1.0 0.0;
             rel2.offset: -1 -3;
+            fixed: 1 0;
          }
          description { state: "visible" 0.0;
             inherit: "default" 0.0;
@@ -350,6 +406,12 @@ group { name: "elm/slider/horizontal/default";
             rel1.offset: -3 2;
             rel2.offset: -3 -3;
          }
+         description { state: "disabled_visible" 0.0;
+            inherit: "default" 0.0;
+            rel1.offset: -3 2;
+            rel2.offset: -3 -3;
+            color: 255 255 255 64;
+         }
       }
       part { name: "elm.units"; type: TEXT; mouse_events: 0;
          effect: SHADOW BOTTOM;
@@ -440,6 +502,93 @@ group { name: "elm/slider/horizontal/default";
             rel2.to: "elm.dragable.slider";
          }
       }
+      part { name: "button2"; type: GROUP; mouse_events: 0;
+         source: "elm/slider/horizontal/indicator/default";
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            rel1.to: "elm.dragable2.slider";
+            rel2.to: "elm.dragable2.slider";
+            visible: 0;
+         }
+         description { state: "show" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+         description { state: "hidden" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "elm.dragable2.slider"; type: RECT;
+         scale: 1;
+         dragable.x: 1 1 0;
+         dragable.y: 0 0 0;
+         dragable.confine: "elm.swallow.bar";
+         description { state: "default" 0.0;
+            color: 0 0 0 0;
+            min: 16 16;
+            max: 16 16;
+            fixed: 1 1;
+            rel1.relative: 0.5 0.0;
+            rel1.to_x: "elm.swallow.bar";
+            rel2.relative: 0.5 1.0;
+            rel2.to_x: "elm.swallow.bar";
+            visible: 0;
+         }
+         description { state: "show" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
+      part { name: "knob2";
+         description { state: "default" 0.0;
+            image.normal: "knob";
+            fixed: 1 1;
+            min: 12 12;
+            step: 2 2;
+            max: 32 32; // XXX allow bigger sizes with more knob images
+            rel1.to: "elm.dragable2.slider";
+            rel1.offset: -4 -4;
+            rel2.to: "elm.dragable2.slider";
+            rel2.offset: 3 3;
+            visible: 0;
+         }
+         description { state: "show" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+         description { state: "clicked" 0.0;
+            inherit: "default" 0.0;
+         }
+      }
+      part { name: "slideevent2"; type: RECT; repeat_events: 1;
+         scale: 1;
+         ignore_flags: ON_HOLD;
+         dragable.events: "elm.dragable2.slider";
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            rel1.to: "elm.dragable2.slider";
+            rel2.to: "elm.dragable2.slider";
+            color: 0 0 0 0;
+            visible: 0;
+         }
+         description { state: "show" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
+      part { name: "elm.track2.slider"; type: SWALLOW; mouse_events: 0;
+         description { state: "default" 0.0;
+            max: 0 0;
+            rel1.to: "elm.dragable2.slider";
+            rel2.to: "elm.dragable2.slider";
+            visible: 0;
+         }
+         description { state: "show" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
       part { name: "event"; type: RECT;
          description { state: "default" 0.0;
             color: 0 0 0 0;
@@ -463,6 +612,46 @@ group { name: "elm/slider/horizontal/default";
          target: "knob";
       }
       program {
+         signal: "elm,slider,range,enable";
+         source: "elm";
+         script {
+              set_int(range, 1);
+              set_state(PART:"button2", "show", 0.0);
+              set_state(PART:"elm.dragable2.slider", "show", 0.0);
+              set_state(PART:"knob2", "show", 0.0);
+              set_state(PART:"slideevent2", "show", 0.0);
+              set_state(PART:"elm.track2.slider", "show", 0.0);
+              update_glow();
+              new m = get_int(slmode);
+              eval_mode(m);
+         }
+      }
+      program {
+         signal: "elm,slider,range,disable";
+         source: "elm";
+         script {
+              set_int(range, 0);
+              set_state(PART:"button2", "default", 0.0);
+              set_state(PART:"elm.dragable2.slider", "default", 0.0);
+              set_state(PART:"knob2", "default", 0.0);
+              set_state(PART:"slideevent2", "default", 0.0);
+              set_state(PART:"elm.track2.slider", "default", 0.0);
+              set_state(PART:"glow", "default", 0.0);
+              new m = get_int(slmode);
+              eval_mode(m);
+         }
+      }
+      program {
+         signal: "drag";
+         source: "elm.dragable*";
+         script {
+              new r;
+              r = get_int(range);
+              if (r)
+                 update_glow();
+         }
+      }
+      program {
          signal: "elm,state,indicator,show"; source: "elm";
          action:  SIGNAL_EMIT "elm,popup,show" "elm";
          after: "popup_show2";
@@ -490,6 +679,24 @@ group { name: "elm/slider/horizontal/default";
          action:  STATE_SET "default" 0.0;
          target: "button";
       }
+       program {
+         signal: "mouse,down,1"; source: "slideevent2";
+         action:  SIGNAL_EMIT "elm,popup,show" "elm";
+         after: "popup2_show2";
+      }
+      program { name: "popup2_show2";
+         action:  STATE_SET "show" 0.0;
+         target: "button2";
+      }
+      program {
+         signal: "mouse,up,1"; source: "slideevent2";
+         action:  SIGNAL_EMIT "elm,popup,hide" "elm";
+         after: "popup2_hide2";
+      }
+      program { name: "popup2_hide2";
+         action:  STATE_SET "hidden" 0.0;
+         target: "button2";
+      }
       program {
          signal: "elm,state,text,visible"; source: "elm";
          script {
@@ -622,6 +829,9 @@ group { name: "elm/slider/horizontal/indicator/default";
             fixed: 1 1;
             min: 16 16;
          }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+         }
       }
       part { name: "clip"; type: RECT;
          description { state: "default" 0.0;
@@ -745,6 +955,7 @@ group { name: "elm/slider/vertical/default";
    images.image: "slider_run_bevel_vert.png" COMP;
    images.image: "slider_run_base_light_vert.png" COMP;
    images.image: "vert_glow_run.png" COMP;
+   images.image: "vert_glow_range.png" COMP;
    images.image: "vert_glow_run_rev.png" COMP;
    images.image: "knob_round_small_normal.png" COMP;
    images.image: "knob_round_small_selected.png" COMP;
@@ -771,6 +982,19 @@ group { name: "elm/slider/vertical/default";
 #define DISABLE 32
    script {
       public slmode;
+      public range;
+      public g_timer_id;
+      public update_glow()
+        {
+           new x1,y1,w1,h1;
+           new x2,y2,w2,h2;
+           get_geometry(PART:"knob", x1, y1, w1, h1);
+           get_geometry(PART:"knob2", x2, y2, w2, h2);
+           if(y2 < y1)
+             set_state(PART:"glow", "range_reverse", 0.0);
+           else
+             set_state(PART:"glow", "range", 0.0);
+        }
       public eval_mode(m) {
          new ic = m & ICON;
          new l = m & LABEL;
@@ -778,22 +1002,35 @@ group { name: "elm/slider/vertical/default";
          new u = m & UNITS;
          new d = m & DISABLE;
          new i = m & INVERT;
-         if (i) {
-            if (!d) {
-               set_state(PART:"base", "default", 0.0);
-               set_state(PART:"glow", "inverted", 0.0);
+         new r = get_int(range);
+         if (!r) {
+            if (i) {
+               if (!d) {
+                  set_state(PART:"base", "default", 0.0);
+                  set_state(PART:"glow", "inverted", 0.0);
+               } else {
+                  set_state(PART:"base", "disabled", 0.0);
+                  set_state(PART:"glow", "disabled_inverted", 0.0);
+               }
             } else {
-               set_state(PART:"base", "disabled", 0.0);
-               set_state(PART:"glow", "disabled_inverted", 0.0);
-            }
-         } else {
-            if (!d) {
-               set_state(PART:"base", "default", 0.0);
-               set_state(PART:"glow", "default", 0.0);
-            } else {
-               set_state(PART:"base", "disabled", 0.0);
-               set_state(PART:"glow", "disabled", 0.0);
+               if (!d) {
+                  set_state(PART:"base", "default", 0.0);
+                  set_state(PART:"glow", "default", 0.0);
+               } else {
+                  set_state(PART:"base", "disabled", 0.0);
+                  set_state(PART:"glow", "disabled", 0.0);
+               }
             }
+         } else if (d) {
+              new x1,y1,w1,h1;
+              new x2,y2,w2,h2;
+              get_geometry(PART:"knob", x1, y1, w1, h1);
+              get_geometry(PART:"knob2", x2, y2, w2, h2);
+              set_state(PART:"base", "disabled", 0.0);
+              if(y2 < y1)
+                set_state(PART:"glow", "disabled_range_reverse", 0.0);
+              else
+                set_state(PART:"glow", "disabled_range", 0.0);
          }
          if (l) {
             if (!d) {
@@ -895,6 +1132,32 @@ group { name: "elm/slider/vertical/default";
             rel2.to: "base";
             image.border: 0 0 4 0;
          }
+         description { state: "range" 0.0;
+            image.normal: "vert_glow_range.png";
+            rel1.relative: 0.5 1.0;
+            rel1.offset: -1 -2;
+            rel1.to_x: "base";
+            rel1.to_y: "button";
+            rel2.relative: 0.5 1.0;
+            rel2.offset: -1 -2;
+            rel2.to_x: "base";
+            rel2.to_y: "button2";
+            fixed: 1 0;
+            image.border: 0 4 0 0;
+         }
+         description { state: "disabled_range" 0.0;
+            inherit: "range" 0.0;
+            color: 255 255 255 64;
+         }
+         description { state: "range_reverse" 0.0;
+            inherit: "range" 0.0;
+            rel1.to_y: "button2";
+            rel2.to_y: "button";
+         }
+         description { state: "disabled_range_reverse" 0.0;
+            inherit: "range_reverse" 0.0;
+            color: 255 255 255 64;
+         }
          description { state: "disabled_inverted" 0.0;
             inherit: "inverted" 0.0;
             color: 255 255 255 64;
@@ -929,6 +1192,7 @@ group { name: "elm/slider/vertical/default";
             rel2.offset: -3 -1;
             rel2.relative: 1.0 0.0;
             rel2.to_x: "elm.swallow.bar";
+            fixed: 0 1;
          }
          description { state: "visible" 0.0;
             inherit: "default" 0.0;
@@ -1004,6 +1268,7 @@ group { name: "elm/slider/vertical/default";
             rel1.offset: 2 0;
             rel1.relative: 0.0 1.0;
             rel2.offset: -3 -1;
+            fixed: 0 1;
          }
          description { state: "visible" 0.0;
             inherit: "default" 0.0;
@@ -1149,6 +1414,93 @@ group { name: "elm/slider/vertical/default";
             rel2.to: "elm.dragable.slider";
          }
       }
+      part { name: "button2"; type: GROUP; mouse_events: 0;
+         source: "elm/slider/vertical/indicator/default";
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            rel1.to: "elm.dragable2.slider";
+            rel2.to: "elm.dragable2.slider";
+            visible: 0;
+         }
+         description { state: "hidden" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+         description { state: "show" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
+      part { name: "elm.dragable2.slider"; type: RECT;
+         scale: 1;
+         dragable.x: 0 0 0;
+         dragable.y: 1 1 0;
+         dragable.confine: "elm.swallow.bar";
+         description { state: "default" 0.0;
+            color: 0 0 0 0;
+            min: 16 16;
+            max: 16 16;
+            fixed: 1 1;
+            rel1.relative: 0.0 0.5;
+            rel1.to_x: "elm.swallow.bar";
+            rel2.relative: 1.0 0.5;
+            rel2.to_x: "elm.swallow.bar";
+            visible: 0;
+         }
+         description { state: "show" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
+      part { name: "knob2";
+         description { state: "default" 0.0;
+            image.normal: "knob";
+            fixed: 1 1;
+            min: 12 12;
+            step: 2 2;
+            max: 32 32; // XXX allow bigger sizes with more knob images
+            rel1.to: "elm.dragable2.slider";
+            rel1.offset: -4 -4;
+            rel2.to: "elm.dragable2.slider";
+            rel2.offset: 3 3;
+            visible: 0;
+         }
+         description { state: "show" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+         description { state: "clicked" 0.0;
+            inherit: "default" 0.0;
+         }
+      }
+      part { name: "slideevent2"; type: RECT; repeat_events: 1;
+         scale: 1;
+         ignore_flags: ON_HOLD;
+         dragable.events: "elm.dragable2.slider";
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            rel1.to: "elm.dragable2.slider";
+            rel2.to: "elm.dragable2.slider";
+            color: 0 0 0 0;
+            visible: 0;
+         }
+         description { state: "show" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
+      part { name: "elm.track2.slider"; type: SWALLOW; mouse_events: 0;
+         description { state: "default" 0.0;
+            max: 0 0;
+            rel1.to: "elm.dragable2.slider";
+            rel2.to: "elm.dragable2.slider";
+            visible: 0;
+         }
+         description { state: "show" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
       part { name: "event"; type: RECT;
          description { state: "default" 0.0;
             color: 0 0 0 0;
@@ -1172,6 +1524,46 @@ group { name: "elm/slider/vertical/default";
          target: "knob";
       }
       program {
+         signal: "elm,slider,range,enable";
+         source: "elm";
+         script {
+              set_int(range, 1);
+              set_state(PART:"button2", "show", 0.0);
+              set_state(PART:"elm.dragable2.slider", "show", 0.0);
+              set_state(PART:"knob2", "show", 0.0);
+              set_state(PART:"slideevent2", "show", 0.0);
+              set_state(PART:"elm.track2.slider", "show", 0.0);
+              update_glow();
+              new m = get_int(slmode);
+              eval_mode(m);
+         }
+      }
+      program {
+         signal: "elm,slider,range,disable";
+         source: "elm";
+         script {
+              set_int(range, 0);
+              set_state(PART:"button2", "default", 0.0);
+              set_state(PART:"elm.dragable2.slider", "default", 0.0);
+              set_state(PART:"knob2", "default", 0.0);
+              set_state(PART:"slideevent2", "default", 0.0);
+              set_state(PART:"elm.track2.slider", "default", 0.0);
+              set_state(PART:"glow", "default", 0.0);
+              new m = get_int(slmode);
+              eval_mode(m);
+         }
+      }
+      program {
+         signal: "drag";
+         source: "elm.dragable*";
+         script {
+              new r;
+              r = get_int(range);
+              if (r)
+                 update_glow();
+         }
+      }
+      program {
          signal: "elm,state,indicator,show"; source: "elm";
          action:  SIGNAL_EMIT "elm,popup,show" "elm";
          after: "popup_show2";
@@ -1200,6 +1592,24 @@ group { name: "elm/slider/vertical/default";
          target: "button";
       }
       program {
+         signal: "mouse,down,1"; source: "slideevent2";
+         action:  SIGNAL_EMIT "elm,popup,show" "elm";
+         after: "popup2_show2";
+      }
+      program { name: "popup2_show2";
+         action:  STATE_SET "show" 0.0;
+         target: "button2";
+      }
+      program {
+         signal: "mouse,up,1"; source: "slideevent2";
+         action:  SIGNAL_EMIT "elm,popup,hide" "elm";
+         after: "popup2_hide2";
+      }
+      program { name: "popup2_hide2";
+         action:  STATE_SET "hidden" 0.0;
+         target: "button2";
+      }
+      program {
          signal: "elm,state,text,visible"; source: "elm";
          script {
             new m = get_int(slmode);
@@ -1329,6 +1739,9 @@ group { name: "elm/slider/vertical/indicator/default";
             fixed: 1 1;
             min: 16 16;
          }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+         }
       }
       part { name: "clip"; type: RECT;
          description { state: "default" 0.0;
diff --git a/data/elementary/themes/img/horiz_glow_range.png 
b/data/elementary/themes/img/horiz_glow_range.png
new file mode 100755
index 0000000..63b0e6c
Binary files /dev/null and b/data/elementary/themes/img/horiz_glow_range.png 
differ
diff --git a/data/elementary/themes/img/vert_glow_range.png 
b/data/elementary/themes/img/vert_glow_range.png
new file mode 100755
index 0000000..c546fd2
Binary files /dev/null and b/data/elementary/themes/img/vert_glow_range.png 
differ

-- 


Reply via email to