/* Guidelines for a notification theme. * * Groups needed : * - modules/notification/logo : Logo for the module and it must contain at least one part named image. * - modules/notification/main : Main theme for the popup * The theme must contains two parts : * - notification.swallow.app_icon : Contains the notification icon * - notification.textblock.message : Contains the notification message * The module can send those signals to the theme : * - notification,new : A new notification occured * - notification,del : The notification is to be deleted * A notification theme must send those signals to the module : * - notification,deleted : The notification is ready to be deleted * Optionally those signals can be used to add some features : * - notification,close : Close the popup * - notification,find : Find the source application of the event */ images { image: "module_icon.png" COMP; image: "e17_menu_bg_border.png" COMP; image: "base_bg.png" COMP; image: "base_bg_alpha.png" COMP; image: "bd_top_hilight.png" COMP; image: "bd_button_close_shadow.png" COMP; image: "bd_button_close_focused.png" COMP; image: "bd_title_bg.png" COMP; image: "bd_title_over.png" COMP; } styles { style { name: "notification_style"; base: "font=Sans font_size=10 align=left color=#fcfcfc outline_color=#000 wrap=word text_class=module_normal"; tag: "subject" "+ text_class=module_large font_size=10"; tag: "body" "+ text_class=module_normal font_size=10"; tag: "br" "\n"; tag: "b" "+ font=Sans:style=Bold text_class=module_bold"; tag: "i" "+ font=Sans:style=Oblique text_class=module_bold"; tag: "u" "+ underline=on"; tag: "img" ""; /* images not supported */ tag: "a" ""; /* links not supported */ } } collections { /* Module icon */ group { name: "icon"; max: 24 24; parts { part { name: "image"; mouse_events: 0; type: IMAGE; description { state: "default" 0.0; aspect: 1 1; image.normal: "module_icon.png"; } } } } /* Module Logo */ group { name: "modules/notification/logo"; parts { part { name: "image"; mouse_events: 0; type: IMAGE; description { state: "default" 0.0; aspect: 1 1; image.normal: "module_icon.png"; } } } } group { name: "modules/notification/main"; data { item: "app_icon_max" "48 48"; item: "shaped" "1"; } parts { part { name: "clipper"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 255 255 255 255; rel1 { relative: 0.0 0.0; offset: 0 0; } rel2 { relative: 1.0 1.0; offset: -1 -1; } } description { state: "mouse_over" 0.0; inherit: "default" 0.0; color: 255 255 255 128; } description { state: "hidden" 0.0; inherit: "default" 0.0; color: 255 255 255 0; visible: 0; } } programs { program { signal: "mouse,in"; source: "base"; action: STATE_SET "mouse_over" 0.0; transition: ACCELERATE 0.2; target: "clipper"; after: "show_base"; } program { name: "show_base"; in: 1.5 0.0; action: STATE_SET "default" 0.0; transition: ACCELERATE 0.5; target: "clipper"; } } part { name: "base"; type: IMAGE; mouse_events: 1; clip_to: "clipper"; description { state: "default" 0.0; color: 255 255 255 210; image { normal: "base_bg_alpha.png"; border: 4 4 4 4; } } } part { name: "notification.text.title"; type: TEXT; mouse_events: 0; scale: 1; effect: SOFT_SHADOW; clip_to: "clipper"; description { state: "default" 0.0; fixed: 1 1; visible: 1; min: 250 0; max: 250 9999; align: 0.0 0.0; rel1 { to_x: "notification.swallow.app_icon"; relative: 1.0 0.0; offset: 4 5; } rel2 { relative: 1.0 0.0; offset: -20 15; } color: 224 224 224 255; color3: 0 0 0 64; color_class: "menu_title_active"; text { /* text_source: "notification.text.title"; */ font: "Sans:style=Bold"; size: 10; align: 0.0 0.0; min: 0 1; text_class: "menu_title"; } } } /* Close Button */ part { name: "bt_close_shadow"; mouse_events: 0; clip_to: "clipper"; description { state: "default" 0.0; align: 1.0 0.5; min: 22 22; max: 22 22; fixed: 1 1; aspect: 1.0 1.0; aspect_preference: VERTICAL; rel1 { relative: 1 0; offset: -15 5; } rel2 { relative: 1 0; offset: -2 15; } image.normal: "bd_button_close_shadow.png"; } } part { name: "notification.close_btn"; clip_to: "clipper"; description { state: "default" 0.0; rel1.to: "bt_close_shadow"; rel2.to: "bt_close_shadow"; image.normal: "bd_button_close_focused.png"; } description { state: "active" 0.0; inherit: "default" 0.0; rel1.offset: 0 1; rel2.offset: -1 0; } } part { name: "clipper_app_icon"; type: RECT; mouse_events: 0; clip_to: "clipper"; description { state: "default" 0.0; visible: 1; color: 255 255 255 255; rel1 { relative: 0.0 0.0; offset: 0 0; } rel2 { relative: 1.0 1.0; offset: -1 -1; } } description { state: "hidden" 0.0; inherit: "default" 0.0; color: 255 255 255 0; visible: 0; } } part { name: "notification.swallow.app_icon"; type: SWALLOW; mouse_events: 0; clip_to: "clipper_app_icon"; description { state: "default" 0.0; align: 0.0 0.0; aspect: 1 1; aspect_preference: BOTH; rel1 { /* to_y: "notification.text.title"; */ relative: 0.0 0.0; offset: 5 5; } rel2 { /* to_y: "notification.text.title"; */ relative: 0.0 1.0; offset: 52 -9; } } } /* Message text */ part { name: "notification.textblock.message"; type: TEXTBLOCK; mouse_events: 0; clip_to: "clipper"; description { state: "default" 0.0; align: 0.0 0.5; min: 220 0; max: 220 9999; rel1 { to_x: "notification.swallow.app_icon"; /* to_y: "notification.text.title"; */ relative: 1.0 0.0; offset: 8 22; } rel2 { relative: 1.0 1.0; offset: -10 -10; } text { style: "notification_style"; min: 0 1; } } } } programs { program { name: "notification,new"; signal: "notification,new"; source: "notification"; action: STATE_SET "hidden" 0.0; target: "clipper_app_icon"; target: "base"; after: "notification,new,2"; } program { name: "notification,new,2"; action: STATE_SET "default" 0.0; transition: SINUSOIDAL 0.5; target: "clipper_app_icon"; target: "base"; } program { name: "notification,del"; signal: "notification,del"; source: "notification"; action: STATE_SET "hidden" 0.0; transition: ACCELERATE 0.4; target: "clipper_app_icon"; } program { name: "close"; signal: "mouse,down,1"; source: "notification.close_btn"; action: SIGNAL_EMIT "notification,close" "theme"; after: "close_aft"; } program { name: "close_aft"; action: STATE_SET "active" 0.0; target: "notification.close_btn"; } program { name: "bt_close_up"; signal: "mouse,up,*"; source: "notification.close_btn"; action: STATE_SET "default" 0.0; target: "notification.close_btn"; } program { name: "find"; signal: "mouse,down,1"; source: "base"; action: SIGNAL_EMIT "notification,find" "theme"; } } } }