externals { external: "elm"; } collections { group { name: "entrance"; images { image: "box_login.png" COMP; image: "box_login_shine.png" COMP; image: "check.png" COMP; image: "arrow_left.png" COMP; } script { public valid; } parts { part { name: "base"; type: RECT; mouse_events: 0; description { state: "default" 0.0; visible: 1; color: 0 0 0 255; } } part { name: "wall"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 255 255 255 0; } description { state: "visible" 0.0; inherit: "default" 0.0; color: 255 255 255 255; } } part { name: "wallpaper"; clip_to: "wall"; type: GROUP; mouse_events: 0; source: "entrance/background"; description { state: "default" 0.0; visible: 1; } } part { name: "button_cancel"; type: IMAGE; clip_to: "clip_button"; description { state: "default" 0.0; rel1.to: "cancel"; rel1.offset: -5 -10; rel2.to: "cancel"; rel2.offset: 4 4; image { normal: "box_login.png"; border: 15 15 15 15; } fill.smooth: 0; } } part { name: "cancel"; type: IMAGE; repeat_events: 0; clip_to: "clip_button"; description { state: "default" 0.0; min: 32 32; max: 32 32; rel1.to: "background_login"; rel2.to: "background_login"; rel2.offset: -6 -10; align: 0.1 1.0; image.normal: "arrow_left.png"; } description { state: "visible" 0.0; inherit: "default" 0.0; rel2.offset: -6 28; } } part { name: "button_valid"; type: IMAGE; clip_to: "clip_button"; description { state: "default" 0.0; rel1.to: "valid"; rel1.offset: -5 -10; rel2.to: "valid"; rel2.offset: 4 4; image { normal: "box_login.png"; border: 15 15 15 15; } fill.smooth: 0; } } part { name: "valid"; type: IMAGE; repeat_events: 0; clip_to: "clip_button"; description { state: "default" 0.0; min: 32 32; max: 32 32; rel1.to: "background_login"; rel2.to: "background_login"; rel2.offset: -6 -10; align: 0.9 1.0; image.normal: "check.png"; } description { state: "visible" 0.0; inherit: "default" 0.0; rel2.offset: -6 28; } } part { name: "box_login"; type: RECT; description { state: "default" 0.0; rel1.relative: 0.3 0.57; rel2.relative: 0.7 0.77; visible: 0; } } part { name: "clip_button"; type: RECT; clip_to: "wall"; description { state: "default" 0.0; rel1 { to_y: "background_login"; relative: 0.0 1.0; offset: -5 -5; } color: 255 255 255 255; } } part { name: "background_login"; type: IMAGE; mouse_events: 0; clip_to: "wall"; description { state: "default" 0.0; rel1 { to_y: "hostname"; relative: 0.3 0.0; offset: -9 -7; } rel2 { to_y: "hostname"; relative: 0.7 1.0; offset: 7 7; } image { normal: "box_login.png"; border: 15 15 15 15; } fill.smooth: 0; } } part { name: "background_login_shine"; type: IMAGE; mouse_events: 0; clip_to: "wall"; description { state: "default" 0.0; rel1 { to: "background_login"; relative: 0.0 0.0; offset: 7 3; } rel2 { to: "background_login"; relative: 1.0 1.0; offset: -4 -6; } image { normal: "box_login_shine.png"; border: 8 8 8 0; } } } part { name: "clip_login"; type: RECT; mouse_events: 0; clip_to: "wall"; description { state: "default" 0.0; rel1 { to: "box_login"; offset: 5 5; } rel2 { to: "box_login"; offset: -6 -6; } color: 255 255 255 255; } } part { name: "label"; type: TEXT; mouse_events: 0; effect: SOFT_SHADOW; scale: 1; clip_to: "wall"; description { state: "default" 0.0; fixed: 1 1; rel1.relative: 0.5 0.0; rel1.offset: 0 50; rel2.relative: 0.5 0.0; rel2.offset: 0 50; text { text: "Welcome"; font: "Sans"; size: 18; min: 1 1; align: 0.5 0.5; } } } part { name: "error"; type: TEXT; mouse_events: 0; effect: SOFT_SHADOW; scale: 1; clip_to: "wall"; description { state: "default" 0.0; color: 255 255 255 0; fixed: 1 1; rel1.to: "box_login"; rel1.relative: 0.5 1.0; rel2.to: "box_login"; rel2.relative: 0.5 1.0; text { text: "Error on login ! Maybe wrong password ?"; font: "Sans"; size: 18; min: 1 1; align: 0.5 0.5; } } description { state: "visible" 0.0; inherit: "default" 0.0; rel1.offset: 0 50; rel2.offset: 0 50; color: 255 255 255 255; } } part { name: "xsessions"; type: EXTERNAL; repeat_events: 0; clip_to: "wall"; source: "elm/hoversel"; description { state: "default" 0.0; visible: 0; min: 170 40; max: 170 40; align: 0.1 1.0; } description { state: "enabled" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "clock"; type: EXTERNAL; source: "elm/clock"; mouse_events: 0; clip_to: "wall"; description { min: 80 20; max: 80 20; align: 0.0 0.0; params { bool: "show seconds" "1"; } } } part { name: "box_hostname"; type: RECT; mouse_events: 0; description { state: "default" 0.0; rel1.to: "box_login"; rel2.to: "box_login"; visible: 0; } description { state: "auth" 0.0; inherit: "default" 0.0; rel1.relative: -1.0 0.0; rel2.relative: 0.0 1.0; } } part { name: "lbl_hostname"; type: TEXT; mouse_events: 0; scale: 1; effect: SOFT_SHADOW; clip_to: "clip_login"; description { state: "default" 0.0; fixed: 1 1; rel1.to: "box_hostname"; rel2.to: "box_hostname"; rel2.relative: 0.2 1.0; align: 0.0 0.5; text { font: "Sans"; size: 18; text: "Login :"; min: 1 1; } } } part { name: "hostname"; type: EXTERNAL; repeat_events: 0; clip_to: "clip_login"; source: "elm/entry"; description { state: "default" 0.0; min: 160 20; rel1 { to: "lbl_hostname"; relative: 1.0 0.0; } rel2 { to_x: "box_hostname"; to_y: "lbl_hostname"; } params { bool: "single line" 1; bool: "editable" 1; bool: "scrollable" 1; } } } part { name: "box_password"; type: RECT; mouse_events: 0; description { state: "default" 0.0; rel1 { to: "box_login"; relative: 1.0 0.0; } rel2 { to: "box_login"; relative: 2.0 1.0; } visible: 0; } description { state: "auth" 0.0; inherit: "default" 0.0; rel1.relative: 0.0 0.0; rel2.relative: 1.0 1.0; } } part { name: "lbl_password"; type: TEXT; mouse_events: 0; scale: 1; clip_to: "clip_login"; effect: SOFT_SHADOW; description { state: "default" 0.0; fixed: 1 1; rel1.to: "box_password"; rel2.to: "box_password"; rel2.relative: 0.2 1.0; align: 0.0 0.5; text { font: "Sans"; size: 18; text: "Password :"; min: 1 1; } } } part { name: "password"; type: EXTERNAL; repeat_events: 0; clip_to: "clip_login"; source: "elm/entry"; description { state: "default" 0.0; min: 160 20; rel1 { to: "lbl_password"; relative: 1.0 0.0; } rel2 { to_x: "box_password"; to_y: "lbl_password"; } params { bool: "single line" 1; bool: "editable" 1; bool: "password" 1; bool: "scrollable" 1; } } description { state: "auth" 0.0; inherit: "default" 0.0; rel1.relative: 0.0 0.0; rel2.relative: 1.0 1.0; } } } programs { program { name: "init"; signal: "load"; source: ""; script { set_int(valid, 0); } } program { name: "show"; signal: "show"; source: ""; action: STATE_SET "visible" 0.0; transition: LINEAR 0.8; target: "wall"; } program { name: "login_error"; signal: "entrance.auth.error"; source: ""; action: STATE_SET "visible" 0.0; transition: DECELERATE 0.2; target: "error"; } program { name: "login_change"; signal: "entrance.auth.change"; source: ""; action: STATE_SET "default" 0.0; transition: ACCELERATE 0.4; target: "error"; } program { name: "go_to_auth"; signal: "entrance.auth.enable"; source: ""; action: STATE_SET "auth" 0.0; transition: LINEAR 0.5; target: "box_hostname"; target: "box_password"; after: "init"; after: "show_cancel"; after: "hide_valid"; } program { name: "go_to_start"; signal: "entrance.auth.disable"; source: ""; action: STATE_SET "default" 0.0; transition: LINEAR 0.5; target: "box_hostname"; target: "box_password"; after: "init"; after: "hide_cancel"; after: "hide_valid"; } program { name: "login"; signal: "entrance.auth.valid"; source: ""; action: STATE_SET "default" 0.0; transition: LINEAR 0.7; target: "wall"; after: "close"; } program { name: "show_cancel"; action: STATE_SET "visible" 0.0; transition: SINUSOIDAL 0.6; target: "cancel"; } program { name: "hide_cancel"; action: STATE_SET "default" 0.0; transition: ACCELERATE 0.4; target: "cancel"; } program { name: "login_cancel"; signal: "mouse,down,*"; source: "cancel"; action: SIGNAL_EMIT "entrance.auth.cancel" ""; after: "hide_cancel"; } program { name: "show_valid_script"; signal: "cursor,changed"; source: "*"; script { new val; val = get_int(valid); if (val == 0) { run_program(PROGRAM:"show_valid"); set_int(valid, 1); } } } program { name: "show_valid"; action: STATE_SET "visible" 0.0; transition: SINUSOIDAL 0.8; target: "valid"; } program { name: "hide_valid"; action: STATE_SET "default" 0.0; transition: ACCELERATE 0.4; target: "valid"; } program { name: "login_valid"; signal: "mouse,down,*"; source: "valid"; action: SIGNAL_EMIT "entrance.auth.request" ""; } program { name: "close"; action: SIGNAL_EMIT "entrance.auth.end" ""; } program { name: "xsession_enabled"; signal: "entrance.xsession.enabled"; source: ""; action: STATE_SET "enabled" 0.0; target: "xsessions"; } program { name: "xsession_disabled"; signal: "entrance.xsession.disabled"; source: ""; action: STATE_SET "default" 0.0; target: "xsessions"; } } } group { name: "entrance/background"; images { image: "logo_b.png" COMP; image: "logo_w.png" COMP; image: "entrance_background.jpg" COMP; image: "entrance_foreground.png" COMP; image: "moon.png" COMP; } parts { part { name: "background"; type: IMAGE; mouse_events: 0; description { state: "default" 0.0; image.normal: "entrance_background.jpg"; } } part { name: "logo"; type: IMAGE; mouse_events: 0; description { state: "default" 0.0; image.normal: "logo_b.png"; aspect: 1.0 1.0; aspect_preference: BOTH; align: 0.5 1.0; rel1 { to_x: "moon"; to_y: "background"; relative: 0.0 -1.0; } rel2 { to_x: "moon"; to_y: "background"; relative: 1.0 0.0; } } description { state: "down" 0.0; inherit: "default" 0.0; align: 0.5 0.5; rel1.to: "moon"; rel1.relative: 0.0 0.0; rel2.to: "moon"; rel2.relative: 1.0 1.0; } description { state: "bounce1" 0.0; inherit: "default" 0.0; align: 0.5 0.5; rel1 { to: "moon"; relative: 0.0 0.0; offset: 0 11; } rel2 { to: "moon"; offset: -1 10; relative: 1.0 1.0; } } description { state: "bounce2" 0.0; inherit: "default" 0.0; align: 0.5 0.5; rel1 { to: "moon"; relative: 0.0 0.0; offset: 0 -8; } rel2 { to: "moon"; offset: -1 -9; relative: 1.0 1.0; } } description { state: "bounce3" 0.0; inherit: "default" 0.0; align: 0.5 0.5; rel1 { to: "moon"; relative: 0.0 0.0; offset: 0 6; } rel2 { to: "moon"; offset: -1 5; relative: 1.0 1.0; } } description { state: "bounce4" 0.0; inherit: "default" 0.0; align: 0.5 0.5; rel1 { to: "moon"; relative: 0.0 0.0; offset: 0 -4; } rel2 { to: "moon"; offset: -1 -3; relative: 1.0 1.0; } } description { state: "bounce5" 0.0; inherit: "default" 0.0; align: 0.5 0.5; rel1 { to: "moon"; relative: 0.0 0.0; offset: 0 2; } rel2 { to: "moon"; offset: -1 1; relative: 1.0 1.0; } } } part { name: "moon"; type: IMAGE; mouse_events: 0; description { state: "default" 0.0; aspect: 1.0 1.0; aspect_preference: BOTH; rel1 { to: "background"; relative: 0.5 0.3; } rel2 { to: "background"; relative: 0.6 0.4; } image.normal: "moon.png"; } } part { name: "moon2"; mouse_events: 0; type: RECT; description { state: "defaault" 0.0; rel1.to: "moon"; rel2.to: "moon"; } } part { name : "logo2"; type :IMAGE; mouse_events: 0; clip_to: "moon2"; description { state: "default" 0.0; rel1.to: "logo"; rel2.to: "logo"; image.normal: "logo_w.png"; color: 255 255 255 48; } } part { name: "star"; type: GROUP; mouse_events: 0; source: "entrance/star"; description { state: "default" 0.0; rel1.relative: 0.5 0.2; rel2.relative: 0.5 0.2; visible: 1; } } part { name: "star2"; type: GROUP; mouse_events: 0; source: "entrance/star"; description { state: "default" 0.0; rel1.relative: 0.4567 0.2345; rel2.relative: 0.4567 0.2345; visible: 1; } } part { name: "star3"; type: GROUP; mouse_events: 0; source: "entrance/star"; description { state: "default" 0.0; rel1.relative: 0.4 0.4; rel2.relative: 0.4 0.4; } } part { name: "star4"; type: GROUP; mouse_events: 0; source: "entrance/star"; description { state: "default" 0.0; rel1.relative: 0.6543 0.333; rel2.relative: 0.6543 0.333; } } part { name: "star5"; type: GROUP; mouse_events: 0; source: "entrance/star"; description { state: "default" 0.0; rel1.relative: 0.76 0.1543; rel2.relative: 0.76 0.1543; } } part { name: "star6"; type: GROUP; mouse_events: 0; source: "entrance/star"; description { state: "default" 0.0; rel1.relative: 0.06 0.2; rel2.relative: 0.06 0.2; } } part { name: "star7"; type: GROUP; mouse_events: 0; source: "entrance/star"; description { state: "default" 0.0; rel1.relative: 0.1234 0.3532; rel2.relative: 0.1234 0.3532; } } part { name: "star8"; type: GROUP; mouse_events: 0; source: "entrance/star"; description { state: "default" 0.0; rel1.relative: 0.252 0.2987; rel2.relative: 0.252 0.2987; } } part { name: "foreground"; type: IMAGE; mouse_events: 0; description { state: "default" 0.0; rel1 { relative: 0.0 0.7; } rel2.offset: 0 0; image.normal: "entrance_foreground.png"; } } } programs { program { name: "icon_go_down"; in: 1 0; signal: "show"; source: ""; action: STATE_SET "down" 0.0; transition: ACCELERATE 0.8; target: "logo"; after: "icon_bounce1"; } program { name: "icon_bounce1"; action: STATE_SET "bounce1" 0.0; transition: DECELERATE 0.2; target: "logo"; after: "icon_bounce2"; } program { name: "icon_bounce2"; action: STATE_SET "bounce2" 0.0; transition: SINUSOIDAL 0.3; target: "logo"; after: "icon_bounce3"; } program { name: "icon_bounce3"; action: STATE_SET "bounce3" 0.0; transition: SINUSOIDAL 0.2; target: "logo"; after: "icon_bounce4"; } program { name: "icon_bounce4"; action: STATE_SET "bounce4" 0.0; transition: SINUSOIDAL 0.2; target: "logo"; after: "icon_bounce5"; } program { name: "icon_bounce5"; action: STATE_SET "bounce5" 0.0; transition: SINUSOIDAL 0.2; target: "logo"; after: "down"; } program { name: "down"; action: STATE_SET "down" 0.0; transition: ACCELERATE 0.1; target: "logo"; } } } group { name: "entrance/star"; images { image: "star.png" COMP; } parts { part { name: "star"; type: IMAGE; description { state: "default" 0.0; min: 2 2; image.normal: "star.png"; color: 255 255 255 32; } } } programs { program { in: 2 3; name: "update_shine"; signal: "show"; source: ""; script { new a; a = round(sin(randf()) * 224) + 31; custom_state(PART:"star", "default", 0.0); set_state_val(PART:"star", STATE_COLOR, 255, 255, 255, a); } after: "shine"; } program { name: "shine"; transition: ACCELERATE 1.2; action: STATE_SET "custom" 0.0; target: "star"; after: "update_shine"; } } } }