/* * efl-theme-tizen * Copyright (c) 2012-2013 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the License); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an AS IS BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /////////////////////////////////////////////////////////////////////////////////////// group { name: "elm/progressbar/horizontal/default"; alias: "elm/progressbar/horizontal/list_progress"; images { image: "00_progress_bg.png" COMP; image: "00_progress_bar.png" COMP; } parts { part { name: "access"; type: RECT; description { state: "default" 0.0; fixed: 1 1; color: 0 0 0 0; } } part { name: "elm.padding.left"; type: RECT; scale: 1; description { state: "default" 0.0; min: 0 0; fixed: 1 0; rel1 { relative: 0.0 0.0; offset: 0 0; } rel2 { relative: 0.0 1.0; offset: 0 0; } visible: 0; align: 0.0 0.0; } } part { name: "elm.padding.right"; type: RECT; scale: 1; description { state: "default" 0.0; min: 0 0; fixed: 1 0; rel1 { relative: 1.0 0.0; offset: 0 0; } rel2 { relative: 1.0 1.0; offset: 0 0; } visible: 0; align: 1.0 0.0; } } part { name: "elm.background.progressbar"; type: RECT; mouse_events: 0; scale: 1; description { state: "default" 0.0; rel1 { to_x: "elm.padding.left"; relative: 1.0 0.0; offset: 0 0; } rel2 { to_x: "elm.padding.right"; relative: 0.0 1.0; offset: 0 0; } } } part { name: "elm.swallow.bar"; mouse_events: 0; scale: 1; type: SWALLOW; description { min: 1 PROGRESSBAR_LIST_PROGRESS_HEIGHT_INC; max: 99999 PROGRESSBAR_LIST_PROGRESS_HEIGHT_INC; state: "default" 0.0; rel1 { to: "elm.background.progressbar"; relative: 0.0 0.0; } rel2 { to: "elm.background.progressbar"; relative: 1.0 1.0; } } } part { name: "elm.swallow.content"; type: SWALLOW; scale: 1; description { state: "default" 0.0; visible: 0; align: 0.0 0.5; rel1 { offset: 0 0; to_y: "elm.background.progressbar"; } rel2 { offset: 0 -1; relative: 0.0 1.0; to_y: "elm.background.progressbar"; } } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; aspect: 1.0 1.0; aspect_preference: VERTICAL; rel2.offset: 4 -1; } } part { name: "elm.text"; type: TEXT; mouse_events: 0; scale: 1; description { state: "default" 0.0; visible: 0; fixed: 1 1; align: 0.0 0.5; rel1.to_x: "elm.swallow.content"; rel1.relative: 1.0 0.0; rel2.to_x: "elm.swallow.content"; rel2.relative: 1.0 1.0; color: PROGRESSBAR_LIST_PROGRESS_STYLE_TEXT_COLOR_INC; text { font: "Tizen:style=Medium"; size: PROGRESSBAR_STATUS_TEXT_FONT_SIZE_INC; min: 0 0; align: 0.0 0.5; text_class: "tizen"; } } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 0; text.min: 1 1; } } part { name: "background"; mouse_events: 0; scale: 1; clip_to: "elm.background.progressbar"; description { state: "default" 0.0; rel1 { to: "elm.swallow.bar"; relative: 0.0 0.0; } rel2 { to: "elm.swallow.bar"; relative: 1.0 1.0; } image { normal: "00_progress_bg.png"; border: PROGRESS_BG_IMAGE_BORDER_INC; border_scale: 1; } } } part { name: "elm.text.status"; type: TEXT; mouse_events: 0; scale: 1; description { state: "default" 0.0; fixed: 1 1; visible: 0; rel1 { to: "background"; relative: 0.5 0.5; } rel2 { to: "background"; relative: 0.5 0.5; } text { font: "Tizen:style=Medium"; size: PROGRESSBAR_STATUS_TEXT_FONT_SIZE_INC; min: 0 0; align: 0.5 0.0; text_class: "tizen"; } color: PROGRESSBAR_LIST_PROGRESS_STYLE_TEXT_COLOR_INC; } description { state: "show" 0.0; inherit: "default" 0.0; visible: 0; text.min: 1 1; } } part { name: "bar.image.left.padding"; type: RECT; scale: 1; description { state: "default" 0.0; visible: 0; min: PROGRESS_BAR_IMAGE_PADDING_SIZE_INC; max: PROGRESS_BAR_IMAGE_PADDING_SIZE_INC; fixed: 1 0; rel1.to: "elm.swallow.bar"; rel2 { relative: 0.0 1.0; to: "elm.swallow.bar"; } align: 0.0 0.5; } } part { name: "bar.image.right.padding"; type: RECT; scale: 1; description { state: "default" 0.0; visible: 0; min: PROGRESS_BAR_IMAGE_PADDING_SIZE_INC; max: PROGRESS_BAR_IMAGE_PADDING_SIZE_INC; fixed: 1 0; rel1 { relative: 1.0 0.0; to: "elm.swallow.bar"; } rel2.to: "elm.swallow.bar"; align: 1.0 0.5; } } part { name: "drag.background"; mouse_events: 0; type: RECT; scale: 1; clip_to: "elm.background.progressbar"; description { state: "default" 0.0; visible: 0; rel1 { to_x: "bar.image.left.padding"; to_y: "elm.swallow.bar"; relative: 1.0 0.0; } rel2 { to_x: "bar.image.right.padding"; to_y: "elm.swallow.bar"; relative: 0.0 1.0; } } } part { name: "elm.progress.progressbar"; mouse_events: 0; scale: 1; clip_to: "elm.background.progressbar"; description { state: "default" 0.0; min: 0 0; fixed: 1 1; rel1 { to_x: "bar.image.left.padding"; to_y: "elm.swallow.bar"; relative: 1.0 0.0; } rel2 { to_y: "elm.swallow.bar"; to_x: "elm.cur.progressbar"; offset: -1 -1; } image { normal: "00_progress_bar.png"; border: PROGRESS_BAR_IMAGE_BORDER_INC; border_scale: 1; } } description { state: "invert" 0.0; inherit: "default" 0.0; rel1 { to_y: "elm.swallow.bar"; to_x: "elm.cur.progressbar"; } rel2 { to_y: "elm.swallow.bar"; to_x: "bar.image.right.padding"; relative: 1.0 0.0; } } description { state: "state_begin" 0.0; inherit: "default" 0.0; rel1 { to: "elm.swallow.bar"; relative: 0.0 0.0; } rel2 { to: "elm.swallow.bar"; relative: 0.1 1.0; } } description { state: "state_end" 0.0; inherit: "default" 0.0; rel1 { to: "elm.swallow.bar"; relative: 0.9 0.0; } rel2 { to: "elm.swallow.bar"; relative: 1.0 1.0; } } } part { name: "text-bar"; type: TEXT; mouse_events: 0; scale: 1; clip_to: "progress-rect"; //effect: SOFT_SHADOW; scale: 0; description { state: "default" 0.0; align: 0.0 0.0; fixed: 1 1; visible: 0; rel1.to: "elm.text.status"; rel1.offset: -1 -1; rel2.to: "elm.text.status"; text { text_source: "elm.text.status"; font: "Tizen:style=Medium"; size: PROGRESSBAR_STATUS_TEXT_FONT_SIZE_INC; min: 0 0; align: 0.0 0.0; text_class: "tizen"; } color: PROGRESSBAR_LIST_PROGRESS_STYLE_STATUS_TEXT_COLOR_INC; } description { state: "show" 0.0; inherit: "default" 0.0; visible: 0; text.min: 1 1; } } part { name: "elm.cur.progressbar"; mouse_events: 0; scale: 1; dragable { confine: "drag.background"; x: 1 1 1; y: 0 0 0; } description { state: "default" 0.0; min: 0 28; fixed: 1 1; visible: 0; rel1.to: "drag.background"; rel2.to: "drag.background"; } } part { name: "progress-rect"; type: RECT; mouse_events: 0; scale: 1; description { state: "default" 0.0; rel1.to: "elm.progress.progressbar"; rel2.to: "elm.progress.progressbar"; } } } programs { program { name: "label_show"; signal: "elm,state,text,visible"; source: "elm"; action: STATE_SET "visible" 0.0; target: "elm.text"; } program { name: "label_hide"; signal: "elm,state,text,hidden"; source: "elm"; action: STATE_SET "default" 0.0; target: "elm.text"; } program { name: "icon_show"; signal: "elm,state,icon,visible"; source: "elm"; action: STATE_SET "visible" 0.0; target: "elm.swallow.content"; } program { name: "icon_hide"; signal: "elm,state,icon,hidden"; source: "elm"; action: STATE_SET "default" 0.0; target: "elm.swallow.content"; } program { name: "units_show"; signal: "elm,state,units,visible"; source: "elm"; action: STATE_SET "show" 0.0; target: "text-bar"; target: "elm.text.status"; } program { name: "units_hide"; signal: "elm,state,units,hidden"; source: "elm"; action: STATE_SET "default" 0.0; target: "text-bar"; target: "elm.text.status"; } program { name: "slide_to_end"; action: STATE_SET "state_end" 0.0; transition: LINEAR 0.5; target: "elm.progress.progressbar"; after: "slide_to_begin"; } program { name: "slide_to_begin"; signal: "elm,state,slide,begin"; action: STATE_SET "state_begin" 0.0; target: "elm.progress.progressbar"; transition: LINEAR 0.5; after: "slide_to_end"; } program { name: "start_pulse"; signal: "elm,state,pulse,start"; source: "elm"; // after: "slide_to_end"; } program { name: "stop_pulse"; signal: "elm,state,pulse,stop"; source: "elm"; action: ACTION_STOP; target: "slide_to_begin"; target: "slide_to_end"; target: "start_pulse"; //after: "state_pulse"; } program { name: "state_pulse"; signal: "elm,state,pulse"; source: "elm"; action: STATE_SET "state_begin" 0.0; target: "elm.progress.progressbar"; after: "units_hide"; } program { name: "state_fraction"; signal: "elm,state,fraction"; source: "elm"; action: ACTION_STOP; target: "slide_to_begin"; target: "slide_to_end"; target: "start_pulse"; action: STATE_SET "default" 0.0; target: "elm.progress.progressbar"; } program { name: "set_invert_on"; signal: "elm,state,inverted,on"; source: "elm"; action: STATE_SET "invert" 0.0; target: "elm.progress.progressbar"; } program { name: "set_invert_off"; signal: "elm,state,inverted,off"; source: "elm"; action: STATE_SET "default" 0.0; target: "elm.progress.progressbar"; } } } group { name: "elm/progressbar/horizontal/list_title_progress"; images { image: "00_progress_bg.png" COMP; image: "00_progress_bar.png" COMP; } parts { part { name: "access"; type: RECT; description { state: "default" 0.0; fixed: 1 1; color: 0 0 0 0; } } part { name: "base"; type: RECT; scale: 1; description { state: "default" 0.0; visible: 0; rel1 { relative: 0.0 0.0; } rel2 { relative: 1.0 1.0; } color: 0 0 0 0; } } part { name: "elm.padding.left"; type: RECT; scale: 1; description { state: "default" 0.0; min: 0 82; visible: 0; fixed: 1 0; rel1 { relative: 0.0 0.0; to: "base"; } rel2 { relative: 0.0 1.0; to: "base"; } color: 0 0 0 0; align: 0.0 0.0; } } part { name: "elm.padding.right"; type: RECT; scale: 1; description { state: "default" 0.0; min: 0 82; visible: 0; fixed: 1 0; rel1 { relative: 1.0 0.0; to: "base"; } rel2 { relative: 1.0 1.0; to: "base"; } color: 0 0 0 0; align: 1.0 0.0; } } part { name: "elm.padding.top"; type: RECT; scale: 1; mouse_events: 0; description { state: "default" 0.0; align: 0.0 0.0; min: 100 1; visible: 0; fixed: 0 1; rel1 { relative: 0.0 0.0; to: "base"; } rel2 { relative: 1.0 0.0; to: "base"; } color: 0 0 0 0; } } part { name: "elm.padding.bottom"; type: RECT; scale: 1; mouse_events: 0; description { state: "default" 0.0; align: 1.0 1.0; min: 100 1; visible: 0; fixed: 0 1; rel1 { relative: 0.0 1.0; to: "base"; } rel2 { relative: 1.0 1.0; to: "base"; } color: 0 0 0 0; } } part { name: "label_rect"; type: RECT; scale: 1; mouse_events: 0; description { state: "default" 0.0; visible: 1; min: 460 56; fixed: 0 1; rel1 { relative: 1.0 1.0; to_x: "elm.padding.left"; to_y: "elm.padding.top"; } rel2 { relative: 0.0 0.0; to_x: "elm.padding.right"; } align: 0.0 0.0; color: 0 0 0 0; } } part { name: "elm.background.progressbar"; type: RECT; mouse_events: 0; scale: 1; description { state: "default" 0.0; rel1 { to_x: "elm.padding.left"; to_y: "label_rect"; relative: 1.0 1.0; offset: 0 0; } rel2 { to_x: "elm.padding.right"; relative: 0.0 1.0; offset: 0 0; } } } part { name: "elm.swallow.bar"; mouse_events: 0; scale: 1; type: SWALLOW; description { min: 1 PROGRESSBAR_LIST_PROGRESS_HEIGHT_INC; max: 99999 PROGRESSBAR_LIST_PROGRESS_HEIGHT_INC; state: "default" 0.0; rel1 { to: "elm.background.progressbar"; relative: 0.0 0.0; } rel2 { to: "elm.background.progressbar"; relative: 1.0 1.0; } } } part { name: "elm.swallow.content"; type: SWALLOW; scale: 1; description { state: "default" 0.0; visible: 0; align: 0.0 0.5; rel1 { offset: 0 0; to_y: "elm.background.progressbar"; } rel2 { offset: 0 -1; relative: 0.0 1.0; to_y: "elm.background.progressbar"; } } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; aspect: 1.0 1.0; aspect_preference: VERTICAL; rel2.offset: 4 -1; } } part { name: "elm.text"; type: TEXT; mouse_events: 0; scale: 1; description { state: "default" 0.0; visible: 1; fixed: 1 1; align: 0.0 0.5; rel1.to: "label_rect"; rel2.to: "label_rect"; color: PROGRESSBAR_LIST_PROGRESS_STYLE_TEXT_COLOR_INC; text { font: "Tizen:style=Medium"; size: PROGRESSBAR_TITLE_FONT_SIZE_INC; min: 0 0; align: 0.0 0.5; text_class: "tizen"; } } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; text.min: 1 1; } } part { name: "background"; mouse_events: 0; scale: 1; clip_to: "elm.background.progressbar"; description { state: "default" 0.0; rel1 { to: "elm.swallow.bar"; relative: 0.0 0.0; } rel2 { to: "elm.swallow.bar"; relative: 1.0 1.0; } image { normal: "00_progress_bg.png"; border: PROGRESS_BG_IMAGE_BORDER_INC; border_scale: 1; } } } part { name: "elm.text.status"; type: TEXT; mouse_events: 0; scale: 1; description { state: "default" 0.0; fixed: 1 1; visible: 0; rel1 { to: "background"; relative: 0.5 0.5; } rel2 { to: "background"; relative: 0.5 0.5; } text { font: "Tizen:style=Medium"; size: PROGRESSBAR_TITLE_FONT_SIZE_INC; min: 0 0; align: 0.5 0.0; text_class: "tizen"; } color: PROGRESSBAR_LIST_PROGRESS_STYLE_TEXT_COLOR_INC; } description { state: "show" 0.0; inherit: "default" 0.0; visible: 0; text.min: 1 1; } } part { name: "bar.image.left.padding"; type: RECT; scale: 1; description { state: "default" 0.0; visible: 0; min: PROGRESS_BAR_IMAGE_PADDING_SIZE_INC; max: PROGRESS_BAR_IMAGE_PADDING_SIZE_INC; fixed: 1 0; rel1.to: "elm.swallow.bar"; rel2 { relative: 0.0 1.0; to: "elm.swallow.bar"; } align: 0.0 0.5; } } part { name: "bar.image.right.padding"; type: RECT; scale: 1; description { state: "default" 0.0; visible: 0; min: PROGRESS_BAR_IMAGE_PADDING_SIZE_INC; max: PROGRESS_BAR_IMAGE_PADDING_SIZE_INC; fixed: 1 0; rel1 { relative: 1.0 0.0; to: "elm.swallow.bar"; } rel2.to: "elm.swallow.bar"; align: 1.0 0.5; } } part { name: "drag.background"; mouse_events: 0; type: RECT; scale: 1; clip_to: "elm.background.progressbar"; description { state: "default" 0.0; visible: 0; rel1 { to_x: "bar.image.left.padding"; to_y: "elm.swallow.bar"; relative: 1.0 0.0; } rel2 { to_x: "bar.image.right.padding"; to_y: "elm.swallow.bar"; relative: 0.0 1.0; } } } part { name: "elm.progress.progressbar"; mouse_events: 0; scale: 1; clip_to: "elm.background.progressbar"; description { state: "default" 0.0; min: 0 0; fixed: 1 1; rel1 { to_x: "bar.image.left.padding"; to_y: "elm.swallow.bar"; relative: 1.0 0.0; } rel2 { to_y: "elm.swallow.bar"; to_x: "elm.cur.progressbar"; offset: -1 -1; } image { normal: "00_progress_bar.png"; border: PROGRESS_BAR_IMAGE_BORDER_INC; border_scale: 1; } } description { state: "invert" 0.0; inherit: "default" 0.0; rel1 { to_y: "elm.swallow.bar"; to_x: "elm.cur.progressbar"; } rel2 { to_y: "elm.swallow.bar"; to_x: "bar.image.right.padding"; relative: 1.0 0.0; } } description { state: "state_begin" 0.0; inherit: "default" 0.0; rel1 { to: "elm.swallow.bar"; relative: 0.0 0.0; } rel2 { to: "elm.swallow.bar"; relative: 0.1 1.0; } } description { state: "state_end" 0.0; inherit: "default" 0.0; rel1 { to: "elm.swallow.bar"; relative: 0.9 0.0; } rel2 { to: "elm.swallow.bar"; relative: 1.0 1.0; } } } part { name: "text-bar"; type: TEXT; mouse_events: 0; scale: 1; clip_to: "progress-rect"; //effect: SOFT_SHADOW; scale: 0; description { state: "default" 0.0; align: 0.0 0.0; fixed: 1 1; visible: 0; rel1.to: "elm.text.status"; rel1.offset: -1 -1; rel2.to: "elm.text.status"; text { text_source: "elm.text.status"; font: "Tizen:style=Medium"; size: PROGRESSBAR_STATUS_TEXT_FONT_SIZE_INC; min: 0 0; align: 0.0 0.0; text_class: "tizen"; } color: PROGRESSBAR_LIST_PROGRESS_STYLE_STATUS_TEXT_COLOR_INC; } description { state: "show" 0.0; inherit: "default" 0.0; visible: 0; text.min: 1 1; } } part { name: "elm.cur.progressbar"; mouse_events: 0; scale: 1; dragable { confine: "drag.background"; x: 1 1 1; y: 0 0 0; } description { state: "default" 0.0; min: 0 28; fixed: 1 1; visible: 0; rel1.to: "drag.background"; rel2.to: "drag.background"; } } part { name: "progress-rect"; type: RECT; mouse_events: 0; scale: 1; description { state: "default" 0.0; rel1.to: "elm.progress.progressbar"; rel2.to: "elm.progress.progressbar"; } } } programs { program { name: "label_show"; signal: "elm,state,text,visible"; source: "elm"; action: STATE_SET "visible" 0.0; target: "elm.text"; } program { name: "label_hide"; signal: "elm,state,text,hidden"; source: "elm"; action: STATE_SET "default" 0.0; target: "elm.text"; } program { name: "icon_show"; signal: "elm,state,icon,visible"; source: "elm"; action: STATE_SET "visible" 0.0; target: "elm.swallow.content"; } program { name: "icon_hide"; signal: "elm,state,icon,hidden"; source: "elm"; action: STATE_SET "default" 0.0; target: "elm.swallow.content"; } program { name: "units_show"; signal: "elm,state,units,visible"; source: "elm"; action: STATE_SET "show" 0.0; target: "text-bar"; target: "elm.text.status"; } program { name: "units_hide"; signal: "elm,state,units,hidden"; source: "elm"; action: STATE_SET "default" 0.0; target: "text-bar"; target: "elm.text.status"; } program { name: "slide_to_end"; action: STATE_SET "state_end" 0.0; transition: LINEAR 0.5; target: "elm.progress.progressbar"; after: "slide_to_begin"; } program { name: "slide_to_begin"; signal: "elm,state,slide,begin"; action: STATE_SET "state_begin" 0.0; target: "elm.progress.progressbar"; transition: LINEAR 0.5; after: "slide_to_end"; } program { name: "start_pulse"; signal: "elm,state,pulse,start"; source: "elm"; // after: "slide_to_end"; } program { name: "stop_pulse"; signal: "elm,state,pulse,stop"; source: "elm"; action: ACTION_STOP; target: "slide_to_begin"; target: "slide_to_end"; target: "start_pulse"; //after: "state_pulse"; } program { name: "state_pulse"; signal: "elm,state,pulse"; source: "elm"; action: STATE_SET "state_begin" 0.0; target: "elm.progress.progressbar"; after: "units_hide"; } program { name: "state_fraction"; signal: "elm,state,fraction"; source: "elm"; action: ACTION_STOP; target: "slide_to_begin"; target: "slide_to_end"; target: "start_pulse"; action: STATE_SET "default" 0.0; target: "elm.progress.progressbar"; } program { name: "set_invert_on"; signal: "elm,state,inverted,on"; source: "elm"; action: STATE_SET "invert" 0.0; target: "elm.progress.progressbar"; } program { name: "set_invert_off"; signal: "elm,state,inverted,off"; source: "elm"; action: STATE_SET "default" 0.0; target: "elm.progress.progressbar"; } } } group { name: "elm/progressbar/horizontal/pending_list"; images { image: "00_progress_pending_01_bg.png" COMP; image: "00_progress_pending_02_bg.png" COMP; } parts { part { name: "access"; type: RECT; description { state: "default" 0.0; fixed: 1 1; color: 0 0 0 0; } } part { name: "elm.background.progressbar"; type: RECT; mouse_events: 0; scale: 1; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; offset: 0 0; } rel2 { relative: 1.0 1.0; } } } part { name: "elm.swallow.bar"; mouse_events: 0; scale: 1; type: SWALLOW; description { min: 1 PROGRESSBAR_LIST_PENDING_HEIGHT_INC; max: 99999 PROGRESSBAR_LIST_PENDING_HEIGHT_INC; state: "default" 0.0; rel1 { to: "elm.background.progressbar"; relative: 0.0 0.0; } rel2 { to: "elm.background.progressbar"; relative: 1.0 1.0; } } } part { name: "elm.progress.progressbar"; mouse_events: 0; scale: 1; clip_to: "elm.background.progressbar"; description { state: "default" 0.0; min: 0 0; fixed: 1 1; rel1 { to: "elm.swallow.bar"; relative: 0.0 0.0; } rel2 { to: "elm.swallow.bar"; relative: 1.0 1.0; offset: -1 -1; } image { normal: "00_progress_pending_01_bg.png"; border: 0 0 0 0; } } description { state: "state_begin" 0.0; inherit: "default" 0.0; } description { state: "state_end" 0.0; inherit: "default" 0.0; image { normal: "00_progress_pending_02_bg.png"; border: 0 0 0 0; } } } } programs { program { name: "slide_to_end"; action: STATE_SET "state_end" 0.0; in: 0.3 0.0; target: "elm.progress.progressbar"; after: "slide_to_begin"; } program { name: "slide_to_begin"; signal: "elm,state,slide,begin"; action: STATE_SET "state_begin" 0.0; target: "elm.progress.progressbar"; in: 0.3 0.0; after: "slide_to_end"; } program { name: "start_pulse"; signal: "elm,state,pulse,start"; source: "elm"; after: "slide_to_end"; } program { name: "stop_pulse"; signal: "elm,state,pulse,stop"; source: "elm"; action: ACTION_STOP; target: "slide_to_begin"; target: "slide_to_end"; target: "start_pulse"; after: "init_pulse"; } program { name: "init_pulse"; action: STATE_SET "default" 0.0; target: "elm.progress.progressbar"; } } } #define PROCESS_IMAGE(COLOR, SIZE, NUM) \ image: ""COLOR"/"SIZE"/00_list_process_"NUM".png" COMP; #define PROCESS_IMAGES(COLOR, SIZE) \ images { \ PROCESS_IMAGE(COLOR, SIZE, 01) \ PROCESS_IMAGE(COLOR, SIZE, 02) \ PROCESS_IMAGE(COLOR, SIZE, 03) \ PROCESS_IMAGE(COLOR, SIZE, 04) \ PROCESS_IMAGE(COLOR, SIZE, 05) \ PROCESS_IMAGE(COLOR, SIZE, 06) \ PROCESS_IMAGE(COLOR, SIZE, 07) \ PROCESS_IMAGE(COLOR, SIZE, 08) \ PROCESS_IMAGE(COLOR, SIZE, 09) \ PROCESS_IMAGE(COLOR, SIZE, 10) \ PROCESS_IMAGE(COLOR, SIZE, 11) \ PROCESS_IMAGE(COLOR, SIZE, 12) \ PROCESS_IMAGE(COLOR, SIZE, 13) \ PROCESS_IMAGE(COLOR, SIZE, 14) \ PROCESS_IMAGE(COLOR, SIZE, 15) \ PROCESS_IMAGE(COLOR, SIZE, 16) \ PROCESS_IMAGE(COLOR, SIZE, 17) \ PROCESS_IMAGE(COLOR, SIZE, 18) \ PROCESS_IMAGE(COLOR, SIZE, 19) \ PROCESS_IMAGE(COLOR, SIZE, 20) \ PROCESS_IMAGE(COLOR, SIZE, 21) \ PROCESS_IMAGE(COLOR, SIZE, 22) \ PROCESS_IMAGE(COLOR, SIZE, 23) \ PROCESS_IMAGE(COLOR, SIZE, 24) \ PROCESS_IMAGE(COLOR, SIZE, 25) \ PROCESS_IMAGE(COLOR, SIZE, 26) \ PROCESS_IMAGE(COLOR, SIZE, 27) \ PROCESS_IMAGE(COLOR, SIZE, 28) \ PROCESS_IMAGE(COLOR, SIZE, 29) \ PROCESS_IMAGE(COLOR, SIZE, 30) \ } #define PROGRESS_DESC(COLOR, SIZE, NUM ) \ description { state: "pulse" 0.#NUM; \ inherit: "default" 0.0; \ image { \ normal: ""COLOR"/"SIZE"/00_list_process_"NUM".png"; \ } \ } #define PROCESS_DESCS(COLOR, SIZE, WIDTH, HEIGHT) \ description { \ state: "default" 0.0; \ min: WIDTH HEIGHT; \ max: WIDTH HEIGHT; \ aspect: 1.0 1.0; \ aspect_preference: BOTH; \ image { \ normal: ""COLOR"/"SIZE"/00_list_process_01.png"; \ } \ } \ description { state: "pulse" 0.0; \ inherit: "default" 0.0; \ image { \ normal: ""COLOR"/"SIZE"/00_list_process_01.png"; \ } \ } \ PROGRESS_DESC(COLOR, SIZE, 01 ) \ PROGRESS_DESC(COLOR, SIZE, 03 ) \ PROGRESS_DESC(COLOR, SIZE, 04 ) \ PROGRESS_DESC(COLOR, SIZE, 05 ) \ PROGRESS_DESC(COLOR, SIZE, 06 ) \ PROGRESS_DESC(COLOR, SIZE, 07 ) \ PROGRESS_DESC(COLOR, SIZE, 08 ) \ PROGRESS_DESC(COLOR, SIZE, 09 ) \ PROGRESS_DESC(COLOR, SIZE, 10 ) \ PROGRESS_DESC(COLOR, SIZE, 11 ) \ PROGRESS_DESC(COLOR, SIZE, 12 ) \ PROGRESS_DESC(COLOR, SIZE, 13 ) \ PROGRESS_DESC(COLOR, SIZE, 14 ) \ PROGRESS_DESC(COLOR, SIZE, 15 ) \ PROGRESS_DESC(COLOR, SIZE, 16 ) \ PROGRESS_DESC(COLOR, SIZE, 17 ) \ PROGRESS_DESC(COLOR, SIZE, 18 ) \ PROGRESS_DESC(COLOR, SIZE, 19 ) \ PROGRESS_DESC(COLOR, SIZE, 20 ) \ PROGRESS_DESC(COLOR, SIZE, 21 ) \ PROGRESS_DESC(COLOR, SIZE, 22 ) \ PROGRESS_DESC(COLOR, SIZE, 23 ) \ PROGRESS_DESC(COLOR, SIZE, 24 ) \ PROGRESS_DESC(COLOR, SIZE, 25 ) \ PROGRESS_DESC(COLOR, SIZE, 26 ) \ PROGRESS_DESC(COLOR, SIZE, 27 ) \ PROGRESS_DESC(COLOR, SIZE, 28 ) \ PROGRESS_DESC(COLOR, SIZE, 29 ) \ PROGRESS_DESC(COLOR, SIZE, 30 ) #define PROGRESSING_DELAY 0.07 group { name: "elm/progressbar/horizontal/list_process"; alias: "elm/progressbar/horizontal/process"; PROCESS_IMAGES("White", "63x63") parts { part { name: "access"; type: RECT; description { state: "default" 0.0; fixed: 1 1; color: 0 0 0 0; } } part { name: "elm.background.progressbar"; mouse_events: 0; scale: 1; type: RECT; description { state: "default" 0.0; } } part { name: "elm.swallow.bar"; mouse_events: 0; scale: 1; type: SWALLOW; description { state: "default" 0.0; min: 0 0; max: 0 0; visible: 0; } } part { name: "elm.swallow.content"; type: SWALLOW; scale: 1; description { state: "default" 0.0; min: 0 0; max: 0 0; visible: 0; } } part { name: "background"; mouse_events: 0; scale: 1; clip_to: "elm.background.progressbar"; PROCESS_DESCS("White", "63x63", 63, 63) } } script { public pulse_state; } programs { program { name: "continue_pulse"; script { new Float:state; state = get_float(pulse_state); set_state(PART:"background", "pulse", state); state += 0.01; if( state > 0.30 ) state = 0.01; set_float(pulse_state, state); } after: "delay"; } program { name: "delay"; action: STATE_SET "pulse" 0.10; target: "background"; in: PROGRESSING_DELAY 0.0; after: "continue_pulse"; } program { name: "start_pulse"; signal: "elm,state,pulse,start"; source: "elm"; script { set_float(pulse_state, 0.0); } after: "continue_pulse"; } program { name: "stop_pulse"; signal: "elm,state,pulse,stop"; source: "elm"; action: ACTION_STOP; target: "continue_pulse"; target: "delay"; target: "start_pulse"; after: "init_pulse"; } program { name: "init_pulse"; action: STATE_SET "default" 0.0; target: "background"; } } } group { name: "elm/progressbar/horizontal/process_medium"; PROCESS_IMAGES("White", "54x54") parts { part { name: "access"; type: RECT; description { state: "default" 0.0; fixed: 1 1; color: 0 0 0 0; } } part { name: "elm.background.progressbar"; mouse_events: 0; scale: 1; type: RECT; description { state: "default" 0.0; } } part { name: "elm.swallow.bar"; mouse_events: 0; scale: 1; type: SWALLOW; description { state: "default" 0.0; min: 0 0; max: 0 0; visible: 0; } } part { name: "elm.swallow.content"; type: SWALLOW; scale: 1; description { state: "default" 0.0; min: 0 0; max: 0 0; visible: 0; } } part { name: "background"; mouse_events: 0; scale: 1; clip_to: "elm.background.progressbar"; PROCESS_DESCS("White", "54x54", 54, 54) } } script { public pulse_state; } programs { program { name: "continue_pulse"; script { new Float:state; state = get_float(pulse_state); set_state(PART:"background", "pulse", state); state += 0.01; if( state > 0.30 ) state = 0.01; set_float(pulse_state, state); } after: "delay"; } program { name: "delay"; action: STATE_SET "pulse" 0.10; target: "background"; in: PROGRESSING_DELAY 0.0; after: "continue_pulse"; } program { name: "start_pulse"; signal: "elm,state,pulse,start"; source: "elm"; script { set_float(pulse_state, 0.0); } after: "continue_pulse"; } program { name: "stop_pulse"; signal: "elm,state,pulse,stop"; source: "elm"; action: ACTION_STOP; target: "continue_pulse"; target: "delay"; target: "start_pulse"; after: "init_pulse"; } program { name: "init_pulse"; action: STATE_SET "default" 0.0; target: "background"; } } } group { name: "elm/progressbar/horizontal/list_process_small"; alias: "elm/progressbar/horizontal/process_small"; PROCESS_IMAGES("White", "36x36") parts { part { name: "access"; type: RECT; description { state: "default" 0.0; fixed: 1 1; color: 0 0 0 0; } } part { name: "elm.background.progressbar"; mouse_events: 0; scale: 1; type: RECT; description { state: "default" 0.0; } } part { name: "elm.swallow.bar"; mouse_events: 0; scale: 1; type: SWALLOW; description { state: "default" 0.0; min: 0 0; max: 0 0; visible: 0; } } part { name: "elm.swallow.content"; type: SWALLOW; scale: 1; description { state: "default" 0.0; min: 0 0; max: 0 0; visible: 0; } } part { name: "background"; mouse_events: 0; scale: 1; clip_to: "elm.background.progressbar"; PROCESS_DESCS("White", "36x36", 36, 36) } } script { public pulse_state; } programs { program { name: "continue_pulse"; script { new Float:state; state = get_float(pulse_state); set_state(PART:"background", "pulse", state); state += 0.01; if( state > 0.30 ) state = 0.01; set_float(pulse_state, state); } after: "delay"; } program { name: "delay"; action: STATE_SET "pulse" 0.10; target: "background"; in: PROGRESSING_DELAY 0.0; after: "continue_pulse"; } program { name: "start_pulse"; signal: "elm,state,pulse,start"; source: "elm"; script { set_float(pulse_state, 0.0); } after: "continue_pulse"; } program { name: "stop_pulse"; signal: "elm,state,pulse,stop"; source: "elm"; action: ACTION_STOP; target: "continue_pulse"; target: "delay"; target: "start_pulse"; after: "init_pulse"; } program { name: "init_pulse"; action: STATE_SET "default" 0.0; target: "background"; } } } // Black progressbar group { name: "elm/progressbar/horizontal/list_process_black"; alias: "elm/progressbar/horizontal/process_black"; PROCESS_IMAGES("Black", "63x63") parts { part { name: "access"; type: RECT; description { state: "default" 0.0; fixed: 1 1; color: 0 0 0 0; } } part { name: "elm.background.progressbar"; mouse_events: 0; scale: 1; type: RECT; description { state: "default" 0.0; } } part { name: "elm.swallow.bar"; mouse_events: 0; scale: 1; type: SWALLOW; description { state: "default" 0.0; min: 0 0; max: 0 0; visible: 0; } } part { name: "elm.swallow.content"; type: SWALLOW; scale: 1; description { state: "default" 0.0; min: 0 0; max: 0 0; visible: 0; } } part { name: "background"; mouse_events: 0; scale: 1; clip_to: "elm.background.progressbar"; PROCESS_DESCS("Black", "63x63", 63, 63) } } script { public pulse_state; } programs { program { name: "continue_pulse"; script { new Float:state; state = get_float(pulse_state); set_state(PART:"background", "pulse", state); state += 0.01; if( state > 0.30 ) state = 0.01; set_float(pulse_state, state); } after: "delay"; } program { name: "delay"; action: STATE_SET "pulse" 0.10; target: "background"; in: PROGRESSING_DELAY 0.0; after: "continue_pulse"; } program { name: "start_pulse"; signal: "elm,state,pulse,start"; source: "elm"; script { set_float(pulse_state, 0.0); } after: "continue_pulse"; } program { name: "stop_pulse"; signal: "elm,state,pulse,stop"; source: "elm"; action: ACTION_STOP; target: "continue_pulse"; target: "delay"; target: "start_pulse"; after: "init_pulse"; } program { name: "init_pulse"; action: STATE_SET "default" 0.0; target: "background"; } } } group { name: "elm/progressbar/horizontal/process_medium_black"; PROCESS_IMAGES("Black", "54x54") parts { part { name: "access"; type: RECT; description { state: "default" 0.0; fixed: 1 1; color: 0 0 0 0; } } part { name: "elm.background.progressbar"; mouse_events: 0; scale: 1; type: RECT; description { state: "default" 0.0; } } part { name: "elm.swallow.bar"; mouse_events: 0; scale: 1; type: SWALLOW; description { state: "default" 0.0; min: 0 0; max: 0 0; visible: 0; } } part { name: "elm.swallow.content"; type: SWALLOW; scale: 1; description { state: "default" 0.0; min: 0 0; max: 0 0; visible: 0; } } part { name: "background"; mouse_events: 0; scale: 1; clip_to: "elm.background.progressbar"; PROCESS_DESCS("Black", "54x54", 54, 54) } } script { public pulse_state; } programs { program { name: "continue_pulse"; script { new Float:state; state = get_float(pulse_state); set_state(PART:"background", "pulse", state); state += 0.01; if( state > 0.30 ) state = 0.01; set_float(pulse_state, state); } after: "delay"; } program { name: "delay"; action: STATE_SET "pulse" 0.10; target: "background"; in: PROGRESSING_DELAY 0.0; after: "continue_pulse"; } program { name: "start_pulse"; signal: "elm,state,pulse,start"; source: "elm"; script { set_float(pulse_state, 0.0); } after: "continue_pulse"; } program { name: "stop_pulse"; signal: "elm,state,pulse,stop"; source: "elm"; action: ACTION_STOP; target: "continue_pulse"; target: "delay"; target: "start_pulse"; after: "init_pulse"; } program { name: "init_pulse"; action: STATE_SET "default" 0.0; target: "background"; } } } group { name: "elm/progressbar/horizontal/list_process_small_black"; alias: "elm/progressbar/horizontal/process_small_black"; PROCESS_IMAGES("Black", "36x36") parts { part { name: "access"; type: RECT; description { state: "default" 0.0; fixed: 1 1; color: 0 0 0 0; } } part { name: "elm.background.progressbar"; mouse_events: 0; scale: 1; type: RECT; description { state: "default" 0.0; } } part { name: "elm.swallow.bar"; mouse_events: 0; scale: 1; type: SWALLOW; description { state: "default" 0.0; min: 0 0; max: 0 0; visible: 0; } } part { name: "elm.swallow.content"; type: SWALLOW; scale: 1; description { state: "default" 0.0; min: 0 0; max: 0 0; visible: 0; } } part { name: "background"; mouse_events: 0; scale: 1; clip_to: "elm.background.progressbar"; PROCESS_DESCS("Black", "36x36", 36, 36) } } script { public pulse_state; } programs { program { name: "continue_pulse"; script { new Float:state; state = get_float(pulse_state); set_state(PART:"background", "pulse", state); state += 0.01; if( state > 0.30 ) state = 0.01; set_float(pulse_state, state); } after: "delay"; } program { name: "delay"; action: STATE_SET "pulse" 0.10; target: "background"; in: PROGRESSING_DELAY 0.0; after: "continue_pulse"; } program { name: "start_pulse"; signal: "elm,state,pulse,start"; source: "elm"; script { set_float(pulse_state, 0.0); } after: "continue_pulse"; } program { name: "stop_pulse"; signal: "elm,state,pulse,stop"; source: "elm"; action: ACTION_STOP; target: "continue_pulse"; target: "delay"; target: "start_pulse"; after: "init_pulse"; } program { name: "init_pulse"; action: STATE_SET "default" 0.0; target: "background"; } } } #define CIRCLE_PROGRESSING_DELAY 0.03 #define PROGRESS_CIRCLE_TOTAL_STATES 50 #define PROGRESS_CIRCLE_BG_DESC( param_num ) \ description { state: "progress" 0.#param_num; \ inherit: "default" 0.0; \ image { \ normal: "00_progress_circle_bg_"#param_num".png"; \ } \ } group { name: "elm/progressbar/horizontal/progress_circle"; images { image: "00_progress_circle_bg.png" COMP; image: "00_progress_circle_bg_01.png" COMP; image: "00_progress_circle_bg_02.png" COMP; image: "00_progress_circle_bg_03.png" COMP; image: "00_progress_circle_bg_04.png" COMP; image: "00_progress_circle_bg_05.png" COMP; image: "00_progress_circle_bg_06.png" COMP; image: "00_progress_circle_bg_07.png" COMP; image: "00_progress_circle_bg_08.png" COMP; image: "00_progress_circle_bg_09.png" COMP; image: "00_progress_circle_bg_10.png" COMP; image: "00_progress_circle_bg_11.png" COMP; image: "00_progress_circle_bg_12.png" COMP; image: "00_progress_circle_bg_13.png" COMP; image: "00_progress_circle_bg_14.png" COMP; image: "00_progress_circle_bg_15.png" COMP; image: "00_progress_circle_bg_16.png" COMP; image: "00_progress_circle_bg_17.png" COMP; image: "00_progress_circle_bg_18.png" COMP; image: "00_progress_circle_bg_19.png" COMP; image: "00_progress_circle_bg_20.png" COMP; image: "00_progress_circle_bg_21.png" COMP; image: "00_progress_circle_bg_22.png" COMP; image: "00_progress_circle_bg_23.png" COMP; image: "00_progress_circle_bg_24.png" COMP; image: "00_progress_circle_bg_25.png" COMP; image: "00_progress_circle_bg_26.png" COMP; image: "00_progress_circle_bg_27.png" COMP; image: "00_progress_circle_bg_28.png" COMP; image: "00_progress_circle_bg_29.png" COMP; image: "00_progress_circle_bg_30.png" COMP; image: "00_progress_circle_bg_31.png" COMP; image: "00_progress_circle_bg_32.png" COMP; image: "00_progress_circle_bg_33.png" COMP; image: "00_progress_circle_bg_34.png" COMP; image: "00_progress_circle_bg_35.png" COMP; image: "00_progress_circle_bg_36.png" COMP; image: "00_progress_circle_bg_37.png" COMP; image: "00_progress_circle_bg_38.png" COMP; image: "00_progress_circle_bg_39.png" COMP; image: "00_progress_circle_bg_40.png" COMP; image: "00_progress_circle_bg_41.png" COMP; image: "00_progress_circle_bg_42.png" COMP; image: "00_progress_circle_bg_43.png" COMP; image: "00_progress_circle_bg_44.png" COMP; image: "00_progress_circle_bg_45.png" COMP; image: "00_progress_circle_bg_46.png" COMP; image: "00_progress_circle_bg_47.png" COMP; image: "00_progress_circle_bg_48.png" COMP; image: "00_progress_circle_bg_49.png" COMP; image: "00_progress_circle_bg_50.png" COMP; } parts { part { name: "access"; type: RECT; description { state: "default" 0.0; fixed: 1 1; color: 0 0 0 0; } } part { name: "elm.background.progressbar"; mouse_events: 0; scale: 1; type: RECT; description { state: "default" 0.0; } } part { name: "elm.swallow.bar"; mouse_events: 0; scale: 1; type: SWALLOW; description { state: "default" 0.0; min: 0 0; max: 0 0; visible: 0; } } part { name: "elm.swallow.content"; type: SWALLOW; scale: 1; description { state: "default" 0.0; min: 0 0; max: 0 0; visible: 0; } } part { name: "elm.cur.progressbar"; mouse_events: 0; scale: 1; dragable { confine: "background"; x: 1 1 1; y: 0 0 0; } description { state: "default" 0.0; min: 1 1; fixed: 1 1; visible: 0; rel1.to: "background"; rel2.to: "background"; } } part { name: "background"; mouse_events: 0; scale: 1; clip_to: "elm.background.progressbar"; description { state: "default" 0.0; min: PROGRESSBAR_PROGRESS_CIRCLE_BG_SIZE_INC; max: PROGRESSBAR_PROGRESS_CIRCLE_BG_SIZE_INC; aspect: 1.0 1.0; aspect_preference: BOTH; image { normal: "00_progress_circle_bg.png"; } } } part { name: "progress_circle_img"; mouse_events: 0; scale: 1; clip_to: "elm.background.progressbar"; description { state: "default" 0.0; rel1 { to: "background"; } rel2 { to: "background"; } aspect: 1.0 1.0; aspect_preference: BOTH; image { normal: "00_progress_circle_bg.png"; } } description { state: "progress" 0.0; inherit: "default" 0.0; image { normal: "00_progress_circle_bg.png"; } } PROGRESS_CIRCLE_BG_DESC( 01 ) PROGRESS_CIRCLE_BG_DESC( 02 ) PROGRESS_CIRCLE_BG_DESC( 03 ) PROGRESS_CIRCLE_BG_DESC( 04 ) PROGRESS_CIRCLE_BG_DESC( 05 ) PROGRESS_CIRCLE_BG_DESC( 06 ) PROGRESS_CIRCLE_BG_DESC( 07 ) PROGRESS_CIRCLE_BG_DESC( 08 ) PROGRESS_CIRCLE_BG_DESC( 09 ) PROGRESS_CIRCLE_BG_DESC( 10 ) PROGRESS_CIRCLE_BG_DESC( 11 ) PROGRESS_CIRCLE_BG_DESC( 12 ) PROGRESS_CIRCLE_BG_DESC( 13 ) PROGRESS_CIRCLE_BG_DESC( 14 ) PROGRESS_CIRCLE_BG_DESC( 15 ) PROGRESS_CIRCLE_BG_DESC( 16 ) PROGRESS_CIRCLE_BG_DESC( 17 ) PROGRESS_CIRCLE_BG_DESC( 18 ) PROGRESS_CIRCLE_BG_DESC( 19 ) PROGRESS_CIRCLE_BG_DESC( 20 ) PROGRESS_CIRCLE_BG_DESC( 21 ) PROGRESS_CIRCLE_BG_DESC( 22 ) PROGRESS_CIRCLE_BG_DESC( 23 ) PROGRESS_CIRCLE_BG_DESC( 24 ) PROGRESS_CIRCLE_BG_DESC( 25 ) PROGRESS_CIRCLE_BG_DESC( 26 ) PROGRESS_CIRCLE_BG_DESC( 27 ) PROGRESS_CIRCLE_BG_DESC( 28 ) PROGRESS_CIRCLE_BG_DESC( 29 ) PROGRESS_CIRCLE_BG_DESC( 30 ) PROGRESS_CIRCLE_BG_DESC( 31 ) PROGRESS_CIRCLE_BG_DESC( 32 ) PROGRESS_CIRCLE_BG_DESC( 33 ) PROGRESS_CIRCLE_BG_DESC( 34 ) PROGRESS_CIRCLE_BG_DESC( 35 ) PROGRESS_CIRCLE_BG_DESC( 36 ) PROGRESS_CIRCLE_BG_DESC( 37 ) PROGRESS_CIRCLE_BG_DESC( 38 ) PROGRESS_CIRCLE_BG_DESC( 39 ) PROGRESS_CIRCLE_BG_DESC( 40 ) PROGRESS_CIRCLE_BG_DESC( 41 ) PROGRESS_CIRCLE_BG_DESC( 42 ) PROGRESS_CIRCLE_BG_DESC( 43 ) PROGRESS_CIRCLE_BG_DESC( 44 ) PROGRESS_CIRCLE_BG_DESC( 45 ) PROGRESS_CIRCLE_BG_DESC( 46 ) PROGRESS_CIRCLE_BG_DESC( 47 ) PROGRESS_CIRCLE_BG_DESC( 48 ) PROGRESS_CIRCLE_BG_DESC( 49 ) PROGRESS_CIRCLE_BG_DESC( 50 ) } } programs { script { public curr_state = 0; public final_state = 0; public prev_state = 0; public max_state = 0; // maximum possible state, a normalized value public circle_zero_cross = 0; // whether circle crosses its Zero state or not. public progress_circle_state_change(){ new Float:x, Float:y, Float:final, Float:max; max = PROGRESS_CIRCLE_TOTAL_STATES / 100.0; set_float(max_state, max); get_drag(PART:"elm.cur.progressbar", x, y); final = x * max; // calculate final state as per the set drag value set_float(final_state, final); if( final < get_float(prev_state) ) set_int(circle_zero_cross, 1); // high value to low value, crosses zero state. else set_int(circle_zero_cross, 0); // low value to high value, no need for zero state crossing. } } program { name: "circle_progress"; script { new Float:curr, Float:final, Float:max; new zero_cross; zero_cross = get_int(circle_zero_cross); max = get_float(max_state); curr = get_float(curr_state); set_state(PART:"progress_circle_img", "progress", curr); curr += 0.01; // for next immediate state. if( (curr > max) && (zero_cross == 1) ) { curr = 0.00; // once it crosses Zero state, reset its state. set_int(circle_zero_cross, 0); } else if( curr > max ) return; final = get_float(final_state); zero_cross = get_int(circle_zero_cross); if( (curr > final) && (zero_cross == 0) ) { set_float(prev_state, get_float(curr_state)); return; } set_float(curr_state, curr); } after: "delay"; } program { name: "delay"; action: STATE_SET "progress" 0.10; target: "progress_circle_img"; in: CIRCLE_PROGRESSING_DELAY 0.0; after: "circle_progress"; } program { name: "circle_start"; signal: "elm,state,pulse,start"; source: "elm"; script { set_float(curr_state, 0.0); } after: "circle_progress"; } program { name: "circle_stop"; signal: "elm,state,pulse,stop"; source: "elm"; action: ACTION_STOP; target: "circle_progress"; target: "delay"; target: "circle_start"; } program { name: "circle_state_change"; signal: "elm,state,change"; source: "elm"; script { progress_circle_state_change() } after: "circle_progress"; } } }