efl_version: 1 22; collections { styles { style { name: "entry_style"; base: "font="sans" font_size=10 color=#000 wrap="word" left_margin=2 right_margin=2"; } } group { name: "example/main"; min: 400 400; parts { part { name: "bg"; type: RECT; mouse_events: 0; description { state: "default" 0.0; } } part { name: "title"; type: TEXT; mouse_events: 0; description { state: "default" 0.0; color: 0 0 0 255; rel1 { relative: 0.0 0.0; offset: 0 0; to: "bg"; } rel2 { relative: 1.0 0.2; offset: -1 -1; to: "bg"; } text { text: "Multiseat Example"; size: 16; font: "sans"; min: 1 1; } } } part { name: "drag_area1"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 0 0 0 255; rel1 { relative: 0.1 0.25; offset: -5 0; } rel2 { relative: 0.1 0.9; offset: 4 0; } } } part { name: "example/knob1"; type: RECT; mouse_events: 1; dragable { confine: "drag_area1"; x: 0 0 0; y: 1 1 0; } description { state: "default" 0.0; min: 10 10; color: 200 200 200 255; } description { state: "focused,s1" 0.0; inherit: "default" 0.0; color: 200 0 0 255; } description { state: "focused,s2" 0.0; inherit: "default" 0.0; color: 0 200 0 255; } } part { name: "drag_area2"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 0 0 0 255; rel1 { relative: 0.2 0.25; offset: -5 0; } rel2 { relative: 0.2 0.9; offset: 4 0; } } } part { name: "example/knob2"; type: RECT; mouse_events: 1; dragable { confine: "drag_area2"; x: 0 0 0; y: 1 1 0; } description { state: "default" 0.0; min: 10 10; color: 200 200 200 255; } description { state: "focused,s1" 0.0; inherit: "default" 0.0; color: 200 0 0 255; } description { state: "focused,s2" 0.0; inherit: "default" 0.0; color: 0 200 0 255; } } part { name: "bg_text1"; type: RECT; mouse_events: 0; description { state: "default" 0.0; min: 10 50; rel1.relative: 0.3 0.25; rel2.relative: 0.9 0.4; color: 200 200 200 255; } description { state: "focused,s1" 0.0; inherit: "default" 0.0; color: 200 0 0 255; } description { state: "focused,s2" 0.0; inherit: "default" 0.0; color: 0 200 0 255; } } part { name: "example/text1"; type: TEXTBLOCK; scale: 1; entry_mode: EDITABLE; select_mode: DEFAULT; cursor_mode: UNDER; mouse_events: 1; multiline: 1; source: "example/selection"; source4: "example/cursor"; description { state: "default" 0.0; min: 12 50; rel1 { to: "bg_text1"; offset: 2 2; } rel2 { to: "bg_text1"; offset: -3 -3; } text { style: "entry_style"; min: 0 1; align: 0.0 0.0; } } } part { name: "bg_text2"; type: RECT; mouse_events: 0; description { state: "default" 0.0; min: 10 50; rel1.relative: 0.3 0.45; rel2.relative: 0.9 0.6; color: 200 200 200 255; } description { state: "focused,s1" 0.0; inherit: "default" 0.0; color: 200 0 0 255; } description { state: "focused,s2" 0.0; inherit: "default" 0.0; color: 0 200 0 255; } } part { name: "example/text2"; type: TEXTBLOCK; scale: 1; entry_mode: EDITABLE; select_mode: DEFAULT; cursor_mode: UNDER; mouse_events: 1; multiline: 1; source: "example/selection"; source4: "example/cursor"; description { state: "default" 0.0; min: 12 50; rel1 { to: "bg_text2"; offset: 2 2; } rel2 { to: "bg_text2"; offset: -3 -3; } text { style: "entry_style"; min: 0 1; align: 0.0 0.0; } } } part { name: "button_bg"; type: RECT; mouse_events: 1; description { state: "default" 0.0; rel1.relative: 0.45 0.65; rel2.relative: 0.9 0.9; color: 200 200 200 255; } } part { name: "button_area"; type: RECT; mouse_events: 0; description { state: "default" 0.0; rel1 { to: "button_bg"; offset: 10 10; } rel2 { to: "button_bg"; offset: -11 -11; } color: 0 0 0 0; } } part { name: "button_left_over"; type: RECT; mouse_events: 0; description { state: "default" 0.0; rel1 { to: "button_area"; relative: 0.0 0.0; } rel2 { to: "button_area"; relative: 0.5 0.5; } color: 255 0 0 100; } description { state: "on" 0.0; inherit: "default" 0.0; color: 255 0 0 255; } } part { name: "button_left_over_label"; type: TEXT; mouse_events: 0; description { state: "default" 0.0; color: 0 0 0 255; rel1.to: "button_left_over"; rel2.to: "button_left_over"; text { text: "Seat 1 over"; size: 10; font: "sans"; min: 1 1; } } } part { name: "button_left_focus"; type: RECT; mouse_events: 0; description { state: "default" 0.0; rel1 { to: "button_area"; relative: 0.0 0.5; } rel2 { to: "button_area"; relative: 0.5 1.0; } color: 255 0 0 100; } description { state: "on" 0.0; inherit: "default" 0.0; color: 255 0 0 255; } } part { name: "button_left_focus_label"; type: TEXT; mouse_events: 0; description { state: "default" 0.0; color: 0 0 0 255; rel1.to: "button_left_focus"; rel2.to: "button_left_focus"; text { text: "Seat 1 focus"; size: 10; font: "sans"; min: 1 1; } } } part { name: "button_right_over"; type: RECT; mouse_events: 0; description { state: "default" 0.0; rel1 { to: "button_area"; relative: 0.5 0.0; } rel2 { to: "button_area"; relative: 1.0 0.5; } color: 0 255 0 100; } description { state: "on" 0.0; inherit: "default" 0.0; color: 0 255 0 255; } } part { name: "button_right_over_label"; type: TEXT; mouse_events: 0; description { state: "default" 0.0; color: 0 0 0 255; rel1.to: "button_right_over"; rel2.to: "button_right_over"; text { text: "Seat 2 over"; size: 10; font: "sans"; min: 1 1; } } } part { name: "button_right_focus"; type: RECT; mouse_events: 0; description { state: "default" 0.0; rel1 { to: "button_area"; relative: 0.5 0.5; } rel2 { to: "button_area"; relative: 1.0 1.0; } color: 0 255 0 100; } description { state: "on" 0.0; inherit: "default" 0.0; color: 0 255 0 255; } } part { name: "button_right_focus_label"; type: TEXT; mouse_events: 0; description { state: "default" 0.0; color: 0 0 0 255; rel1.to: "button_right_focus"; rel2.to: "button_right_focus"; text { text: "Seat 2 focus"; size: 10; font: "sans"; min: 1 1; } } } part { name: "unfocus_area"; type: RECT; mouse_events: 1; repeat_events: 1; description { state: "default" 0.0; color: 255 255 255 0; } } part { name: "example/swallow"; type: SWALLOW; mouse_events: 1; description { state: "default" 0.0; rel1.relative: 0.3 0.65; rel2.relative: 0.4 0.9; } } } programs { program { name: "focus"; signal: "load"; source: ""; action: FOCUS_SET "seat1"; target: "example/text1"; } program { name: "focus,t1,s1"; signal: "seat,seat1,mouse,clicked,1"; source: "example/text1"; action: FOCUS_SET "seat1"; target: "example/text1"; } program { name: "focus,color,t1,s1"; signal: "seat,seat1,focus,part,in"; source: "example/text1"; action: STATE_SET "focused,s1" 0.0; target: "bg_text1"; } program { name: "unfocus,color,t1,s1"; signal: "seat,seat1,focus,part,out"; source: "example/text1"; action: STATE_SET "default" 0.0; target: "bg_text1"; } program { name: "focus,t2,s1"; signal: "seat,seat1,mouse,clicked,1"; source: "example/text2"; action: FOCUS_SET "seat1"; target: "example/text2"; } program { name: "focus,color,t2,s1"; signal: "seat,seat1,focus,part,in"; source: "example/text2"; action: STATE_SET "focused,s1" 0.0; target: "bg_text2"; } program { name: "unfocus,color,t2,s1"; signal: "seat,seat1,focus,part,out"; source: "example/text2"; action: STATE_SET "default" 0.0; target: "bg_text2"; } program { name: "focus,t1,s2"; signal: "seat,seat2,mouse,clicked,1"; source: "example/text1"; action: FOCUS_SET "seat2"; target: "example/text1"; } program { name: "focus,color,t1,s2"; signal: "seat,seat2,focus,part,in"; source: "example/text1"; action: STATE_SET "focused,s2" 0.0; target: "bg_text1"; } program { name: "unfocus,color,t1,s2"; signal: "seat,seat2,focus,part,out"; source: "example/text1"; action: STATE_SET "default" 0.0; target: "bg_text1"; } program { name: "focus,t2,s2"; signal: "seat,seat2,mouse,clicked,1"; source: "example/text2"; action: FOCUS_SET "seat2"; target: "example/text2"; } program { name: "focus,color,t2,s2"; signal: "seat,seat2,focus,part,in"; source: "example/text2"; action: STATE_SET "focused,s2" 0.0; target: "bg_text2"; } program { name: "unfocus,color,t2,s2"; signal: "seat,seat2,focus,part,out"; source: "example/text2"; action: STATE_SET "default" 0.0; target: "bg_text2"; } program { name: "button,left,in"; signal: "seat,seat1,mouse,in"; source: "button_bg"; action: STATE_SET "on" 0.0; target: "button_left_over"; } program { name: "button,left,out"; signal: "seat,seat1,mouse,out"; source: "button_bg"; action: STATE_SET "default" 0.0; target: "button_left_over"; } program { name: "button,left,focus"; signal: "seat,seat1,mouse,clicked,1"; source: "button_bg"; action: FOCUS_SET "seat1"; target: "button_bg"; } program { name: "button,left,focused"; signal: "seat,seat1,focus,part,in"; source: "button_bg"; action: STATE_SET "on" 0.0; target: "button_left_focus"; } program { name: "button,left,unfocused"; signal: "seat,seat1,focus,part,out"; source: "button_bg"; action: STATE_SET "default" 0.0; target: "button_left_focus"; } program { name: "button,right,in"; signal: "seat,seat2,mouse,in"; source: "button_bg"; action: STATE_SET "on" 0.0; target: "button_right_over"; } program { name: "button,right,out"; signal: "seat,seat2,mouse,out"; source: "button_bg"; action: STATE_SET "default" 0.0; target: "button_right_over"; } program { name: "button,right,focus"; signal: "seat,seat2,mouse,clicked,1"; source: "button_bg"; action: FOCUS_SET "seat2"; target: "button_bg"; } program { name: "button,right,focused"; signal: "seat,seat2,focus,part,in"; source: "button_bg"; action: STATE_SET "on" 0.0; target: "button_right_focus"; } program { name: "button,right,unfocused"; signal: "seat,seat2,focus,part,out"; source: "button_bg"; action: STATE_SET "default" 0.0; target: "button_right_focus"; } program { name: "knob1,s1"; signal: "seat,seat1,drag,start"; source: "example/knob1"; action: STATE_SET "focused,s1" 0.0; target: "example/knob1"; } program { name: "knob1,s2"; signal: "seat,seat2,drag,start"; source: "example/knob1"; action: STATE_SET "focused,s2" 0.0; target: "example/knob1"; } program { name: "knob1,seat1"; signal: "seat,*,drag,stop"; source: "example/knob1"; action: STATE_SET "default" 0.0; target: "example/knob1"; } program { name: "knob2,s1"; signal: "seat,seat1,drag,start"; source: "example/knob2"; action: STATE_SET "focused,s1" 0.0; target: "example/knob2"; } program { name: "knob2,s2"; signal: "seat,seat2,drag,start"; source: "example/knob2"; action: STATE_SET "focused,s2" 0.0; target: "example/knob2"; } program { name: "knob2,seat1"; signal: "seat,*,drag,stop"; source: "example/knob2"; action: STATE_SET "default" 0.0; target: "example/knob2"; } program { name: "rect,focus,s1"; signal: "seat,seat1,mouse,clicked,1"; source: "example/swallow"; action: FOCUS_OBJECT "seat1"; target: "example/swallow"; } program { name: "rect,unfocus,s1"; signal: "seat,seat1,mouse,clicked,1"; source: "unfocus_area"; action: FOCUS_OBJECT "seat1"; } program { name: "rect,focus,s2"; signal: "seat,seat2,mouse,clicked,1"; source: "example/swallow"; action: FOCUS_OBJECT "seat2"; target: "example/swallow"; } program { name: "rect,unfocus,s2"; signal: "seat,seat2,mouse,clicked,1"; source: "unfocus_area"; action: FOCUS_OBJECT "seat2"; } } } group { name: "example/selection"; parts { part { name: "selection"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 180 180 180 255; } } } } group { name: "example/cursor"; min: 1 0; parts { part { name: "cursor"; type: RECT; mouse_events: 0; description { state: "default" 0.0; min: 2 12; color: 0 0 0 255; } description { state: "hidden" 0.0; inherit: "default" 0.0; color: 0 0 0 0; } } } programs { program { name: "cursor_hide"; signal: "load"; source: ""; action: STATE_SET "hidden" 0.0; target: "cursor"; transition: SINUSOIDAL 0.2; after: "cursor_hide_timer"; } program { name: "cursor_hide_timer"; in: 0.2 0.0; after: "cursor_show"; } program { name: "cursor_show"; action: STATE_SET "default" 0.0; target: "cursor"; after: "cursor_show_timer"; } program { name: "cursor_show_timer"; in: 0.5 0.0; after: "cursor_hide"; } } } }