fix up artiifacts in tab selector zoom.

fix up video./audio restart in sel by not duplicating (instead add 1 edje obj
level in between and include bg with term. may affect other themes).
This commit is contained in:
Carsten Haitzler 2013-04-06 14:02:05 +09:00
parent cf088606b2
commit 5444820f19
5 changed files with 353 additions and 308 deletions

2
.gitignore vendored
View File

@ -57,3 +57,5 @@
/src/bin/tyq /src/bin/tyq
/src/bin/*_generated.c /src/bin/*_generated.c
/src/bin/*_generated.h /src/bin/*_generated.h
/man/Makefile
/man/Makefile.in

View File

@ -1,6 +1,83 @@
collections { collections {
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////
//// the background and general container for the terminal
group { name: "terminology/core";
parts {
////////////////////////////////////////////////////////////////////
// background handling
part { name: "fade"; type: RECT;
description { state: "default" 0.0;
}
description { state: "translucent" 0.0;
inherit: "default" 0.0;
color: 255 255 255 128;
}
}
program {
signal: "translucent,on"; source: "terminology";
action: STATE_SET "translucent" 0.0;
target: "fade";
}
program {
signal: "translucent,off"; source: "terminology";
action: STATE_SET "default" 0.0;
target: "fade";
}
part { name: "terminology.background"; type: SWALLOW;
clip_to: "fade";
description { state: "default" 0.0;
}
description { state: "image" 0.0;
inherit: "default" 0.0;
}
description { state: "scale" 0.0;
inherit: "default" 0.0;
}
description { state: "edje" 0.0;
inherit: "default" 0.0;
}
description { state: "movie" 0.0;
inherit: "default" 0.0;
}
}
program {
signal: "media,off"; source: "terminology";
action: STATE_SET "default" 0.0;
target: "terminology.background";
}
program {
signal: "media,image"; source: "terminology";
action: STATE_SET "image" 0.0;
target: "terminology.background";
}
program {
signal: "media,scale"; source: "terminology";
action: STATE_SET "scale" 0.0;
target: "terminology.background";
}
program {
signal: "media,edje"; source: "terminology";
action: STATE_SET "edje" 0.0;
target: "terminology.background";
}
program {
signal: "media,movie"; source: "terminology";
action: STATE_SET "movie" 0.0;
target: "terminology.background";
}
////////////////////////////////////////////////////////////////////
// actual text grid for chars, cursors, selectiond etc. goes here
part { name: "terminology.content"; type: SWALLOW;
description { state: "default" 0.0;
rel1.offset: 1 1;
rel2.offset: -2 -2;
}
}
}
}
//// the background and general container for the terminal //// the background and general container for the terminal
group { name: "terminology/background"; group { name: "terminology/background";
images { images {
@ -42,85 +119,25 @@ collections {
visible: 0; visible: 0;
} }
} }
part { name: "fade"; type: RECT; ////////////////////////////////////////////////////////////////////
// actual text grid for chars, cursors, selectiond etc. goes here
// and has a background layered behind it inside the swallowed
// child edje
part { name: "terminology.content"; type: SWALLOW;
description { state: "default" 0.0; description { state: "default" 0.0;
} }
description { state: "translucent" 0.0;
inherit: "default" 0.0;
color: 255 255 255 128;
}
} }
part { name: "terminology.background"; type: SWALLOW; program {
clip_to: "fade"; signal: "translucent,on"; source: "terminology";
description { state: "default" 0.0;
}
description { state: "image" 0.0;
inherit: "default" 0.0;
}
description { state: "scale" 0.0;
inherit: "default" 0.0;
}
description { state: "edje" 0.0;
inherit: "default" 0.0;
}
description { state: "movie" 0.0;
inherit: "default" 0.0;
}
}
program { name: "trans_on";
signal: "translucent,on";
source: "terminology";
action: STATE_SET "translucent" 0.0; action: STATE_SET "translucent" 0.0;
target: "base"; target: "base";
target: "shadow"; target: "shadow";
target: "fade";
} }
program { name: "trans_off"; program {
signal: "translucent,off"; signal: "translucent,off"; source: "terminology";
source: "terminology";
action: STATE_SET "default" 0.0; action: STATE_SET "default" 0.0;
target: "base"; target: "base";
target: "shadow"; target: "shadow";
target: "fade";
}
program { name: "media_off";
signal: "media,off";
source: "terminology";
action: STATE_SET "default" 0.0;
target: "terminology.background";
}
program { name: "media_img";
signal: "media,image";
source: "terminology";
action: STATE_SET "image" 0.0;
target: "terminology.background";
}
program { name: "media_scale";
signal: "media,scale";
source: "terminology";
action: STATE_SET "scale" 0.0;
target: "terminology.background";
}
program { name: "media_edje";
signal: "media,edje";
source: "terminology";
action: STATE_SET "edje" 0.0;
target: "terminology.background";
}
program { name: "media_mov";
signal: "media,movie";
source: "terminology";
action: STATE_SET "movie" 0.0;
target: "terminology.background";
}
////////////////////////////////////////////////////////////////////
// actual text grid for chars, cursors, selectiond etc. goes here
part { name: "terminology.content"; type: SWALLOW;
description { state: "default" 0.0;
rel1.offset: 1 1;
rel2.offset: -2 -2;
}
} }
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
@ -197,28 +214,26 @@ collections {
color: 255 255 255 255; color: 255 255 255 255;
} }
} }
program { name: "focus_in"; program {
signal: "focus,in"; signal: "focus,in"; source: "terminology";
source: "terminology";
action: STATE_SET "focused" 0.0; action: STATE_SET "focused" 0.0;
target: "glint"; target: "glint";
target: "glow"; target: "glow";
target: "shine"; target: "shine";
after: "focus_in2"; after: "focus_in2";
} }
program { name: "focus_out";
signal: "focus,out";
source: "terminology";
action: STATE_SET "default" 0.0;
target: "glint";
target: "glow";
target: "shine";
}
program { name: "focus_in2"; program { name: "focus_in2";
action: STATE_SET "focused2" 0.0; action: STATE_SET "focused2" 0.0;
transition: DECELERATE 0.5; transition: DECELERATE 0.5;
target: "glow"; target: "glow";
} }
program {
signal: "focus,out"; source: "terminology";
action: STATE_SET "default" 0.0;
target: "glint";
target: "glow";
target: "shine";
}
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
// visual bell - spinning red siren light // visual bell - spinning red siren light
@ -308,9 +323,8 @@ collections {
map.rotation.z: 684.0; map.rotation.z: 684.0;
} }
} }
program { name: "bell0"; program {
signal: "bell"; signal: "bell"; source: "terminology";
source: "terminology";
action: STATE_SET "default" 0.0; action: STATE_SET "default" 0.0;
target: "bell_base"; target: "bell_base";
target: "bell"; target: "bell";
@ -380,12 +394,8 @@ collections {
mouse_events: 0; mouse_events: 0;
description { state: "default" 0.0; description { state: "default" 0.0;
fixed: 1 1; fixed: 1 1;
rel1 { rel1.to: "terminology.popmedia";
to: "terminology.popmedia"; rel2.to: "terminology.popmedia";
}
rel2 {
to: "terminology.popmedia";
}
image.normal: "pm_shadow.png"; image.normal: "pm_shadow.png";
image.border: 64 64 64 64; image.border: 64 64 64 64;
image.border_scale_by: 0.1; image.border_scale_by: 0.1;
@ -544,9 +554,8 @@ collections {
visible: 1; visible: 1;
} }
} }
program { name: "popmedia_dismiss"; program {
signal: "mouse,clicked,*"; signal: "mouse,clicked,*"; source: "popmedia_dismiss";
source: "popmedia_dismiss";
action: STATE_SET "default" 0.0; action: STATE_SET "default" 0.0;
transition: DECELERATE 0.5; transition: DECELERATE 0.5;
target: "terminology.popmedia"; target: "terminology.popmedia";
@ -564,9 +573,8 @@ collections {
program { name: "popmedia_dismiss2"; program { name: "popmedia_dismiss2";
action: SIGNAL_EMIT "popmedia,done" "terminology"; action: SIGNAL_EMIT "popmedia,done" "terminology";
} }
program { name: "popmedia_off"; program {
signal: "popmedia,off"; signal: "popmedia,off"; source: "terminology";
source: "terminology";
action: STATE_SET "default" 0.0; action: STATE_SET "default" 0.0;
transition: DECELERATE 0.2; transition: DECELERATE 0.2;
target: "terminology.popmedia"; target: "terminology.popmedia";
@ -581,37 +589,32 @@ collections {
target: "popmedia_shine"; target: "popmedia_shine";
after: "popmedia_dismiss2"; after: "popmedia_dismiss2";
} }
program { name: "popmedia_img"; program {
signal: "popmedia,image"; signal: "popmedia,image"; source: "terminology";
source: "terminology";
action: STATE_SET "image" 0.0; action: STATE_SET "image" 0.0;
transition: DECELERATE 0.2; transition: DECELERATE 0.2;
target: "terminology.popmedia"; target: "terminology.popmedia";
} }
program { name: "popmedia_scale"; program {
signal: "popmedia,scale"; signal: "popmedia,scale"; source: "terminology";
source: "terminology";
action: STATE_SET "scale" 0.0; action: STATE_SET "scale" 0.0;
transition: DECELERATE 0.2; transition: DECELERATE 0.2;
target: "terminology.popmedia"; target: "terminology.popmedia";
} }
program { name: "popmedia_edje"; program {
signal: "popmedia,edje"; signal: "popmedia,edje"; source: "terminology";
source: "terminology";
action: STATE_SET "edje" 0.0; action: STATE_SET "edje" 0.0;
transition: DECELERATE 0.2; transition: DECELERATE 0.2;
target: "terminology.popmedia"; target: "terminology.popmedia";
} }
program { name: "popmedia_mov"; program {
signal: "popmedia,movie"; signal: "popmedia,movie"; source: "terminology";
source: "terminology";
action: STATE_SET "movie" 0.0; action: STATE_SET "movie" 0.0;
transition: DECELERATE 0.2; transition: DECELERATE 0.2;
target: "terminology.popmedia"; target: "terminology.popmedia";
} }
program { name: "popmedia_img2"; program {
signal: "popmedia,image"; signal: "popmedia,image"; source: "terminology";
source: "terminology";
action: STATE_SET "visible" 0.0; action: STATE_SET "visible" 0.0;
transition: DECELERATE 0.2; transition: DECELERATE 0.2;
target: "popmedia_clip"; target: "popmedia_clip";
@ -624,9 +627,8 @@ collections {
target: "popmedia_glintclip"; target: "popmedia_glintclip";
target: "popmedia_shine"; target: "popmedia_shine";
} }
program { name: "popmedia_scale2"; program {
signal: "popmedia,scale"; signal: "popmedia,scale"; source: "terminology";
source: "terminology";
action: STATE_SET "visible" 0.0; action: STATE_SET "visible" 0.0;
transition: DECELERATE 0.2; transition: DECELERATE 0.2;
target: "popmedia_clip"; target: "popmedia_clip";
@ -639,9 +641,8 @@ collections {
target: "popmedia_glintclip"; target: "popmedia_glintclip";
target: "popmedia_shine"; target: "popmedia_shine";
} }
program { name: "popmedia_edje2"; program {
signal: "popmedia,edje"; signal: "popmedia,edje"; source: "terminology";
source: "terminology";
action: STATE_SET "visible" 0.0; action: STATE_SET "visible" 0.0;
transition: DECELERATE 0.2; transition: DECELERATE 0.2;
target: "popmedia_clip"; target: "popmedia_clip";
@ -654,9 +655,8 @@ collections {
target: "popmedia_glintclip"; target: "popmedia_glintclip";
target: "popmedia_shine"; target: "popmedia_shine";
} }
program { name: "popmedia_mov2"; program {
signal: "popmedia,movie"; signal: "popmedia,movie"; source: "terminology";
source: "terminology";
action: STATE_SET "visible" 0.0; action: STATE_SET "visible" 0.0;
transition: DECELERATE 0.2; transition: DECELERATE 0.2;
target: "popmedia_clip"; target: "popmedia_clip";
@ -722,23 +722,20 @@ collections {
align: 0.5 1.0; align: 0.5 1.0;
} }
} }
program { name: "cmdshow0"; program {
signal: "cmdbox,show"; signal: "cmdbox,show"; source: "terminology";
source: "terminology";
action: STATE_SET "visible" 0.0; action: STATE_SET "visible" 0.0;
transition: DECELERATE 0.4; transition: DECELERATE 0.4;
target: "cmdclip"; target: "cmdclip";
} }
program { name: "cmdshow"; program {
signal: "cmdbox,show"; signal: "cmdbox,show"; source: "terminology";
source: "terminology";
action: STATE_SET "visible" 0.0; action: STATE_SET "visible" 0.0;
transition: SPRING 0.4 0.5 4; transition: SPRING 0.4 0.5 4;
target: "terminology.cmdbox"; target: "terminology.cmdbox";
} }
program { name: "cmdhide"; program {
signal: "cmdbox,hide"; signal: "cmdbox,hide"; source: "terminology";
source: "terminology";
action: STATE_SET "default" 0.0; action: STATE_SET "default" 0.0;
transition: ACCELERATE 0.5; transition: ACCELERATE 0.5;
target: "terminology.cmdbox"; target: "terminology.cmdbox";
@ -766,16 +763,14 @@ collections {
rel2.relative: 1.0 1.0; rel2.relative: 1.0 1.0;
} }
} }
program { name: "ab_show"; program {
signal: "about,show"; signal: "about,show"; source: "terminology";
source: "terminology";
action: STATE_SET "visible" 0.0; action: STATE_SET "visible" 0.0;
transition: SPRING 1.2 2.0 6; transition: SPRING 1.2 2.0 6;
target: "terminology.about"; target: "terminology.about";
} }
program { name: "ab_hide"; program {
signal: "about,hide"; signal: "about,hide"; source: "terminology";
source: "terminology";
action: STATE_SET "default" 0.0; action: STATE_SET "default" 0.0;
transition: DECELERATE 0.6; transition: DECELERATE 0.6;
target: "terminology.about"; target: "terminology.about";
@ -821,16 +816,14 @@ collections {
} }
} }
} }
program { name: "opdt_show"; program {
signal: "optdetails,show"; signal: "optdetails,show"; source: "terminology";
source: "terminology";
action: STATE_SET "visible" 0.0; action: STATE_SET "visible" 0.0;
transition: DECELERATE 0.4; transition: DECELERATE 0.4;
target: "terminology.optdetails"; target: "terminology.optdetails";
} }
program { name: "opdt_hide"; program {
signal: "optdetails,hide"; signal: "optdetails,hide"; source: "terminology";
source: "terminology";
action: STATE_SET "default" 0.0; action: STATE_SET "default" 0.0;
transition: DECELERATE 0.2; transition: DECELERATE 0.2;
target: "terminology.optdetails"; target: "terminology.optdetails";
@ -867,16 +860,14 @@ collections {
} }
} }
} }
program { name: "op_show"; program {
signal: "options,show"; signal: "options,show"; source: "terminology";
source: "terminology";
action: STATE_SET "visible" 0.0; action: STATE_SET "visible" 0.0;
transition: DECELERATE 0.4; transition: DECELERATE 0.4;
target: "terminology.options"; target: "terminology.options";
} }
program { name: "op_hide"; program {
signal: "options,hide"; signal: "options,hide"; source: "terminology";
source: "terminology";
action: STATE_SET "default" 0.0; action: STATE_SET "default" 0.0;
transition: DECELERATE 0.6; transition: DECELERATE 0.6;
target: "terminology.options"; target: "terminology.options";
@ -911,16 +902,14 @@ collections {
} }
} }
} }
program { name: "ct_show"; program {
signal: "controls,show"; signal: "controls,show"; source: "terminology";
source: "terminology";
action: STATE_SET "visible" 0.0; action: STATE_SET "visible" 0.0;
transition: DECELERATE 0.3; transition: DECELERATE 0.3;
target: "terminology.controls"; target: "terminology.controls";
} }
program { name: "ct_hide"; program {
signal: "controls,hide"; signal: "controls,hide"; source: "terminology";
source: "terminology";
action: STATE_SET "default" 0.0; action: STATE_SET "default" 0.0;
transition: DECELERATE 0.5; transition: DECELERATE 0.5;
target: "terminology.controls"; target: "terminology.controls";
@ -1881,9 +1870,8 @@ target: "0.clip"; target: "1.clip"; target: "2.clip"; target: "3.clip"; target:
color: OUTCOL2; color: OUTCOL2;
} }
} }
program { name: "bottomfull"; program {
signal: "mode,bottomfull"; signal: "mode,bottomfull"; source: "terminology";
source: "terminology";
action: STATE_SET "bottomfull" 0.0; action: STATE_SET "bottomfull" 0.0;
TARGETS; TARGETS;
} }
@ -1926,8 +1914,7 @@ target: "4.top"; \
target: "4.bottom" target: "4.bottom"
program { name: "selpulse"; program { name: "selpulse";
signal: "show"; signal: "show"; source: "";
source: "";
action: STATE_SET "pulse" 0.0; action: STATE_SET "pulse" 0.0;
transition: SINUSOIDAL 0.5; transition: SINUSOIDAL 0.5;
SELPULSE; SELPULSE;
@ -2056,8 +2043,7 @@ target: "4.bottom"
color: 0 0 0 0; color: 0 0 0 0;
} }
program { name: "bottom_right.blink"; program { name: "bottom_right.blink";
signal: "mouse,in"; signal: "mouse,in"; source: "zone.bottom_right";
source: "zone.bottom_right";
action: STATE_SET "fading" 0.0; action: STATE_SET "fading" 0.0;
target: "cursor_blink.bottom_right"; target: "cursor_blink.bottom_right";
after: "bottom_right.fade"; after: "bottom_right.fade";
@ -2069,8 +2055,7 @@ target: "4.bottom"
after: "bottom_right.blink"; after: "bottom_right.blink";
} }
program { name: "bottom_right.stop"; program { name: "bottom_right.stop";
signal: "mouse,out"; signal: "mouse,out"; source: "zone.bottom_right";
source: "zone.bottom_right";
action: STATE_SET "default" 0.0; action: STATE_SET "default" 0.0;
target: "cursor_blink.bottom_right"; target: "cursor_blink.bottom_right";
} }
@ -2176,16 +2161,14 @@ target: "4.bottom"
} }
} }
programs { programs {
program { name: "focus_in_noblink"; program {
signal: "focus,in,noblink"; signal: "focus,in,noblink"; source: "terminology";
source: "terminology";
action: STATE_SET "focused" 0.0; action: STATE_SET "focused" 0.0;
target: "glow"; target: "glow";
target: "outline"; target: "outline";
} }
program { name: "focus_in"; program { name: "focus_in";
signal: "focus,in"; signal: "focus,in"; source: "terminology";
source: "terminology";
action: STATE_SET "focused" 0.0; action: STATE_SET "focused" 0.0;
target: "glow"; target: "glow";
target: "outline"; target: "outline";
@ -2218,9 +2201,8 @@ target: "4.bottom"
transition: DECELERATE 0.4; transition: DECELERATE 0.4;
target: "pulse"; target: "pulse";
} }
program { name: "focus_out"; program {
signal: "focus,out"; signal: "focus,out"; source: "terminology";
source: "terminology";
action: ACTION_STOP; action: ACTION_STOP;
target: "focus_in"; target: "focus_in";
target: "focus2"; target: "focus2";
@ -2234,9 +2216,8 @@ target: "4.bottom"
target: "glow"; target: "glow";
target: "outline"; target: "outline";
} }
program { name: "key"; program {
signal: "key,down"; signal: "key,down"; source: "terminology";
source: "terminology";
action: STATE_SET "default" 0.0; action: STATE_SET "default" 0.0;
target: "key"; target: "key";
after: "key2"; after: "key2";
@ -2417,24 +2398,6 @@ target: "4.bottom"
rel2.to: "terminology.content"; rel2.to: "terminology.content";
} }
} }
part { name: "terminology.background"; type: SWALLOW;
description { state: "default" 0.0;
rel1.to: "terminology.content";
rel2.to: "terminology.content";
}
description { state: "image" 0.0;
inherit: "default" 0.0;
}
description { state: "scale" 0.0;
inherit: "default" 0.0;
}
description { state: "edje" 0.0;
inherit: "default" 0.0;
}
description { state: "movie" 0.0;
inherit: "default" 0.0;
}
}
part { name: "terminology.content"; type: SWALLOW; part { name: "terminology.content"; type: SWALLOW;
clip_to: "clip"; clip_to: "clip";
description { state: "default" 0.0; description { state: "default" 0.0;
@ -2563,6 +2526,7 @@ target: "4.bottom"
} }
} }
} }
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////
//// an object overlayd on text that is a link //// an object overlayd on text that is a link
group { name: "terminology/link"; group { name: "terminology/link";
@ -2649,8 +2613,7 @@ target: "4.bottom"
} }
programs { programs {
program { name: "show"; program { name: "show";
signal: "show"; signal: "show"; source: "";
source: "";
action: STATE_SET "out" 0.0; action: STATE_SET "out" 0.0;
transition: LINEAR 0.3; transition: LINEAR 0.3;
target: "l"; target: "l";
@ -2768,16 +2731,14 @@ target: "4.bottom"
} }
} }
programs { programs {
program { name: "busy"; program {
signal: "busy"; signal: "busy"; source: "terminology";
source: "terminology";
action: STATE_SET "visible" 0.0; action: STATE_SET "visible" 0.0;
transition: DECELERATE 0.5; transition: DECELERATE 0.5;
target: "fade"; target: "fade";
} }
program { name: "spin1"; program { name: "spin1";
signal: "busy"; signal: "busy"; source: "terminology";
source: "terminology";
action: STATE_SET "spin" 0.0; action: STATE_SET "spin" 0.0;
transition: LINEAR 0.5; transition: LINEAR 0.5;
target: "knob_spinner"; target: "knob_spinner";
@ -2793,9 +2754,8 @@ target: "4.bottom"
// source: "terminology"; // source: "terminology";
// action: STATE_SET "default" 0.0; // action: STATE_SET "default" 0.0;
// } // }
program { name: "done"; program {
signal: "done"; signal: "done"; source: "terminology";
source: "terminology";
action: STATE_SET "default" 0.0; action: STATE_SET "default" 0.0;
transition: DECELERATE 1.5; transition: DECELERATE 1.5;
target: "fade"; target: "fade";
@ -2937,58 +2897,49 @@ target: "4.bottom"
} }
} }
programs { programs {
program { name: "media_mouse_in"; program {
signal: "mouse,in"; signal: "mouse,in"; source: "media_bg";
source: "media_bg";
action: STATE_SET "expanded" 0.0; action: STATE_SET "expanded" 0.0;
transition: SINUSOIDAL 0.4 CURRENT; transition: SINUSOIDAL 0.4 CURRENT;
target: "media_bg"; target: "media_bg";
} }
program { name: "media_mouse_out"; program {
signal: "mouse,out"; signal: "mouse,out"; source: "media_bg";
source: "media_bg";
action: STATE_SET "default" 0.0; action: STATE_SET "default" 0.0;
transition: SINUSOIDAL 0.4 CURRENT; transition: SINUSOIDAL 0.4 CURRENT;
target: "media_bg"; target: "media_bg";
} }
program { name: "media_pause_click"; program {
signal: "mouse,up,*"; signal: "mouse,up,*"; source: "play";
source: "play";
filter: "play" "default"; filter: "play" "default";
action: SIGNAL_EMIT "pause" ""; action: SIGNAL_EMIT "pause" "";
} }
program { name: "media_play_click"; program {
signal: "mouse,up,1"; signal: "mouse,up,1"; source: "play";
source: "play";
filter: "play" "paused"; filter: "play" "paused";
action: SIGNAL_EMIT "play" ""; action: SIGNAL_EMIT "play" "";
} }
program { name: "media_stop_click"; program {
signal: "mouse,up,1"; signal: "mouse,up,1"; source: "stop";
source: "stop";
action: SIGNAL_EMIT "stop" ""; action: SIGNAL_EMIT "stop" "";
} }
program { name: "media_signal_pause"; program {
signal: "pause,set"; signal: "pause,set"; source: "terminology";
source: "terminology";
action: STATE_SET "paused" 0.0; action: STATE_SET "paused" 0.0;
target: "play"; target: "play";
} }
program { name: "media_signal_play"; program {
signal: "play,set"; signal: "play,set"; source: "terminology";
source: "terminology";
action: STATE_SET "default" 0.0; action: STATE_SET "default" 0.0;
target: "play"; target: "play";
} }
program { name: "media_signal_mute"; program {
signal: "mute,set"; signal: "mute,set"; source: "terminology";
source: "terminology";
action: STATE_SET "muted" 0.0; action: STATE_SET "muted" 0.0;
target: "terminology.voldrag"; target: "terminology.voldrag";
} }
program { name: "media_signal_unmute"; program {
signal: "mute,unset"; signal: "mute,unset"; source: "terminology";
source: "terminology";
action: STATE_SET "default" 0.0; action: STATE_SET "default" 0.0;
target: "terminology.voldrag"; target: "terminology.voldrag";
} }
@ -3084,9 +3035,8 @@ target: "4.bottom"
} }
} }
programs { programs {
program { name: "begin"; program {
signal: "begin"; signal: "begin"; source: "terminology";
source: "terminology";
action: ACTION_STOP; action: ACTION_STOP;
target: "show"; target: "show";
target: "show2"; target: "show2";

View File

@ -394,7 +394,8 @@ static const Color colors256[256] =
{ 0xee, 0xee, 0xee, 0xff }, { 0xee, 0xee, 0xee, 0xff },
}; };
void colors_term_init(Evas_Object *textgrid, Evas_Object *bg) void
colors_term_init(Evas_Object *textgrid, Evas_Object *bg)
{ {
int c, n; int c, n;
int r, g, b, a; int r, g, b, a;

View File

@ -48,6 +48,7 @@ struct _Term
Win *wn; Win *wn;
Config *config; Config *config;
Evas_Object *bg; Evas_Object *bg;
Evas_Object *base;
Evas_Object *term; Evas_Object *term;
Evas_Object *media; Evas_Object *media;
Evas_Object *popmedia; Evas_Object *popmedia;
@ -464,12 +465,14 @@ _term_focus(Term *term)
{ {
term2->focused = EINA_FALSE; term2->focused = EINA_FALSE;
edje_object_signal_emit(term2->bg, "focus,out", "terminology"); edje_object_signal_emit(term2->bg, "focus,out", "terminology");
edje_object_signal_emit(term2->base, "focus,out", "terminology");
elm_object_focus_set(term2->term, EINA_FALSE); elm_object_focus_set(term2->term, EINA_FALSE);
} }
} }
} }
term->focused = EINA_TRUE; term->focused = EINA_TRUE;
edje_object_signal_emit(term->bg, "focus,in", "terminology"); edje_object_signal_emit(term->bg, "focus,in", "terminology");
edje_object_signal_emit(term->base, "focus,in", "terminology");
if (term->wn->cmdbox) elm_object_focus_set(term->wn->cmdbox, EINA_FALSE); if (term->wn->cmdbox) elm_object_focus_set(term->wn->cmdbox, EINA_FALSE);
elm_object_focus_set(term->term, EINA_TRUE); elm_object_focus_set(term->term, EINA_TRUE);
elm_win_title_set(term->wn->win, termio_title_get(term->term)); elm_win_title_set(term->wn->win, termio_title_get(term->term));
@ -612,6 +615,7 @@ _cb_focus_in(void *data, Evas_Object *obj __UNUSED__, void *event __UNUSED__)
else else
{ {
edje_object_signal_emit(term->bg, "focus,in", "terminology"); edje_object_signal_emit(term->bg, "focus,in", "terminology");
edje_object_signal_emit(term->base, "focus,in", "terminology");
if (!wn->cmdbox_up) elm_object_focus_set(term->term, EINA_TRUE); if (!wn->cmdbox_up) elm_object_focus_set(term->term, EINA_TRUE);
} }
} }
@ -628,6 +632,7 @@ _cb_focus_out(void *data, Evas_Object *obj __UNUSED__, void *event __UNUSED__)
term = main_win_focused_term_get(wn); term = main_win_focused_term_get(wn);
if (!term) return; if (!term) return;
edje_object_signal_emit(term->bg, "focus,out", "terminology"); edje_object_signal_emit(term->bg, "focus,out", "terminology");
edje_object_signal_emit(term->base, "focus,out", "terminology");
if (!wn->cmdbox_up) elm_object_focus_set(term->term, EINA_FALSE); if (!wn->cmdbox_up) elm_object_focus_set(term->term, EINA_FALSE);
elm_cache_all_flush(); elm_cache_all_flush();
} }
@ -796,7 +801,8 @@ _cb_size_hint(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *event __UN
evas_object_size_hint_min_get(obj, &mw, &mh); evas_object_size_hint_min_get(obj, &mw, &mh);
evas_object_size_hint_request_get(obj, &rw, &rh); evas_object_size_hint_request_get(obj, &rw, &rh);
edje_object_size_min_calc(term->base, &w, &h);
evas_object_size_hint_min_set(term->base, w, h);
edje_object_size_min_calc(term->bg, &w, &h); edje_object_size_min_calc(term->bg, &w, &h);
evas_object_size_hint_min_set(term->bg, w, h); evas_object_size_hint_min_set(term->bg, w, h);
term->step_x = mw; term->step_x = mw;
@ -849,7 +855,10 @@ _cb_bell(void *data, Evas_Object *obj __UNUSED__, void *event __UNUSED__)
if (!config) return; if (!config) return;
if (!config->disable_visual_bell) if (!config->disable_visual_bell)
edje_object_signal_emit(term->bg, "bell", "terminology"); {
edje_object_signal_emit(term->bg, "bell", "terminology");
edje_object_signal_emit(term->base, "bell", "terminology");
}
if (config->urg_bell) if (config->urg_bell)
{ {
if (!term->wn->focused) elm_win_urgent_set(term->wn->win, EINA_TRUE); if (!term->wn->focused) elm_win_urgent_set(term->wn->win, EINA_TRUE);
@ -1074,9 +1083,9 @@ _sel_restore(Split *sp)
#if (EVAS_VERSION_MAJOR > 1) || (EVAS_VERSION_MINOR >= 8) #if (EVAS_VERSION_MAJOR > 1) || (EVAS_VERSION_MINOR >= 8)
evas_object_image_source_visible_set(tm->sel, EINA_TRUE); evas_object_image_source_visible_set(tm->sel, EINA_TRUE);
#endif #endif
edje_object_part_swallow(tm->bg, "terminology.content", tm->term); edje_object_part_swallow(tm->bg, "terminology.content", tm->base);
tm->unswallowed = EINA_FALSE; tm->unswallowed = EINA_FALSE;
evas_object_show(tm->term); evas_object_show(tm->base);
tm->sel = NULL; tm->sel = NULL;
} }
} }
@ -1142,17 +1151,26 @@ _sel_go(Split *sp, Term *term)
sp->sel = sel_add(sp->wn->win); sp->sel = sel_add(sp->wn->win);
EINA_LIST_FOREACH(sp->terms, l, tm) EINA_LIST_FOREACH(sp->terms, l, tm)
{ {
edje_object_part_unswallow(tm->bg, tm->term); Evas_Object *img;
evas_object_lower(tm->term); Evas_Coord w, h;
evas_object_move(tm->term, -9999, -9999);
evas_object_show(tm->term); edje_object_part_unswallow(tm->bg, tm->base);
evas_object_clip_unset(tm->term); evas_object_lower(tm->base);
evas_object_move(tm->base, -9999, -9999);
evas_object_show(tm->base);
evas_object_clip_unset(tm->base);
#if (EVAS_VERSION_MAJOR > 1) || (EVAS_VERSION_MINOR >= 8) #if (EVAS_VERSION_MAJOR > 1) || (EVAS_VERSION_MINOR >= 8)
evas_object_image_source_visible_set(tm->sel, EINA_FALSE); evas_object_image_source_visible_set(tm->sel, EINA_FALSE);
#endif #endif
tm->unswallowed = EINA_TRUE; tm->unswallowed = EINA_TRUE;
img = evas_object_image_filled_add(evas_object_evas_get(sp->wn->win));
evas_object_image_source_set(img, tm->base);
evas_object_geometry_get(tm->base, NULL, NULL, &w, &h);
evas_object_resize(img, w, h);
evas_object_data_set(img, "termio", tm->term);
tm->sel = img;
tm->sel = termio_mirror_add(tm->term);
sel_entry_add(sp->sel, tm->sel, (tm == sp->term), tm->config); sel_entry_add(sp->sel, tm->sel, (tm == sp->term), tm->config);
} }
edje_object_part_swallow(sp->sel_bg, "terminology.content", sp->sel); edje_object_part_swallow(sp->sel_bg, "terminology.content", sp->sel);
@ -1449,9 +1467,15 @@ static void
_win_trans(Win *wn, Term *term, Eina_Bool trans) _win_trans(Win *wn, Term *term, Eina_Bool trans)
{ {
if (term->config->translucent) if (term->config->translucent)
edje_object_signal_emit(term->bg, "translucent,on", "terminology"); {
edje_object_signal_emit(term->bg, "translucent,on", "terminology");
edje_object_signal_emit(term->base, "translucent,on", "terminology");
}
else else
edje_object_signal_emit(term->bg, "translucent,off", "terminology"); {
edje_object_signal_emit(term->bg, "translucent,off", "terminology");
edje_object_signal_emit(term->base, "translucent,off", "terminology");
}
if (trans) if (trans)
{ {
elm_win_alpha_set(wn->win, EINA_TRUE); elm_win_alpha_set(wn->win, EINA_TRUE);
@ -1507,7 +1531,11 @@ _cb_media_del(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void
if (term->term) config = termio_config_get(term->term); if (term->term) config = termio_config_get(term->term);
term->media = NULL; term->media = NULL;
if (term->bg) edje_object_signal_emit(term->bg, "media,off", "terminology"); if (term->bg)
{
edje_object_signal_emit(term->bg, "media,off", "terminology");
edje_object_signal_emit(term->base, "media,off", "terminology");
}
if (!config) return; if (!config) return;
if (config->temporary) if (config->temporary)
eina_stringshare_replace(&(config->background), NULL); eina_stringshare_replace(&(config->background), NULL);
@ -1533,17 +1561,29 @@ _term_media_update(Term *term, const Config *config)
MEDIA_BG, &type); MEDIA_BG, &type);
evas_object_event_callback_add(o, EVAS_CALLBACK_DEL, evas_object_event_callback_add(o, EVAS_CALLBACK_DEL,
_cb_media_del, term); _cb_media_del, term);
edje_object_part_swallow(term->bg, "terminology.background", o); edje_object_part_swallow(term->base, "terminology.background", o);
evas_object_show(o); evas_object_show(o);
term->mediatype = type; term->mediatype = type;
if (type == TYPE_IMG) if (type == TYPE_IMG)
edje_object_signal_emit(term->bg, "media,image", "terminology"); {
edje_object_signal_emit(term->bg, "media,image", "terminology");
edje_object_signal_emit(term->base, "media,image", "terminology");
}
else if (type == TYPE_SCALE) else if (type == TYPE_SCALE)
edje_object_signal_emit(term->bg, "media,scale", "terminology"); {
edje_object_signal_emit(term->bg, "media,scale", "terminology");
edje_object_signal_emit(term->base, "media,scale", "terminology");
}
else if (type == TYPE_EDJE) else if (type == TYPE_EDJE)
edje_object_signal_emit(term->bg, "media,edje", "terminology"); {
edje_object_signal_emit(term->bg, "media,edje", "terminology");
edje_object_signal_emit(term->base, "media,edje", "terminology");
}
else if (type == TYPE_MOV) else if (type == TYPE_MOV)
edje_object_signal_emit(term->bg, "media,movie", "terminology"); {
edje_object_signal_emit(term->bg, "media,movie", "terminology");
edje_object_signal_emit(term->base, "media,movie", "terminology");
}
} }
else else
{ {
@ -1553,6 +1593,7 @@ _term_media_update(Term *term, const Config *config)
EVAS_CALLBACK_DEL, EVAS_CALLBACK_DEL,
_cb_media_del); _cb_media_del);
edje_object_signal_emit(term->bg, "media,off", "terminology"); edje_object_signal_emit(term->bg, "media,off", "terminology");
edje_object_signal_emit(term->base, "media,off", "terminology");
evas_object_del(term->media); evas_object_del(term->media);
term->media = NULL; term->media = NULL;
} }
@ -1747,6 +1788,8 @@ main_term_free(Term *term)
term->popmedia = NULL; term->popmedia = NULL;
evas_object_del(term->term); evas_object_del(term->term);
term->term = NULL; term->term = NULL;
evas_object_del(term->base);
term->base = NULL;
evas_object_del(term->bg); evas_object_del(term->bg);
term->bg = NULL; term->bg = NULL;
if (term->config) config_del(term->config); if (term->config) config_del(term->config);
@ -1759,25 +1802,39 @@ main_term_bg_redo(Term *term)
{ {
Evas_Object *o; Evas_Object *o;
evas_object_del(term->base);
evas_object_del(term->bg); evas_object_del(term->bg);
term->base = o = edje_object_add(evas_object_evas_get(term->wn->win));
theme_apply(o, term->config, "terminology/core");
theme_auto_reload_enable(o);
evas_object_show(o);
term->bg = o = edje_object_add(evas_object_evas_get(term->wn->win)); term->bg = o = edje_object_add(evas_object_evas_get(term->wn->win));
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_fill_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_fill_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
theme_apply(o, term->config, "terminology/background"); theme_apply(o, term->config, "terminology/background");
if (term->config->translucent)
edje_object_signal_emit(term->bg, "translucent,on", "terminology");
else
edje_object_signal_emit(term->bg, "translucent,off", "terminology");
theme_auto_reload_enable(o); theme_auto_reload_enable(o);
evas_object_show(o); evas_object_show(o);
edje_object_signal_callback_add(o, "popmedia,done", "terminology", if (term->config->translucent)
{
edje_object_signal_emit(term->bg, "translucent,on", "terminology");
edje_object_signal_emit(term->base, "translucent,on", "terminology");
}
else
{
edje_object_signal_emit(term->bg, "translucent,off", "terminology");
edje_object_signal_emit(term->base, "translucent,off", "terminology");
}
edje_object_signal_callback_add(term->bg, "popmedia,done", "terminology",
_cb_popmedia_done, term); _cb_popmedia_done, term);
termio_theme_set(term->term, term->bg); termio_theme_set(term->term, term->bg);
edje_object_part_swallow(term->bg, "terminology.content", term->term); edje_object_part_swallow(term->base, "terminology.content", term->term);
edje_object_part_swallow(term->bg, "terminology.content", term->base);
if (term->popmedia) if (term->popmedia)
{ {
edje_object_part_swallow(term->bg, "terminology.popmedia", term->popmedia); edje_object_part_swallow(term->bg, "terminology.popmedia", term->popmedia);
@ -1792,20 +1849,33 @@ main_term_bg_redo(Term *term)
} }
if (term->media) if (term->media)
{ {
edje_object_part_swallow(term->bg, "terminology.background", term->media); edje_object_part_swallow(term->base, "terminology.background", term->media);
if (term->mediatype == TYPE_IMG) if (term->mediatype == TYPE_IMG)
edje_object_signal_emit(term->bg, "media,image", "terminology"); {
edje_object_signal_emit(term->bg, "media,image", "terminology");
edje_object_signal_emit(term->base, "media,image", "terminology");
}
else if (term->mediatype == TYPE_SCALE) else if (term->mediatype == TYPE_SCALE)
edje_object_signal_emit(term->bg, "media,scale", "terminology"); {
edje_object_signal_emit(term->bg, "media,scale", "terminology");
edje_object_signal_emit(term->base, "media,scale", "terminology");
}
else if (term->mediatype == TYPE_EDJE) else if (term->mediatype == TYPE_EDJE)
edje_object_signal_emit(term->bg, "media,edje", "terminology"); {
edje_object_signal_emit(term->bg, "media,edje", "terminology");
edje_object_signal_emit(term->base, "media,edje", "terminology");
}
else if (term->mediatype == TYPE_MOV) else if (term->mediatype == TYPE_MOV)
edje_object_signal_emit(term->bg, "media,movie", "terminology"); {
edje_object_signal_emit(term->bg, "media,movie", "terminology");
edje_object_signal_emit(term->base, "media,movie", "terminology");
}
} }
if ((term->focused) && (term->wn->focused)) if ((term->focused) && (term->wn->focused))
{ {
edje_object_signal_emit(term->bg, "focus,in", "terminology"); edje_object_signal_emit(term->bg, "focus,in", "terminology");
edje_object_signal_emit(term->base, "focus,in", "terminology");
if (term->wn->cmdbox) if (term->wn->cmdbox)
elm_object_focus_set(term->wn->cmdbox, EINA_FALSE); elm_object_focus_set(term->wn->cmdbox, EINA_FALSE);
elm_object_focus_set(term->term, EINA_TRUE); elm_object_focus_set(term->term, EINA_TRUE);
@ -1831,6 +1901,12 @@ main_term_new(Win *wn, Config *config, const char *cmd,
term->hold = hold; term->hold = hold;
term->config = config; term->config = config;
term->base = o = edje_object_add(evas_object_evas_get(term->wn->win));
theme_apply(o, term->config, "terminology/core");
theme_auto_reload_enable(o);
evas_object_show(o);
term->bg = o = edje_object_add(evas_object_evas_get(wn->win)); term->bg = o = edje_object_add(evas_object_evas_get(wn->win));
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_fill_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_fill_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
@ -1842,15 +1918,21 @@ main_term_new(Win *wn, Config *config, const char *cmd,
return NULL; return NULL;
} }
if (term->config->translucent)
edje_object_signal_emit(term->bg, "translucent,on", "terminology");
else
edje_object_signal_emit(term->bg, "translucent,off", "terminology");
theme_auto_reload_enable(o); theme_auto_reload_enable(o);
evas_object_show(o); evas_object_show(o);
edje_object_signal_callback_add(o, "popmedia,done", "terminology", if (term->config->translucent)
{
edje_object_signal_emit(term->bg, "translucent,on", "terminology");
edje_object_signal_emit(term->base, "translucent,on", "terminology");
}
else
{
edje_object_signal_emit(term->bg, "translucent,off", "terminology");
edje_object_signal_emit(term->base, "translucent,off", "terminology");
}
edje_object_signal_callback_add(term->bg, "popmedia,done", "terminology",
_cb_popmedia_done, term); _cb_popmedia_done, term);
term->term = o = termio_add(wn->win, config, cmd, login_shell, cd, term->term = o = termio_add(wn->win, config, cmd, login_shell, cd,
@ -1863,7 +1945,8 @@ main_term_new(Win *wn, Config *config, const char *cmd,
evas_object_size_hint_fill_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_fill_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_event_callback_add(o, EVAS_CALLBACK_CHANGED_SIZE_HINTS, evas_object_event_callback_add(o, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
_cb_size_hint, term); _cb_size_hint, term);
edje_object_part_swallow(term->bg, "terminology.content", o); edje_object_part_swallow(term->base, "terminology.content", o);
edje_object_part_swallow(term->bg, "terminology.content", term->base);
evas_object_smart_callback_add(o, "options", _cb_options, term); evas_object_smart_callback_add(o, "options", _cb_options, term);
evas_object_smart_callback_add(o, "change", _cb_change, term); evas_object_smart_callback_add(o, "change", _cb_change, term);
evas_object_smart_callback_add(o, "exited", _cb_exited, term); evas_object_smart_callback_add(o, "exited", _cb_exited, term);
@ -1891,6 +1974,7 @@ main_term_new(Win *wn, Config *config, const char *cmd,
{ {
term->focused = EINA_TRUE; term->focused = EINA_TRUE;
// edje_object_signal_emit(term->bg, "focus,in", "terminology"); // edje_object_signal_emit(term->bg, "focus,in", "terminology");
// edje_object_signal_emit(term->base, "focus,in", "terminology");
} }
wn->terms = eina_list_append(wn->terms, term); wn->terms = eina_list_append(wn->terms, term);

View File

@ -7,7 +7,6 @@
#include "config.h" #include "config.h"
#include "utils.h" #include "utils.h"
#include "termio.h" #include "termio.h"
#include "media.h"
typedef struct _Sel Sel; typedef struct _Sel Sel;
typedef struct _Entry Entry; typedef struct _Entry Entry;
@ -35,14 +34,16 @@ struct _Sel
Eina_Bool exit_me : 1; Eina_Bool exit_me : 1;
Eina_Bool exit_on_sel : 1; Eina_Bool exit_on_sel : 1;
Eina_Bool exit_now : 1; Eina_Bool exit_now : 1;
Eina_Bool pending_sel : 1;
}; };
struct _Entry struct _Entry
{ {
Evas_Object *obj, *bg, *media, *termio; Evas_Object *obj, *bg, *termio;
Eina_Bool selected : 1; Eina_Bool selected : 1;
Eina_Bool selected_before : 1; Eina_Bool selected_before : 1;
Eina_Bool selected_orig : 1; Eina_Bool selected_orig : 1;
Eina_Bool was_selected : 1;
}; };
static Evas_Smart *_smart = NULL; static Evas_Smart *_smart = NULL;
@ -184,6 +185,7 @@ _key_down_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *
evas_object_smart_callback_call(data, "ending", NULL); evas_object_smart_callback_call(data, "ending", NULL);
sel_zoom(data, 1.0); sel_zoom(data, 1.0);
} }
// XXX: handle up/down
} }
static void static void
@ -210,10 +212,21 @@ _layout(Evas_Object *obj)
sd->px0 = (x * w); sd->px0 = (x * w);
sd->py0 = (y * h); sd->py0 = (y * h);
} }
if (en->selected) if ((sd->exit_on_sel) && (!sd->exit_now))
{ {
sd->px1 = (x * w); if (en->selected_before)
sd->py1 = (y * h); {
sd->px1 = (x * w);
sd->py1 = (y * h);
}
}
else
{
if (en->selected)
{
sd->px1 = (x * w);
sd->py1 = (y * h);
}
} }
x++; x++;
if (x >= iw) if (x >= iw)
@ -239,11 +252,11 @@ _layout(Evas_Object *obj)
else py = py - ((py * (oh - h)) / (hh - h)); else py = py - ((py * (oh - h)) / (hh - h));
} }
x = y = 0; x = y = 0;
EINA_LIST_FOREACH(sd->items, l, en) EINA_LIST_FOREACH(sd->items, l, en)
{ {
evas_object_move(en->bg, ox + (x * w) - px, oy + (y * h) - py); evas_object_move(en->bg, ox + (x * w) - px, oy + (y * h) - py);
evas_object_resize(en->bg, w, h); evas_object_resize(en->bg, w, h);
evas_object_show(en->obj);
evas_object_show(en->bg); evas_object_show(en->bg);
x++; x++;
if (x >= iw) if (x >= iw)
@ -252,6 +265,17 @@ _layout(Evas_Object *obj)
y++; y++;
} }
} }
if ((sd->w > 0) && (sd->h > 0) && (sd->pending_sel))
{
sd->pending_sel = EINA_FALSE;
EINA_LIST_FOREACH(sd->items, l, en)
{
if ((!en->was_selected) && (en->selected))
edje_object_signal_emit(en->bg, "selected", "terminology");
else if ((en->was_selected) && (!en->selected))
edje_object_signal_emit(en->bg, "unselected", "terminology");
}
}
} }
static Eina_Bool static Eina_Bool
@ -349,13 +373,6 @@ _bell_cb(void *data, Evas_Object *obj __UNUSED__, void *info __UNUSED__)
edje_object_signal_emit(en->bg, "bell", "terminology"); edje_object_signal_emit(en->bg, "bell", "terminology");
} }
static void
_media_del_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *info __UNUSED__)
{
Entry *en = data;
en->media = NULL;
}
static void static void
_entry_termio_del_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *info __UNUSED__) _entry_termio_del_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *info __UNUSED__)
{ {
@ -430,7 +447,6 @@ _smart_del(Evas_Object *obj)
if (en->obj) evas_object_event_callback_del_full if (en->obj) evas_object_event_callback_del_full
(en->obj, EVAS_CALLBACK_DEL, _entry_del_cb, en); (en->obj, EVAS_CALLBACK_DEL, _entry_del_cb, en);
if (en->obj) evas_object_del(en->obj); if (en->obj) evas_object_del(en->obj);
if (en->media) evas_object_del(en->media);
evas_object_del(en->bg); evas_object_del(en->bg);
free(en); free(en);
} }
@ -478,7 +494,7 @@ _smart_init(void)
evas_object_smart_clipped_smart_set(&_parent_sc); evas_object_smart_clipped_smart_set(&_parent_sc);
sc = _parent_sc; sc = _parent_sc;
sc.name = "media"; sc.name = "sel";
sc.version = EVAS_SMART_CLASS_VERSION; sc.version = EVAS_SMART_CLASS_VERSION;
sc.add = _smart_add; sc.add = _smart_add;
sc.del = _smart_del; sc.del = _smart_del;
@ -539,31 +555,12 @@ sel_entry_add(Evas_Object *obj, Evas_Object *entry, Eina_Bool selected, Config *
edje_object_part_swallow(en->bg, "terminology.content", en->obj); edje_object_part_swallow(en->bg, "terminology.content", en->obj);
evas_object_show(en->obj); evas_object_show(en->obj);
if (config->background)
{
Evas_Object *o;
int type = 0;
en->media = o = media_add(obj,
config->background, config,
MEDIA_BG, &type);
evas_object_event_callback_add(o, EVAS_CALLBACK_DEL,
_media_del_cb, en);
edje_object_part_swallow(en->bg, "terminology.background", o);
evas_object_show(o);
if (type == TYPE_IMG)
edje_object_signal_emit(en->bg, "media,image", "terminology");
else if (type == TYPE_SCALE)
edje_object_signal_emit(en->bg, "media,scale", "terminology");
else if (type == TYPE_EDJE)
edje_object_signal_emit(en->bg, "media,edje", "terminology");
else if (type == TYPE_MOV)
edje_object_signal_emit(en->bg, "media,movie", "terminology");
}
evas_object_stack_below(en->bg, sd->o_event); evas_object_stack_below(en->bg, sd->o_event);
if (en->selected) if (en->selected)
edje_object_signal_emit(en->bg, "selected,start", "terminology"); {
edje_object_signal_emit(en->bg, "selected,start", "terminology");
edje_object_message_signal_process(en->bg);
}
sd->interp = 1.0; sd->interp = 1.0;
en->termio = evas_object_data_get(en->obj, "termio"); en->termio = evas_object_data_get(en->obj, "termio");
if (en->termio) if (en->termio)
@ -608,19 +605,30 @@ sel_entry_selected_set(Evas_Object *obj, Evas_Object *entry, Eina_Bool keep_befo
Eina_List *l; Eina_List *l;
Entry *en; Entry *en;
if (!sd) return; if (!sd) return;
EINA_LIST_FOREACH(sd->items, l, en) EINA_LIST_FOREACH(sd->items, l, en)
{ {
if (en->obj == entry) if (en->obj == entry)
{ {
edje_object_signal_emit(en->bg, "selected", "terminology"); if ((sd->w > 0) && (sd->h > 0))
edje_object_signal_emit(en->bg, "selected", "terminology");
else
sd->pending_sel = EINA_TRUE;
evas_object_stack_below(en->bg, sd->o_event); evas_object_stack_below(en->bg, sd->o_event);
en->was_selected = EINA_FALSE;
en->selected = EINA_TRUE; en->selected = EINA_TRUE;
} }
else if (en->obj != entry) else if (en->obj != entry)
{ {
if (en->selected) if (en->selected)
{ {
edje_object_signal_emit(en->bg, "unselected", "terminology"); if ((sd->w > 0) && (sd->h > 0))
edje_object_signal_emit(en->bg, "unselected", "terminology");
else
{
en->was_selected = EINA_TRUE;
sd->pending_sel = EINA_TRUE;
}
en->selected = EINA_FALSE; en->selected = EINA_FALSE;
} }
} }