group { name: "elm/photo/base/default";
   images.image: "win_shadow.png" COMP;
   parts {
      part { name: "shadow"; mouse_events: 0;
         description { state: "default" 0.0;
            image.normal: "win_shadow.png";
            image.border: 14 14 14 14;
            image.middle: 0;
            rel1.to: "base";
            rel1.offset: -7  -3;
            rel2.to: "base";
            rel2.offset: 6 11;
            fill.smooth: 0;
         }
      }
      part { name: "base"; type: RECT;
         description { state: "default" 0.0;
            rel1.offset: 7 7;
            rel2.offset: -8 -8;
            color: 255 255 255 255;
         }
      }
      part { name: "clip"; type: RECT;
         description { state:    "default" 0.0;
            rel1.to: "base";
            rel1.offset: 4 4;
            rel2.to: "base";
            rel2.offset: -5 -5;
         }
      }
      part { name: "bg"; type: RECT;
         description { state:    "default" 0.0;
            rel1.to: "clip";
            rel2.to: "clip";
            color: DARK_GREY_BG_COLOR;
         }
      }
      part { name: "elm.swallow.content"; type: SWALLOW;
         clip_to: "clip";
         description { state: "default" 0.0;
            rel1.to: "clip";
            rel2.to: "clip";
         }
      }
   }
}

group { name: "elm/photo/base/shadow";
   inherit: "elm/photo/base/default";
   script {
      public message(Msg_Type:type, id, ...) {
         if ((type == MSG_INT_SET) && (id == 0)) {
            new w, h;
            w = getarg(2); h = getarg(3);
            if ((w > 0) && (h > 0)) {
               custom_state(PART:"size", "default", 0.0);
               set_state_val(PART:"size", STATE_MIN, w, h);
               set_state_val(PART:"size", STATE_REL1, 0.5, 0.5);
               set_state_val(PART:"size", STATE_REL2, 0.5, 0.5);
               set_state_val(PART:"size", STATE_REL1_OFFSET, 0, 0);
               set_state_val(PART:"size", STATE_REL2_OFFSET, -1, -1);
               set_state(PART:"size", "custom", 0.0);
            } else {
               set_state(PART:"size", "default", 0.0);
            }
         }
      }
   }
   parts {
      part { name: "size"; type: SWALLOW;
         description { state: "default" 0.0;
            rel1.offset: 7 7;
            rel2.offset: -8 -8;
         }
      }
      part { name: "base"; type: RECT;
         description { state: "default" 0.0;
            rel1.to: "size";
            rel1.offset: 0 0;
            rel2.to: "size";
            rel2.offset: -1 -1;
         }
      }
      part { name: "clip";
         description { state: "default" 0.0;
            rel1.offset: 0 0;
            rel2.offset: -1 -1;
         }
      }
   }
}
