diff --git a/data/elementary/themes/edc/luncher.edc b/data/elementary/themes/edc/luncher.edc index 6008e09021..834023ff25 100644 --- a/data/elementary/themes/edc/luncher.edc +++ b/data/elementary/themes/edc/luncher.edc @@ -1,4 +1,7 @@ group { name: "e/gadget/luncher/bar"; + data { + item: styles "default engage"; + } parts { part { name: "e.swallow.drop"; type: SWALLOW; description { state: "default" 0.0; @@ -20,12 +23,208 @@ group { name: "e/gadget/luncher/bar"; group { name: "e/gadget/luncher/icon"; script { public urgent; + public style; + public message(Msg_Type:type, id, ...) { + +//Style Variable - Used to Identify Style - Name Must Match an Item in the Data List of e/gadget/luncher/bar +//Style Setting Messages Will Always Have an ID of 1 +//Icon Messages Related To The Style Will Have an ID of 2. +//Arguments are in the Following Order: +//X Position of the Cursor +//Y Position of the Cursor +//X Position of Icon +//Y Position of Icon +//Width of icon +//Height of icon +//Location of the bar - 0 is left, 1 is top, 2 is right, 3 is bottom + + if ((type == MSG_STRING) && (id == 1)) { + new s[32]; + + getsarg(2, s, sizeof(s)); + set_str(style, s); + } + if ((type == MSG_INT_SET) && (id == 2)) { + new xpos = getarg(2); + new ypos = getarg(3); + new x = getarg(4); + new y = getarg(5); + new w = getarg(6); + new h = getarg(7); + new pos = getarg(8); + new s[32]; + + get_str(style, s, sizeof(s)); + + if (!strcmp(s, "default")) { + if ((pos == 0) || (pos == 2)) { + if ((ypos >= y) && (ypos <= (y+h))) { + set_state_anim(PART:"background", "default", 0.0, LINEAR, 1.0); + } + else { + set_state_anim(PART:"background", "default", 0.0, LINEAR, 1.0); + } + } + else if ((pos == 1) || (pos == 3)) { + if ((xpos >= x) && (xpos <= (x+w))) { + set_state_anim(PART:"background", "visible", 0.0, LINEAR, 1.0); + } + else { + set_state_anim(PART:"background", "default", 0.0, LINEAR, 1.0); + } + } + } + else if (!strcmp(s, "engage")) { + if (pos == 0) { + if ((ypos >= y) && (ypos <= (y+h))) { + custom_state(PART:"sizer", "default", 0.0); + set_state_val(PART:"sizer", STATE_REL1, 0.0, -0.5); + set_state_val(PART:"sizer", STATE_REL2, 2.0, 1.5); + set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0); + } + else if (((ypos-h) >= y) && ((ypos-h) <= (y+h))) { + custom_state(PART:"sizer", "default", 0.0); + set_state_val(PART:"sizer", STATE_REL1, 0.0, -0.3); + set_state_val(PART:"sizer", STATE_REL2, 1.6, 1.3); + set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0); + } + else if (((ypos+h) >= y) && ((ypos+h) <= (y+h))) { + custom_state(PART:"sizer", "default", 0.0); + set_state_val(PART:"sizer", STATE_REL1, 0.0, -0.3); + set_state_val(PART:"sizer", STATE_REL2, 1.6, 1.3); + set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0); + } + else if (((ypos-(h*2)) >= y) && ((ypos-(h*2)) <= (y+h))) { + custom_state(PART:"sizer", "default", 0.0); + set_state_val(PART:"sizer", STATE_REL1, 0.0, -0.2); + set_state_val(PART:"sizer", STATE_REL2, 1.4, 1.2); + set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0); + } + else if (((ypos+(h*2)) >= y) && ((ypos+(h*2)) <= (y+h))) { + custom_state(PART:"sizer", "default", 0.0); + set_state_val(PART:"sizer", STATE_REL1, 0.0, -0.2); + set_state_val(PART:"sizer", STATE_REL2, 1.4, 1.2); + set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0); + } + else { + set_state_anim(PART:"sizer", "default", 0.0, LINEAR, 1.0); + } + } + else if (pos == 1) { + if ((xpos >= x) && (xpos <= (x+w))) { + custom_state(PART:"sizer", "default", 0.0); + set_state_val(PART:"sizer", STATE_REL1, -0.5, 0.0); + set_state_val(PART:"sizer", STATE_REL2, 1.5, 2.0); + set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0); + } + else if (((xpos-w) >= x) && ((xpos-w) <= (x+w))) { + custom_state(PART:"sizer", "default", 0.0); + set_state_val(PART:"sizer", STATE_REL1, -0.3, 0.0); + set_state_val(PART:"sizer", STATE_REL2, 1.3, 1.6); + set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0); + } + else if (((xpos+w) >= x) && ((xpos+w) <= (x+w))) { + custom_state(PART:"sizer", "default", 0.0); + set_state_val(PART:"sizer", STATE_REL1, -0.3, 0.0); + set_state_val(PART:"sizer", STATE_REL2, 1.3, 1.6); + set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0); + } + else if (((xpos-(w*2)) >= x) && ((xpos-(w*2)) <= (x+w))) { + custom_state(PART:"sizer", "default", 0.0); + set_state_val(PART:"sizer", STATE_REL1, -0.2, 0.0); + set_state_val(PART:"sizer", STATE_REL2, 1.2, 1.4); + set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0); + } + else if (((xpos+(w*2)) >= x) && ((xpos+(w*2)) <= (x+w))) { + custom_state(PART:"sizer", "default", 0.0); + set_state_val(PART:"sizer", STATE_REL1, -0.2, 0.0); + set_state_val(PART:"sizer", STATE_REL2, 1.2, 1.4); + set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0); + } + else { + set_state_anim(PART:"sizer", "default", 0.0, LINEAR, 1.0); + } + } + else if (pos == 2) { + if ((ypos >= y) && (ypos <= (y+h))) { + custom_state(PART:"sizer", "default", 0.0); + set_state_val(PART:"sizer", STATE_REL1, -1.0, -0.5); + set_state_val(PART:"sizer", STATE_REL2, 1.0, 1.5); + set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0); + } + else if (((ypos-h) >= y) && ((ypos-h) <= (y+h))) { + custom_state(PART:"sizer", "default", 0.0); + set_state_val(PART:"sizer", STATE_REL1, -0.6, -0.3); + set_state_val(PART:"sizer", STATE_REL2, 1.0, 1.3); + set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0); + } + else if (((ypos+h) >= y) && ((ypos+h) <= (y+h))) { + custom_state(PART:"sizer", "default", 0.0); + set_state_val(PART:"sizer", STATE_REL1, -0.6, -0.3); + set_state_val(PART:"sizer", STATE_REL2, 1.0, 1.3); + set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0); + } + else if (((ypos-(h*2)) >= y) && ((ypos-(h*2)) <= (y+h))) { + custom_state(PART:"sizer", "default", 0.0); + set_state_val(PART:"sizer", STATE_REL1, -0.4, -0.2); + set_state_val(PART:"sizer", STATE_REL2, 1.0, 1.2); + set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0); + } + else if (((ypos+(h*2)) >= y) && ((ypos+(h*2)) <= (y+h))) { + custom_state(PART:"sizer", "default", 0.0); + set_state_val(PART:"sizer", STATE_REL1, -0.4, -0.2); + set_state_val(PART:"sizer", STATE_REL2, 1.0, 1.2); + set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0); + } + else { + set_state_anim(PART:"sizer", "default", 0.0, LINEAR, 1.0); + } + } + else if (pos == 3) { + if ((xpos >= x) && (xpos <= (x+w))) { + custom_state(PART:"sizer", "default", 0.0); + set_state_val(PART:"sizer", STATE_REL1, -0.5, -1.0); + set_state_val(PART:"sizer", STATE_REL2, 1.5, 1.0); + set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0); + } + else if (((xpos-w) >= x) && ((xpos-w) <= (x+w))) { + custom_state(PART:"sizer", "default", 0.0); + set_state_val(PART:"sizer", STATE_REL1, -0.3, -0.6); + set_state_val(PART:"sizer", STATE_REL2, 1.3, 1.0); + set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0); + } + else if (((xpos+w) >= x) && ((xpos+w) <= (x+w))) { + custom_state(PART:"sizer", "default", 0.0); + set_state_val(PART:"sizer", STATE_REL1, -0.3, -0.6); + set_state_val(PART:"sizer", STATE_REL2, 1.3, 1.0); + set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0); + } + else if (((xpos-(w*2)) >= x) && ((xpos-(w*2)) <= (x+w))) { + custom_state(PART:"sizer", "default", 0.0); + set_state_val(PART:"sizer", STATE_REL1, -0.2, -0.4); + set_state_val(PART:"sizer", STATE_REL2, 1.2, 1.0); + set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0); + } + else if (((xpos+(w*2)) >= x) && ((xpos+(w*2)) <= (x+w))) { + custom_state(PART:"sizer", "default", 0.0); + set_state_val(PART:"sizer", STATE_REL1, -0.2, -0.4); + set_state_val(PART:"sizer", STATE_REL2, 1.2, 1.0); + set_state_anim(PART:"sizer", "custom", 0.0, LINEAR, 1.0); + } + else { + set_state_anim(PART:"sizer", "default", 0.0, LINEAR, 1.0); + } + } + } + emit("e,state,resized", "e"); + } + } } parts { part { name: "item_clip"; type: RECT; description { state: "default" 0.0; - rel1.to: "e.swallow.icon"; - rel2.to: "e.swallow.icon"; + rel1.to: "sizer"; + rel2.to: "sizer"; rel1.offset: -100 -100; rel2.offset: 99 99; color: 255 255 255 255; @@ -35,13 +234,24 @@ group { name: "e/gadget/luncher/icon"; color: 255 255 255 64; } } + part { name: "sizer"; type: RECT; + clip_to: "item_clip"; + mouse_events: 0; + description { + align: 0 0; + state: "default" 0.0; + rel1.relative: 0.0 0.0; + rel2.relative: 1.0 1.0; + color: 255 255 255 0; + } + } part { name: "background"; type: RECT; clip_to: "item_clip"; mouse_events: 0; description { state: "default" 0.0; visible: 0; - rel1.offset: 0 0; - rel2.offset: -1 -1; + rel1.to: "sizer"; + rel2.to: "sizer"; color: 255 255 255 0; } description { state: "visible" 0.0; @@ -52,9 +262,12 @@ group { name: "e/gadget/luncher/icon"; } part { name: "indicator"; type: RECT; clip_to: "item_clip"; + mouse_events: 0; description { state: "default" 0.0; visible: 0; align: 0.6 0.6; + rel1.to: "sizer"; + rel2.to: "sizer"; color: 255 255 255 0; } description { state: "on_left" 0.0; @@ -97,10 +310,11 @@ group { name: "e/gadget/luncher/icon"; part { name: "e.swallow.icon"; type: SWALLOW; clip_to: "item_clip"; mouse_events: 1; + repeat_events: 1; description { state: "default" 0.0; align: 0.5 0.5; - rel1.offset: 0 0; - rel2.offset: -1 -1; + rel1.to: "sizer"; + rel2.to: "sizer"; } description { state: "on_left" 0.0; inherit: "default" 0.0; @@ -138,6 +352,8 @@ group { name: "e/gadget/luncher/icon"; clip_to: "item_clip"; description { state: "default" 0.0; visible: 0; + rel1.to: "sizer"; + rel2.to: "sizer"; color: 255 255 255 0; } description { state: "visible" 0.0; @@ -170,14 +386,22 @@ group { name: "e/gadget/luncher/icon"; } } programs { + program { name: "set_default"; + signal: "e,state,default"; source: "e"; + action: STATE_SET "default" 0.0; + transition: LINEAR 0.2; + target: "sizer"; + } program { name: "focused"; signal: "e,state,focused"; source: "e"; action: STATE_SET "visible" 0.0; + transition: LINEAR 0.5; target: background; } program { name: "unfocused"; signal: "e,state,unfocused"; source: "e"; action: STATE_SET "default" 0.0; + transition: LINEAR 0.5; target: background; } program { name: "starting";