#define ICON(icon_name) \ images { \ image: icon_name".png" COMP; \ } \ group { \ name: icon_name; \ min: 33 27; \ max: 33 27; \ parts { \ part { \ name: "icon"; \ description { \ state: "default" 0.0; \ rel1 { \ relative: 0.0 0.0; \ offset: 0 0; \ } \ rel2 { \ relative: 1.0 1.0; \ offset: -1 -1; \ } \ image { \ normal: icon_name".png"; \ } \ fill { \ smooth: 0; \ } \ } \ } \ } \ } images { image: "tiles.png" COMP; image: "e17_fileman_thumb_bg.png" COMP; image: "e17_mini_button_shadow2.png" COMP; } collections { ICON("fit_to_window"); ICON("one_to_one"); ICON("zoom_in"); ICON("zoom_out"); group { name: "image_bg"; parts { part { name: "image_bg"; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; offset: 0 0; } rel2 { relative: 1.0 1.0; offset: -1 -1; } image { normal: "tiles.png"; } fill { smooth: 0; origin { relative: 0.0 0.0; offset: 0 0; } size { relative: 0.0 0.0; offset: 128 128; } } } } } } group { name: "tree/model/wobbly"; parts { part { name: "icon_box_shadow"; mouse_events: 0; description { state: "default" 0.0; visible: 0; rel1 { to: "icon_box"; relative: 0.0 0.0; offset: -1 -1; } rel2 { to: "icon_box"; relative: 1.0 1.0; offset: 2 2; } image { normal: "e17_mini_button_shadow2.png"; border: 6 6 6 6; } } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "icon_box"; type: RECT; mouse_events: 0; description { state: "default" 0.0; visible: 0; align: 0.5 0.5; rel1 { to: "swallow_icon"; relative: 0.0 0.0; offset: -1 -1; } rel2 { to: "swallow_icon"; relative: 1.0 1.0; offset: 0 0; } color: 0 0 0 64; } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "icon_box_bg"; mouse_events: 0; description { state: "default" 0.0; visible: 0; rel1 { to: "icon_box"; relative: 0.0 0.0; offset: 1 1; } rel2 { to: "icon_box"; relative: 1.0 1.0; offset: -2 -2; } image { normal: "e17_fileman_thumb_bg.png"; } fill { smooth: 0; size { relative: 0 0; offset: 32 32; } } } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "icon0"; type: RECT; mouse_events: 0; description { state: "default" 0.0; align: 0.0 0.5; aspect: 1.0 1.0; aspect_preference: VERTICAL; visible: 0; rel1 { relative: 0.0 0.0; offset: 4 4; } rel2 { relative: 0.0 1.0; offset: 4 -5; } color: 0 0 0 0; } } part { name: "icon"; type: RECT; mouse_events: 0; description { state: "default" 0.0; align: 0.5 0.5; aspect: 1.0 1.0; aspect_preference: BOTH; visible: 0; rel1 { to: "icon0"; } rel2 { to: "icon0"; } color: 0 0 0 0; } description { state: "min" 0.0; inherit: "default" 0.0; max: 0 0; } description { state: "max" 0.0; inherit: "default" 0.0; rel1 { to: "icon0"; relative: 0.0 0.0; offset: -4 -4; } rel2 { to: "icon0"; relative: 1.0 1.0; offset: 3 3; } } description { state: "max2" 0.0; inherit: "default" 0.0; rel1 { to: "icon0"; relative: 0.0 0.0; offset: -2 -2; } rel2 { to: "icon0"; relative: 1.0 1.0; offset: 1 1; } } } part { name: "swallow_icon"; type: SWALLOW; mouse_events: 0; description { state: "default" 0.0; align: 0.5 0.5; // fixed: 1 1; rel1 { to: "icon"; } rel2 { to: "icon"; } } } programs { program { name: "thumb_gen"; signal: "e,action,thumb,gen"; source: "e"; action: STATE_SET "visible" 0.0; target: "icon_box_shadow"; target: "icon_box"; target: "icon_box_bg"; after: "thumb_gen2"; } program { name: "thumb_gen-"; signal: "e,action,thumb,gen,alpha"; source: "e"; action: STATE_SET "default" 0.0; target: "icon_box_shadow"; target: "icon_box"; target: "icon_box_bg"; after: "thumb_gen2"; } program { name: "thumb_gen2"; action: STATE_SET "min" 0.0; target: "icon"; after: "thumb_gen3"; } program { name: "thumb_gen3"; action: STATE_SET "max" 0.0; target: "icon"; transition: DECELERATE 0.2; after: "thumb_gen4"; } program { name: "thumb_gen4"; action: STATE_SET "default" 0.0; target: "icon"; transition: SINUSOIDAL 0.1; after: "thumb_gen5"; } program { name: "thumb_gen5"; action: STATE_SET "max2" 0.0; target: "icon"; transition: SINUSOIDAL 0.2; after: "thumb_gen6"; } program { name: "thumb_gen6"; action: STATE_SET "default" 0.0; target: "icon"; transition: SINUSOIDAL 0.3; } } } } }