terminology - add tab bar at the top that looks like normal tabs
this makes the default (and solarized) themes have a tab bar at the top that look and behave like normal tabs. option to disable these. other themes might need some updating if they dont follow default by #including it.
|
@ -173,19 +173,29 @@ collections {
|
||||||
action: STATE_SET "movie" 0.0;
|
action: STATE_SET "movie" 0.0;
|
||||||
target: "terminology.background";
|
target: "terminology.background";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
part { name: "terminology.tabregion"; type: SWALLOW;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
fixed: 1 1;
|
||||||
|
rel2.relative: 1.0 0.0;
|
||||||
|
min: 1 1;
|
||||||
|
align: 0.0 0.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
// actual text grid for chars, cursors, selectiond etc. goes here
|
// actual text grid for chars, cursors, selectiond etc. goes here
|
||||||
part { name: "terminology.content"; type: SWALLOW;
|
part { name: "terminology.content"; type: SWALLOW;
|
||||||
description { state: "default" 0.0;
|
description { state: "default" 0.0;
|
||||||
rel1.offset: 1 1;
|
rel1.offset: 1 0;
|
||||||
|
rel1.relative: 0.0 1.0;
|
||||||
|
rel1.to_y: "terminology.tabregion";
|
||||||
rel2.offset: -2 -2;
|
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 {
|
||||||
|
@ -201,6 +211,20 @@ collections {
|
||||||
image: "pm_overlay.png" COMP;
|
image: "pm_overlay.png" COMP;
|
||||||
image: "pm_fill.png" COMP;
|
image: "pm_fill.png" COMP;
|
||||||
image: "cr_glow.png" COMP;
|
image: "cr_glow.png" COMP;
|
||||||
|
image: "tab_base_bottom.png" COMP;
|
||||||
|
image: "tab_base_l0.png" COMP;
|
||||||
|
image: "tab_base_l1.png" COMP;
|
||||||
|
image: "tab_base_m.png" COMP;
|
||||||
|
image: "tab_base_r0.png" COMP;
|
||||||
|
image: "tab_base_r1.png" COMP;
|
||||||
|
image: "tab_bg_l0.png" COMP;
|
||||||
|
image: "tab_bg_l1.png" COMP;
|
||||||
|
image: "tab_bg_r0.png" COMP;
|
||||||
|
image: "tab_bg_r1.png" COMP;
|
||||||
|
image: "tab_shad_l0.png" COMP;
|
||||||
|
image: "tab_shad_l1.png" COMP;
|
||||||
|
image: "tab_shad_r0.png" COMP;
|
||||||
|
image: "tab_shad_r1.png" COMP;
|
||||||
}
|
}
|
||||||
set { name: "bg_shadow";
|
set { name: "bg_shadow";
|
||||||
image { image: "bg_shadow.png" COMP; size: 0 0 200 150; }
|
image { image: "bg_shadow.png" COMP; size: 0 0 200 150; }
|
||||||
|
@ -255,6 +279,11 @@ collections {
|
||||||
part { name: "terminology.content"; type: SWALLOW;
|
part { name: "terminology.content"; type: SWALLOW;
|
||||||
description { state: "default" 0.0;
|
description { state: "default" 0.0;
|
||||||
}
|
}
|
||||||
|
description { state: "tab" 0.0;
|
||||||
|
inherit: "default" 0.0;
|
||||||
|
// rel1.to_y: "tabmiddle";
|
||||||
|
// rel1.relative: 0.0 1.0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
|
@ -459,8 +488,10 @@ collections {
|
||||||
fixed: 1 1;
|
fixed: 1 1;
|
||||||
rel1.relative: 1.0 0.0;
|
rel1.relative: 1.0 0.0;
|
||||||
rel1.offset: -3 2;
|
rel1.offset: -3 2;
|
||||||
|
rel1.to: "viewregion";
|
||||||
rel2.relative: 1.0 0.0;
|
rel2.relative: 1.0 0.0;
|
||||||
rel2.offset: -3 2;
|
rel2.offset: -3 2;
|
||||||
|
rel2.to: "viewregion";
|
||||||
align: 1.0 0.0;
|
align: 1.0 0.0;
|
||||||
min: 16 16;
|
min: 16 16;
|
||||||
}
|
}
|
||||||
|
@ -475,6 +506,27 @@ collections {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
part { name: "terminology.tabregion"; type: SWALLOW;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
fixed: 1 1;
|
||||||
|
rel1.to: "terminology.content";
|
||||||
|
rel2.to: "viewregion";
|
||||||
|
rel2.relative: 1.0 0.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "viewregion"; type: SWALLOW;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
fixed: 1 1;
|
||||||
|
rel1.to: "terminology.content";
|
||||||
|
rel2.to: "terminology.content";
|
||||||
|
}
|
||||||
|
description { state: "tab" 0.0;
|
||||||
|
inherit: "default" 0.0;
|
||||||
|
rel1.to_y: "tabmiddle";
|
||||||
|
rel1.relative: 0.0 1.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
program {
|
program {
|
||||||
signal: "mouse,in"; source: "tabcount_ev";
|
signal: "mouse,in"; source: "tabcount_ev";
|
||||||
action: STATE_SET "over" 0.0;
|
action: STATE_SET "over" 0.0;
|
||||||
|
@ -509,14 +561,14 @@ collections {
|
||||||
signal: "mouse,clicked,1"; source: "tabcount_ev";
|
signal: "mouse,clicked,1"; source: "tabcount_ev";
|
||||||
action: SIGNAL_EMIT "tabcount,go" "terminology";
|
action: SIGNAL_EMIT "tabcount,go" "terminology";
|
||||||
}
|
}
|
||||||
program {
|
program {
|
||||||
signal: "mouse,wheel,0,-1"; source: "tabcount_ev";
|
signal: "mouse,wheel,0,-1"; source: "tabcount_ev";
|
||||||
action: SIGNAL_EMIT "tabcount,prev" "terminology";
|
action: SIGNAL_EMIT "tabcount,prev" "terminology";
|
||||||
}
|
}
|
||||||
program {
|
program {
|
||||||
signal: "mouse,wheel,0,1"; source: "tabcount_ev";
|
signal: "mouse,wheel,0,1"; source: "tabcount_ev";
|
||||||
action: SIGNAL_EMIT "tabcount,next" "terminology";
|
action: SIGNAL_EMIT "tabcount,next" "terminology";
|
||||||
}
|
}
|
||||||
program {
|
program {
|
||||||
signal: "tabcount,off"; source: "terminology";
|
signal: "tabcount,off"; source: "terminology";
|
||||||
action: STATE_SET "default" 0.0;
|
action: STATE_SET "default" 0.0;
|
||||||
|
@ -553,8 +605,12 @@ collections {
|
||||||
// miniview
|
// miniview
|
||||||
part { name: "terminology.miniview"; type: SWALLOW;
|
part { name: "terminology.miniview"; type: SWALLOW;
|
||||||
description { state: "default" 0.0;
|
description { state: "default" 0.0;
|
||||||
|
rel1.to_x: "terminology.content";
|
||||||
|
rel1.to_y: "viewregion";
|
||||||
|
rel2.to: "terminology.content";
|
||||||
//color: 255 255 255 0;
|
//color: 255 255 255 0;
|
||||||
visible: 0;
|
visible: 0;
|
||||||
|
fixed: 1 1;
|
||||||
}
|
}
|
||||||
description { state: "on" 0.0;
|
description { state: "on" 0.0;
|
||||||
inherit: "default" 0.0;
|
inherit: "default" 0.0;
|
||||||
|
@ -602,10 +658,34 @@ collections {
|
||||||
image.middle: 0;
|
image.middle: 0;
|
||||||
fill.smooth: 0;
|
fill.smooth: 0;
|
||||||
}
|
}
|
||||||
|
description { state: "tab" 0.0;
|
||||||
|
inherit: "default" 0.0;
|
||||||
|
visible: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "shine";
|
||||||
|
mouse_events: 0;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.offset: 0 0;
|
||||||
|
rel2.offset: -1 -1;
|
||||||
|
image.normal: "bg_shine.png";
|
||||||
|
fill.smooth: 0;
|
||||||
|
align: 0.5 0.0;
|
||||||
|
aspect: (255/120) (255/120);
|
||||||
|
aspect_preference: HORIZONTAL;
|
||||||
|
color: 255 255 255 64;
|
||||||
|
}
|
||||||
|
description { state: "focused" 0.0;
|
||||||
|
inherit: "default" 0.0;
|
||||||
|
color: 255 255 255 255;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
part { name: "glintclip"; type: RECT;
|
part { name: "glintclip"; type: RECT;
|
||||||
description { state: "default" 0.0;
|
description { state: "default" 0.0;
|
||||||
}
|
}
|
||||||
|
description { state: "tab" 0.0;
|
||||||
|
inherit: "default" 0.0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
part { name: "glint";
|
part { name: "glint";
|
||||||
mouse_events: 0;
|
mouse_events: 0;
|
||||||
|
@ -630,21 +710,260 @@ collections {
|
||||||
color: 255 255 255 255;
|
color: 255 255 255 255;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
part { name: "shine";
|
|
||||||
|
part { name: "tab_bevel_bottom";
|
||||||
mouse_events: 0;
|
mouse_events: 0;
|
||||||
description { state: "default" 0.0;
|
description { state: "default" 0.0;
|
||||||
rel1.offset: 0 0;
|
rel1.to_y: "tabmiddle";
|
||||||
rel2.offset: -1 -1;
|
rel1.relative: 0.0 1.0;
|
||||||
image.normal: "bg_shine.png";
|
image.normal: "tab_base_bottom.png";
|
||||||
|
image.border: 2 2 0 2;
|
||||||
|
image.middle: 0;
|
||||||
fill.smooth: 0;
|
fill.smooth: 0;
|
||||||
align: 0.5 0.0;
|
visible: 0;
|
||||||
aspect: (255/120) (255/120);
|
fixed: 1 1;
|
||||||
aspect_preference: HORIZONTAL;
|
|
||||||
color: 255 255 255 64;
|
|
||||||
}
|
}
|
||||||
description { state: "focused" 0.0;
|
description { state: "tab" 0.0;
|
||||||
inherit: "default" 0.0;
|
inherit: "default" 0.0;
|
||||||
color: 255 255 255 255;
|
visible: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "tab_bevel_top0";
|
||||||
|
mouse_events: 0;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.to: "tableft";
|
||||||
|
rel2.to_y: "tableft";
|
||||||
|
rel2.to_x: "tab_bevel_top1";
|
||||||
|
rel2.relative: 0.0 1.0;
|
||||||
|
image.normal: "tab_base_l0.png";
|
||||||
|
image.border: 0 0 0 4;
|
||||||
|
fill.smooth: 0;
|
||||||
|
visible: 0;
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
description { state: "tab" 0.0;
|
||||||
|
inherit: "default" 0.0;
|
||||||
|
visible: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "tab_bevel_top1";
|
||||||
|
mouse_events: 0;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.to: "tabmiddle";
|
||||||
|
rel1.offset: -4 0;
|
||||||
|
rel2.to: "tabmiddle";
|
||||||
|
align: 0.0 0.0;
|
||||||
|
max: 12 99999;
|
||||||
|
min: 12 0;
|
||||||
|
image.normal: "tab_base_l1.png";
|
||||||
|
image.border: 0 0 4 4;
|
||||||
|
fill.smooth: 0;
|
||||||
|
visible: 0;
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
description { state: "tab" 0.0;
|
||||||
|
inherit: "default" 0.0;
|
||||||
|
visible: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "tab_bevel_top2";
|
||||||
|
mouse_events: 0;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.to: "tab_bevel_top1";
|
||||||
|
rel1.relative: 1.0 0.0;
|
||||||
|
rel2.to: "tab_bevel_top3";
|
||||||
|
rel2.relative: 0.0 1.0;
|
||||||
|
image.normal: "tab_base_m.png";
|
||||||
|
image.border: 0 0 4 0;
|
||||||
|
fill.smooth: 0;
|
||||||
|
visible: 0;
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
description { state: "tab" 0.0;
|
||||||
|
inherit: "default" 0.0;
|
||||||
|
visible: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "tab_bevel_top3";
|
||||||
|
mouse_events: 0;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.to: "tabmiddle";
|
||||||
|
rel2.to: "tabmiddle";
|
||||||
|
rel2.offset: 3 -1;
|
||||||
|
align: 1.0 0.0;
|
||||||
|
max: 12 99999;
|
||||||
|
min: 12 0;
|
||||||
|
image.normal: "tab_base_r1.png";
|
||||||
|
image.border: 0 0 4 4;
|
||||||
|
fill.smooth: 0;
|
||||||
|
visible: 0;
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
description { state: "tab" 0.0;
|
||||||
|
inherit: "default" 0.0;
|
||||||
|
visible: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "tab_bevel_top4";
|
||||||
|
mouse_events: 0;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.to_y: "tabright";
|
||||||
|
rel1.to_x: "tab_bevel_top3";
|
||||||
|
rel1.relative: 1.0 0.0;
|
||||||
|
rel2.to: "tabright";
|
||||||
|
image.normal: "tab_base_r0.png";
|
||||||
|
image.border: 0 0 0 4;
|
||||||
|
fill.smooth: 0;
|
||||||
|
visible: 0;
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
description { state: "tab" 0.0;
|
||||||
|
inherit: "default" 0.0;
|
||||||
|
visible: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "tab_bevel_bg0";
|
||||||
|
mouse_events: 0;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.to: "tab_bevel_top0";
|
||||||
|
rel2.to: "tab_bevel_top0";
|
||||||
|
image.normal: "tab_bg_l0.png";
|
||||||
|
image.border: 2 0 4 4;
|
||||||
|
fill.smooth: 0;
|
||||||
|
visible: 0;
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
description { state: "tab" 0.0;
|
||||||
|
inherit: "default" 0.0;
|
||||||
|
visible: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "tab_bevel_bg1";
|
||||||
|
mouse_events: 0;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.to: "tab_bevel_top1";
|
||||||
|
rel2.to: "tab_bevel_top1";
|
||||||
|
image.normal: "tab_bg_l1.png";
|
||||||
|
image.border: 0 0 4 4;
|
||||||
|
fill.smooth: 0;
|
||||||
|
visible: 0;
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
description { state: "tab" 0.0;
|
||||||
|
inherit: "default" 0.0;
|
||||||
|
visible: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "tab_bevel_bg3";
|
||||||
|
mouse_events: 0;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.to: "tab_bevel_top3";
|
||||||
|
rel2.to: "tab_bevel_top3";
|
||||||
|
image.normal: "tab_bg_r1.png";
|
||||||
|
image.border: 0 0 4 4;
|
||||||
|
fill.smooth: 0;
|
||||||
|
visible: 0;
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
description { state: "tab" 0.0;
|
||||||
|
inherit: "default" 0.0;
|
||||||
|
visible: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "tab_bevel_bg4";
|
||||||
|
mouse_events: 0;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.to: "tab_bevel_top4";
|
||||||
|
rel2.to: "tab_bevel_top4";
|
||||||
|
image.normal: "tab_bg_r0.png";
|
||||||
|
image.border: 0 2 4 4;
|
||||||
|
fill.smooth: 0;
|
||||||
|
visible: 0;
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
description { state: "tab" 0.0;
|
||||||
|
inherit: "default" 0.0;
|
||||||
|
visible: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
part { name: "terminology.tabl.content"; type: SWALLOW;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.to: "tableft";
|
||||||
|
rel2.to: "tableft";
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "terminology.tabr.content"; type: SWALLOW;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.to: "tabright";
|
||||||
|
rel2.to: "tabright";
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
part { name: "tab_bevel_shad0";
|
||||||
|
mouse_events: 0;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.to: "tab_bevel_top0";
|
||||||
|
rel2.to: "tab_bevel_top0";
|
||||||
|
image.normal: "tab_shad_l0.png";
|
||||||
|
image.border: 0 0 0 10;
|
||||||
|
fill.smooth: 0;
|
||||||
|
visible: 0;
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
description { state: "tab" 0.0;
|
||||||
|
inherit: "default" 0.0;
|
||||||
|
visible: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "tab_bevel_shad1";
|
||||||
|
mouse_events: 0;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.to: "tab_bevel_top1";
|
||||||
|
rel2.to: "tab_bevel_top1";
|
||||||
|
image.normal: "tab_shad_l1.png";
|
||||||
|
image.border: 0 0 10 10;
|
||||||
|
fill.smooth: 0;
|
||||||
|
visible: 0;
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
description { state: "tab" 0.0;
|
||||||
|
inherit: "default" 0.0;
|
||||||
|
visible: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "tab_bevel_shad3";
|
||||||
|
mouse_events: 0;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.to: "tab_bevel_top3";
|
||||||
|
rel2.to: "tab_bevel_top3";
|
||||||
|
image.normal: "tab_shad_r1.png";
|
||||||
|
image.border: 0 0 10 10;
|
||||||
|
fill.smooth: 0;
|
||||||
|
visible: 0;
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
description { state: "tab" 0.0;
|
||||||
|
inherit: "default" 0.0;
|
||||||
|
visible: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "tab_bevel_shad4";
|
||||||
|
mouse_events: 0;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.to: "tab_bevel_top4";
|
||||||
|
rel2.to: "tab_bevel_top4";
|
||||||
|
image.normal: "tab_shad_r0.png";
|
||||||
|
image.border: 0 0 0 10;
|
||||||
|
fill.smooth: 0;
|
||||||
|
visible: 0;
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
description { state: "tab" 0.0;
|
||||||
|
inherit: "default" 0.0;
|
||||||
|
visible: 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
program {
|
program {
|
||||||
|
@ -668,6 +987,202 @@ collections {
|
||||||
target: "shine";
|
target: "shine";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
// a swallow to hold a finger size rect for min tab size
|
||||||
|
program {
|
||||||
|
signal: "tabbar,on"; source: "terminology";
|
||||||
|
action: STATE_SET "tab" 0.0;
|
||||||
|
target: "viewregion";
|
||||||
|
target: "tableft";
|
||||||
|
target: "tabmiddle";
|
||||||
|
target: "tabright";
|
||||||
|
target: "bevel";
|
||||||
|
target: "glintclip";
|
||||||
|
target: "tab_bevel_bottom";
|
||||||
|
target: "tab_bevel_top0";
|
||||||
|
target: "tab_bevel_top1";
|
||||||
|
target: "tab_bevel_top2";
|
||||||
|
target: "tab_bevel_top3";
|
||||||
|
target: "tab_bevel_top4";
|
||||||
|
target: "tab_bevel_bg0";
|
||||||
|
target: "tab_bevel_bg1";
|
||||||
|
target: "tab_bevel_bg3";
|
||||||
|
target: "tab_bevel_bg4";
|
||||||
|
target: "tab_bevel_shad0";
|
||||||
|
target: "tab_bevel_shad1";
|
||||||
|
target: "tab_bevel_shad3";
|
||||||
|
target: "tab_bevel_shad4";
|
||||||
|
target: "tabtitle";
|
||||||
|
}
|
||||||
|
program {
|
||||||
|
signal: "tabbar,off"; source: "terminology";
|
||||||
|
action: STATE_SET "default" 0.0;
|
||||||
|
target: "viewregion";
|
||||||
|
target: "tableft";
|
||||||
|
target: "tabmiddle";
|
||||||
|
target: "tabright";
|
||||||
|
target: "bevel";
|
||||||
|
target: "glintclip";
|
||||||
|
target: "tab_bevel_bottom";
|
||||||
|
target: "tab_bevel_top0";
|
||||||
|
target: "tab_bevel_top1";
|
||||||
|
target: "tab_bevel_top2";
|
||||||
|
target: "tab_bevel_top3";
|
||||||
|
target: "tab_bevel_top4";
|
||||||
|
target: "tab_bevel_bg0";
|
||||||
|
target: "tab_bevel_bg1";
|
||||||
|
target: "tab_bevel_bg3";
|
||||||
|
target: "tab_bevel_bg4";
|
||||||
|
target: "tab_bevel_shad0";
|
||||||
|
target: "tab_bevel_shad1";
|
||||||
|
target: "tab_bevel_shad3";
|
||||||
|
target: "tab_bevel_shad4";
|
||||||
|
target: "tabtitle";
|
||||||
|
}
|
||||||
|
|
||||||
|
part { name: "terminology.tab"; type: SWALLOW;
|
||||||
|
mouse_events: 0;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.relative: 1.0 0.0;
|
||||||
|
rel1.to_x: "terminology.tabl";
|
||||||
|
rel2.relative: 0.0 0.0;
|
||||||
|
rel2.to_x: "terminology.tabr";
|
||||||
|
align: 0.5 0.0;
|
||||||
|
visible: 0;
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// some slot for dragable parts to stayt in along top edge of bg
|
||||||
|
part { name: "tabdrag"; type: SPACER;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel2.relative: 1.0 0.0;
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// left boundary of the active tab (ragable 0.0 -> 1.0)
|
||||||
|
part { name: "terminology.tabl"; type: SPACER;
|
||||||
|
dragable.x: 1 1 0;
|
||||||
|
dragable.confine: "tabdrag";
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel2.relative: 1.0 0.0;
|
||||||
|
max: 1 1;
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// right boundary of the active tab (ragable 0.0 -> 1.0)
|
||||||
|
part { name: "terminology.tabr"; type: SPACER;
|
||||||
|
dragable.x: 1 1 0;
|
||||||
|
dragable.confine: "tabdrag";
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel2.relative: 1.0 0.0;
|
||||||
|
max: 1 1;
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
part { name: "terminology.tab.title"; type: TEXT; mouse_events: 0;
|
||||||
|
scale: 1;
|
||||||
|
effect: SOFT_SHADOW BOTTOM;
|
||||||
|
mouse_events: 0;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
color: 255 255 255 255;
|
||||||
|
color3: 0 0 0 18;
|
||||||
|
text { font: "Sans:style=Bold"; size: 10;
|
||||||
|
align: 0.5 0.0;
|
||||||
|
min: 0 1;
|
||||||
|
}
|
||||||
|
align: 0.5 0.0;
|
||||||
|
rel1.to_x: "tab_bevel_top2";
|
||||||
|
rel1.offset: 0 2;
|
||||||
|
rel2.to_x: "tab_bevel_top2";
|
||||||
|
rel2.offset: -1 2;
|
||||||
|
rel2.relative: 1.0 0.0;
|
||||||
|
visible: 0;
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "tabtitle"; type: TEXT; mouse_events: 0;
|
||||||
|
scale: 1;
|
||||||
|
effect: SOFT_SHADOW BOTTOM;
|
||||||
|
mouse_events: 0;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
color: 255 255 255 255;
|
||||||
|
color3: 0 0 0 18;
|
||||||
|
text { font: "Sans:style=Bold"; size: 10;
|
||||||
|
align: 0.5 0.5;
|
||||||
|
min: 0 1;
|
||||||
|
text_source: "terminology.tab.title";
|
||||||
|
}
|
||||||
|
align: 0.5 0.5;
|
||||||
|
rel1.to_x: "tab_bevel_top2";
|
||||||
|
rel1.to_y: "tabmiddle";
|
||||||
|
rel2.to_x: "tab_bevel_top2";
|
||||||
|
rel2.to_y: "tabmiddle";
|
||||||
|
visible: 0;
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
description { state: "tab" 0.0;
|
||||||
|
inherit: "default" 0.0;
|
||||||
|
visible: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "tablimit0"; type: SPACER;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.to_y: "terminology.tab";
|
||||||
|
rel1.relative: 0.0 1.0;
|
||||||
|
rel2.to_y: "terminology.tab.title";
|
||||||
|
align: 0.0 0.0;
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
part { name: "tableft"; type: RECT;
|
||||||
|
mouse_events: 0;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel2.to_x: "terminology.tab";
|
||||||
|
rel2.to_y: "tabmiddle";
|
||||||
|
rel2.relative: 0.0 1.0;
|
||||||
|
color: 0 0 0 0;
|
||||||
|
visible: 0;
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
description { state: "tab" 0.0;
|
||||||
|
inherit: "default" 0.0;
|
||||||
|
visible: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "tabright"; type: RECT;
|
||||||
|
mouse_events: 0;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.to: "terminology.tab";
|
||||||
|
rel1.relative: 1.0 0.0;
|
||||||
|
rel2.to_y: "tabmiddle";
|
||||||
|
color: 0 0 0 0;
|
||||||
|
visible: 0;
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
description { state: "tab" 0.0;
|
||||||
|
inherit: "default" 0.0;
|
||||||
|
visible: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "tabmiddle"; type: RECT;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.to: "terminology.tab";
|
||||||
|
rel2.to_x: "terminology.tab";
|
||||||
|
rel2.to_y: "tablimit0";
|
||||||
|
rel2.offset: -1 0;
|
||||||
|
color: 0 0 0 0;
|
||||||
|
align: 0.0 0.0;
|
||||||
|
visible: 0;
|
||||||
|
fixed: 1 1;
|
||||||
|
}
|
||||||
|
description { state: "tab" 0.0;
|
||||||
|
inherit: "default" 0.0;
|
||||||
|
visible: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
// visual bell - spinning red siren light
|
// visual bell - spinning red siren light
|
||||||
part { name: "bell_glow";
|
part { name: "bell_glow";
|
||||||
|
@ -813,7 +1328,7 @@ collections {
|
||||||
transition: LINEAR 0.9;
|
transition: LINEAR 0.9;
|
||||||
target: "bell_strobe";
|
target: "bell_strobe";
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
// popup media over the terminal (until dismissed)
|
// popup media over the terminal (until dismissed)
|
||||||
part { name: "popmedia_clip"; type: RECT;
|
part { name: "popmedia_clip"; type: RECT;
|
||||||
|
@ -1111,6 +1626,146 @@ collections {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
group { name: "terminology/tabbar_back";
|
||||||
|
images {
|
||||||
|
image: "tab_base_l1.png" COMP;
|
||||||
|
image: "tab_base_m.png" COMP;
|
||||||
|
image: "tab_base_r1.png" COMP;
|
||||||
|
image: "tab_other_l.png" COMP;
|
||||||
|
image: "tab_other_m.png" COMP;
|
||||||
|
image: "tab_other_r.png" COMP;
|
||||||
|
image: "tab_shad_l2.png" COMP;
|
||||||
|
image: "tab_shad_r2.png" COMP;
|
||||||
|
}
|
||||||
|
parts {
|
||||||
|
part { name: "tab_bevel_shad1";
|
||||||
|
mouse_events: 0;
|
||||||
|
clip_to: "clip";
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.to: "tab_bevel_top1";
|
||||||
|
rel2.to: "tab_bevel_top1";
|
||||||
|
image.normal: "tab_shad_l2.png";
|
||||||
|
image.border: 0 0 10 10;
|
||||||
|
fill.smooth: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "tab_bevel_shad3";
|
||||||
|
mouse_events: 0;
|
||||||
|
clip_to: "clip";
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.to: "tab_bevel_top3";
|
||||||
|
rel2.to: "tab_bevel_top3";
|
||||||
|
image.normal: "tab_shad_r2.png";
|
||||||
|
image.border: 0 0 10 10;
|
||||||
|
fill.smooth: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "tab_base_top1";
|
||||||
|
mouse_events: 0;
|
||||||
|
clip_to: "clip";
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.to: "tab_bevel_top1";
|
||||||
|
rel2.to: "tab_bevel_top1";
|
||||||
|
image.normal: "tab_other_l.png";
|
||||||
|
image.border: 0 0 4 4;
|
||||||
|
fill.smooth: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "tab_base_top2";
|
||||||
|
mouse_events: 0;
|
||||||
|
clip_to: "clip";
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.to: "tab_bevel_top2";
|
||||||
|
rel2.to: "tab_bevel_top2";
|
||||||
|
image.normal: "tab_other_m.png";
|
||||||
|
image.border: 0 0 4 4;
|
||||||
|
fill.smooth: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "tab_base_top3";
|
||||||
|
mouse_events: 0;
|
||||||
|
clip_to: "clip";
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.to: "tab_bevel_top3";
|
||||||
|
rel2.to: "tab_bevel_top3";
|
||||||
|
image.normal: "tab_other_r.png";
|
||||||
|
image.border: 0 0 4 4;
|
||||||
|
fill.smooth: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "tab_bevel_top1";
|
||||||
|
mouse_events: 0;
|
||||||
|
clip_to: "clip";
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
align: 0.0 0.0;
|
||||||
|
rel1.offset: -4 0;
|
||||||
|
max: 12 99999;
|
||||||
|
min: 12 0;
|
||||||
|
image.normal: "tab_base_l1.png";
|
||||||
|
image.border: 0 0 4 4;
|
||||||
|
fill.smooth: 0;
|
||||||
|
fixed: 1 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "tab_bevel_top2";
|
||||||
|
mouse_events: 0;
|
||||||
|
clip_to: "clip";
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.to: "tab_bevel_top1";
|
||||||
|
rel1.relative: 1.0 0.0;
|
||||||
|
rel2.to: "tab_bevel_top3";
|
||||||
|
rel2.relative: 0.0 1.0;
|
||||||
|
image.normal: "tab_base_m.png";
|
||||||
|
image.border: 0 0 4 4;
|
||||||
|
fill.smooth: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "tab_bevel_top3";
|
||||||
|
mouse_events: 0;
|
||||||
|
clip_to: "clip";
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
align: 1.0 0.0;
|
||||||
|
rel2.offset: 3 -1;
|
||||||
|
max: 12 99999;
|
||||||
|
min: 12 0;
|
||||||
|
image.normal: "tab_base_r1.png";
|
||||||
|
image.border: 0 0 4 4;
|
||||||
|
fill.smooth: 0;
|
||||||
|
fixed: 1 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "terminology.title"; type: TEXT; mouse_events: 0;
|
||||||
|
scale: 1;
|
||||||
|
effect: SHADOW BOTTOM;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
text { font: "Sans:style=Bold"; size: 10;
|
||||||
|
align: 0.5 0.5;
|
||||||
|
min: 0 1;
|
||||||
|
}
|
||||||
|
align: 0.5 0.5;
|
||||||
|
color: 0 0 0 255;
|
||||||
|
color3: 255 255 255 25;
|
||||||
|
rel1.to: "tab_bevel_top2";
|
||||||
|
rel2.to: "tab_bevel_top2";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "clip"; type: RECT;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel2.offset: -1 -2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "event"; type: RECT;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
color: 0 0 0 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
program {
|
||||||
|
signal: "mouse,clicked,1"; source: "event";
|
||||||
|
action: SIGNAL_EMIT "tab,activate" "terminology";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
group { name: "terminology/base";
|
group { name: "terminology/base";
|
||||||
images.image: "pm_shadow.png" COMP;
|
images.image: "pm_shadow.png" COMP;
|
||||||
images.image: "bg_bevel.png" COMP;
|
images.image: "bg_bevel.png" COMP;
|
||||||
|
|
After Width: | Height: | Size: 137 B |
After Width: | Height: | Size: 126 B |
After Width: | Height: | Size: 169 B |
After Width: | Height: | Size: 120 B |
After Width: | Height: | Size: 85 B |
After Width: | Height: | Size: 168 B |
After Width: | Height: | Size: 415 B |
After Width: | Height: | Size: 410 B |
After Width: | Height: | Size: 414 B |
After Width: | Height: | Size: 402 B |
After Width: | Height: | Size: 287 B |
After Width: | Height: | Size: 671 B |
After Width: | Height: | Size: 301 B |
After Width: | Height: | Size: 107 B |
After Width: | Height: | Size: 263 B |
After Width: | Height: | Size: 262 B |
After Width: | Height: | Size: 107 B |
After Width: | Height: | Size: 278 B |
After Width: | Height: | Size: 274 B |
|
@ -160,6 +160,8 @@ config_init(void)
|
||||||
(edd_base, Config, "keys", keys, edd_keys);
|
(edd_base, Config, "keys", keys, edd_keys);
|
||||||
EET_DATA_DESCRIPTOR_ADD_BASIC
|
EET_DATA_DESCRIPTOR_ADD_BASIC
|
||||||
(edd_base, Config, "gravatar", gravatar, EET_T_UCHAR);
|
(edd_base, Config, "gravatar", gravatar, EET_T_UCHAR);
|
||||||
|
EET_DATA_DESCRIPTOR_ADD_BASIC
|
||||||
|
(edd_base, Config, "notabs", notabs, EET_T_UCHAR);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -259,6 +261,7 @@ config_sync(const Config *config_src, Config *config)
|
||||||
config->mouse_over_focus = config_src->mouse_over_focus;
|
config->mouse_over_focus = config_src->mouse_over_focus;
|
||||||
/* TODO: config->keys */
|
/* TODO: config->keys */
|
||||||
config->gravatar = config_src->gravatar;
|
config->gravatar = config_src->gravatar;
|
||||||
|
config->notabs = config_src->notabs;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -527,6 +530,7 @@ config_load(const char *key)
|
||||||
config->mouse_over_focus = EINA_TRUE;
|
config->mouse_over_focus = EINA_TRUE;
|
||||||
config->colors_use = EINA_FALSE;
|
config->colors_use = EINA_FALSE;
|
||||||
config->gravatar = EINA_TRUE;
|
config->gravatar = EINA_TRUE;
|
||||||
|
config->notabs = EINA_FALSE;
|
||||||
for (j = 0; j < 4; j++)
|
for (j = 0; j < 4; j++)
|
||||||
{
|
{
|
||||||
for (i = 0; i < 12; i++)
|
for (i = 0; i < 12; i++)
|
||||||
|
@ -616,6 +620,7 @@ config_fork(Config *config)
|
||||||
SCPY(config_key);
|
SCPY(config_key);
|
||||||
CPY(font_set);
|
CPY(font_set);
|
||||||
CPY(gravatar);
|
CPY(gravatar);
|
||||||
|
CPY(notabs);
|
||||||
|
|
||||||
EINA_LIST_FOREACH(config->keys, l, key)
|
EINA_LIST_FOREACH(config->keys, l, key)
|
||||||
{
|
{
|
||||||
|
|
|
@ -73,6 +73,7 @@ struct _Config
|
||||||
Eina_Bool mouse_over_focus;
|
Eina_Bool mouse_over_focus;
|
||||||
Eina_Bool colors_use;
|
Eina_Bool colors_use;
|
||||||
Eina_Bool gravatar;
|
Eina_Bool gravatar;
|
||||||
|
Eina_Bool notabs;
|
||||||
Config_Color colors[(4 * 12)];
|
Config_Color colors[(4 * 12)];
|
||||||
Eina_List *keys;
|
Eina_List *keys;
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@ _cb_op_behavior_##_cfg_name(void *data, Evas_Object *obj, \
|
||||||
else \
|
else \
|
||||||
config->_cfg_name = elm_check_state_get(obj); \
|
config->_cfg_name = elm_check_state_get(obj); \
|
||||||
termio_config_update(term); \
|
termio_config_update(term); \
|
||||||
|
windows_update(); \
|
||||||
config_save(config, NULL); \
|
config_save(config, NULL); \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,6 +40,7 @@ CB(drag_links, 0);
|
||||||
CB(login_shell, 0);
|
CB(login_shell, 0);
|
||||||
CB(mouse_over_focus, 0);
|
CB(mouse_over_focus, 0);
|
||||||
CB(gravatar, 0);
|
CB(gravatar, 0);
|
||||||
|
CB(notabs, 1);
|
||||||
|
|
||||||
#undef CB
|
#undef CB
|
||||||
|
|
||||||
|
@ -247,6 +249,7 @@ options_behavior(Evas_Object *opbox, Evas_Object *term)
|
||||||
CX(_("Start as login shell"), login_shell, 0);
|
CX(_("Start as login shell"), login_shell, 0);
|
||||||
CX(_("Focus split under the Mouse"), mouse_over_focus, 0);
|
CX(_("Focus split under the Mouse"), mouse_over_focus, 0);
|
||||||
CX(_("Gravatar integration"), gravatar, 0);
|
CX(_("Gravatar integration"), gravatar, 0);
|
||||||
|
CX(_("Show tabs"), notabs, 1);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
CX(_("Enable application server"), application_server, 0);
|
CX(_("Enable application server"), application_server, 0);
|
||||||
|
|
335
src/bin/win.c
|
@ -25,6 +25,15 @@
|
||||||
/* {{{ Structs */
|
/* {{{ Structs */
|
||||||
|
|
||||||
typedef struct _Split Split;
|
typedef struct _Split Split;
|
||||||
|
typedef struct _Tabbar Tabbar;
|
||||||
|
|
||||||
|
struct _Tabbar
|
||||||
|
{
|
||||||
|
struct {
|
||||||
|
Evas_Object *box;
|
||||||
|
Eina_List *tabs;
|
||||||
|
} l, r;
|
||||||
|
};
|
||||||
|
|
||||||
struct _Term
|
struct _Term
|
||||||
{
|
{
|
||||||
|
@ -38,8 +47,12 @@ struct _Term
|
||||||
Evas_Object *miniview;
|
Evas_Object *miniview;
|
||||||
Evas_Object *sel;
|
Evas_Object *sel;
|
||||||
Evas_Object *tabcount_spacer;
|
Evas_Object *tabcount_spacer;
|
||||||
|
Evas_Object *tab_spacer;
|
||||||
|
Evas_Object *tab_region_base;
|
||||||
|
Evas_Object *tab_region_bg;
|
||||||
Eina_List *popmedia_queue;
|
Eina_List *popmedia_queue;
|
||||||
Media_Type poptype, mediatype;
|
Media_Type poptype, mediatype;
|
||||||
|
Tabbar tabbar;
|
||||||
int step_x, step_y, min_w, min_h, req_w, req_h;
|
int step_x, step_y, min_w, min_h, req_w, req_h;
|
||||||
struct {
|
struct {
|
||||||
int x, y;
|
int x, y;
|
||||||
|
@ -570,6 +583,7 @@ main_close(Evas_Object *win, Evas_Object *term)
|
||||||
}
|
}
|
||||||
_term_focus(tm);
|
_term_focus(tm);
|
||||||
_term_focus_show(sp, tm);
|
_term_focus_show(sp, tm);
|
||||||
|
_split_tabcount_update(sp, tm);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -583,6 +597,7 @@ main_close(Evas_Object *win, Evas_Object *term)
|
||||||
{
|
{
|
||||||
_term_focus(sp->term);
|
_term_focus(sp->term);
|
||||||
_term_focus_show(sp, sp->term);
|
_term_focus_show(sp, sp->term);
|
||||||
|
_split_tabcount_update(sp, sp->term);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (sp) _split_tabcount_update(sp, sp->term);
|
if (sp) _split_tabcount_update(sp, sp->term);
|
||||||
|
@ -615,6 +630,7 @@ main_close(Evas_Object *win, Evas_Object *term)
|
||||||
evas_object_show(sp->term->bg);
|
evas_object_show(sp->term->bg);
|
||||||
_term_focus(sp->term);
|
_term_focus(sp->term);
|
||||||
_term_focus_show(sp, sp->term);
|
_term_focus_show(sp, sp->term);
|
||||||
|
_split_tabcount_update(sp, sp->term);
|
||||||
}
|
}
|
||||||
if (!sp->wn->terms) evas_object_del(sp->wn->win);
|
if (!sp->wn->terms) evas_object_del(sp->wn->win);
|
||||||
else _split_tabcount_update(sp, sp->term);
|
else _split_tabcount_update(sp, sp->term);
|
||||||
|
@ -833,6 +849,107 @@ _split_free(Split *sp)
|
||||||
free(sp);
|
free(sp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_tabbar_clear(Term *tm)
|
||||||
|
{
|
||||||
|
Evas_Object *o;
|
||||||
|
|
||||||
|
if (tm->tabbar.l.box)
|
||||||
|
{
|
||||||
|
EINA_LIST_FREE(tm->tabbar.l.tabs, o) evas_object_del(o);
|
||||||
|
evas_object_del(tm->tabbar.l.box);
|
||||||
|
tm->tabbar.l.box = NULL;
|
||||||
|
}
|
||||||
|
if (tm->tabbar.r.box)
|
||||||
|
{
|
||||||
|
EINA_LIST_FREE(tm->tabbar.r.tabs, o) evas_object_del(o);
|
||||||
|
evas_object_del(tm->tabbar.r.box);
|
||||||
|
tm->tabbar.r.box = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_tab_activate(void *data, Evas_Object *obj, const char *sig EINA_UNUSED, const char *src EINA_UNUSED)
|
||||||
|
{
|
||||||
|
Split *sp = data;
|
||||||
|
Term *term = evas_object_data_get(obj, "term");
|
||||||
|
if (term)
|
||||||
|
{
|
||||||
|
_term_focus(term);
|
||||||
|
if (sp)
|
||||||
|
{
|
||||||
|
_term_focus_show(sp, term);
|
||||||
|
_split_tabcount_update(sp, term);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_split_tabbar_fill(Split *sp, Term *tm)
|
||||||
|
{
|
||||||
|
Eina_List *l;
|
||||||
|
Term *term;
|
||||||
|
Evas_Object *o;
|
||||||
|
int n = eina_list_count(sp->terms);
|
||||||
|
int i = 0, j = 0;
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(sp->terms, l, term)
|
||||||
|
{
|
||||||
|
if (term == tm) break;
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
if (i > 0)
|
||||||
|
{
|
||||||
|
tm->tabbar.l.box = o = elm_box_add(sp->wn->win);
|
||||||
|
elm_box_horizontal_set(o, EINA_TRUE);
|
||||||
|
elm_box_homogeneous_set(o, EINA_TRUE);
|
||||||
|
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);
|
||||||
|
edje_object_part_swallow(term->bg, "terminology.tabl.content", o);
|
||||||
|
evas_object_show(o);
|
||||||
|
}
|
||||||
|
if (i < (n - 1))
|
||||||
|
{
|
||||||
|
tm->tabbar.r.box = o = elm_box_add(sp->wn->win);
|
||||||
|
elm_box_horizontal_set(o, EINA_TRUE);
|
||||||
|
elm_box_homogeneous_set(o, EINA_TRUE);
|
||||||
|
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);
|
||||||
|
edje_object_part_swallow(term->bg, "terminology.tabr.content", o);
|
||||||
|
evas_object_show(o);
|
||||||
|
}
|
||||||
|
EINA_LIST_FOREACH(sp->terms, l, term)
|
||||||
|
{
|
||||||
|
if (term != tm)
|
||||||
|
{
|
||||||
|
Evas_Coord w, h;
|
||||||
|
|
||||||
|
o = edje_object_add(evas_object_evas_get(sp->wn->win));
|
||||||
|
theme_apply(o, term->config, "terminology/tabbar_back");
|
||||||
|
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);
|
||||||
|
edje_object_part_text_set(o, "terminology.title", termio_title_get(term->term));
|
||||||
|
edje_object_size_min_calc(o, &w, &h);
|
||||||
|
evas_object_size_hint_min_set(o, w, h);
|
||||||
|
if (j < i)
|
||||||
|
{
|
||||||
|
tm->tabbar.l.tabs = eina_list_append(tm->tabbar.l.tabs, o);
|
||||||
|
elm_box_pack_end(tm->tabbar.l.box, o);
|
||||||
|
}
|
||||||
|
else if (j > i)
|
||||||
|
{
|
||||||
|
tm->tabbar.r.tabs = eina_list_append(tm->tabbar.r.tabs, o);
|
||||||
|
elm_box_pack_end(tm->tabbar.r.box, o);
|
||||||
|
}
|
||||||
|
evas_object_data_set(o, "term", term);
|
||||||
|
evas_object_show(o);
|
||||||
|
edje_object_signal_callback_add(o, "tab,activate", "terminology",
|
||||||
|
_cb_tab_activate, sp);
|
||||||
|
}
|
||||||
|
j++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_split_tabcount_update(Split *sp, Term *tm)
|
_split_tabcount_update(Split *sp, Term *tm)
|
||||||
{
|
{
|
||||||
|
@ -840,6 +957,7 @@ _split_tabcount_update(Split *sp, Term *tm)
|
||||||
int n = eina_list_count(sp->terms);
|
int n = eina_list_count(sp->terms);
|
||||||
int missed = 0;
|
int missed = 0;
|
||||||
int cnt = 0, term_cnt = 0;
|
int cnt = 0, term_cnt = 0;
|
||||||
|
int i = 0;
|
||||||
Eina_List *l;
|
Eina_List *l;
|
||||||
Term *term;
|
Term *term;
|
||||||
|
|
||||||
|
@ -870,13 +988,64 @@ _split_tabcount_update(Split *sp, Term *tm)
|
||||||
edje_object_part_text_set(term->bg, "terminology.tabcount.label", buf);
|
edje_object_part_text_set(term->bg, "terminology.tabcount.label", buf);
|
||||||
edje_object_part_text_set(term->bg, "terminology.tabmissed.label", bufm);
|
edje_object_part_text_set(term->bg, "terminology.tabmissed.label", bufm);
|
||||||
edje_object_signal_emit(term->bg, "tabcount,on", "terminology");
|
edje_object_signal_emit(term->bg, "tabcount,on", "terminology");
|
||||||
|
// this is all below just for tab bar at the top
|
||||||
|
if (!term->config->notabs)
|
||||||
|
{
|
||||||
|
double v1, v2;
|
||||||
|
|
||||||
|
v1 = (double)i / (double)n;
|
||||||
|
v2 = (double)(i + 1) / (double)n;
|
||||||
|
if (!term->tab_spacer)
|
||||||
|
{
|
||||||
|
term->tab_spacer = evas_object_rectangle_add(evas_object_evas_get(term->bg));
|
||||||
|
evas_object_color_set(term->tab_spacer, 0, 0, 0, 0);
|
||||||
|
elm_coords_finger_size_adjust(1, &w, 1, &h);
|
||||||
|
evas_object_size_hint_min_set(term->tab_spacer, w, h);
|
||||||
|
edje_object_part_swallow(term->bg, "terminology.tab", term->tab_spacer);
|
||||||
|
edje_object_part_drag_value_set(term->bg, "terminology.tabl", v1, 0.0);
|
||||||
|
edje_object_part_drag_value_set(term->bg, "terminology.tabr", v2, 0.0);
|
||||||
|
edje_object_part_text_set(term->bg, "terminology.tab.title", termio_title_get(term->term));
|
||||||
|
edje_object_signal_emit(term->bg, "tabbar,on", "terminology");
|
||||||
|
edje_object_message_signal_process(term->bg);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
edje_object_part_drag_value_set(term->bg, "terminology.tabl", v1, 0.0);
|
||||||
|
edje_object_part_drag_value_set(term->bg, "terminology.tabr", v2, 0.0);
|
||||||
|
edje_object_message_signal_process(term->bg);
|
||||||
|
}
|
||||||
|
_tabbar_clear(term);
|
||||||
|
if (sp->term == term) _split_tabbar_fill(sp, term);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_tabbar_clear(term);
|
||||||
|
if (term->tab_spacer)
|
||||||
|
{
|
||||||
|
edje_object_signal_emit(term->bg, "tabbar,off", "terminology");
|
||||||
|
evas_object_del(term->tab_spacer);
|
||||||
|
term->tab_spacer = NULL;
|
||||||
|
edje_object_message_signal_process(term->bg);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
edje_object_signal_emit(term->bg, "tabcount,off", "terminology");
|
{
|
||||||
|
_tabbar_clear(term);
|
||||||
|
edje_object_signal_emit(term->bg, "tabcount,off", "terminology");
|
||||||
|
if (term->tab_spacer)
|
||||||
|
{
|
||||||
|
edje_object_signal_emit(term->bg, "tabbar,off", "terminology");
|
||||||
|
evas_object_del(term->tab_spacer);
|
||||||
|
term->tab_spacer = NULL;
|
||||||
|
edje_object_message_signal_process(term->bg);
|
||||||
|
}
|
||||||
|
}
|
||||||
if (missed > 0)
|
if (missed > 0)
|
||||||
edje_object_signal_emit(term->bg, "tabmissed,on", "terminology");
|
edje_object_signal_emit(term->bg, "tabmissed,on", "terminology");
|
||||||
else
|
else
|
||||||
edje_object_signal_emit(term->bg, "tabmissed,off", "terminology");
|
edje_object_signal_emit(term->bg, "tabmissed,off", "terminology");
|
||||||
|
i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1279,7 +1448,8 @@ _term_focus(Term *term)
|
||||||
if (sp) _split_tabcount_update(sp, term);
|
if (sp) _split_tabcount_update(sp, term);
|
||||||
}
|
}
|
||||||
|
|
||||||
void term_prev(Term *term)
|
void
|
||||||
|
term_prev(Term *term)
|
||||||
{
|
{
|
||||||
Term *term2 = NULL;
|
Term *term2 = NULL;
|
||||||
Config *config = termio_config_get(term->term);
|
Config *config = termio_config_get(term->term);
|
||||||
|
@ -1291,18 +1461,23 @@ void term_prev(Term *term)
|
||||||
|
|
||||||
sp0 = _split_find(term->wn->win, term->term, NULL);
|
sp0 = _split_find(term->wn->win, term->term, NULL);
|
||||||
sp = _split_find(term2->wn->win, term2->term, NULL);
|
sp = _split_find(term2->wn->win, term2->term, NULL);
|
||||||
if (sp == sp0 && config->tab_zoom >= 0.01)
|
if ((sp == sp0) && (config->tab_zoom >= 0.01) && (config->notabs))
|
||||||
_sel_go(sp, term2);
|
_sel_go(sp, term2);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_term_focus(term2);
|
_term_focus(term2);
|
||||||
if (sp) _term_focus_show(sp, term2);
|
if (sp)
|
||||||
|
{
|
||||||
|
_term_focus_show(sp, term2);
|
||||||
|
_split_tabcount_update(sp, term2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_term_miniview_check(term);
|
_term_miniview_check(term);
|
||||||
}
|
}
|
||||||
|
|
||||||
void term_next(Term *term)
|
void
|
||||||
|
term_next(Term *term)
|
||||||
{
|
{
|
||||||
Term *term2 = NULL;
|
Term *term2 = NULL;
|
||||||
Config *config = termio_config_get(term->term);
|
Config *config = termio_config_get(term->term);
|
||||||
|
@ -1314,12 +1489,16 @@ void term_next(Term *term)
|
||||||
|
|
||||||
sp0 = _split_find(term->wn->win, term->term, NULL);
|
sp0 = _split_find(term->wn->win, term->term, NULL);
|
||||||
sp = _split_find(term2->wn->win, term2->term, NULL);
|
sp = _split_find(term2->wn->win, term2->term, NULL);
|
||||||
if (sp == sp0 && config->tab_zoom >= 0.01)
|
if ((sp == sp0) && (config->tab_zoom >= 0.01) && (config->notabs))
|
||||||
_sel_go(sp, term2);
|
_sel_go(sp, term2);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_term_focus(term2);
|
_term_focus(term2);
|
||||||
if (sp) _term_focus_show(sp, term2);
|
if (sp)
|
||||||
|
{
|
||||||
|
_term_focus_show(sp, term2);
|
||||||
|
_split_tabcount_update(sp, term2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_term_miniview_check(term);
|
_term_miniview_check(term);
|
||||||
|
@ -1682,6 +1861,33 @@ _cb_title(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
|
||||||
Term *term = data;
|
Term *term = data;
|
||||||
if (term->focused)
|
if (term->focused)
|
||||||
elm_win_title_set(term->wn->win, termio_title_get(term->term));
|
elm_win_title_set(term->wn->win, termio_title_get(term->term));
|
||||||
|
edje_object_part_text_set(term->bg, "terminology.tab.title", termio_title_get(term->term));
|
||||||
|
if (term->config->notabs)
|
||||||
|
{
|
||||||
|
Split *sp = _split_find(term->wn->win, term->term, NULL);
|
||||||
|
if (sp)
|
||||||
|
{
|
||||||
|
Eina_List *l, *ll;
|
||||||
|
Evas_Object *o;
|
||||||
|
Term *term2;
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(sp->terms, l, term)
|
||||||
|
{
|
||||||
|
EINA_LIST_FOREACH(term->tabbar.l.tabs, ll, o)
|
||||||
|
{
|
||||||
|
term2 = evas_object_data_get(o, "term");
|
||||||
|
if (term2)
|
||||||
|
edje_object_part_text_set(o, "terminology.title", termio_title_get(term2->term));
|
||||||
|
}
|
||||||
|
EINA_LIST_FOREACH(term->tabbar.r.tabs, ll, o)
|
||||||
|
{
|
||||||
|
term2 = evas_object_data_get(o, "term");
|
||||||
|
if (term2)
|
||||||
|
edje_object_part_text_set(o, "terminology.title", termio_title_get(term2->term));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -2060,33 +2266,52 @@ term_free(Term *term)
|
||||||
{
|
{
|
||||||
eina_stringshare_del(s);
|
eina_stringshare_del(s);
|
||||||
}
|
}
|
||||||
|
_tabbar_clear(term);
|
||||||
if (term->media)
|
if (term->media)
|
||||||
{
|
{
|
||||||
evas_object_event_callback_del(term->media,
|
evas_object_event_callback_del(term->media,
|
||||||
EVAS_CALLBACK_DEL,
|
EVAS_CALLBACK_DEL,
|
||||||
_cb_media_del);
|
_cb_media_del);
|
||||||
evas_object_del(term->media);
|
evas_object_del(term->media);
|
||||||
|
term->media = NULL;
|
||||||
}
|
}
|
||||||
term->media = NULL;
|
if (term->popmedia)
|
||||||
if (term->popmedia) evas_object_del(term->popmedia);
|
{
|
||||||
|
evas_object_del(term->popmedia);
|
||||||
|
term->popmedia = NULL;
|
||||||
|
}
|
||||||
|
term->popmedia_deleted = EINA_FALSE;
|
||||||
if (term->miniview)
|
if (term->miniview)
|
||||||
{
|
{
|
||||||
evas_object_del(term->miniview);
|
evas_object_del(term->miniview);
|
||||||
term->miniview = NULL;
|
term->miniview = NULL;
|
||||||
}
|
}
|
||||||
term->popmedia = NULL;
|
if (term->tabcount_spacer)
|
||||||
term->popmedia_deleted = EINA_FALSE;
|
{
|
||||||
|
evas_object_del(term->tabcount_spacer);
|
||||||
|
term->tabcount_spacer = NULL;
|
||||||
|
}
|
||||||
|
if (term->tab_spacer)
|
||||||
|
{
|
||||||
|
evas_object_del(term->tab_spacer);
|
||||||
|
term->tab_spacer = NULL;
|
||||||
|
}
|
||||||
|
if (term->tab_region_bg)
|
||||||
|
{
|
||||||
|
evas_object_del(term->tab_region_bg);
|
||||||
|
term->tab_region_bg = NULL;
|
||||||
|
}
|
||||||
|
if (term->tab_region_base)
|
||||||
|
{
|
||||||
|
evas_object_del(term->tab_region_base);
|
||||||
|
term->tab_region_base = NULL;
|
||||||
|
}
|
||||||
evas_object_del(term->term);
|
evas_object_del(term->term);
|
||||||
term->term = NULL;
|
term->term = NULL;
|
||||||
evas_object_del(term->base);
|
evas_object_del(term->base);
|
||||||
term->base = NULL;
|
term->base = NULL;
|
||||||
evas_object_del(term->bg);
|
evas_object_del(term->bg);
|
||||||
term->bg = NULL;
|
term->bg = NULL;
|
||||||
if (term->tabcount_spacer)
|
|
||||||
{
|
|
||||||
evas_object_del(term->tabcount_spacer);
|
|
||||||
term->tabcount_spacer = NULL;
|
|
||||||
}
|
|
||||||
free(term);
|
free(term);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2187,16 +2412,60 @@ main_term_bg_config(Term *term)
|
||||||
edje_object_signal_emit(term->bg, "miniview,on", "terminology");
|
edje_object_signal_emit(term->bg, "miniview,on", "terminology");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_tabregion_change(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *info EINA_UNUSED)
|
||||||
|
{
|
||||||
|
Term *term = data;
|
||||||
|
Evas_Coord w, h;
|
||||||
|
|
||||||
|
evas_object_geometry_get(obj, NULL, NULL, &w, &h);
|
||||||
|
evas_object_size_hint_min_set(term->tab_region_base, w, h);
|
||||||
|
edje_object_part_swallow(term->base, "terminology.tabregion", term->tab_region_base);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_term_tabregion_setup(Term *term)
|
||||||
|
{
|
||||||
|
Evas_Object *o;
|
||||||
|
|
||||||
|
if (term->tab_region_bg) return;
|
||||||
|
term->tab_region_bg = o = evas_object_rectangle_add(evas_object_evas_get(term->bg));
|
||||||
|
evas_object_color_set(o, 0, 0, 0, 0);
|
||||||
|
evas_object_event_callback_add(o, EVAS_CALLBACK_MOVE, _cb_tabregion_change, term);
|
||||||
|
evas_object_event_callback_add(o, EVAS_CALLBACK_RESIZE, _cb_tabregion_change, term);
|
||||||
|
edje_object_part_swallow(term->bg, "terminology.tabregion", o);
|
||||||
|
|
||||||
|
term->tab_region_base = o = evas_object_rectangle_add(evas_object_evas_get(term->bg));
|
||||||
|
evas_object_color_set(o, 0, 0, 0, 0);
|
||||||
|
edje_object_part_swallow(term->base, "terminology.tabregion", o);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_main_term_bg_redo(Term *term)
|
_main_term_bg_redo(Term *term)
|
||||||
{
|
{
|
||||||
Evas_Object *o;
|
Evas_Object *o;
|
||||||
|
|
||||||
|
_tabbar_clear(term);
|
||||||
if (term->tabcount_spacer)
|
if (term->tabcount_spacer)
|
||||||
{
|
{
|
||||||
evas_object_del(term->tabcount_spacer);
|
evas_object_del(term->tabcount_spacer);
|
||||||
term->tabcount_spacer = NULL;
|
term->tabcount_spacer = NULL;
|
||||||
}
|
}
|
||||||
|
if (term->tab_spacer)
|
||||||
|
{
|
||||||
|
evas_object_del(term->tab_spacer);
|
||||||
|
term->tab_spacer = NULL;
|
||||||
|
}
|
||||||
|
if (term->tab_region_bg)
|
||||||
|
{
|
||||||
|
evas_object_del(term->tab_region_bg);
|
||||||
|
term->tab_region_bg = NULL;
|
||||||
|
}
|
||||||
|
if (term->tab_region_base)
|
||||||
|
{
|
||||||
|
evas_object_del(term->tab_region_base);
|
||||||
|
term->tab_region_base = NULL;
|
||||||
|
}
|
||||||
if (term->miniview)
|
if (term->miniview)
|
||||||
{
|
{
|
||||||
edje_object_part_unswallow(term->bg, term->miniview);
|
edje_object_part_unswallow(term->bg, term->miniview);
|
||||||
|
@ -2205,7 +2474,7 @@ _main_term_bg_redo(Term *term)
|
||||||
}
|
}
|
||||||
evas_object_del(term->base);
|
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));
|
term->base = o = edje_object_add(evas_object_evas_get(term->wn->win));
|
||||||
theme_apply(o, term->config, "terminology/core");
|
theme_apply(o, term->config, "terminology/core");
|
||||||
|
|
||||||
|
@ -2219,6 +2488,8 @@ _main_term_bg_redo(Term *term)
|
||||||
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");
|
||||||
|
|
||||||
|
_term_tabregion_setup(term);
|
||||||
|
|
||||||
term->miniview = o = miniview_add(term->wn->win, term->term);
|
term->miniview = o = miniview_add(term->wn->win, term->term);
|
||||||
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);
|
||||||
|
@ -2231,7 +2502,7 @@ _main_term_bg_redo(Term *term)
|
||||||
evas_object_show(o);
|
evas_object_show(o);
|
||||||
main_term_bg_config(term);
|
main_term_bg_config(term);
|
||||||
if (term->miniview_shown)
|
if (term->miniview_shown)
|
||||||
edje_object_signal_emit(term->bg, "miniview,on", "terminology");
|
edje_object_signal_emit(term->bg, "miniview,on", "terminology");
|
||||||
}
|
}
|
||||||
|
|
||||||
Eina_Bool
|
Eina_Bool
|
||||||
|
@ -2294,6 +2565,7 @@ _cb_bell(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
|
||||||
{
|
{
|
||||||
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);
|
||||||
}
|
}
|
||||||
|
// XXX: update tabbars to have bell status in them
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2384,6 +2656,8 @@ term_new(Win *wn, Config *config, const char *cmd,
|
||||||
evas_object_data_set(o, "theme_reload_func_data", term);
|
evas_object_data_set(o, "theme_reload_func_data", term);
|
||||||
evas_object_show(o);
|
evas_object_show(o);
|
||||||
|
|
||||||
|
_term_tabregion_setup(term);
|
||||||
|
|
||||||
if (term->config->translucent)
|
if (term->config->translucent)
|
||||||
msg.val = term->config->opacity;
|
msg.val = term->config->opacity;
|
||||||
else
|
else
|
||||||
|
@ -2505,6 +2779,7 @@ _sel_cb_selected(void *data,
|
||||||
{
|
{
|
||||||
_term_focus(tm);
|
_term_focus(tm);
|
||||||
_term_focus_show(sp, tm);
|
_term_focus_show(sp, tm);
|
||||||
|
_split_tabcount_update(sp, tm);
|
||||||
_sel_restore(sp);
|
_sel_restore(sp);
|
||||||
_term_miniview_check(tm);
|
_term_miniview_check(tm);
|
||||||
return;
|
return;
|
||||||
|
@ -2513,6 +2788,7 @@ _sel_cb_selected(void *data,
|
||||||
_sel_restore(sp);
|
_sel_restore(sp);
|
||||||
_term_focus(sp->term);
|
_term_focus(sp->term);
|
||||||
_term_focus_show(sp, sp->term);
|
_term_focus_show(sp, sp->term);
|
||||||
|
_split_tabcount_update(sp, sp->term);
|
||||||
_term_miniview_check(tm);
|
_term_miniview_check(tm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2525,6 +2801,7 @@ _sel_cb_exit(void *data,
|
||||||
_sel_restore(sp);
|
_sel_restore(sp);
|
||||||
_term_focus(sp->term);
|
_term_focus(sp->term);
|
||||||
_term_focus_show(sp, sp->term);
|
_term_focus_show(sp, sp->term);
|
||||||
|
_split_tabcount_update(sp, sp->term);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -2628,3 +2905,25 @@ windows_free(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_split_update(Split *sp)
|
||||||
|
{
|
||||||
|
Eina_List *l;
|
||||||
|
Term *tm;
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(sp->terms, l, tm)
|
||||||
|
{
|
||||||
|
_split_tabcount_update(sp, tm);
|
||||||
|
}
|
||||||
|
if (sp->s1) _split_update(sp->s1);
|
||||||
|
if (sp->s2) _split_update(sp->s2);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
windows_update(void)
|
||||||
|
{
|
||||||
|
Eina_List *l;
|
||||||
|
Win *wn;
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(wins, l, wn) _split_update(wn->split);
|
||||||
|
}
|
||||||
|
|
|
@ -25,6 +25,7 @@ win_new(const char *name, const char *role, const char *title,
|
||||||
Eina_Bool maximized);
|
Eina_Bool maximized);
|
||||||
void win_free(Win *wn);
|
void win_free(Win *wn);
|
||||||
void windows_free(void);
|
void windows_free(void);
|
||||||
|
void windows_update(void);
|
||||||
|
|
||||||
Term *term_new(Win *wn, Config *config, const char *cmd, Eina_Bool login_shell, const char *cd, int size_w, int size_h, Eina_Bool hold);
|
Term *term_new(Win *wn, Config *config, const char *cmd, Eina_Bool login_shell, const char *cd, int size_w, int size_h, Eina_Bool hold);
|
||||||
|
|
||||||
|
|