// TODO: // Formatting review. // Formatting Process: 1. http://tools.arantius.com/tabifier in C mode // 2. sed 's/\t/ /g' default.edc > formatted.edc // 3. Fix up defines, script{}, comments and other nicknacks. // 4. Replace ": " with ": " and "// " with "// " and so on. // // Icons: // EFM - All popup icons ... eg, paste copy delete properties // Icons for Menus modules // Icon for Edge Bindings // Icon for Modes? // Replace all (well, most) instances of icon_dummy.png // /* * So how do themes work? * * Themes DECLARE objects (groups of parts) inside a 'collections' section. * Each of these groups are an element of a theme - much like an image in a * web page with , but MUCH more powerful. They can scale * without just being stretched or tiled, they can react to all sorts of events * from the user (mouse for example) or other logical events (like being shown * or hidden, etc.) or synthetic signals from enlightenment itself indicating * some new state. * * Each group is split into a parts section that contains all the elements * that make up that group, and how they are laid out. Each part can have * multiple states - described in description sections. There must always be * at least a default description of value 0.0. After this there may possibly * be a programs section. This defines behavior and how the group will react * to events/signals. * * A theme is simply made up of a LOT of these. If a group is not provided in * the theme you are using, it will fall back to the default theme to get the * element. It is assumed the default theme is 100% complete and provides * everything E needs. If this is not the case, there will be problems, so * replace the default theme with great care. As long as the theme you make is * just a normal "overlay" (and falls back to the default where things are * missing) Things will be fairly safe. If you want to make a full default * replacement you will need to methodically go through all of this file * and make sure you have replaced/provided everything here. */ /* Spectrum used in all the gradient icons * This needs to be defined outside of the collections * * FIXME: this is bad. namespacing! FIXME! */ #if 0 spectra { spectrum { name: "black_to_trans"; color: 0 0 0 255 1; color: 0 0 0 0 1; } } #endif /* color classes are used to control the colors of text and also apply * tints to images. These can be controlled with the colors dialog. Below * are the standard color_class names that the module looks for in a * theme. Consider color classes as a style that can be applied to many * different items without tinkering with the theme. * * color: Font color (Defaults to black) * color2: Outline color (Defaults to transparent) * color3: Shadow color (Defaults to transparent) * */ color_classes { color_class { name: "border_top"; color: 255 255 255 255; } color_class { name: "border_top_hilight"; color: 255 255 255 255; } color_class { name: "border_bottom"; color: 25 35 51 255; } color_class { name: "border_title"; color: 0 0 0 255; } color_class { name: "border_title_active"; color: 224 224 224 255; color3: 0 0 0 64; } color_class { name: "menu_base"; color: 255 255 255 255; } color_class { name: "menu_title"; color: 224 224 224 255; color3: 0 0 0 64; } color_class { name: "menu_title_active"; color: 224 224 224 255; color3: 0 0 0 64; } color_class { name: "menu_item"; color: 0 0 0 255; color3: 0 0 0 0; } color_class { name: "menu_item_active"; color: 255 255 255 255; color3: 0 0 0 64; } color_class { name: "menu_item_disabled"; color: 110 110 110 255; color3: 0 0 0 0; } color_class { name: "shelf_base"; color: 0 0 0 178; } color_class { name: "scrollframe_base"; color: 255 255 255 255; } color_class { name: "winlist_label"; color: 0 0 0 255; } color_class { name: "winlist_item"; color: 0 0 0 255; color3: 0 0 0 0; } color_class { name: "winlist_item_active"; color: 224 224 224 255; color3: 0 0 0 64; } color_class { name: "button_text"; color: 224 224 224 255; color3: 0 0 0 64; } color_class { name: "button_text_disabled"; color: 0 0 0 128; color3: 0 0 0 0; } color_class { name: "fileman_base"; color: 255 255 255 255; } color_class { name: "ilist_item_base"; color: 255 255 255 255; } color_class { name: "ilist_item_odd_base"; color: 255 255 255 255; } color_class { name: "ilist_item_header_base"; color: 255 255 255 255; } color_class { name: "ilist_item_header_odd_base"; color: 255 255 255 255; } color_class { name: "ilist_item"; color: 0 0 0 255; color3: 0 0 0 0; } color_class { name: "ilist_item_odd"; color: 0 0 0 255; color3: 0 0 0 0; } color_class { name: "ilist_item_selected"; color: 255 255 255 255; color3: 0 0 0 64; } color_class { name: "ilist_item_header"; color: 224 224 224 255; color3: 0 0 0 32; } color_class { name: "ilist_item_header_odd"; color: 224 224 224 255; color3: 0 0 0 32; } color_class { name: "dialog_base"; color: 255 255 255 255; } color_class { name: "move_text"; color: 0 0 0 255; } color_class { name: "resize_text"; color: 0 0 0 255; } color_class { name: "check_text"; color: 0 0 0 255; } color_class { name: "check_text_disabled"; color: 0 0 0 128; } color_class { name: "radio_text"; color: 0 0 0 255; } color_class { name: "radio_text_disabled"; color: 0 0 0 128; } color_class { name: "entry_text"; color: 0 0 0 255; } color_class { name: "entry_text_disabled"; color: 128 128 128 255; } color_class { name: "slider_text"; color: 0 0 0 255; } color_class { name: "slider_text_disabled"; color: 0 0 0 128; } color_class { name: "frame_base"; color: 255 255 255 255; } color_class { name: "label_text"; color: 0 0 0 255; } color_class { name: "label_text_disabled"; color: 0 0 0 128; } color_class { name: "comp_focus-out_color"; color: 255 255 255 220; } color_class { name: "tasks_text"; color: 0 0 0 255; color3: 0 0 0 0; } color_class { name: "tasks_text_focused"; color: 224 224 224 255; color3: 0 0 0 64; } } /* * this section defines all the theme elements (a collection of groupings of * parts (images, text, rects etc.)) */ collections { /* begin the collection of edje groups that are in this file */ ///////////////////////////////////////////////////////////////////////////// /*** DEFAULT WALLPAPER ***/ group { name: "e/desktop/background"; parts { part { name: "background_image"; type: RECT; /* this is the base background */ description { state: "default" 0.0; /* its default state */ color: 0 0 0 255; } } } } group { name: "e/desktop/background/scrollframe"; parts { part { name: "clipper"; type: RECT; mouse_events: 0; description { state: "default" 0.0; } } part { name: "e.swallow.content"; clip_to: "clipper"; type: SWALLOW; description { state: "default" 0.0; rel1.offset: 0 0; rel2 { relative: 0.0 0.0; offset: -1 -1; } } } } } group { name: "e/desktop/background/scrollframe"; parts { part { name: "clipper"; type: RECT; mouse_events: 0; description { state: "default" 0.0; } } part { name: "e.swallow.content"; clip_to: "clipper"; type: SWALLOW; description { state: "default" 0.0; rel1.offset: 0 0; rel2 { relative: 0.0 0.0; offset: -1 -1; } } } } } ///////////////////////////////////////////////////////////////////////////// /*** DEFAULT WINDOW BORDER ***/ group { name: "e/widgets/border/default/border"; alias: "e/widgets/border/noresize/border"; alias: "e/widgets/border/shaped/border"; data.item: "argb" "1"; /* more images - for the border specifically. remember each images {} * section fills a global images namespace, so if you re-use an image * between sections, only 1 copy is kept, so names here are unique. if * different image {} sections specify the same image but use different * compression specifications, the compression scheme is undefined and * may use any one of the schemes requested, so make sure you use the * same compression scheme */ images { image: "added_images/DM_Internet_Title_bg.png" COMP; image: "added_images/DM_Internet_icon_close.png" COMP; image: "added_images/DM_Internet_icon_Reduction.png" COMP; image: "added_images/DM_Internet_icon_Zoom.png" COMP; image: "added_images/DM_Internet_icon_Resize.png" COMP; image: "added_images/DM_Internet_bg.png" COMP; image: "added_images/DM_Internet_Address_bg.png" COMP; image: "added_images/DM_Internet_bg_top.png" COMP; image: "added_images/DM_Internet_bg_bottom.png" COMP; image: "bd_top.png" COMP; image: "bd_top_hilight.png" COMP; image: "bd_bottom.png" COMP; image: "bd_title_bg.png" COMP; image: "bd_title_over.png" COMP; image: "bd_resize_b.png" COMP; image: "busy-1.png" COMP; image: "busy-2.png" COMP; image: "busy-3.png" COMP; image: "busy-4.png" COMP; image: "busy-5.png" COMP; image: "busy-6.png" COMP; image: "busy-7.png" COMP; image: "busy-8.png" COMP; image: "busy-9.png" COMP; image: "exclam.png" COMP; image: "bd_button_close_shadow.png" COMP; image: "bd_button_close_focused.png" COMP; image: "bd_button_close_unfocused.png" COMP; image: "bd_button_max_shadow.png" COMP; image: "bd_button_max_focused.png" COMP; image: "bd_button_max_unfocused.png" COMP; image: "bd_button_min_shadow.png" COMP; image: "bd_button_min_focused.png" COMP; image: "bd_button_min_unfocused.png" COMP; } /* this would tell E that the border is not a solid rectanle, but is * shaped (has transparent sections) and so would follow a different * code path for such borders. the default is not shaped, so this is * not enabled here, but left commented out for illustration purposes */ // data.item: "shaped" "1"; parts { part { name: "top"; mouse_events: 0; type: IMAGE; /* accept no mouse events here */ description { state: "default" 0.0; rel1 { /* this defines the top-left (rel1) point of the part * and where it is placed. the below values are * actually the default values, so there is no need * to actually declare them. */ relative: 0.0 0.0; /* make this point relative to the top * left of the whole eje object (there * is no to: section so it's the whole * object). note that the point is * calculated as: * p.x = obj.width * relative.x * p.y = obj.height * relative.y * (as the to item is the whole object) */ offset: 0 0; /* and from the relative point, have an offset * of 0 pixels - i.e. - none */ } rel2 { relative: 1.0 1.0; /* the bottom-right is relative to the * base of the title - this way the * title region will scale based on font * size */ to_y: "title_base"; /* only y is relative to title_base. the * rest is relative to the whole object * (because its not specified) */ } color_class: "border_top"; image { /* define the image to use */ normal: "added_images/DM_Internet_bg_top.png"; /* the image */ border: 5 5 0 0; } fill.smooth: 0; } } part { name: "bottom"; /* this is the bottom of the window */ mouse_events: 0; type: IMAGE; description { state: "default" 0.0; rel1 { relative: 0.0 1.0; offset: 0 -6; } rel2 { relative: 1.0 1.0; } image { normal: "added_images/DM_Internet_bg_bottom.png"; border: 5 5 0 0; } } description { state: "shaded" 0.0; /* when in a shaded state then * don't display this part */ inherit: "default" 0.0; visible: 0; } description { state: "max" 0.0; /* whem maximised too */ inherit: "default" 0.0; visible: 0; } } part { name: "left"; /* this is the left of the window */ mouse_events: 0; type: RECT; description { state: "default" 0.0; rel1 { relative: 0.0 1.0; to_y: "title_base"; offset: 0 0; } rel2 { relative: 0.0 0.0; to_y: "bottom"; offset: 6 0; } color_class: "border_bottom"; } description { state: "shaded" 0.0; inherit: "default" 0.0; visible: 0; } description { state: "max" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "right"; /* this is the left of the window */ mouse_events: 0; type: RECT; description { state: "default" 0.0; rel1 { relative: 1.0 1.0; to_y: "title_base"; offset: -6 0; } rel2 { relative: 1.0 0.0; to_y: "bottom"; offset: 0 0; } color_class: "border_bottom"; } description { state: "shaded" 0.0; /* when in a shaded state then * don't display this part */ inherit: "default" 0.0; visible: 0; } description { state: "max" 0.0; /* whem maximised too */ inherit: "default" 0.0; visible: 0; } } part { name: "icon_area"; /* this is an invisible rectangle that we * use to place icons within. we use this * to keep it fixed as the "icone area" so * the actual swallow part that swallows * the icon can be moved/resized for * animations */ type: RECT; description { state: "default" 0.0; visible: 0; align: 0.0 0.0; /* alignt to the left, but center vertically */ aspect: 1.0 1.0; /* prefer ans aspect of 1.0 (ie width / height * is 1.0 - i.e. - square. aspect here is * min and max aspect that will be "allowed" * (since both min and max are 1.0 respectively * in order). */ aspect_preference: VERTICAL; /* this means that the vertical * axis controls aspect and the * icon_area part size will be * governed by the height of the * part (the width simply following * along behind) */ rel1 { /* rel1 - top-left corner of this part */ relative: 0.0 0.0; } rel2 { relative: 0.0 0.0; } } } part { name: "icon_area2"; /* this area is another invisible rect * that is used for shuffling around parts * that are relative to it. the states * below are just a few "random" offsets * to make it look like whatever is * relative to icon_area2 is "jiggling" * around */ type: RECT; description { state: "default" 0.0; visible: 0; rel1.to: "icon_area"; rel2.to: "icon_area"; } description { state: "uw0" 0.0; /* jiggle */ inherit: "default" 0.0; rel1.offset: -3 -2; rel2.offset: -4 -3; } description { state: "uw1" 0.0; /* jiggle some more */ inherit: "default" 0.0; rel1.offset: 5 -2; rel2.offset: 4 -3; } description { state: "uw2" 0.0; /* look at me - jiggling! */ inherit: "default" 0.0; rel1.offset: -1 4; rel2.offset: -2 3; } description { state: "uw3" 0.0; /* jiggling about */ inherit: "default" 0.0; rel1.offset: -2 -1; rel2.offset: -3 -2; } description { state: "uw4" 0.0; /* one more jiggle for the dummies */ inherit: "default" 0.0; rel1.offset: -4 1; rel2.offset: -5 0; } } part { name: "busy"; /* this is an animation to spin a wheel when the app * seems too busy to respond to pings */ mouse_events: 0; description { state: "default" 0.0; visible: 0; /* nomrally the busy part is not visible */ color: 255 255 255 0; /* and its alpha is 0 - se will fade it * inm later so alpha to 0 (but 255 255 * 255 for white so we dont also go from * dark to white while fading) */ max: 32 32; /* no bigger than 32x32 - but allow it to be * smaller if needed */ aspect: 1.0 1.0; /* square aspect */ aspect_preference: BOTH; /* both axes determine aspect. that * means that the icon area may * be 100x50, but the aspect is 1.0 * so therefore it will be 50x50 as the * max size. if the area is 50x100 it * will still be 50x50 as it must fit * WITHIN the bounds of BOTH axes */ rel1.to: "icon_area"; rel2.to: "icon_area"; image { tween: "busy-1.png"; tween: "busy-2.png"; tween: "busy-3.png"; tween: "busy-4.png"; tween: "busy-5.png"; tween: "busy-6.png"; tween: "busy-7.png"; tween: "busy-8.png"; normal: "busy-9.png"; /* and we use image tweening. that * means that we flip through a series * of images when moving TO this state * over the transition time. it's like * specifying multiple frames of an * animatin sequence. the "final" * state is "normal". the images * between are the "tween" images * listed in order working towards * the "normal" image */ } } description { state: "visible" 0.0; /* the visible state - inherit the * default one as its all the same, but * its visible and faded in */ inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "e.swallow.icon"; /* finally a swallow part - this is * just a placeholder to SWALLOW * other external evas objects into * this region and edje will control * any object swallowed as if it were * this part itself (move, resize, * etc.) */ type: SWALLOW; description { state: "default" 0.0; aspect: 1.0 1.0; aspect_preference: BOTH; rel1.to: "icon_area2"; rel2.to: "icon_area2"; } description { state: "shrunk" 0.0; inherit: "default" 0.0; rel1.relative: 0.3 0.3; rel2.relative: 0.7 0.7; } } part { name: "urgent"; /* this is the urgnt part it is normally not * visible, but when the window is in an * urgent state (the app has set the urgency * hint) then we go to the visible state */ mouse_events: 0; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; aspect: 1.0 1.0; aspect_preference: BOTH; rel1.to: "icon_area"; rel2.to: "icon_area"; image.normal: "exclam.png"; } description { state: "visible" 0.0; /* and in the visible state put the * exlamation image on top of the icon */ inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "urgent2"; /* this is another urgent element. it is actually * zoomed out to be larger and faded out at the * same time to give a "pulsating" look to the * exclamation mark to bring attention to it */ mouse_events: 0; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; aspect: 1.0 1.0; aspect_preference: BOTH; rel1.to: "icon_area"; rel2.to: "icon_area"; image.normal: "exclam.png"; } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } description { state: "faded" 0.0; inherit: "default" 0.0; rel1.relative: -1.0 -1.0; rel2.relative: 2.0 2.0; visible: 1; color: 255 255 255 0; } } part { name: "e.text.title"; /* this is a text part - the black * text on the white title top image */ type: TEXT; mouse_events: 0; /* allow this part to scale by a scale factor (dpi) */ description { state: "default" 0.0; visible: 1; align: 0.5 0.0; /* align top and left */ rel1 { relative: 1.0 0.0; offset: 9 2; to_x: "icon_area"; /* relative to the right side of the icon * area but 9 pixels away */ } rel2 { relative: 1.0 0.0; /* and the bottom right is inset by 8 * pixels from the right of "title_base" * but as its aligned to the top we can * keep this at 2 pixels from the top of * the whole edje object and let alignment * make it extend downward from that point * with the text size defining the min size * vertically below */ offset: -8 2; to_x: "title_base"; } color: 255 255 255 255; /* give it a color class so people * can re-color it if they want */ text { font: "Sans"; /* Use the Bold style * of the Sans font from * fontconfig */ size: 14; /* size in pixels - 10 */ min: 0 1; /* the text will not determine minimum horizontal * size but WILL determine minimal vertical size * (thus 0 1 - horiz then vert flags) */ align: 0.5 0.0; /* align text to top-left of the region * given */ text_class: "title_bar"; /* text class - so font and size * can be changed by users */ } } description { state: "focused" 0.0; /* when the border is focused * then make the text fade out * and vanish */ inherit: "default" 0.0; visible: 0; align: 0.5 0.0; color: 0 0 0 0; } } part { name: "bt_close"; /* the close button shadow */ mouse_events: 0; description { state: "default" 0.0; min: 14 14; /* min and max size are the same, so never * resize this */ max: 14 14; rel1 { relative: 1.0 0.0; offset: -24 0; to_x: "top"; to_y: "top"; } rel2 { relative: 1.0 1.0; offset: 0 -2; to_x: "top"; to_y: "top"; } image.normal: "added_images/DM_Internet_icon_close.png"; } } part { name: "bt_max"; /* maximize button shadow */ mouse_events: 0; description { state: "default" 0.0; min: 14 14; max: 14 14; aspect: 1.0 1.0; aspect_preference: VERTICAL; rel1 { relative: 0.0 0.0; offset: -20 -1; to_x: "bt_close"; /* left of the close button */ to_y: "top"; } rel2 { relative: 0.0 1.0; offset: -6 0; to_x: "bt_close"; /* left of the close button */ to_y: "top"; } image.normal: "added_images/DM_Internet_icon_Zoom.png"; } description { state: "max" 0.0; inherit: "default" 0.0; image.normal: "added_images/DM_Internet_icon_Resize.png"; } } part { name: "bt_min"; /* minimize button shadow */ mouse_events: 0; description { state: "default" 0.0; min: 14 14; max: 14 14; aspect: 1.0 1.0; aspect_preference: VERTICAL; rel1 { relative: 0.0 0.0; offset: -20 -1; to_x: "bt_max"; /* left of the maximize button */ to_y: "top"; } rel2 { relative: 0.0 1.0; offset: -6 0; to_x: "bt_max"; /* left of the maximize button */ to_y: "top"; } image.normal: "added_images/DM_Internet_icon_Reduction.png"; } } part { name: "top_hilight"; /* an overlayed image to give the top of * a border a shiny look - very subtle */ mouse_events: 0; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; offset: 0 0; to: "top"; } rel2 { relative: 1.0 0.5; offset: -1 0; to: "top"; } color_class: "border_top_hilight"; fill.smooth: 0; } } part { name: "buttons_unfoc"; /* this is a rect part used to clip & * thus control the visibility of a group * of other parts (the images for the * buttons themselves) with just 1 part * doing the control as it acts as a * master switch for all things clipped * to this part */ type: RECT; description { state: "default" 0.0; visible: 1; color: 255 255 255 255; /* visible and solid */ } description { state: "focused" 0.0; inherit: "default" 0.0; visible: 0; color: 255 255 255 0; /* invisible and transparent */ } } part { name: "bt_close_unfoc"; mouse_events: 0; clip_to: "buttons_unfoc"; /* clipping (thus visible region and * color + alpah is controlled by the * clip object */ description { state: "default" 0.0; rel1.to: "bt_close"; rel2.to: "bt_close"; image.normal: "added_images/DM_Internet_icon_close.png"; } description { state: "active" 0.0; inherit: "default" 0.0; rel1.offset: 0 1; rel2.offset: -1 0; } } part { name: "bt_max_unfoc"; mouse_events: 0; clip_to: "buttons_unfoc"; description { state: "default" 0.0; rel1.to: "bt_max"; rel2.to: "bt_max"; } description { state: "active" 0.0; inherit: "default" 0.0; rel1.offset: 0 1; rel2.offset: -1 0; } } part { name: "bt_min_unfoc"; mouse_events: 0; clip_to: "buttons_unfoc"; description { state: "default" 0.0; rel1.to: "bt_min"; rel2.to: "bt_min"; } description { state: "active" 0.0; inherit: "default" 0.0; rel1.offset: 0 1; rel2.offset: -1 0; } } part { name: "buttons_foc"; /* another rect object for clipping */ type: RECT; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; } description { state: "focused" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "bt_close_foc"; mouse_events: 0; clip_to: "buttons_foc"; /* controlled by the other clip object */ description { state: "default" 0.0; rel1.to: "bt_close"; rel2.to: "bt_close"; image.normal: "added_images/DM_Internet_icon_close.png"; } description { state: "active" 0.0; inherit: "default" 0.0; rel1.offset: 0 1; rel2.offset: -1 0; } } part { name: "bt_max_foc"; mouse_events: 0; clip_to: "buttons_foc"; description { state: "default" 0.0; rel1.to: "bt_max"; rel2.to: "bt_max"; } description { state: "active" 0.0; inherit: "default" 0.0; rel1.offset: 0 1; rel2.offset: -1 0; } } part { name: "bt_min_foc"; mouse_events: 0; clip_to: "buttons_foc"; description { state: "default" 0.0; rel1.to: "bt_min"; rel2.to: "bt_min"; image.normal: "added_images/DM_Internet_icon_Reduction.png"; } description { state: "active" 0.0; inherit: "default" 0.0; rel1.offset: 0 1; rel2.offset: -1 0; } } part { name: "title_base"; /* an invisible rect part/object used for * layout purposes */ type: RECT; mouse_events: 0; description { state: "default" 0.0; visible: 0; rel1 { relative: 1.0 0.0; offset: 0 0; to_x: "icon_area"; } rel2 { relative: 0.0 1.0; offset: -3 4; to_y: "e.text.title"; to_x: "bt_min"; } } } part { name: "title_back"; mouse_events: 0; description { state: "default" 0.0; visible: 0; rel1 { to: "title_base"; } rel2 { to: "title_base"; relative: 1.0 0.0; } fill.smooth: 0; } description { state: "focused" 0.0; inherit: "default" 0.0; visible: 1; rel2 { to: "title_base"; relative: 1.0 1.0; } } } part { name: "title2"; /* this is interesting. it's another text part * that also displays the title text, but * normally is not visible. it is only made * visibile when the window becomes focused. * what is interesting is we tell it to source * the text content from another part - i.e. * the master "title" part which E sets the * text of. when that changes this part also * changes its text. this is a good way to * use multiple text objects for effects and * other things that can copy/mimic the content * of another part */ type: TEXT; mouse_events: 0; effect: SOFT_SHADOW; /* different style to before - because its * focused */ description { state: "default" 0.0; visible: 0; align: 0.0 1.0; rel1 { to_x: "e.text.title"; to_y: "title_back"; relative: 0.0 1.0; offset: -1 0; } rel2 { to_x: "e.text.title"; to_y: "title_back"; relative: 1.0 1.0; offset: 0 0; } color_class: "border_title_active"; text { text_source: "e.text.title"; /* and here is the magic. tell * the text to be sourced from * another part */ font: "Sans:style=Bold"; size: 10; align: 0.5 0.0; min: 0 1; text_class: "title_bar"; } } description { state: "focused" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "title_over"; mouse_events: 0; description { state: "default" 0.0; visible: 0; rel1.to: "title_back"; rel2.to: "title_back"; fill.smooth: 0; } description { state: "focused" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "bottom_clip"; type: RECT; description { state: "default" 0.0; rel1.to: "bottom"; rel2.to: "bottom"; color: 255 255 255 255; } } part { name: "resize_b"; mouse_events: 0; clip_to: "bottom_clip"; description { state: "default" 0.0; min: 20 10; max: 20 10; rel1 { to: "bottom"; relative: 0.5 0.0; offset: 0 -10; } rel2 { to: "bottom"; relative: 0.5 0.0; offset: 0 -1; } } description { state: "past" 0.0; inherit: "default" 0.0; rel1 { relative: 0.5 1.0; offset: 0 0; } rel2 { relative: 0.5 1.0; offset: 0 9; } } } part { name: "e.swallow.client"; /* this determines where the actual * client window will be placed in * the border design */ type: SWALLOW; description { state: "default" 0.0; rel1 { relative: 1.0 1.0; offset: 0 0; to_x: "left"; to_y: "top"; } rel2 { relative: 0.0 0.0; offset: -1 0; to_x: "right"; to_y: "bottom"; } } description { state: "shaded" 0.0; inherit: "default" 0.0; rel2 { relative: 0.0 1.0; offset: -1 -1; to_x: "right"; to_y: "bottom"; } } description { state: "max" 0.0; inherit: "default" 0.0; rel1 { relative: 0.0 1.0; offset: 0 0; to_y: "top"; } rel2 { relative: 1.0 1.0; offset: -1 -1; to_y: "bottom"; } } } /* these transparent rect parts are used for catching events in a way * here objects for design don't affect the events. these parts * are named speciifcally because E has config listening for specific * signals (events) coming from these named parts and based on those * will perform certain actions. these are actually all configurable * by the user, so if they want, clicking the logical "titlebar" could * close the window, not move it, and so on. the user decides this. * the theme designer simply indicates the "logcal" use of the theme * elements they have created */ part { name: "e.event.titlebar"; type: RECT; description { state: "default" 0.0; rel1.to: "title_base"; rel2.to: "title_base"; color: 0 0 0 0; } } part { name: "e.event.resize.t"; type: RECT; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; offset: 0 0; } rel2 { relative: 1.0 0.0; offset: -1 3; } color: 0 0 0 0; } description { state: "shaded" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "e.event.resize.b"; type: RECT; description { state: "default" 0.0; rel1 { relative: 0.0 1.0; offset: 0 -4; } rel2 { relative: 1.0 1.0; offset: -1 -1; } color: 0 0 0 0; } description { state: "shaded" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "e.event.resize.l"; type: RECT; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; offset: 0 0; } rel2 { relative: 0.0 1.0; offset: 10 -3; } color: 0 0 0 0; } description { state: "shaded" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "e.event.resize.r"; type: RECT; description { state: "default" 0.0; rel1 { relative: 1.0 0.0; offset: -10 0; } rel2 { relative: 1.0 1.0; offset: 0 -1; } color: 0 0 0 0; } description { state: "shaded" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "e.event.resize.tl"; type: RECT; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; offset: 0 0; } rel2 { relative: 0.0 0.0; offset: 10 10; } color: 0 0 0 0; } description { state: "shaded" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "e.event.resize.tr"; type: RECT; description { state: "default" 0.0; rel1 { relative: 1.0 0.0; offset: -10 0; } rel2 { relative: 1.0 0.0; offset: 0 10; } color: 0 0 0 0; } description { state: "shaded" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "e.event.resize.bl"; type: RECT; description { state: "default" 0.0; rel1 { relative: 0.0 1.0; offset: 0 -10; } rel2 { relative: 0.0 1.0; offset: 10 0; } color: 0 0 0 0; } description { state: "shaded" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "e.event.resize.br"; type: RECT; description { state: "default" 0.0; rel1 { relative: 1.0 1.0; offset: -10 -10; } rel2 { relative: 1.0 1.0; offset: 0 0; } color: 0 0 0 0; } description { state: "shaded" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "e.event.icon"; type: RECT; description { state: "default" 0.0; rel1.to: "icon_area"; rel2.to: "icon_area"; color: 0 0 0 0; } } part { name: "e.event.close"; type: RECT; description { state: "default" 0.0; rel1.to: "bt_close"; rel2.to: "bt_close"; color: 0 0 0 0; } } part { name: "e.event.minimize"; type: RECT; description { state: "default" 0.0; rel1.to: "bt_min"; rel2.to: "bt_min"; color: 0 0 0 0; } } part { name: "e.event.maximize"; type: RECT; description { state: "default" 0.0; rel1.to: "bt_max"; rel2.to: "bt_max"; color: 0 0 0 0; } } } /* programs - these are basically snippets of simple logic to respond to * incoming signals (generated by signal emisions by code or events) */ programs { program { name: "focus_in"; /* name of the program. must be unique * within the list of programs attached * to a group of parts */ signal: "e,state,focused"; /* what signal triggers this program, * if any. this can also be a glob like * "mouse,down,*" for example. note * that globs are slower to match * and empty strings are literal matches * too */ source: "e"; /* the source of the signal - this must also match for * the program to be run */ action: STATE_SET "default" 0.0; /* the action the program will * perform. in this case * it will set the state to * "focused" @ value 0.0 */ target: "title_back"; /* these are the targets for the action. * i.e. which parts will have their state * set to "focused" over 0.2 seconds */ target: "title2"; target: "title_over"; target: "buttons_foc"; target: "buttons_unfoc"; target: "e.text.title"; } program { name: "focus_out"; /* this program is run when focus is * removed from a window border */ signal: "e,state,unfocused"; source: "e"; action: STATE_SET "default" 0.0; target: "title_back"; target: "title2"; target: "title_over"; target: "buttons_foc"; target: "buttons_unfoc"; target: "e.text.title"; } program { name: "urgent"; /* this program is run when the border is * meant to display an "urgent" state * (the application has something * important to show the user) */ signal: "e,state,urgent"; source: "e"; action: STATE_SET "visible" 0.0; transition: DECELERATE 0.5; /* instead of a linear transition * this will vary from state A to B * but slow down towards the end */ target: "urgent"; target: "urgent2"; after: "urgent2"; /* when this program and its transition are * finished then chain (run) the "urgent2" * program below. this way a series of actions * and trnasitions can be chained together one * after the other */ } program { name: "urgent2"; action: STATE_SET "faded" 0.0; transition: LINEAR 0.5; target: "urgent2"; after: "urgent3"; } program { name: "urgent3"; action: STATE_SET "visible" 0.0; target: "urgent2"; /* notice - no transition. when not specified * it is assumed that the action should happen * immediately with no transition over time */ after: "urgent2"; } program { name: "urgentw0"; /* these ae a list of icon "wobble" * programs to indicate urgency */ signal: "e,state,urgent"; source: "e"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.1; target: "icon_area2"; after: "urgentw1"; } program { name: "urgentw1"; action: STATE_SET "uw1" 0.0; transition: DECELERATE 0.1; target: "icon_area2"; after: "urgentw2"; } program { name: "urgentw2"; action: STATE_SET "uw2" 0.0; target: "icon_area2"; transition: DECELERATE 0.1; after: "urgentw3"; } program { name: "urgentw3"; action: STATE_SET "uw3" 0.0; transition: DECELERATE 0.1; target: "icon_area2"; after: "urgentw4"; } program { name: "urgentw4"; action: STATE_SET "uw4" 0.0; transition: DECELERATE 0.1; target: "icon_area2"; after: "urgentw0"; } program { name: "not_urgent"; /* run when the window stops being * urgent */ signal: "e,state,not_urgent"; source: "e"; action: ACTION_STOP; /* this action will stop other running programs * that are currently active. the programs to * stop are named in the targets below */ target: "urgentw0"; target: "urgentw1"; target: "urgentw2"; target: "urgentw3"; target: "urgentw4"; target: "urgent"; target: "urgent2"; target: "urgent3"; after: "not_urgent2"; } program { name: "not_urgent2"; action: STATE_SET "default" 0.0; target: "urgent"; target: "urgent2"; target: "icon_area2"; } program { name: "hung"; /* run when an app is known to be hung/not * responding to ping requests */ signal: "e,state,hung"; source: "e"; action: STATE_SET "shrunk" 0.0; target: "e.swallow.icon"; transition: DECELERATE 0.5; } program { name: "unhung"; /* when an app was hung but has started to * respond again, this is run */ signal: "e,state,unhung"; source: "e"; action: ACTION_STOP; target: "busy_anim"; } program { name: "unhung2"; signal: "e,state,unhung"; source: "e"; action: STATE_SET "default" 0.0; target: "e.swallow.icon"; target: "busy"; transition: ACCELERATE 0.5; } program { name: "busy_anim"; /* multiple programs can be triggered * from the same signals so this is * also run when an app becomes "hung" */ signal: "e,state,hung"; source: "e"; action: STATE_SET "visible" 0.0; transition: LINEAR 0.3333; target: "busy"; after: "busy_anim"; } // don't have states/anim for a generic iconify action // program { name: "xx"; // signal: "e,action,iconify"; // source: "e"; // } // don't have states/anim for a generic uniconify action // program { name: "xx"; // signal: "e,action,uniconify"; // source: "e"; // } // don't have states/anim for a generic maximize action // program { name: "xx"; // signal: "e,action,maximize"; // source: "e"; // } // don't have states/anim for a generic unmaximize action // program { name: "xx"; // signal: "e,action,unmaximize"; // source: "e"; // } program { name: "max_full"; /* run on fullscreen maximize */ signal: "e,action,maximize,fullscreen"; source: "e"; action: STATE_SET "max" 0.0; target: "bottom"; target: "bt_max"; target: "e.swallow.client"; } program { name: "unmax_full"; /* run on unmaximize from fullscreen */ signal: "e,action,unmaximize,fullscreen"; source: "e"; action: STATE_SET "default" 0.0; target: "bottom"; target: "bt_max"; target: "e.swallow.client"; } program { name: "maximize"; signal: "e,action,maximize"; source: "e"; action: STATE_SET "max" 0.0; target: "bt_max"; } program { name: "unmaximize"; signal: "e,action,unmaximize"; source: "e"; action: STATE_SET "default" 0.0; target: "bt_max"; } // don't have any animation or stat change to do at the start of shading // program { name: "xx"; // signal: "e,state,shading"; // source: "e"; // } program { name: "shade_end"; /* run when the window finishes its * shading animation */ signal: "e,state,shaded"; source: "e"; action: STATE_SET "shaded" 0.0; target: "bottom"; target: "e.swallow.client"; target: "e.event.resize.tl"; target: "e.event.resize.tr"; target: "e.event.resize.bl"; target: "e.event.resize.br"; target: "e.event.resize.t"; target: "e.event.resize.b"; } program { name: "unshade_start"; /* run when the window starts * unshading itself */ signal: "e,state,unshading"; signal: "e,state,unshaded"; source: "e"; action: STATE_SET "default" 0.0; target: "bottom"; target: "e.swallow.client"; target: "e.event.resize.tl"; target: "e.event.resize.tr"; target: "e.event.resize.bl"; target: "e.event.resize.br"; target: "e.event.resize.t"; target: "e.event.resize.b"; } // don't have any animation or stat change to do at the end of unshading // program { name: "xx"; // signal: "e,state,unshaded"; // source: "e"; // } program { name: "resize_b_on"; signal: "mouse,in"; /* on mouse enter... */ source: "e.event.resize.b"; /* in this named part */ action: ACTION_STOP; /* stop the following programs */ target: "resize_b_on2"; target: "resize_b_on3"; after: "resize_b_on2"; /* then run... */ } program { name: "resize_b_on2"; action: STATE_SET "default" 0.0; target: "resize_b"; after: "resize_b_on3"; } program { name: "resize_b_on3"; action: STATE_SET "past" 0.0; transition: LINEAR 0.5; target: "resize_b"; after: "resize_b_on2"; } program { name: "resize_b_off"; signal: "mouse,out"; /* on mouse leave... */ source: "e.event.resize.b"; action: ACTION_STOP; target: "resize_b_on"; target: "resize_b_on2"; target: "resize_b_on3"; } program { name: "icon_down"; signal: "mouse,down,*"; /* if any mouse button is pressed... */ source: "e.event.icon"; action: STATE_SET "active" 0.0; target: "icon_area"; } program { name: "icon_up"; signal: "mouse,up,*"; /* if any mouse button is released... */ source: "e.event.icon"; action: STATE_SET "default" 0.0; target: "icon_area"; } program { name: "bt_close_down"; signal: "mouse,down,*"; source: "e.event.close"; action: STATE_SET "active" 0.0; target: "bt_close_unfoc"; target: "bt_close_foc"; } program { name: "bt_close_up"; signal: "mouse,up,*"; source: "e.event.close"; action: STATE_SET "default" 0.0; target: "bt_close_unfoc"; target: "bt_close_foc"; } program { name: "bt_max_down"; signal: "mouse,down,*"; source: "e.event.maximize"; action: STATE_SET "active" 0.0; target: "bt_max_unfoc"; target: "bt_max_foc"; } program { name: "bt_max_up"; signal: "mouse,up,*"; source: "e.event.maximize"; action: STATE_SET "default" 0.0; target: "bt_max_unfoc"; target: "bt_max_foc"; } program { name: "bt_min_down"; signal: "mouse,down,*"; source: "e.event.minimize"; action: STATE_SET "active" 0.0; target: "bt_min_unfoc"; target: "bt_min_foc"; } program { name: "bt_min_up"; signal: "mouse,up,*"; source: "e.event.minimize"; action: STATE_SET "default" 0.0; target: "bt_min_unfoc"; target: "bt_min_foc"; } } } #if 0 /* more border types - see comments in the default border for information */ /*** SHAPED WINDOW BORDER ***/ group { name: "e/widgets/border/shaped/border"; images { image: "bd_top.png" COMP; image: "bd_top_hilight.png" COMP; image: "bd_bottom.png" COMP; image: "bd_title_bg.png" COMP; image: "bd_title_over.png" COMP; image: "bd_resize_b.png" COMP; image: "busy-1.png" COMP; image: "busy-2.png" COMP; image: "busy-3.png" COMP; image: "busy-4.png" COMP; image: "busy-5.png" COMP; image: "busy-6.png" COMP; image: "busy-7.png" COMP; image: "busy-8.png" COMP; image: "busy-9.png" COMP; image: "exclam.png" COMP; image: "bd_button_close_shadow.png" COMP; image: "bd_button_close_focused.png" COMP; image: "bd_button_close_unfocused.png" COMP; image: "bd_button_max_shadow.png" COMP; image: "bd_button_max_focused.png" COMP; image: "bd_button_max_unfocused.png" COMP; image: "bd_button_min_shadow.png" COMP; image: "bd_button_min_focused.png" COMP; image: "bd_button_min_unfocused.png" COMP; } data.item: "shaped" "1"; parts { part { name: "top"; mouse_events: 0; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; offset: 0 0; } rel2 { relative: 1.0 1.0; offset: -1 -1; to_y: "title_base"; } color_class: "border_top"; image { normal: "bd_top.png"; border: 2 2 2 2; } } } part { name: "bottom"; mouse_events: 0; description { state: "default" 0.0; rel1 { relative: 0.0 1.0; offset: 0 -4; } rel2 { relative: 1.0 1.0; offset: -1 -1; } color_class: "border_bottom"; image { normal: "bd_bottom.png"; border: 2 2 0 0; } } description { state: "shaded" 0.0; inherit: "default" 0.0; visible: 0; } description { state: "max" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "icon_area"; type: RECT; description { state: "default" 0.0; visible: 0; align: 0.0 0.5; aspect: 1.0 1.0; aspect_preference: VERTICAL; rel1 { relative: 0.0 0.0; offset: 2 2; } rel2 { relative: 0.0 1.0; offset: 2 -3; to_y: "title_base"; } } description { state: "active" 0.0; inherit: "default" 0.0; rel1 { offset: 2 3; } rel2 { offset: 2 -2; } } } part { name: "icon_area2"; type: RECT; description { state: "default" 0.0; visible: 0; rel1.to: "icon_area"; rel2.to: "icon_area"; } description { state: "uw0" 0.0; inherit: "default" 0.0; rel1.offset: -3 -2; rel2.offset: -4 -3; } description { state: "uw1" 0.0; inherit: "default" 0.0; rel1.offset: 5 -2; rel2.offset: 4 -3; } description { state: "uw2" 0.0; inherit: "default" 0.0; rel1.offset: -1 4; rel2.offset: -2 3; } description { state: "uw3" 0.0; inherit: "default" 0.0; rel1.offset: -2 -1; rel2.offset: -3 -2; } description { state: "uw4" 0.0; inherit: "default" 0.0; rel1.offset: -4 1; rel2.offset: -5 0; } } part { name: "busy"; mouse_events: 0; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; max: 32 32; aspect: 1.0 1.0; aspect_preference: BOTH; rel1.to: "icon_area"; rel2.to: "icon_area"; image { tween: "busy-1.png"; tween: "busy-2.png"; tween: "busy-3.png"; tween: "busy-4.png"; tween: "busy-5.png"; tween: "busy-6.png"; tween: "busy-7.png"; tween: "busy-8.png"; normal: "busy-9.png"; } } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "e.swallow.icon"; type: SWALLOW; description { state: "default" 0.0; aspect: 1.0 1.0; aspect_preference: BOTH; rel1.to: "icon_area2"; rel2.to: "icon_area2"; } description { state: "shrunk" 0.0; inherit: "default" 0.0; rel1.relative: 0.3 0.3; rel2.relative: 0.7 0.7; } } part { name: "urgent"; mouse_events: 0; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; aspect: 1.0 1.0; aspect_preference: BOTH; rel1.to: "icon_area"; rel2.to: "icon_area"; image.normal: "exclam.png"; } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "urgent2"; mouse_events: 0; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; aspect: 1.0 1.0; aspect_preference: BOTH; rel1.to: "icon_area"; rel2.to: "icon_area"; image.normal: "exclam.png"; } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } description { state: "faded" 0.0; inherit: "default" 0.0; rel1.relative: -1.0 -1.0; rel2.relative: 2.0 2.0; visible: 1; color: 255 255 255 0; } } part { name: "e.text.title"; type: TEXT; mouse_events: 0; description { state: "default" 0.0; visible: 1; align: 0.0 0.0; rel1 { relative: 1.0 0.0; offset: 9 2; to_x: "icon_area"; } rel2 { relative: 1.0 0.0; offset: -8 2; to_x: "title_base"; } color_class: "border_title"; text { font: "Sans:style=Bold"; size: 10; min: 0 1; align: 0.0 0.0; text_class: "title_bar"; } } description { state: "focused" 0.0; inherit: "default" 0.0; visible: 0; color: 0 0 0 0; } } part { name: "bt_close"; mouse_events: 0; description { state: "default" 0.0; min: 14 14; max: 14 14; aspect: 1.0 1.0; aspect_preference: VERTICAL; rel1 { relative: 1.0 0.0; offset: -28 1; to_x: "top"; to_y: "top"; } rel2 { relative: 1.0 1.0; to_x: "top"; to_y: "top"; } image.normal: "bd_button_close_shadow.png"; } } part { name: "bt_max"; mouse_events: 0; description { state: "default" 0.0; align: 1.0 0.5; min: 22 22; max: 22 22; aspect: 1.0 1.0; aspect_preference: VERTICAL; rel1 { relative: 0.0 0.0; offset: -2 1; to_x: "bt_close"; to_y: "top"; } rel2 { relative: 0.0 1.0; offset: -2 -2; to_x: "bt_close"; to_y: "top"; } image.normal: "bd_button_max_shadow.png"; } } part { name: "bt_min"; mouse_events: 0; description { state: "default" 0.0; align: 1.0 0.5; min: 22 22; max: 22 22; aspect: 1.0 1.0; aspect_preference: VERTICAL; rel1 { relative: 0.0 0.0; offset: -2 1; to_x: "bt_max"; to_y: "top"; } rel2 { relative: 0.0 1.0; offset: -2 -2; to_x: "bt_max"; to_y: "top"; } image.normal: "bd_button_min_shadow.png"; } } part { name: "top_hilight"; mouse_events: 0; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; offset: 0 0; to: "top"; } rel2 { relative: 1.0 0.5; offset: -1 0; to: "top"; } color_class: "border_top_hilight"; image { normal: "bd_top_hilight.png"; } fill.smooth: 0; } } part { name: "buttons_unfoc"; type: RECT; description { state: "default" 0.0; visible: 1; color: 255 255 255 255; } description { state: "focused" 0.0; inherit: "default" 0.0; visible: 0; color: 255 255 255 0; } } part { name: "bt_close_unfoc"; mouse_events: 0; clip_to: "buttons_unfoc"; description { state: "default" 0.0; rel1.to: "bt_close"; rel2.to: "bt_close"; image.normal: "bd_button_close_unfocused.png"; } description { state: "active" 0.0; inherit: "default" 0.0; rel1.offset: 0 1; rel2.offset: -1 0; } } part { name: "bt_max_unfoc"; mouse_events: 0; clip_to: "buttons_unfoc"; description { state: "default" 0.0; rel1.to: "bt_max"; rel2.to: "bt_max"; image.normal: "bd_button_max_unfocused.png"; } description { state: "active" 0.0; inherit: "default" 0.0; rel1.offset: 0 1; rel2.offset: -1 0; } } part { name: "bt_min_unfoc"; mouse_events: 0; clip_to: "buttons_unfoc"; description { state: "default" 0.0; rel1.to: "bt_min"; rel2.to: "bt_min"; image.normal: "bd_button_min_unfocused.png"; } description { state: "active" 0.0; inherit: "default" 0.0; rel1.offset: 0 1; rel2.offset: -1 0; } } part { name: "buttons_foc"; type: RECT; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; } description { state: "focused" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "bt_close_foc"; mouse_events: 0; clip_to: "buttons_foc"; description { state: "default" 0.0; rel1.to: "bt_close"; rel2.to: "bt_close"; 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: "bt_max_foc"; mouse_events: 0; clip_to: "buttons_foc"; description { state: "default" 0.0; rel1.to: "bt_max"; rel2.to: "bt_max"; image.normal: "bd_button_max_focused.png"; } description { state: "active" 0.0; inherit: "default" 0.0; rel1.offset: 0 1; rel2.offset: -1 0; } } part { name: "bt_min_foc"; mouse_events: 0; clip_to: "buttons_foc"; description { state: "default" 0.0; rel1.to: "bt_min"; rel2.to: "bt_min"; image.normal: "bd_button_min_focused.png"; } description { state: "active" 0.0; inherit: "default" 0.0; rel1.offset: 0 1; rel2.offset: -1 0; } } part { name: "title_base"; type: RECT; mouse_events: 0; description { state: "default" 0.0; visible: 0; rel1 { relative: 1.0 0.0; offset: 0 0; to_x: "icon_area"; } rel2 { relative: 0.0 1.0; offset: -3 4; to_y: "e.text.title"; to_x: "bt_min"; } } } part { name: "title_back"; mouse_events: 0; description { state: "default" 0.0; visible: 0; rel1 { to: "title_base"; } rel2 { to: "title_base"; relative: 1.0 0.0; } image { normal: "bd_title_bg.png"; border: 7 7 2 7; } fill.smooth: 0; } description { state: "focused" 0.0; inherit: "default" 0.0; visible: 1; rel2 { to: "title_base"; relative: 1.0 1.0; } } } part { name: "title2"; type: TEXT; mouse_events: 0; effect: SOFT_SHADOW; description { state: "default" 0.0; visible: 0; align: 0.0 1.0; rel1 { to_x: "e.text.title"; to_y: "title_back"; relative: 0.0 1.0; offset: -1 0; } rel2 { to_x: "e.text.title"; to_y: "title_back"; relative: 1.0 1.0; offset: 0 1; } color_class: "border_title_active"; text { text_source: "e.text.title"; font: "Sans:style=Bold"; size: 10; align: 0.0 0.0; min: 0 1; text_class: "title_bar"; } } description { state: "focused" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "title_over"; mouse_events: 0; description { state: "default" 0.0; visible: 0; rel1.to: "title_back"; rel2.to: "title_back"; image { normal: "bd_title_over.png"; border: 7 7 2 7; } fill.smooth: 0; } description { state: "focused" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "bottom_clip"; type: RECT; description { state: "default" 0.0; rel1.to: "bottom"; rel2.to: "bottom"; color: 255 255 255 255; } } part { name: "resize_b"; mouse_events: 0; clip_to: "bottom_clip"; description { state: "default" 0.0; min: 20 10; max: 20 10; rel1 { to: "bottom"; relative: 0.5 0.0; offset: 0 -10; } rel2 { to: "bottom"; relative: 0.5 0.0; offset: 0 -1; } image { normal: "bd_resize_b.png"; } } description { state: "past" 0.0; inherit: "default" 0.0; rel1 { relative: 0.5 1.0; offset: 0 0; } rel2 { relative: 0.5 1.0; offset: 0 9; } } } part { name: "e.swallow.client"; type: SWALLOW; description { state: "default" 0.0; rel1 { relative: 0.0 1.0; offset: 0 0; to_y: "top"; } rel2 { relative: 1.0 0.0; offset: -1 -1; to_y: "bottom"; } } description { state: "shaded" 0.0; inherit: "default" 0.0; rel2 { relative: 1.0 1.0; offset: -1 -1; to_y: "bottom"; } } description { state: "max" 0.0; inherit: "default" 0.0; rel1 { relative: 0.0 1.0; offset: 0 0; to_y: "top"; } rel2 { relative: 1.0 1.0; offset: -1 -1; to_y: "bottom"; } } } part { name: "e.event.titlebar"; type: RECT; description { state: "default" 0.0; rel1.to: "title_base"; rel2.to: "title_base"; color: 0 0 0 0; } } part { name: "e.event.resize.t"; type: RECT; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; offset: 0 0; } rel2 { relative: 1.0 0.0; offset: -1 3; } color: 0 0 0 0; } description { state: "shaded" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "e.event.resize.b"; type: RECT; description { state: "default" 0.0; rel1 { relative: 0.0 1.0; offset: 0 -4; } rel2 { relative: 1.0 1.0; offset: -1 -1; } color: 0 0 0 0; } description { state: "shaded" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "e.event.resize.tl"; type: RECT; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; offset: 0 0; } rel2 { relative: 0.0 0.0; offset: 15 15; } color: 0 0 0 0; } description { state: "shaded" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "e.event.resize.tr"; type: RECT; description { state: "default" 0.0; rel1 { relative: 1.0 0.0; offset: -16 0; } rel2 { relative: 1.0 0.0; offset: -1 15; } color: 0 0 0 0; } description { state: "shaded" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "e.event.resize.bl"; type: RECT; description { state: "default" 0.0; rel1 { relative: 0.0 1.0; offset: 0 -16; } rel2 { relative: 0.0 1.0; offset: 15 -1; } color: 0 0 0 0; } description { state: "shaded" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "e.event.resize.br"; type: RECT; description { state: "default" 0.0; rel1 { relative: 1.0 1.0; offset: -16 -16; } rel2 { relative: 1.0 1.0; offset: -1 -1; } color: 0 0 0 0; } description { state: "shaded" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "e.event.icon"; type: RECT; description { state: "default" 0.0; rel1.to: "icon_area"; rel2.to: "icon_area"; color: 0 0 0 0; } } part { name: "e.event.close"; type: RECT; description { state: "default" 0.0; rel1.to: "bt_close"; rel2.to: "bt_close"; color: 0 0 0 0; } } part { name: "e.event.minimize"; type: RECT; description { state: "default" 0.0; rel1.to: "bt_min"; rel2.to: "bt_min"; color: 0 0 0 0; } } part { name: "e.event.maximize"; type: RECT; description { state: "default" 0.0; rel1.to: "bt_max"; rel2.to: "bt_max"; color: 0 0 0 0; } } } programs { program { name: "focus_in"; signal: "e,state,focused"; source: "e"; action: STATE_SET "focused" 0.0; transition: LINEAR 0.2; target: "title_back"; target: "title2"; target: "title_over"; target: "buttons_foc"; target: "buttons_unfoc"; target: "e.text.title"; } program { name: "focus_out"; signal: "e,state,unfocused"; source: "e"; action: STATE_SET "default" 0.0; transition: LINEAR 0.2; target: "title_back"; target: "title2"; target: "title_over"; target: "buttons_foc"; target: "buttons_unfoc"; target: "e.text.title"; } program { name: "urgent"; signal: "e,state,urgent"; source: "e"; action: STATE_SET "visible" 0.0; target: "urgent"; target: "urgent2"; transition: DECELERATE 0.5; after: "urgent2"; } program { name: "urgent2"; action: STATE_SET "faded" 0.0; target: "urgent2"; transition: LINEAR 0.5; after: "urgent3"; } program { name: "urgent3"; action: STATE_SET "visible" 0.0; target: "urgent2"; after: "urgent2"; } program { name: "urgentw0"; signal: "e,state,urgent"; source: "e"; action: STATE_SET "default" 0.0; target: "icon_area2"; transition: DECELERATE 0.1; after: "urgentw1"; } program { name: "urgentw1"; action: STATE_SET "uw1" 0.0; target: "icon_area2"; transition: DECELERATE 0.1; after: "urgentw2"; } program { name: "urgentw2"; action: STATE_SET "uw2" 0.0; target: "icon_area2"; transition: DECELERATE 0.1; after: "urgentw3"; } program { name: "urgentw3"; action: STATE_SET "uw3" 0.0; target: "icon_area2"; transition: DECELERATE 0.1; after: "urgentw4"; } program { name: "urgentw4"; action: STATE_SET "uw4" 0.0; target: "icon_area2"; transition: DECELERATE 0.1; after: "urgentw0"; } program { name: "not_urgent"; signal: "e,state,not_urgent"; source: "e"; action: ACTION_STOP; target: "urgentw0"; target: "urgentw1"; target: "urgentw2"; target: "urgentw3"; target: "urgentw4"; target: "urgent"; target: "urgent2"; target: "urgent3"; after: "not_urgent2"; } program { name: "not_urgent2"; action: STATE_SET "default" 0.0; target: "urgent"; target: "urgent2"; target: "icon_area2"; } program { name: "hung"; signal: "e,state,hung"; source: "e"; /* FIXME: */ action: STATE_SET "shrunk" 0.0; target: "e.swallow.icon"; transition: DECELERATE 0.5; } program { name: "unhung"; signal: "e,state,unhung"; source: "e"; /* FIXME: */ action: ACTION_STOP; target: "busy_anim"; } program { name: "unhung2"; signal: "e,state,unhung"; source: "e"; /* FIXME: */ action: STATE_SET "default" 0.0; target: "e.swallow.icon"; target: "busy"; transition: ACCELERATE 0.5; } program { name: "busy_anim"; signal: "e,state,hung"; source: "e"; action: STATE_SET "visible" 0.0; transition: LINEAR 0.3333; target: "busy"; after: "busy_anim"; } program { name: "max_full"; signal: "e,action,maximize,fullscreen"; source: "e"; action: STATE_SET "max" 0.0; target: "bottom"; target: "e.swallow.client"; } program { name: "unmax_full"; signal: "e,action,unmaximize,fullscreen"; source: "e"; action: STATE_SET "default" 0.0; target: "bottom"; target: "e.swallow.client"; } program { name: "shade_end"; signal: "e,state,shaded"; source: "e"; action: STATE_SET "shaded" 0.0; target: "bottom"; target: "e.swallow.client"; target: "e.event.resize.tl"; target: "e.event.resize.tr"; target: "e.event.resize.bl"; target: "e.event.resize.br"; target: "e.event.resize.t"; target: "e.event.resize.b"; } program { name: "unshade_start"; signal: "e,state,unshading"; source: "e"; action: STATE_SET "default" 0.0; target: "bottom"; target: "e.swallow.client"; target: "e.event.resize.tl"; target: "e.event.resize.tr"; target: "e.event.resize.bl"; target: "e.event.resize.br"; target: "e.event.resize.t"; target: "e.event.resize.b"; } program { name: "resize_b_on"; signal: "mouse,in"; source: "e.event.resize.b"; action: ACTION_STOP; target: "resize_b_on2"; target: "resize_b_on3"; after: "resize_b_on2"; } program { name: "resize_b_on2"; action: STATE_SET "default" 0.0; target: "resize_b"; after: "resize_b_on3"; } program { name: "resize_b_on3"; action: STATE_SET "past" 0.0; transition: LINEAR 0.5; target: "resize_b"; after: "resize_b_on2"; } program { name: "resize_b_off"; signal: "mouse,out"; source: "e.event.resize.b"; action: ACTION_STOP; target: "resize_b_on"; target: "resize_b_on2"; target: "resize_b_on3"; } program { name: "icon_down"; signal: "mouse,down,*"; source: "e.event.icon"; action: STATE_SET "active" 0.0; target: "icon_area"; } program { name: "icon_up"; signal: "mouse,up,*"; source: "e.event.icon"; action: STATE_SET "default" 0.0; target: "icon_area"; } program { name: "bt_close_down"; signal: "mouse,down,*"; source: "e.event.close"; action: STATE_SET "active" 0.0; target: "bt_close_unfoc"; target: "bt_close_foc"; } program { name: "bt_close_up"; signal: "mouse,up,*"; source: "e.event.close"; action: STATE_SET "default" 0.0; target: "bt_close_unfoc"; target: "bt_close_foc"; } program { name: "bt_max_down"; signal: "mouse,down,*"; source: "e.event.maximize"; action: STATE_SET "active" 0.0; target: "bt_max_unfoc"; target: "bt_max_foc"; } program { name: "bt_max_up"; signal: "mouse,up,*"; source: "e.event.maximize"; action: STATE_SET "default" 0.0; target: "bt_max_unfoc"; target: "bt_max_foc"; } program { name: "bt_min_down"; signal: "mouse,down,*"; source: "e.event.minimize"; action: STATE_SET "active" 0.0; target: "bt_min_unfoc"; target: "bt_min_foc"; } program { name: "bt_min_up"; signal: "mouse,up,*"; source: "e.event.minimize"; action: STATE_SET "default" 0.0; target: "bt_min_unfoc"; target: "bt_min_foc"; } } } /*** NORESIZE WINDOW BORDER ***/ group { name: "e/widgets/border/noresize/border"; images { image: "bd_top.png" COMP; image: "bd_top_hilight.png" COMP; image: "bd_title_bg.png" COMP; image: "bd_title_over.png" COMP; image: "busy-1.png" COMP; image: "busy-2.png" COMP; image: "busy-3.png" COMP; image: "busy-4.png" COMP; image: "busy-5.png" COMP; image: "busy-6.png" COMP; image: "busy-7.png" COMP; image: "busy-8.png" COMP; image: "busy-9.png" COMP; image: "exclam.png" COMP; image: "bd_button_close_shadow.png" COMP; image: "bd_button_close_focused.png" COMP; image: "bd_button_close_unfocused.png" COMP; image: "bd_button_max_shadow.png" COMP; image: "bd_button_max_unfocused.png" COMP; image: "bd_button_min_shadow.png" COMP; image: "bd_button_min_focused.png" COMP; image: "bd_button_min_unfocused.png" COMP; } parts { part { name: "top"; mouse_events: 0; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; offset: 0 0; } rel2 { relative: 1.0 1.0; offset: -1 -1; to_y: "title_base"; } color_class: "border_top"; image { normal: "bd_top.png"; border: 2 2 2 2; } } } part { name: "icon_area"; type: RECT; description { state: "default" 0.0; visible: 0; align: 0.0 0.5; aspect: 1.0 1.0; aspect_preference: VERTICAL; rel1 { relative: 0.0 0.0; offset: 2 2; } rel2 { relative: 0.0 1.0; offset: 2 -3; to_y: "title_base"; } } description { state: "active" 0.0; inherit: "default" 0.0; rel1 { offset: 2 3; } rel2 { offset: 2 -2; } } } part { name: "icon_area2"; type: RECT; description { state: "default" 0.0; visible: 0; rel1.to: "icon_area"; rel2.to: "icon_area"; } description { state: "uw0" 0.0; inherit: "default" 0.0; rel1.offset: -3 -2; rel2.offset: -4 -3; } description { state: "uw1" 0.0; inherit: "default" 0.0; rel1.offset: 5 -2; rel2.offset: 4 -3; } description { state: "uw2" 0.0; inherit: "default" 0.0; rel1.offset: -1 4; rel2.offset: -2 3; } description { state: "uw3" 0.0; inherit: "default" 0.0; rel1.offset: -2 -1; rel2.offset: -3 -2; } description { state: "uw4" 0.0; inherit: "default" 0.0; rel1.offset: -4 1; rel2.offset: -5 0; } } part { name: "busy"; mouse_events: 0; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; max: 32 32; aspect: 1.0 1.0; aspect_preference: BOTH; rel1.to: "icon_area"; rel2.to: "icon_area"; image { tween: "busy-1.png"; tween: "busy-2.png"; tween: "busy-3.png"; tween: "busy-4.png"; tween: "busy-5.png"; tween: "busy-6.png"; tween: "busy-7.png"; tween: "busy-8.png"; normal: "busy-9.png"; } } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "e.swallow.icon"; type: SWALLOW; description { state: "default" 0.0; aspect: 1.0 1.0; aspect_preference: BOTH; rel1.to: "icon_area2"; rel2.to: "icon_area2"; } description { state: "shrunk" 0.0; inherit: "default" 0.0; rel1.relative: 0.3 0.3; rel2.relative: 0.7 0.7; } } part { name: "urgent"; mouse_events: 0; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; aspect: 1.0 1.0; aspect_preference: BOTH; rel1.to: "icon_area"; rel2.to: "icon_area"; image.normal: "exclam.png"; } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "urgent2"; mouse_events: 0; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; aspect: 1.0 1.0; aspect_preference: BOTH; rel1.to: "icon_area"; rel2.to: "icon_area"; image.normal: "exclam.png"; } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } description { state: "faded" 0.0; inherit: "default" 0.0; rel1.relative: -1.0 -1.0; rel2.relative: 2.0 2.0; visible: 1; color: 255 255 255 0; } } part { name: "e.text.title"; type: TEXT; mouse_events: 0; description { state: "default" 0.0; visible: 1; align: 0.0 0.0; rel1 { relative: 1.0 0.0; offset: 9 2; to_x: "icon_area"; } rel2 { relative: 1.0 0.0; offset: -8 2; to_x: "title_base"; } color_class: "border_title"; text { font: "Sans:style=Bold"; size: 10; min: 0 1; align: 0.0 0.0; text_class: "title_bar"; } } description { state: "focused" 0.0; inherit: "default" 0.0; visible: 0; color: 0 0 0 0; } } part { name: "bt_close"; mouse_events: 0; description { state: "default" 0.0; min: 14 14; max: 14 14; aspect: 1.0 1.0; aspect_preference: VERTICAL; rel1 { relative: 1.0 0.0; offset: -28 1; to_x: "top"; to_y: "top"; } rel2 { relative: 1.0 1.0; to_x: "top"; to_y: "top"; } image.normal: "bd_button_close_shadow.png"; } } part { name: "bt_max"; description { state: "default" 0.0; align: 1.0 0.5; min: 22 22; max: 22 22; aspect: 1.0 1.0; aspect_preference: VERTICAL; rel1 { relative: 0.0 0.0; offset: -2 1; to_x: "bt_close"; to_y: "top"; } rel2 { relative: 0.0 1.0; offset: -2 -2; to_x: "bt_close"; to_y: "top"; } image.normal: "bd_button_max_shadow.png"; } } part { name: "bt_min"; mouse_events: 0; description { state: "default" 0.0; align: 1.0 0.5; min: 22 22; max: 22 22; aspect: 1.0 1.0; aspect_preference: VERTICAL; rel1 { relative: 0.0 0.0; offset: -2 1; to_x: "bt_max"; to_y: "top"; } rel2 { relative: 0.0 1.0; offset: -2 -2; to_x: "bt_max"; to_y: "top"; } image.normal: "bd_button_min_shadow.png"; } } part { name: "top_hilight"; mouse_events: 0; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; offset: 0 0; to: "top"; } rel2 { relative: 1.0 0.5; offset: -1 0; to: "top"; } color_class: "border_top_hilight"; image { normal: "bd_top_hilight.png"; } fill.smooth: 0; } } part { name: "buttons_unfoc"; type: RECT; description { state: "default" 0.0; visible: 1; color: 255 255 255 255; } description { state: "focused" 0.0; inherit: "default" 0.0; visible: 0; color: 255 255 255 0; } } part { name: "bt_close_unfoc"; mouse_events: 0; clip_to: "buttons_unfoc"; description { state: "default" 0.0; rel1.to: "bt_close"; rel2.to: "bt_close"; image.normal: "bd_button_close_unfocused.png"; } description { state: "active" 0.0; inherit: "default" 0.0; rel1.offset: 0 1; rel2.offset: -1 0; } } part { name: "bt_max_unfoc"; clip_to: "buttons_unfoc"; description { state: "default" 0.0; rel1.to: "bt_max"; rel2.to: "bt_max"; image.normal: "bd_button_max_unfocused.png"; } description { state: "active" 0.0; inherit: "default" 0.0; rel1.offset: 0 1; rel2.offset: -1 0; } } part { name: "bt_min_unfoc"; mouse_events: 0; clip_to: "buttons_unfoc"; description { state: "default" 0.0; rel1.to: "bt_min"; rel2.to: "bt_min"; image.normal: "bd_button_min_unfocused.png"; } description { state: "active" 0.0; inherit: "default" 0.0; rel1.offset: 0 1; rel2.offset: -1 0; } } part { name: "buttons_foc"; type: RECT; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; } description { state: "focused" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "bt_close_foc"; mouse_events: 0; clip_to: "buttons_foc"; description { state: "default" 0.0; rel1.to: "bt_close"; rel2.to: "bt_close"; 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: "bt_max_foc"; clip_to: "buttons_foc"; description { state: "default" 0.0; rel1.to: "bt_max"; rel2.to: "bt_max"; image.normal: "bd_button_max_unfocused.png"; } description { state: "active" 0.0; inherit: "default" 0.0; rel1.offset: 0 1; rel2.offset: -1 0; } } part { name: "bt_min_foc"; mouse_events: 0; clip_to: "buttons_foc"; description { state: "default" 0.0; rel1.to: "bt_min"; rel2.to: "bt_min"; image.normal: "bd_button_min_focused.png"; } description { state: "active" 0.0; inherit: "default" 0.0; rel1.offset: 0 1; rel2.offset: -1 0; } } part { name: "title_base"; type: RECT; mouse_events: 0; description { state: "default" 0.0; visible: 0; rel1 { relative: 1.0 0.0; offset: 0 0; to_x: "icon_area"; } rel2 { relative: 0.0 1.0; offset: -3 4; to_y: "e.text.title"; to_x: "bt_min"; } } } part { name: "title_back"; mouse_events: 0; description { state: "default" 0.0; visible: 0; rel1 { to: "title_base"; } rel2 { to: "title_base"; relative: 1.0 0.0; } image { normal: "bd_title_bg.png"; border: 7 7 2 7; } fill.smooth: 0; } description { state: "focused" 0.0; inherit: "default" 0.0; visible: 1; rel2 { to: "title_base"; relative: 1.0 1.0; } } } part { name: "title2"; type: TEXT; mouse_events: 0; effect: SOFT_SHADOW; description { state: "default" 0.0; visible: 0; align: 0.0 1.0; rel1 { to_x: "e.text.title"; to_y: "title_back"; relative: 0.0 1.0; offset: -1 0; } rel2 { to_x: "e.text.title"; to_y: "title_back"; relative: 1.0 1.0; offset: 0 1; } color_class: "border_title_active"; text { text_source: "e.text.title"; font: "Sans:style=Bold"; size: 10; align: 0.0 0.0; min: 0 1; text_class: "title_bar"; } } description { state: "focused" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "title_over"; mouse_events: 0; description { state: "default" 0.0; visible: 0; rel1.to: "title_back"; rel2.to: "title_back"; image { normal: "bd_title_over.png"; border: 7 7 2 7; } fill.smooth: 0; } description { state: "focused" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "e.swallow.client"; type: SWALLOW; description { state: "default" 0.0; rel1 { relative: 0.0 1.0; offset: 0 0; to_y: "top"; } rel2 { relative: 1.0 1.0; offset: -1 -1; } } description { state: "shaded" 0.0; inherit: "default" 0.0; rel2 { relative: 1.0 1.0; offset: -1 -1; } } description { state: "max" 0.0; inherit: "default" 0.0; rel1 { relative: 0.0 1.0; offset: 0 0; to_y: "top"; } rel2 { relative: 1.0 1.0; offset: -1 -1; } } } part { name: "e.event.titlebar"; type: RECT; description { state: "default" 0.0; rel1.to: "title_base"; rel2.to: "title_base"; color: 0 0 0 0; } } part { name: "e.event.icon"; type: RECT; description { state: "default" 0.0; rel1.to: "icon_area"; rel2.to: "icon_area"; color: 0 0 0 0; } } part { name: "e.event.close"; type: RECT; description { state: "default" 0.0; rel1.to: "bt_close"; rel2.to: "bt_close"; color: 0 0 0 0; } } part { name: "e.event.minimize"; type: RECT; description { state: "default" 0.0; rel1.to: "bt_min"; rel2.to: "bt_min"; color: 0 0 0 0; } } } programs { program { name: "focus_in"; signal: "e,state,focused"; source: "e"; action: STATE_SET "focused" 0.0; transition: LINEAR 0.2; target: "title_back"; target: "title2"; target: "title_over"; target: "buttons_foc"; target: "buttons_unfoc"; target: "e.text.title"; } program { name: "focus_out"; signal: "e,state,unfocused"; source: "e"; action: STATE_SET "default" 0.0; transition: LINEAR 0.2; target: "title_back"; target: "title2"; target: "title_over"; target: "buttons_foc"; target: "buttons_unfoc"; target: "e.text.title"; } program { name: "urgent"; signal: "e,state,urgent"; source: "e"; action: STATE_SET "visible" 0.0; target: "urgent"; target: "urgent2"; transition: DECELERATE 0.5; after: "urgent2"; } program { name: "urgent2"; action: STATE_SET "faded" 0.0; target: "urgent2"; transition: LINEAR 0.5; after: "urgent3"; } program { name: "urgent3"; action: STATE_SET "visible" 0.0; target: "urgent2"; after: "urgent2"; } program { name: "urgentw0"; signal: "e,state,urgent"; source: "e"; action: STATE_SET "default" 0.0; target: "icon_area2"; transition: DECELERATE 0.1; after: "urgentw1"; } program { name: "urgentw1"; action: STATE_SET "uw1" 0.0; target: "icon_area2"; transition: DECELERATE 0.1; after: "urgentw2"; } program { name: "urgentw2"; action: STATE_SET "uw2" 0.0; target: "icon_area2"; transition: DECELERATE 0.1; after: "urgentw3"; } program { name: "urgentw3"; action: STATE_SET "uw3" 0.0; target: "icon_area2"; transition: DECELERATE 0.1; after: "urgentw4"; } program { name: "urgentw4"; action: STATE_SET "uw4" 0.0; target: "icon_area2"; transition: DECELERATE 0.1; after: "urgentw0"; } program { name: "not_urgent"; signal: "e,state,not_urgent"; source: "e"; action: ACTION_STOP; target: "urgentw0"; target: "urgentw1"; target: "urgentw2"; target: "urgentw3"; target: "urgentw4"; target: "urgent"; target: "urgent2"; target: "urgent3"; after: "not_urgent2"; } program { name: "not_urgent2"; action: STATE_SET "default" 0.0; target: "urgent"; target: "urgent2"; target: "icon_area2"; } program { name: "hung"; signal: "e,state,hung"; source: "e"; /* FIXME: */ action: STATE_SET "shrunk" 0.0; target: "e.swallow.icon"; transition: DECELERATE 0.5; } program { name: "unhung"; signal: "e,state,unhung"; source: "e"; /* FIXME: */ action: ACTION_STOP; target: "busy_anim"; } program { name: "unhung2"; signal: "e,state,unhung"; source: "e"; /* FIXME: */ action: STATE_SET "default" 0.0; target: "e.swallow.icon"; target: "busy"; transition: ACCELERATE 0.5; } program { name: "busy_anim"; signal: "e,state,hung"; source: "e"; action: STATE_SET "visible" 0.0; transition: LINEAR 0.3333; target: "busy"; after: "busy_anim"; } program { name: "shade_end"; signal: "e,state,shaded"; source: "e"; action: STATE_SET "shaded" 0.0; target: "e.swallow.client"; } program { name: "unshade_start"; signal: "e,state,unshading"; source: "e"; action: STATE_SET "default" 0.0; target: "e.swallow.client"; } program { name: "icon_down"; signal: "mouse,down,*"; source: "e.event.icon"; action: STATE_SET "active" 0.0; target: "icon_area"; } program { name: "icon_up"; signal: "mouse,up,*"; source: "e.event.icon"; action: STATE_SET "default" 0.0; target: "icon_area"; } program { name: "bt_close_down"; signal: "mouse,down,*"; source: "e.event.close"; action: STATE_SET "active" 0.0; target: "bt_close_unfoc"; target: "bt_close_foc"; } program { name: "bt_close_up"; signal: "mouse,up,*"; source: "e.event.close"; action: STATE_SET "default" 0.0; target: "bt_close_unfoc"; target: "bt_close_foc"; } program { name: "bt_min_down"; signal: "mouse,down,*"; source: "e.event.minimize"; action: STATE_SET "active" 0.0; target: "bt_min_unfoc"; target: "bt_min_foc"; } program { name: "bt_min_up"; signal: "mouse,up,*"; source: "e.event.minimize"; action: STATE_SET "default" 0.0; target: "bt_min_unfoc"; target: "bt_min_foc"; } } } #endif /*** DIALOG WINDOW BORDER ***/ group { name: "e/widgets/border/dialog/border"; images { image: "added_images/DM_Internet_Title_bg.png" COMP; image: "added_images/DM_Internet_icon_close.png" COMP; image: "bd_top.png" COMP; image: "bd_top_hilight.png" COMP; image: "bd_bottom.png" COMP; image: "bd_title_bg.png" COMP; image: "bd_title_over.png" COMP; image: "bd_resize_b.png" COMP; image: "busy-1.png" COMP; image: "busy-2.png" COMP; image: "busy-3.png" COMP; image: "busy-4.png" COMP; image: "busy-5.png" COMP; image: "busy-6.png" COMP; image: "busy-7.png" COMP; image: "busy-8.png" COMP; image: "busy-9.png" COMP; image: "exclam.png" COMP; image: "bd_button_close_shadow.png" COMP; image: "bd_button_close_focused.png" COMP; image: "bd_button_close_unfocused.png" COMP; } parts { part { name: "top"; mouse_events: 0; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; offset: 0 0; } rel2 { relative: 1.0 1.0; to_y: "title_base"; } color_class: "border_top"; image { normal: "added_images/DM_Internet_Title_bg.png"; } } } part { name: "bottom"; mouse_events: 0; type: RECT; description { state: "default" 0.0; rel1 { relative: 0.0 1.0; offset: 0 -3; } rel2 { relative: 1.0 1.0; } color_class: "border_bottom"; } description { state: "shaded" 0.0; inherit: "default" 0.0; visible: 0; } description { state: "max" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "left"; mouse_events: 0; type: RECT; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; to_y: "title_base"; offset: -2 0; } rel2 { relative: 0.0 1.0; offset: 0 0; } color_class: "border_bottom"; } description { state: "shaded" 0.0; inherit: "default" 0.0; visible: 0; } description { state: "max" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "right"; mouse_events: 0; type: RECT; description { state: "default" 0.0; rel1 { relative: 1.0 0.0; to_y: "title_base"; offset: -1 0; } rel2 { relative: 1.0 1.0; offset: 0 0; } color_class: "border_bottom"; } description { state: "shaded" 0.0; inherit: "default" 0.0; visible: 0; } description { state: "max" 0.0; /* whem maximised too */ inherit: "default" 0.0; visible: 0; } } part { name: "e.text.title"; type: TEXT; mouse_events: 0; description { state: "default" 0.0; visible: 1; align: 0.5 0.0; rel1 { relative: 0.0 0.0; offset: 9 2; } rel2 { relative: 1.0 0.0; offset: -8 2; to_x: "title_base"; } color: 255 255 255 255; text { font: "Sans"; size: 14; min: 0 1; align: 0.5 0.0; text_class: "title_bar"; } } description { state: "focused" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "bt_close"; mouse_events: 0; description { state: "default" 0.0; min: 14 14; max: 14 14; rel1 { relative: 1.0 0.0; offset: -24 0; to_x: "top"; to_y: "top"; } rel2 { relative: 1.0 1.0; offset: 0 -2; to_x: "top"; to_y: "top"; } image.normal: "added_images/DM_Internet_icon_close.png"; } } part { name: "top_hilight"; mouse_events: 0; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; offset: 0 0; to: "top"; } rel2 { relative: 1.0 0.5; offset: -1 0; to: "top"; } color_class: "border_top_hilight"; fill.smooth: 0; } } part { name: "buttons_unfoc"; type: RECT; description { state: "default" 0.0; visible: 1; color: 255 255 255 255; } description { state: "focused" 0.0; inherit: "default" 0.0; visible: 0; color: 255 255 255 0; } } part { name: "bt_close_unfoc"; mouse_events: 0; clip_to: "buttons_unfoc"; description { state: "default" 0.0; rel1.to: "bt_close"; rel2.to: "bt_close"; image.normal: "added_images/DM_Internet_icon_close.png"; } description { state: "active" 0.0; inherit: "default" 0.0; rel1.offset: 0 1; rel2.offset: -1 0; } } part { name: "buttons_foc"; type: RECT; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; } description { state: "focused" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "bt_close_foc"; mouse_events: 0; clip_to: "buttons_foc"; description { state: "default" 0.0; rel1.to: "bt_close"; rel2.to: "bt_close"; image.normal: "added_images/DM_Internet_icon_close.png"; } description { state: "active" 0.0; inherit: "default" 0.0; rel1.offset: 0 1; rel2.offset: -1 0; } } part { name: "title_base"; type: RECT; mouse_events: 0; description { state: "default" 0.0; visible: 0; rel1 { relative: 0.0 0.0; offset: 0 0; //to_x: "icon_area"; } rel2 { relative: 0.0 1.0; offset: -3 4; to_y: "e.text.title"; to_x: "bt_close"; } } } part { name: "title_back"; mouse_events: 0; description { state: "default" 0.0; visible: 0; rel1 { to: "title_base"; } rel2 { to: "title_base"; relative: 1.0 0.0; } fill.smooth: 0; } description { state: "focused" 0.0; inherit: "default" 0.0; visible: 1; rel2 { to: "title_base"; relative: 1.0 1.0; } } } part { name: "title2"; type: TEXT; mouse_events: 0; effect: SOFT_SHADOW; description { state: "default" 0.0; visible: 0; align: 0.0 1.0; rel1 { to_x: "e.text.title"; to_y: "title_back"; relative: 0.0 1.0; offset: -1 0; } rel2 { to_x: "e.text.title"; to_y: "title_back"; relative: 1.0 1.0; offset: 0 0; } color_class: "border_title_active"; text { text_source: "e.text.title"; font: "Sans:style=Bold"; size: 10; align: 0.5 0.0; min: 0 1; text_class: "title_bar"; } } description { state: "focused" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "title_over"; mouse_events: 0; description { state: "default" 0.0; visible: 0; rel1.to: "title_back"; rel2.to: "title_back"; fill.smooth: 0; } description { state: "focused" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "bottom_clip"; type: RECT; description { state: "default" 0.0; rel1.to: "bottom"; rel2.to: "bottom"; color: 255 255 255 255; } } part { name: "resize_b"; mouse_events: 0; clip_to: "bottom_clip"; description { state: "default" 0.0; min: 20 10; max: 20 10; rel1 { to: "bottom"; relative: 0.5 0.0; offset: 0 -10; } rel2 { to: "bottom"; relative: 0.5 0.0; offset: 0 -1; } image { normal: "bd_resize_b.png"; } } description { state: "past" 0.0; inherit: "default" 0.0; rel1 { relative: 0.5 1.0; offset: 0 0; } rel2 { relative: 0.5 1.0; offset: 0 9; } } } part { name: "e.swallow.client"; type: SWALLOW; description { state: "default" 0.0; rel1 { relative: 1.0 1.0; offset: 0 0; to_x: "left"; to_y: "top"; } rel2 { relative: 0.0 0.0; offset: -1 0; to_x: "right"; to_y: "bottom"; } } description { state: "shaded" 0.0; inherit: "default" 0.0; rel2 { relative: 1.0 1.0; offset: -1 -1; to_y: "bottom"; } } description { state: "max" 0.0; inherit: "default" 0.0; rel1 { relative: 0.0 1.0; offset: 0 0; to_y: "top"; } rel2 { relative: 1.0 1.0; offset: -1 -1; to_y: "bottom"; } } } part { name: "e.event.titlebar"; type: RECT; description { state: "default" 0.0; rel1.to: "title_base"; rel2.to: "title_base"; color: 0 0 0 0; } } part { name: "e.event.resize.t"; type: RECT; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; offset: 0 0; } rel2 { relative: 1.0 0.0; offset: -1 3; } color: 0 0 0 0; } description { state: "shaded" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "e.event.resize.b"; type: RECT; description { state: "default" 0.0; rel1 { relative: 0.0 1.0; offset: 0 -4; } rel2 { relative: 1.0 1.0; offset: -1 -1; } color: 0 0 0 0; } description { state: "shaded" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "e.event.resize.l"; type: RECT; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; offset: 0 0; } rel2 { relative: 0.0 1.0; offset: 5 -3; } color: 0 0 0 0; } description { state: "shaded" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "e.event.resize.r"; type: RECT; description { state: "default" 0.0; rel1 { relative: 1.0 0.0; offset: -5 0; } rel2 { relative: 1.0 1.0; offset: 1 -1; } color: 0 0 0 0; } description { state: "shaded" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "e.event.resize.tl"; type: RECT; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; offset: 0 0; } rel2 { relative: 0.0 0.0; offset: 15 15; } color: 0 0 0 0; } description { state: "shaded" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "e.event.resize.tr"; type: RECT; description { state: "default" 0.0; rel1 { relative: 1.0 0.0; offset: -16 0; } rel2 { relative: 1.0 0.0; offset: -1 15; } color: 0 0 0 0; } description { state: "shaded" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "e.event.resize.bl"; type: RECT; description { state: "default" 0.0; rel1 { relative: 0.0 1.0; offset: 0 -16; } rel2 { relative: 0.0 1.0; offset: 15 -1; } color: 0 0 0 0; } description { state: "shaded" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "e.event.resize.br"; type: RECT; description { state: "default" 0.0; rel1 { relative: 1.0 1.0; offset: -16 -16; } rel2 { relative: 1.0 1.0; offset: -1 -1; } color: 0 0 0 0; } description { state: "shaded" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "e.event.close"; type: RECT; description { state: "default" 0.0; rel1.to: "bt_close"; rel2.to: "bt_close"; color: 0 0 0 0; } } } programs { program { name: "focus_in"; signal: "e,state,focused"; source: "e"; action: STATE_SET "focused" 0.0; target: "buttons_foc"; target: "buttons_unfoc"; } program { name: "focus_out"; signal: "e,state,unfocused"; source: "e"; action: STATE_SET "default" 0.0; target: "buttons_foc"; target: "buttons_unfoc"; } program { name: "max_full"; signal: "e,action,maximize,fullscreen"; source: "e"; action: STATE_SET "max" 0.0; target: "bottom"; target: "e.swallow.client"; } program { name: "unmax_full"; signal: "e,action,unmaximize,fullscreen"; source: "e"; action: STATE_SET "default" 0.0; target: "bottom"; target: "e.swallow.client"; } program { name: "shade_end"; signal: "e,state,shaded"; source: "e"; action: STATE_SET "shaded" 0.0; target: "bottom"; target: "e.swallow.client"; target: "e.event.resize.tl"; target: "e.event.resize.tr"; target: "e.event.resize.bl"; target: "e.event.resize.br"; target: "e.event.resize.t"; target: "e.event.resize.b"; } program { name: "unshade_start"; signal: "e,state,unshading"; source: "e"; action: STATE_SET "default" 0.0; target: "bottom"; target: "e.swallow.client"; target: "e.event.resize.tl"; target: "e.event.resize.tr"; target: "e.event.resize.bl"; target: "e.event.resize.br"; target: "e.event.resize.t"; target: "e.event.resize.b"; } program { name: "resize_b_on"; signal: "mouse,in"; source: "e.event.resize.b"; action: ACTION_STOP; target: "resize_b_on2"; target: "resize_b_on3"; after: "resize_b_on2"; } program { name: "resize_b_on2"; action: STATE_SET "default" 0.0; target: "resize_b"; after: "resize_b_on3"; } program { name: "resize_b_on3"; action: STATE_SET "past" 0.0; transition: LINEAR 0.5; target: "resize_b"; after: "resize_b_on2"; } program { name: "resize_b_off"; signal: "mouse,out"; source: "e.event.resize.b"; action: ACTION_STOP; target: "resize_b_on"; target: "resize_b_on2"; target: "resize_b_on3"; } program { name: "bt_close_down"; signal: "mouse,down,*"; source: "e.event.close"; action: STATE_SET "active" 0.0; target: "bt_close_unfoc"; target: "bt_close_foc"; } program { name: "bt_close_up"; signal: "mouse,up,*"; source: "e.event.close"; action: STATE_SET "default" 0.0; target: "bt_close_unfoc"; target: "bt_close_foc"; } } } /*** NORESIZE DIALOG WINDOW BORDER ***/ group { name: "e/widgets/border/noresize_dialog/border"; images { image: "added_images/DM_Internet_Title_bg.png" COMP; image: "added_images/DM_Internet_icon_close.png" COMP; image: "bd_top.png" COMP; image: "bd_top_hilight.png" COMP; image: "bd_bottom.png" COMP; image: "bd_title_bg.png" COMP; image: "bd_title_over.png" COMP; image: "bd_resize_b.png" COMP; image: "busy-1.png" COMP; image: "busy-2.png" COMP; image: "busy-3.png" COMP; image: "busy-4.png" COMP; image: "busy-5.png" COMP; image: "busy-6.png" COMP; image: "busy-7.png" COMP; image: "busy-8.png" COMP; image: "busy-9.png" COMP; image: "exclam.png" COMP; image: "bd_button_close_shadow.png" COMP; image: "bd_button_close_focused.png" COMP; image: "bd_button_close_unfocused.png" COMP; } parts { part { name: "top"; mouse_events: 0; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; offset: 0 0; } rel2 { relative: 1.0 1.0; to_y: "title_base"; } color_class: "border_top"; image { normal: "added_images/DM_Internet_Title_bg.png"; } } } part { name: "bottom"; mouse_events: 0; description { state: "default" 0.0; rel1 { relative: 0.0 1.0; offset: 0 -3; } rel2 { relative: 1.0 1.0; } color_class: "border_bottom"; } description { state: "shaded" 0.0; inherit: "default" 0.0; visible: 0; } description { state: "max" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "left"; mouse_events: 0; type: RECT; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; to_y: "title_base"; offset: -2 0; } rel2 { relative: 0.0 1.0; offset: 0 0; } color_class: "border_bottom"; } description { state: "shaded" 0.0; inherit: "default" 0.0; visible: 0; } description { state: "max" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "right"; mouse_events: 0; type: RECT; description { state: "default" 0.0; rel1 { relative: 1.0 0.0; to_y: "title_base"; offset: -1 0; } rel2 { relative: 1.0 1.0; offset: 0 0; } color_class: "border_bottom"; } description { state: "shaded" 0.0; inherit: "default" 0.0; visible: 0; } description { state: "max" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "e.text.title"; type: TEXT; mouse_events: 0; description { state: "default" 0.0; visible: 1; align: 0.5 0.0; rel1 { relative: 0.0 0.0; offset: 9 2; //to_x: "title_base"; } rel2 { relative: 1.0 0.0; offset: -8 2; to_x: "title_base"; } color: 255 255 255 255; text { font: "Sans"; size: 14; min: 0 1; align: 0.5 0.0; text_class: "title_bar"; } } description { state: "focused" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "bt_close"; mouse_events: 0; description { state: "default" 0.0; min: 14 14; max: 14 14; aspect: 1.0 1.0; aspect_preference: VERTICAL; rel1 { relative: 1.0 0.0; offset: -24 0; to_x: "top"; to_y: "top"; } rel2 { relative: 1.0 1.0; offset: 0 -2; to_x: "top"; to_y: "top"; } image.normal: "added_images/DM_Internet_icon_close.png"; } } part { name: "top_hilight"; mouse_events: 0; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; offset: 0 0; to: "top"; } rel2 { relative: 1.0 0.5; offset: -1 0; to: "top"; } color_class: "border_top_hilight"; fill.smooth: 0; } } part { name: "buttons_unfoc"; type: RECT; description { state: "default" 0.0; visible: 1; color: 255 255 255 255; } description { state: "focused" 0.0; inherit: "default" 0.0; visible: 0; color: 255 255 255 0; } } part { name: "bt_close_unfoc"; mouse_events: 0; clip_to: "buttons_unfoc"; description { state: "default" 0.0; rel1.to: "bt_close"; rel2.to: "bt_close"; image.normal: "added_images/DM_Internet_icon_close.png"; } description { state: "active" 0.0; inherit: "default" 0.0; rel1.offset: 0 1; rel2.offset: -1 0; } } part { name: "buttons_foc"; type: RECT; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; } description { state: "focused" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "bt_close_foc"; mouse_events: 0; clip_to: "buttons_foc"; description { state: "default" 0.0; rel1.to: "bt_close"; rel2.to: "bt_close"; image.normal: "added_images/DM_Internet_icon_close.png"; } description { state: "active" 0.0; inherit: "default" 0.0; rel1.offset: 0 1; rel2.offset: -1 0; } } part { name: "title_base"; type: RECT; mouse_events: 0; description { state: "default" 0.0; visible: 0; rel1 { relative: 0.0 0.0; offset: 0 0; } rel2 { relative: 0.0 1.0; offset: -3 4; to_y: "e.text.title"; to_x: "bt_close"; } } } part { name: "title_back"; mouse_events: 0; description { state: "default" 0.0; visible: 0; rel1 { to: "title_base"; } rel2 { to: "title_base"; relative: 1.0 0.0; } fill.smooth: 0; } description { state: "focused" 0.0; inherit: "default" 0.0; visible: 1; rel2 { to: "title_base"; relative: 1.0 1.0; } } } part { name: "title2"; type: TEXT; mouse_events: 0; effect: SOFT_SHADOW; description { state: "default" 0.0; visible: 0; align: 0.0 1.0; rel1 { to_x: "e.text.title"; to_y: "title_back"; relative: 0.0 1.0; offset: -1 0; } rel2 { to_x: "e.text.title"; to_y: "title_back"; relative: 1.0 1.0; offset: 0 0; } color_class: "border_title_active"; text { text_source: "e.text.title"; font: "Sans:style=Bold"; size: 10; align: 0.5 0.0; min: 0 1; text_class: "title_bar"; } } description { state: "focused" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "title_over"; mouse_events: 0; description { state: "default" 0.0; visible: 0; rel1.to: "title_back"; rel2.to: "title_back"; fill.smooth: 0; } description { state: "focused" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "bottom_clip"; type: RECT; description { state: "default" 0.0; rel1.to: "bottom"; rel2.to: "bottom"; color: 255 255 255 255; } } part { name: "resize_b"; mouse_events: 0; clip_to: "bottom_clip"; description { state: "default" 0.0; min: 20 10; max: 20 10; rel1 { to: "bottom"; relative: 0.5 0.0; offset: 0 -10; } rel2 { to: "bottom"; relative: 0.5 0.0; offset: 0 -1; } image { normal: "bd_resize_b.png"; } } description { state: "past" 0.0; inherit: "default" 0.0; rel1 { relative: 0.5 1.0; offset: 0 0; } rel2 { relative: 0.5 1.0; offset: 0 9; } } } part { name: "e.swallow.client"; type: SWALLOW; description { state: "default" 0.0; rel1 { relative: 1.0 1.0; offset: 0 0; to_x: "left"; to_y: "top"; } rel2 { relative: 0.0 0.0; offset: -1 -1; to_x: "right"; to_y: "bottom"; } } description { state: "shaded" 0.0; inherit: "default" 0.0; rel2 { relative: 1.0 1.0; offset: -1 -1; to_y: "bottom"; } } description { state: "max" 0.0; inherit: "default" 0.0; rel1 { relative: 0.0 1.0; offset: 0 0; to_y: "top"; } rel2 { relative: 1.0 1.0; offset: -1 -1; to_y: "bottom"; } } } part { name: "e.event.titlebar"; type: RECT; description { state: "default" 0.0; rel1.to: "title_base"; rel2.to: "title_base"; color: 0 0 0 0; } } part { name: "e.event.close"; type: RECT; description { state: "default" 0.0; rel1.to: "bt_close"; rel2.to: "bt_close"; color: 0 0 0 0; } } } programs { program { name: "focus_in"; signal: "e,state,focused"; source: "e"; action: STATE_SET "focused" 0.0; target: "buttons_foc"; target: "buttons_unfoc"; } program { name: "focus_out"; signal: "e,state,unfocused"; source: "e"; action: STATE_SET "default" 0.0; target: "buttons_foc"; target: "buttons_unfoc"; } program { name: "max_full"; signal: "e,action,maximize,fullscreen"; source: "e"; action: STATE_SET "max" 0.0; target: "bottom"; target: "e.swallow.client"; } program { name: "unmax_full"; signal: "e,action,unmaximize,fullscreen"; source: "e"; action: STATE_SET "default" 0.0; target: "bottom"; target: "e.swallow.client"; } program { name: "resize_b_on"; signal: "mouse,in"; source: "e.event.resize.b"; action: ACTION_STOP; target: "resize_b_on2"; target: "resize_b_on3"; after: "resize_b_on2"; } program { name: "resize_b_on2"; action: STATE_SET "default" 0.0; target: "resize_b"; after: "resize_b_on3"; } program { name: "resize_b_on3"; action: STATE_SET "past" 0.0; transition: LINEAR 0.5; target: "resize_b"; after: "resize_b_on2"; } program { name: "resize_b_off"; signal: "mouse,out"; source: "e.event.resize.b"; action: ACTION_STOP; target: "resize_b_on"; target: "resize_b_on2"; target: "resize_b_on3"; } program { name: "bt_close_down"; signal: "mouse,down,*"; source: "e.event.close"; action: STATE_SET "active" 0.0; target: "bt_close_unfoc"; target: "bt_close_foc"; } program { name: "bt_close_up"; signal: "mouse,up,*"; source: "e.event.close"; action: STATE_SET "default" 0.0; target: "bt_close_unfoc"; target: "bt_close_foc"; } } } /*** BONUS BORDERS TO CHOOSE FROM ***/ group { name: "e/widgets/border/pixel/border"; parts { part { name: "px1"; type: RECT; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; offset: 0 0; } rel2 { relative: 1.0 0.0; offset: -1 0; } color: 0 0 0 255; } } part { name: "px2"; type: RECT; description { state: "default" 0.0; rel1 { relative: 0.0 1.0; offset: 0 -1; } rel2 { relative: 1.0 1.0; offset: -1 -1; } color: 0 0 0 255; } } part { name: "px3"; type: RECT; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; offset: 0 1; } rel2 { relative: 0.0 1.0; offset: 0 -2; } color: 0 0 0 255; } } part { name: "px4"; type: RECT; description { state: "default" 0.0; rel1 { relative: 1.0 0.0; offset: -1 1; } rel2 { relative: 1.0 1.0; offset: -1 -2; } color: 0 0 0 255; } } part { name: "e.swallow.client"; type: SWALLOW; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; offset: 1 1; } rel2 { relative: 1.0 1.0; offset: -2 -2; } } } } } ///////////////////////////////////////////////////////////////////////////// /*** THE DEFAULT MOUSE CURSOR - COLOR ***/ group { name: "e/pointer/enlightenment/default/color"; images { image: "added_images/e17_pointer_mono.png" COMP; } parts { part { name: "base"; mouse_events: 0; description { state: "default" 0.0; image { normal: "added_images/e17_pointer_mono.png"; } } } part { name: "e.swallow.hotspot"; /* this is a "fake" swallow part * that is used by e to determine * the pointer hotspot - or where * the actual mouse events get * reported from on the cursor */ type: SWALLOW; description { state: "default" 0.0; visible: 0; rel1 { /* the hotspot will scale with the cursor here */ to: "base"; relative: 0.27 0.125; offset: 0 0; } rel2 { to: "base"; relative: 0.27 0.125; offset: 0 0; } } } } } ///////////////////////////////////////////////////////////////////////////// /*** THE DEFAULT MOUSE CURSOR - MONOCHROME. REALLY BORING ***/ /* This pointer is used if the Xserver does not support full ARGB color * pointers. This can happen if X is old or the driver or libxcursor did * not exist when ecore was compiled. since the cursor will be literally * reduced down to black and white with a single transparency mask, * colors other than black and whigte will be lost (and be approximated * with dithering) and any translucency other than completely opaque or * completely transparent pixels will also be lost. it then makes sense * to have a special black and white only image with no semi-transparency * so when this is displayed it will look directly as intended by the * artist */ group { name: "e/pointer/enlightenment/default/mono"; images { image: "added_images/e17_pointer_mono.png" COMP; } parts { part { name: "e/pointer"; mouse_events: 0; description { state: "default" 0.0; image { normal: "added_images/e17_pointer_mono.png"; } } } part { name: "hotspot"; /* this cursor also has a hotspot */ type: SWALLOW; description { state: "default" 0.0; visible: 0; rel1 { relative: 0.0 0.0; offset: 1 1; } rel2 { relative: 0.0 0.0; offset: 1 1; } } } } } ///////////////////////////////////////////////////////////////////////////// /*** TOOLBAR ****/ group { name: "e/widgets/toolbar"; images { image: "bt_dis_base.png" COMP; image: "bt_dis_hilight.png" COMP; image: "bt_dis_shine.png" COMP; image: "icon_left_arrow.png" COMP; image: "icon_right_arrow.png" COMP; } parts { part { name: "base"; mouse_events: 1; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; offset: 2 2; } rel2.offset: -3 -3; image { normal: "bt_dis_base.png"; border: 4 4 4 4; } } } part { name: "clipper"; type: RECT; mouse_events: 0; description { state: "default" 0.0; rel1 { to: "base"; offset: 2 2; } rel2 { to: "base"; offset: -3 -3; } } } part { name: "e.swallow.content"; clip_to: "clipper"; type: SWALLOW; description { state: "default" 0.0; rel1.to: "clipper"; rel2.to: "clipper"; } } part { name: "over2"; mouse_events: 0; description { state: "default" 0.0; rel1.to: "base"; rel2.to: "base"; image { normal: "bt_dis_shine.png"; border: 4 4 4 4; } } } part { name: "over1"; mouse_events: 0; description { state: "default" 0.0; rel1.to: "base"; rel2.to: "base"; rel2.relative: 1.0 0.5; image { normal: "bt_dis_hilight.png"; border: 4 4 4 0; } color: 255 255 255 128; } } part { name: "left_arrow"; mouse_events: 1; scale: 1; description { state: "default" 0.0; image.normal: "icon_left_arrow.png"; aspect: 1.0 1.0; aspect_preference: VERTICAL; align: 0.0 0.5; min: 32 32; max: 32 32; } description { state: "hidden" 0.0; inherit: "default" 0.0; visible: 0; color: 255 255 255 0; } } part { name: "right_arrow"; mouse_events: 1; scale: 1; description { state: "default" 0.0; image.normal: "icon_right_arrow.png"; aspect: 1.0 1.0; aspect_preference: VERTICAL; align: 1.0 0.5; min: 32 32; max: 32 32; } description { state: "hidden" 0.0; inherit: "default" 0.0; visible: 0; color: 255 255 255 0; } } part { name: "e.dragable.hbar"; mouse_events: 0; dragable { x: 1 1 0; y: 0 0 0; confine: "base"; } description { state: "default" 0.0; visible: 0; rel1.to: "base"; rel2.to: "base"; } } part { name: "event"; type: RECT; mouse_events: 1; repeat_events: 1; description { state: "default" 0.0; color: 0 0 0 0; } } } programs { program { name: "sb_hbar_show"; signal: "e,action,show,hbar"; source: "e"; action: STATE_SET "default" 0.0; transition: LINEAR 0.5; target: "left_arrow"; target: "right_arrow"; } program { name: "sb_hbar_hide"; signal: "e,action,hide,hbar"; source: "e"; action: STATE_SET "hidden" 0.0; target: "left_arrow"; target: "right_arrow"; transition: LINEAR 0.5; } program { name: "sb_left"; signal: "mouse,down,1"; source: "left_arrow"; action: SIGNAL_EMIT "e,action,prev" "e"; } program { name: "sb_right"; signal: "mouse,down,1"; source: "right_arrow"; action: SIGNAL_EMIT "e,action,next" "e"; } } } group { name: "e/widgets/toolbar/item"; images { image: "toolbar_sel.png" COMP; } parts { part { name: "label2"; type: TEXT; mouse_events: 0; scale: 1; description { state: "default" 0.0; align: 0.5 1.0; fixed: 0 1; rel1.to: "e.text.label"; rel2.to: "e.text.label"; color: 0 0 0 255; text { font: "Sans"; text_source: "e.text.label"; size: 10; min: 1 1; align: 0.5 0.5; text_class: "fileman_icon"; } } description { state: "selected" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "bg"; mouse_events: 0; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; image { normal: "toolbar_sel.png"; border: 3 3 0 0; } fill.smooth: 0; } description { state: "selected" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "e.swallow.icon"; type: SWALLOW; description { state: "default" 0.0; align: 0.5 0.5; rel1 { relative: 0.0 0.0; offset: 2 2; } rel2 { to_y: "e.text.label"; relative: 1.0 0.0; offset: -3 -1; } color: 0 0 0 0; } } part { name: "e.text.label"; type: TEXT; effect: SOFT_SHADOW; mouse_events: 0; scale: 1; description { state: "default" 0.0; align: 0.5 1.0; fixed: 0 1; rel1 { relative: 0.0 1.0; offset: 0 2; } rel2 { relative: 1.0 1.0; offset: -1 -1; } visible: 0; color: 224 224 224 255; color3: 0 0 0 32; text { font: "Sans:style=Bold"; size: 10; min: 1 1; align: 0.5 0.5; text_class: "fileman_icon"; } } description { state: "selected" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "event"; type: RECT; mouse_events: 1; ignore_flags: ON_HOLD; description { state: "default" 0.0; color: 0 0 0 0; } } } programs { program { name: "go_active"; signal: "e,state,selected"; source: "e"; action: STATE_SET "selected" 0.0; target: "bg"; target: "e.text.label"; target: "label2"; transition: LINEAR 0.2; } program { name: "go_passive"; signal: "e,state,unselected"; source: "e"; action: STATE_SET "default" 0.0; target: "bg"; target: "e.text.label"; target: "label2"; transition: LINEAR 0.1; } program { name: "go"; signal: "mouse,up,1"; source: "event"; action: SIGNAL_EMIT "e,action,click" "e"; } } } ///////////////////////////////////////////////////////////////////////////// /*** MENUS ***/ /* this is the background for all menus. it also may optionally display a * title for the menu. this is wrapped around all the menu items that are * laid out in a vertical list from top to bottom */ group { name: "e/widgets/menu/default/background"; images { image: "base_bg.png" COMP; image: "bd_top_hilight.png" COMP; image: "bd_title_bg.png" COMP; image: "bd_title_over.png" COMP; } parts { part { name: "base"; mouse_events: 0; description { state: "default" 0.0; align: 0.5 0.0; color_class: "menu_base"; image { normal: "base_bg.png"; border: 2 2 2 2; } fill.smooth: 0; /* note - a shortcut for avoiding doing * fill { smooth: 0; } */ } } part { name: "top_hilight"; mouse_events: 0; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; offset: 0 0; } rel2 { relative: 1.0 0.0; offset: -1 15; } image.normal: "bd_top_hilight.png"; fill.smooth: 0; } } part { name: "title_back"; mouse_events: 0; description { state: "default" 0.0; visible: 0; rel1 { relative: 0.0 0.0; offset: 4 0; } rel2 { relative: 1.0 0.0; offset: -5 0; } image { normal: "bd_title_bg.png"; border: 7 7 2 7; } fill.smooth: 0; } description { state: "active" 0.0; inherit: "default" 0.0; visible: 1; rel1 { relative: 0.0 0.0; offset: 4 0; } rel2 { to_y: "e.text.title"; relative: 1.0 1.0; offset: -5 -4; } } } part { name: "e.text.title"; /* e sets the text of this to the title * if there is any */ type: TEXT; mouse_events: 0; scale: 1; effect: SOFT_SHADOW; description { state: "default" 0.0; fixed: 1 1; visible: 0; align: 0.5 0.0; rel1 { relative: 0.0 0.0; offset: 0 0; } rel2 { relative: 1.0 0.0; offset: -1 0; } color_class: "menu_title"; text { text_source: "e.text.title"; font: "Sans:style=Bold"; size: 10; align: 0.5 0.0; min: 0 0; text_class: "menu_title"; } } description { state: "active" 0.0; inherit: "default" 0.0; visible: 1; color_class: "menu_title_active"; text.min: 1 1; } } part { name: "title_over"; mouse_events: 0; description { state: "default" 0.0; visible: 0; rel1.to: "title_back"; rel2.to: "title_back"; image { normal: "bd_title_over.png"; border: 7 7 2 7; } fill.smooth: 0; } description { state: "active" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "e.swallow.content"; /* this swallow part determines * where in the menu the vertical * list of menu items is put */ type: SWALLOW; description { state: "default" 0.0; rel1 { to_y: "e.text.title"; relative: 0.0 1.0; offset: 2 1; } rel2 { relative: 1.0 1.0; offset: -3 -3; } } } } programs { program { name: "on"; /* this program is run when e emits a signal * to display a title. e will also set the * title text */ signal: "e,action,show,title"; source: "e"; action: STATE_SET "active" 0.0; target: "title_back"; target: "e.text.title"; target: "title_over"; } program { name: "off"; /* run when the title is removed */ signal: "e,action,hide,title"; source: "e"; action: STATE_SET "default" 0.0; target: "title_back"; target: "e.text.title"; target: "title_over"; } } } /* this is placed as a horizontal separator between menu items in the * vertical menu item list. it has no functionality other than being * a visual separator */ group { name: "e/widgets/menu/default/separator"; images { image: "menu_sep.png" COMP; } parts { part { name: "separator"; mouse_events: 0; description { state: "default" 0.0; min: 16 2; rel1.offset: 2 2; rel2.offset: -3 -3; image { normal: "menu_sep.png"; border: 2 2 0 0; } fill.smooth: 0; } } } } /* this is used for regular menu items. this is what swallows/holds the * whole line of the menu item, icon, check/radio mark, label and submenu * indicator, where applicable */ group { name: "e/widgets/menu/default/item_bg"; /* this is idential to the regular menu item above, but used only for * items that have a submenu. this is to allow for a possible different * look for submenu holding items. here this is identical to to the * normal menu item, thus we are making use of the alias directive that * gives a group the ability to go by manu names */ alias: "e/widgets/menu/default/submenu_bg"; images { image: "menu_sel_bg.png" COMP; image: "menu_sel_fg.png" COMP; } parts { part { name: "bg"; mouse_events: 0; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; rel1 { relative: 0.0 0.0; offset: -5 -3; } rel2 { relative: 1.0 1.0; offset: 4 5; } image { normal: "menu_sel_bg.png"; border: 8 8 5 9; } } description { state: "selected" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; rel1 { relative: 0.0 0.0; offset: -2 0; } rel2 { relative: 1.0 1.0; offset: 1 2; } } } part { name: "e.swallow.content"; /* all item content will go here */ type: SWALLOW; description { state: "default" 0.0; align: 0.0 0.0; rel1.offset: 2 1; rel2.offset: -3 -2; } } part { name: "fg"; mouse_events: 0; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; rel1.to: "bg"; rel2.to: "bg"; image { normal: "menu_sel_fg.png"; border: 8 8 5 9; } } description { state: "selected" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } } programs { program { name: "sel"; /* when the menu item is selected (hilighted) * this program is run to give the whole item * an overall selected look */ signal: "e,state,selected"; source: "e"; action: STATE_SET "selected" 0.0; transition: LINEAR 0.2; target: "bg"; target: "fg"; } program { name: "unsel"; /* when selection is removed from the menu * item */ signal: "e,state,unselected"; source: "e"; action: STATE_SET "default" 0.0; transition: LINEAR 0.1; target: "bg"; target: "fg"; } } } /* this group holds a menu icon. here we just use it to add padding around * the icon. And to gray-out when disabled */ group { name: "e/widgets/menu/default/icon"; parts { part { name: "clip"; type: RECT; description { min: 10 10; state: "default" 0.0; color: 255 255 255 255; } description { state: "disabled" 0.0; color: 255 255 255 128; } } part { name: "e.swallow.content"; /* icon is swallowed here */ type: SWALLOW; clip_to: "clip"; description { state: "default" 0.0; min: 16 16; max: 24 24; fixed: 1 1; rel1 { relative: 0.0 0.0; offset: 2 2; } rel2 { relative: 1.0 1.0; offset: -3 -3; } } } } programs { program { name: "enable"; /* enable */ signal: "e,state,enable"; source: "e"; action: STATE_SET "default" 0.0; target: "clip"; } program { name: "disable"; /* disable */ signal: "e,state,disable"; source: "e"; action: STATE_SET "disabled" 0.0; target: "clip"; } } } /* this is the actual text label for the menu item */ group { name: "e/widgets/menu/default/label"; parts { part { name: "e.text.label"; /* e sets the text of this */ type: TEXT; effect: SOFT_SHADOW; mouse_events: 0; scale: 1; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; offset: 1 -1; } rel2 { relative: 1.0 1.0; offset: -1 1; } color_class: "menu_item"; text { font: "Sans"; size: 10; min: 1 1; align: 0.0 0.5; text_class: "menu_item"; } } description { state: "selected" 0.0; inherit: "default" 0.0; color_class: "menu_item_active"; } description { state: "disabled" 0.0; inherit: "default" 0.0; color_class: "menu_item_disabled"; } } } programs { program { name: "sel"; /* when the menu item is actually selected */ signal: "e,state,selected"; source: "e"; action: STATE_SET "selected" 0.0; transition: LINEAR 0.2; target: "e.text.label"; } program { name: "unsel"; /* on de-select */ signal: "e,state,unselected"; source: "e"; action: STATE_SET "default" 0.0; transition: LINEAR 0.3; target: "e.text.label"; } program { name: "enable"; /* enable */ signal: "e,state,enable"; source: "e"; action: STATE_SET "default" 0.0; transition: LINEAR 0.3; target: "e.text.label"; } program { name: "disable"; /* disable */ signal: "e,state,disable"; source: "e"; action: STATE_SET "disabled" 0.0; //transition: LINEAR 0.3; target: "e.text.label"; } } } /* this is a small arrow on the right of the menu item to indicate that it * has a submenu after it */ group { name: "e/widgets/menu/default/submenu"; images { image: "menu_arrow_normal.png" COMP; image: "menu_arrow_sel.png" COMP; } parts { part { name: "arrow"; mouse_events: 0; description { state: "default" 0.0; min: 9 12; max: 9 12; rel1 { relative: 0.0 0.0; offset: 4 1; } rel2 { relative: 1.0 1.0; offset: -3 -1; } image.normal: "menu_arrow_normal.png"; } description { state: "selected" 0.0; inherit: "default" 0.0; image.normal: "menu_arrow_sel.png"; } } } programs { program { name: "sel"; signal: "e,state,selected"; source: "e"; action: STATE_SET "selected" 0.0; target: "arrow"; } program { name: "unsel"; signal: "e,state,unselected"; source: "e"; action: STATE_SET "default" 0.0; target: "arrow"; } } } /* this is placed left of the icon in a menu item (if any icon) or left * of the label if no icon is present. this is a checkbox to indicate if * the menu item is enabled or disabled */ group { name: "e/widgets/menu/default/check"; images { image: "check_base.png" COMP; image: "check_on.png" COMP; image: "check_sel.png" COMP; } parts { part { name: "base"; mouse_events: 0; scale: 1; description { state: "default" 0.0; min: 16 16; max: 16 16; image.normal: "check_base.png"; } } part { name: "mark"; mouse_events: 0; clip_to: "mark_hold"; description { state: "default" 0.0; rel1.to: "mark_hold"; rel2.to: "mark_hold"; image.normal: "check_on.png"; } description { state: "selected" 0.0; inherit: "default" 0.0; image.normal: "check_sel.png"; } } part { name: "mark_hold"; type: RECT; mouse_events: 0; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; rel1 { to: "base"; offset: -5 -5; } rel2 { to: "base"; offset: 4 4; } } description { state: "on" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; rel1.offset: 0 0; rel2.offset: -1 -1; } } } programs { program { name: "sel"; /* on selection of the menu item */ signal: "e,state,selected"; source: "e"; action: STATE_SET "selected" 0.0; target: "mark"; } program { name: "unsel"; /* de-select */ signal: "e,state,unselected"; source: "e"; action: STATE_SET "default" 0.0; target: "mark"; } program { name: "on"; /* if the checkmark is to be displayed */ signal: "e,state,on"; source: "e"; action: STATE_SET "on" 0.0; transition: LINEAR 0.15; target: "mark_hold"; } program { name: "off"; /* check mark is not to be displayed */ signal: "e,state,off"; source: "e"; action: STATE_SET "default" 0.0; transition: LINEAR 0.2; target: "mark_hold"; } } } /* for a radio menu item - same as check, but only one of a group of radio * menu item can be selected at any one time */ group { name: "e/widgets/menu/default/radio"; images { image: "radio_base.png" COMP; image: "radio_on.png" COMP; image: "radio_sel.png" COMP; } parts { part { name: "base"; mouse_events: 0; scale: 1; description { state: "default" 0.0; min: 16 16; max: 16 16; image.normal: "radio_base.png"; } description { state: "selected" 0.0; inherit: "default" 0.0; image.normal: "menu_arrow_sel.png"; } } part { name: "mark"; mouse_events: 0; clip_to: "mark_hold"; description { state: "default" 0.0; rel1.to: "mark_hold"; rel2.to: "mark_hold"; image.normal: "radio_on.png"; } description { state: "selected" 0.0; inherit: "default" 0.0; image.normal: "radio_sel.png"; } } part { name: "mark_hold"; type: RECT; mouse_events: 0; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; rel1 { to: "base"; offset: -5 -5; } rel2 { to: "base"; offset: 4 4; } } description { state: "on" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; rel1.offset: 0 0; rel2.offset: -1 -1; } } } programs { program { name: "sel"; signal: "e,state,selected"; source: "e"; action: STATE_SET "selected" 0.0; target: "mark"; } program { name: "unsel"; signal: "e,state,unselected"; source: "e"; action: STATE_SET "default" 0.0; target: "mark"; } program { name: "on"; signal: "e,state,on"; source: "e"; action: STATE_SET "on" 0.0; transition: LINEAR 0.15; target: "mark_hold"; } program { name: "off"; signal: "e,state,off"; source: "e"; action: STATE_SET "default" 0.0; transition: LINEAR 0.2; target: "mark_hold"; } } } ///////////////////////////////////////////////////////////////////////////// /*** SHELF ***/ /* Shelves are "panels" that are placed around the edges of the screen * to hold useful gadgets to control things - like switch desktops * (the pager module and its gadget), launch programs, and anything else * someone wants to put in there. The way to add gadgets to a shelf is to * write a module that places a gadget there. This means that it might end * up containing all sorts of things and the artist needs to be aware of * that and make sure the shelf border and background etc. won't interfere * with all manner of things that may get placed there */ group { name: "e/shelf/default/base"; data { /* this tells e the shelf is shaped, not rectangular */ // item: "shaped" "1"; /* this tells e the number of pixels of the shelf to leave "exposed" * when auto-hiding the shelf */ item: "hidden_state_size" "1"; /* This makes the border hide instantly after the given amount of * seconds - in this case 3 seconds. This means there will be no * visible part of the shelf after this time at all as it will be * totally hidden */ // item: "instant_delay" "3.0"; } images { image: "base_bg.png" COMP; } parts { part { name: "base"; mouse_events: 0; description { state: "default" 0.0; color_class: "shelf_base"; image.normal: "base_bg.png"; image.border: 2 2 2 2; fill.smooth: 0; } } part { name: "e.swallow.content"; type: SWALLOW; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; offset: 3 3; } rel2 { relative: 1.0 1.0; offset: -4 -4; } } } } programs { // tell us what oriantation we are in. not used here // program { name: "xx"; // signal: "e,state,orientation,top"; // source: "e"; // } // tell us what oriantation we are in. not used here // program { name: "xx"; // signal: "e,state,orientation,top_left"; // source: "e"; // } // tell us what oriantation we are in. not used here // program { name: "xx"; // signal: "e,state,orientation,top_right"; // source: "e"; // } // tell us what oriantation we are in. not used here // program { name: "xx"; // signal: "e,state,orientation,bottom"; // source: "e"; // } // tell us what oriantation we are in. not used here // program { name: "xx"; // signal: "e,state,orientation,bottom_left"; // source: "e"; // } // tell us what oriantation we are in. not used here // program { name: "xx"; // signal: "e,state,orientation,bottom_right"; // source: "e"; // } // tell us what oriantation we are in. not used here // program { name: "xx"; // signal: "e,state,orientation,left"; // source: "e"; // } // tell us what oriantation we are in. not used here // program { name: "xx"; // signal: "e,state,orientation,left_top"; // source: "e"; // } // tell us what oriantation we are in. not used here // program { name: "xx"; // signal: "e,state,orientation,left_bottom"; // source: "e"; // } // tell us what oriantation we are in. not used here // program { name: "xx"; // signal: "e,state,orientation,right"; // source: "e"; // } // tell us what oriantation we are in. not used here // program { name: "xx"; // signal: "e,state,orientation,right_top"; // source: "e"; // } // tell us what oriantation we are in. not used here // program { name: "xx"; // signal: "e,state,orientation,right_bottom"; // source: "e"; // } // tell us we became a visible shelf. not used here // program { name: "xx"; // signal: "e,state,visible"; // source: "e"; // } // tell us we became a hidden shelf. not used here // program { name: "xx"; // signal: "e,state,hidden"; // source: "e"; // } } } /* This is put around gadgets in the shelf if they ask for an "inset" style * framing. This puts some sort of bordering around them to make them look * "inset" into the shelf or screen. this is meant to go with the default * shelf style as implied in the group name */ group { name: "e/shelf/default/inset"; images { image: "inset_sunk.png" COMP; } parts { part { name: "base"; type: RECT; description { state: "default" 0.0; rel1 { to: "inset"; offset: 1 1; } rel2 { to: "inset"; offset: -2 -2; } color: 255 255 255 255; } } part { name: "clip"; type: RECT; description { state: "default" 0.0; rel1.to: "base"; rel2.to: "base"; color: 255 255 255 255; } } part { name: "e.swallow.content"; type: SWALLOW; clip_to: "clip"; description { state: "default" 0.0; rel1 { to: "base"; offset: 1 1; } rel2 { to: "base"; offset: -2 -2; } } } part { name: "inset"; mouse_events: 0; description { state: "default" 0.0; rel1.offset: 1 1; rel2.offset: -2 -2; image.normal: "inset_sunk.png"; image.middle: 0; /* here we say the "middle" part of the image * between the borders is not filled - it's * empty, so don't draw it - ignore it */ image.border: 7 7 7 7; fill.smooth: 0; } } } programs { // tell us what oriantation we are in. not used here // program { name: "xx"; // signal: "e,state,orientation,top"; // source: "e"; // } // tell us what oriantation we are in. not used here // program { name: "xx"; // signal: "e,state,orientation,top_left"; // source: "e"; // } // tell us what oriantation we are in. not used here // program { name: "xx"; // signal: "e,state,orientation,top_right"; // source: "e"; // } // tell us what oriantation we are in. not used here // program { name: "xx"; // signal: "e,state,orientation,bottom"; // source: "e"; // } // tell us what oriantation we are in. not used here // program { name: "xx"; // signal: "e,state,orientation,bottom_left"; // source: "e"; // } // tell us what oriantation we are in. not used here // program { name: "xx"; // signal: "e,state,orientation,bottom_right"; // source: "e"; // } // tell us what oriantation we are in. not used here // program { name: "xx"; // signal: "e,state,orientation,left"; // source: "e"; // } // tell us what oriantation we are in. not used here // program { name: "xx"; // signal: "e,state,orientation,left_top"; // source: "e"; // } // tell us what oriantation we are in. not used here // program { name: "xx"; // signal: "e,state,orientation,left_bottom"; // source: "e"; // } // tell us what oriantation we are in. not used here // program { name: "xx"; // signal: "e,state,orientation,right"; // source: "e"; // } // tell us what oriantation we are in. not used here // program { name: "xx"; // signal: "e,state,orientation,right_top"; // source: "e"; // } // tell us what oriantation we are in. not used here // program { name: "xx"; // signal: "e,state,orientation,right_bottom"; // source: "e"; // } } } /* Same as inset, but meant to be with no decorations that are visible. here * we simply make the content swallow inset a bit from the edges to align * with any plain style inset boxes */ group { name: "e/shelf/default/plain"; parts { part { name: "clip"; type: RECT; description { state: "default" 0.0; color: 255 255 255 255; } } part { name: "e.swallow.content"; type: SWALLOW; clip_to: "clip"; description { state: "default" 0.0; rel1.offset: 1 1; rel2.offset: -2 -2; } } } } /* This is the "invisible" shelf. Yes. Even it has visual config in edje. * The idea is that it will remain invisible, BUT will allow the designer * to do some layout and padding. This gets the same signals as the * default shelf and can provide the same data items */ group { name: "e/shelf/invisible/base"; data.item: "shaped" "1"; parts { part { name: "e.swallow.content"; type: SWALLOW; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; offset: 0 0; } rel2 { relative: 1.0 1.0; offset: -1 -1; } } } } } group { name: "e/shelf/invisible/inset"; images { image: "inset_sunk_dark.png" COMP; } parts { part { name: "base"; type: RECT; description { state: "default" 0.0; rel1 { to: "inset"; offset: 1 1; } rel2 { to: "inset"; offset: -2 -2; } color: 0 0 0 32; } } part { name: "clip"; type: RECT; description { state: "default" 0.0; rel1.to: "base"; rel2.to: "base"; color: 255 255 255 255; } } part { name: "e.swallow.content"; type: SWALLOW; clip_to: "clip"; description { state: "default" 0.0; rel1 { to: "base"; offset: 1 1; } rel2 { to: "base"; offset: -2 -2; } } } part { name: "inset"; mouse_events: 0; description { state: "default" 0.0; rel1.offset: 1 1; rel2.offset: -2 -2; image.normal: "inset_sunk_dark.png"; image.middle: 0; image.border: 7 7 7 7; fill.smooth: 0; } } } } group { name: "e/shelf/invisible/plain"; parts { part { name: "clip"; type: RECT; description { state: "default" 0.0; color: 255 255 255 255; } } part { name: "e.swallow.content"; type: SWALLOW; clip_to: "clip"; description { state: "default" 0.0; rel1.offset: 1 1; rel2.offset: -2 -2; } } } } /* This is the alternate shelf. It provides a stylistic alternative to * make the shelf more dynamic to your tastes and wallpaper. It is * selected in the Shelf Configuration. More alternative shelfs can * be provided by using more group names. eg, "e/shelf/black/base" */ group { name: "e/shelf/alternate/base"; images { image: "shelf_alt_bg.png" COMP; // image: "shelf_alt_bg_left.png" COMP; // image: "shelf_alt_bg_right.png" COMP; image: "shelf_alt_over.png" COMP; // image: "shelf_alt_over_left.png" COMP; // image: "shelf_alt_over_right.png" COMP; image: "shelf_alt_shine.png" COMP; } parts { part { name: "base"; mouse_events: 0; description { state: "default" 0.0; color_class: "shelf_base"; image.normal: "shelf_alt_bg.png"; fill.smooth: 0; } // description { state: "left" 0.0; // image.normal: "shelf_alt_bg_left.png"; // fill.smooth: 0; // } // description { state: "right" 0.0; // image.normal: "shelf_alt_bg_right.png"; // fill.smooth: 0; // } } part { name: "e.swallow.content"; type: SWALLOW; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; offset: 3 3; } rel2 { relative: 1.0 1.0; offset: -4 -4; } } } part { name: "shine"; mouse_events: 0; description { state: "default" 0.0; image.normal: "shelf_alt_shine.png"; rel2.relative: 1.0 0.5; fill.smooth: 0; } // description { state: "left" 0.0; // inherit: "default" 0.0; // color: 255 255 255 0; // } // description { state: "right" 0.0; // inherit: "default" 0.0; // color: 255 255 255 0; // } } part { name: "over"; mouse_events: 0; description { state: "default" 0.0; image.normal: "shelf_alt_over.png"; image.border: 5 5 5 5; image.middle: 0; fill.smooth: 0; } // description { state: "left" 0.0; // image.normal: "shelf_alt_over_left.png"; // image.border: 5 5 5 5; // image.middle: 0; // fill.smooth: 0; // } // description { state: "right" 0.0; // image.normal: "shelf_alt_over_right.png"; // image.border: 5 5 5 5; // image.middle: 0; // fill.smooth: 0; // } } } /* Because programs can not respond to 2 different types of signals, * the programs are split into individual programs that point towards * the base program for its orientation. */ programs { /* Left orientation */ // program { name: "left"; // signal: "e,state,orientation,left"; // source: "e"; // action: STATE_SET "left" 0.0; // target: "base"; // target: "over"; // target: "shine"; // } // program { name: "left_top"; // signal: "e,state,orientation,left_top"; // source: "e"; // after: "left"; // } // program { name: "left_bottom"; // signal: "e,state,orientation,left_bottom"; // source: "e"; // after: "left"; // } // /* Right orientation */ // program { name: "right"; // signal: "e,state,orientation,right"; // source: "e"; // action: STATE_SET "right" 0.0; // target: "base"; // target: "over"; // target: "shine"; // } // program { name: "right_top"; // signal: "e,state,orientation,right_top"; // source: "e"; // after: "right"; // } // program { name: "right_bottom"; // signal: "e,state,orientation,right_bottom"; // source: "e"; // after: "right"; // } } } /* This is the alternate shelf. It provides a stylistic alternative to * make the shelf more dynamic to your tastes and wallpaper. It is * selected in the Shelf Configuration. More alternative shelfs can * be provided by using more group names. eg, "e/shelf/black/base" */ group { name: "e/shelf/alternate_vertical/base"; images { image: "shelf_alt_vert_bg.png" COMP; // image: "shelf_alt_bg_left.png" COMP; // image: "shelf_alt_bg_right.png" COMP; image: "shelf_alt_over.png" COMP; // image: "shelf_alt_over_left.png" COMP; // image: "shelf_alt_over_right.png" COMP; } parts { part { name: "base"; mouse_events: 0; description { state: "default" 0.0; color_class: "shelf_base"; image.normal: "shelf_alt_vert_bg.png"; fill.smooth: 0; } // description { state: "left" 0.0; // image.normal: "shelf_alt_bg_left.png"; // fill.smooth: 0; // } // description { state: "right" 0.0; // image.normal: "shelf_alt_bg_right.png"; // fill.smooth: 0; // } } part { name: "e.swallow.content"; type: SWALLOW; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; offset: 3 3; } rel2 { relative: 1.0 1.0; offset: -4 -4; } } } part { name: "over"; mouse_events: 0; description { state: "default" 0.0; image.normal: "shelf_alt_over.png"; image.border: 5 5 5 5; image.middle: 0; fill.smooth: 0; } // description { state: "left" 0.0; // image.normal: "shelf_alt_over_left.png"; // image.border: 5 5 5 5; // image.middle: 0; // fill.smooth: 0; // } // description { state: "right" 0.0; // image.normal: "shelf_alt_over_right.png"; // image.border: 5 5 5 5; // image.middle: 0; // fill.smooth: 0; // } } } /* Because programs can not respond to 2 different types of signals, * the programs are split into individual programs that point towards * the base program for its orientation. */ programs { /* Left orientation */ // program { name: "left"; // signal: "e,state,orientation,left"; // source: "e"; // action: STATE_SET "left" 0.0; // target: "base"; // target: "over"; // target: "shine"; // } // program { name: "left_top"; // signal: "e,state,orientation,left_top"; // source: "e"; // after: "left"; // } // program { name: "left_bottom"; // signal: "e,state,orientation,left_bottom"; // source: "e"; // after: "left"; // } // /* Right orientation */ // program { name: "right"; // signal: "e,state,orientation,right"; // source: "e"; // action: STATE_SET "right" 0.0; // target: "base"; // target: "over"; // target: "shine"; // } // program { name: "right_top"; // signal: "e,state,orientation,right_top"; // source: "e"; // after: "right"; // } // program { name: "right_bottom"; // signal: "e,state,orientation,right_bottom"; // source: "e"; // after: "right"; // } } } group { name: "e/shelf/alternate/inset"; images { image: "inset_raised.png" COMP; } parts { part { name: "base"; type: RECT; description { state: "default" 0.0; rel1 { to: "inset"; offset: 4 4; } rel2 { to: "inset"; offset: -5 -5; } color: 0 0 0 0; } } part { name: "clip"; type: RECT; description { state: "default" 0.0; rel1.to: "base"; rel2.to: "base"; color: 255 255 255 255; } } part { name: "e.swallow.content"; type: SWALLOW; clip_to: "clip"; description { state: "default" 0.0; rel1 { to: "base"; offset: 0 0; } rel2 { to: "base"; offset: -1 -1; } } } part { name: "inset"; mouse_events: 0; description { state: "default" 0.0; rel1.offset: -1 -1; rel2.offset: 0 0; image.normal: "inset_raised.png"; image.middle: 0; image.border: 7 7 7 7; fill.smooth: 0; } } } } group { name: "e/shelf/alternate/plain"; parts { part { name: "clip"; type: RECT; description { state: "default" 0.0; color: 255 255 255 255; } } part { name: "e.swallow.content"; type: SWALLOW; clip_to: "clip"; description { state: "default" 0.0; rel1.offset: 1 1; rel2.offset: -2 -2; } } } } ///////////////////////////////////////////////////////////////////////////// /*** MOD: CLOCK ***/ images { image: "clock/DM_Clock_time.png" COMP; image: "clock/DM_Clock_time_0.png" COMP; image: "clock/DM_Clock_time_1.png" COMP; image: "clock/DM_Clock_time_2.png" COMP; image: "clock/DM_Clock_time_3.png" COMP; image: "clock/DM_Clock_time_4.png" COMP; image: "clock/DM_Clock_time_5.png" COMP; image: "clock/DM_Clock_time_6.png" COMP; image: "clock/DM_Clock_time_7.png" COMP; image: "clock/DM_Clock_time_8.png" COMP; image: "clock/DM_Clock_time_9.png" COMP; image: "clock/DM_Clock_time_AM.png" COMP; image: "clock/DM_Clock_time_PM.png" COMP; image: "clock/DM_Clock_time_center.png" COMP; } #define DIGIT_WIDTH 0.25 #define DIGIT_10_WIDTH 0.1 #define DIGIT_Y 0.2 #define DIGIT_HEIGHT 0.8 #define HOUR_10_XOFF 0.0 #define WEEKDAY_XOFF 0.0 #define DAY_XOFF 0.15 #define DAY_HEIGHT 0.2 #define DAY_Y 0.0 #define MONTH_XOFF 0.25 #define HOUR_1_XOFF 0.1 #define COLON_XOFF 0.32 #define COLON_WIDTH 0.05 #define MIN_10_XOFF 0.34 #define MIN_1_XOFF 0.54 #define AM_PM_XOFF 0.78 #define AM_PM_WIDTH 0.15 #define BASE_DESCR(XOFF) \ description { state: "default" 0.0; \ image.normal: "clock/DM_Clock_time_0.png"; \ visible: 1; \ rel1 { \ to: "whole"; \ relative: XOFF DIGIT_Y; \ offset: 0 0; \ } \ rel2 { \ to: "whole"; \ relative: (XOFF+DIGIT_WIDTH) (DIGIT_Y+DIGIT_HEIGHT); \ offset: -1 -1; \ } \ color: 255 255 255 0; \ } \ description { state: "reset" 0.0; \ inherit: "default" 0.0; \ color: 255 255 255 255; \ } #define DIGIT_DESCR_10HOUR(IDX,NUM, X) \ description { state: "default" 0.0; \ image.normal: "clock/DM_Clock_time.png"; \ visible: 0; \ rel1 { \ to: "whole"; \ relative: HOUR_10_XOFF DIGIT_Y; \ offset: 0 0; \ } \ rel2 { \ to: "whole"; \ relative: (HOUR_10_XOFF+DIGIT_10_WIDTH) (DIGIT_Y+DIGIT_HEIGHT); \ offset: -1 -1; \ } \ color: 255 255 255 0; \ } \ description { state: "digit" 0.0; \ inherit: "default" 0.0; \ visible: 0; \ color: 255 255 255 255; \ } \ description { state: "digit" 0.1; \ inherit: "default" 0.0; \ visible: 1; \ color: 255 255 255 255; \ } #define DIGIT_DESCR(IDX,NUM, X) \ description { state: "digit" IDX; \ inherit: "default" 0.0; \ image.normal: "clock/DM_Clock_time_"NUM".png"; \ rel1 { \ relative: X DIGIT_Y; \ offset: 0 0; \ } \ rel2 { \ relative: (X+DIGIT_WIDTH) (DIGIT_Y+DIGIT_HEIGHT); \ offset: 0 0; \ } \ color: 255 255 255 255; \ } #define BASE_DESCR_AM_PM(XOFF) \ description { state: "default" 0.0; \ image.normal: "clock/DM_Clock_time_0.png"; \ visible: 1; \ rel1 { \ to: "whole"; \ relative: XOFF 0.0; \ offset: 0 0; \ } \ rel2 { \ to: "whole"; \ relative: (XOFF+AM_PM_WIDTH) 1.0; \ offset: -1 -1; \ } \ color: 255 255 255 0; \ } \ description { state: "reset" 0.0; \ inherit: "default" 0.0; \ color: 255 255 255 255; \ } #define DIGIT_DESCR_AM_PM(IDX,NUM, X) \ description { state: "digit" IDX; \ inherit: "default" 0.0; \ image.normal: "clock/DM_Clock_time_"NUM".png"; \ rel1 { \ relative: X 0.6; \ offset: 0 0; \ } \ rel2 { \ relative: (X+AM_PM_WIDTH) 0.9; \ offset: 0 0; \ } \ color: 255 255 255 255; \ } #define BASE_DESCR_WD_MD(XOFF) \ description { state: "default" 0.0; \ visible: 1; \ rel1 { \ to: "whole"; \ relative: XOFF DAY_Y; \ offset: 0 0; \ } \ rel2 { \ to: "whole"; \ relative: (XOFF+0.5) (DAY_Y+0.3); \ offset: -1 -1; \ } \ color: 253 254 207 255; \ text { \ text: ""; \ font: "Helvetica"; \ size: 16; \ min: 1 1; \ align: 0.5 0.5; \ text_class: "configure"; \ } \ } \ description { state: "reset" 0.0; \ inherit: "default" 0.0; \ color: 255 255 255 255; \ } #define DIGIT_DESCR_WD_MD(IDX,DAY, X) \ description { state: "digit" IDX; \ inherit: "default" 0.0; \ rel1 { \ relative: X DAY_Y; \ offset: 0 0; \ } \ rel2 { \ relative: (X+0.5) (DAY_Y+DAY_HEIGHT); \ offset: -1 -1; \ } \ color: 253 254 207 255; \ color2: 110 133 140 192; \ color3: 0 0 0 192; \ text { \ text: DAY; \ font: "Helvetica"; \ size: 20; \ min: 1 1; \ align: 0.0 0.0; \ text_class: "configure"; \ } \ } #define BASE_DESCR_DAY(XOFF) \ description { state: "default" 0.0; \ visible: 1; \ rel1 { \ to: "whole"; \ relative: XOFF DAY_Y; \ offset: 0 0; \ } \ rel2 { \ to: "whole"; \ relative: (XOFF+0.5) (DAY_Y+DAY_HEIGHT); \ offset: -1 -1; \ } \ color: 253 254 207 255; \ color2: 110 133 140 192; \ color3: 0 0 0 192; \ text { \ text: "??"; \ font: "Helvetica"; \ size: 20; \ min: 1 1; \ align: 0.0 0.0; \ text_class: "configure"; \ } \ } \ description { state: "reset" 0.0; \ inherit: "default" 0.0; \ color: 255 255 255 255; \ } // This sets the digit transition type and length #define DIGITRANS SINUSOIDAL 0 #define CELL_TRANS(NAME,IDX,TARGET) \ program { name: NAME; \ action: STATE_SET "digit" IDX; \ transition: DIGITRANS; \ target: TARGET; \ } #define HOUR_10_TRANS(NAME,IDX) CELL_TRANS(NAME,IDX,"hour_10") #define HOUR_1_TRANS(NAME,IDX) CELL_TRANS(NAME,IDX,"hour_1") #define MINUTE_10_TRANS(NAME,IDX) CELL_TRANS(NAME,IDX,"min_10") #define MINUTE_1_TRANS(NAME,IDX) CELL_TRANS(NAME,IDX,"min_1") #define WEEKDAY_TRANS(NAME,IDX) CELL_TRANS(NAME,IDX,"weekday") #define MONTH_TRANS(NAME,IDX) CELL_TRANS(NAME,IDX,"month") styles { style { name: "text_style"; base: "font=Helvetica font_size=50 align=left color=#000 style=shadow shadow_color=#ffffff80 wrap=word"; tag: "br" "\n"; tag: "hilight" "+ font=Sans:style=Bold style=glow color=#fff glow2_color=#fe87 glow_color=#fa14"; tag: "title" "+ font_size=12 font=Sans:style=Bold style=soft_shadow color=#fff shadow_color=#00000020"; tag: "/title" "- \n \n"; } } group { name: "e/modules/clock/main"; script { public cur_hour_; public m_10_; public clock_cb(unused) { new year, month, day, yearday, weekday, hour, minute; new Float:second; new h; new m_mod, m_tmp; new pm; new text[5]; date(year, month, day, yearday, weekday, hour, minute, second); // It is my preference not to have a second hand so the // the timer is set to go off at the top of the minute. timer(61.0 - second, "clock_cb", 1); snprintf(text, 5, "%d%d", day/10,day%10); set_text(PART:"day", text); h = get_int(cur_hour_) if (hour != h) { set_int(cur_hour_, hour); if (hour > 12) pm = 1; else if (hour == 12) pm = 0; if(pm == 1) run_program(PROGRAM:"pm"); else if(pm == 0) run_program(PROGRAM:"am"); #ifndef HOURS24 if (hour > 12) hour = hour - 12; if (hour == 0) hour = 12; #endif new htmp = hour / 10; if (htmp == 0) run_program(PROGRAM:"hour_10_0"); else if (htmp == 1) run_program(PROGRAM:"hour_10_1"); else if (htmp == 2) run_program(PROGRAM:"hour_10_2"); // htmp = hour % 10; if (htmp == 0) run_program(PROGRAM:"hour_1_0"); else if (htmp == 1) run_program(PROGRAM:"hour_1_1"); else if (htmp == 2) run_program(PROGRAM:"hour_1_2"); else if (htmp == 3) run_program(PROGRAM:"hour_1_3"); else if (htmp == 4) run_program(PROGRAM:"hour_1_4"); else if (htmp == 5) run_program(PROGRAM:"hour_1_5"); else if (htmp == 6) run_program(PROGRAM:"hour_1_6"); else if (htmp == 7) run_program(PROGRAM:"hour_1_7"); else if (htmp == 8) run_program(PROGRAM:"hour_1_8"); else if (htmp == 9) run_program(PROGRAM:"hour_1_9"); } m_mod = minute % 10; m_tmp = (minute - m_mod) / 10; if (m_10_ != m_tmp) { m_10_ = m_tmp; // value from 0-5 if (m_10_ == 0) run_program(PROGRAM:"min_10_0"); else if (m_10_ == 1) run_program(PROGRAM:"min_10_1"); else if (m_10_ == 2) run_program(PROGRAM:"min_10_2"); else if (m_10_ == 3) run_program(PROGRAM:"min_10_3"); else if (m_10_ == 4) run_program(PROGRAM:"min_10_4"); else if (m_10_ == 5) run_program(PROGRAM:"min_10_5"); } // minutes digit is 0 .. 9 if (m_mod == 0) run_program(PROGRAM:"min_1_0"); else if (m_mod == 1) run_program(PROGRAM:"min_1_1"); else if (m_mod == 2) run_program(PROGRAM:"min_1_2"); else if (m_mod == 3) run_program(PROGRAM:"min_1_3"); else if (m_mod == 4) run_program(PROGRAM:"min_1_4"); else if (m_mod == 5) run_program(PROGRAM:"min_1_5"); else if (m_mod == 6) run_program(PROGRAM:"min_1_6"); else if (m_mod == 7) run_program(PROGRAM:"min_1_7"); else if (m_mod == 8) run_program(PROGRAM:"min_1_8"); else if (m_mod == 9) run_program(PROGRAM:"min_1_9"); if(weekday == 0) run_program(PROGRAM:"weekday_0"); else if(weekday == 1) run_program(PROGRAM:"weekday_1"); else if(weekday == 2) run_program(PROGRAM:"weekday_2"); else if(weekday == 3) run_program(PROGRAM:"weekday_3"); else if(weekday == 4) run_program(PROGRAM:"weekday_4"); else if(weekday == 5) run_program(PROGRAM:"weekday_5"); else if(weekday == 6) run_program(PROGRAM:"weekday_6"); if(month == 1) run_program(PROGRAM:"month_1"); else if(month == 2) run_program(PROGRAM:"month_2"); else if(month == 3) run_program(PROGRAM:"month_3"); else if(month == 4) run_program(PROGRAM:"month_4"); else if(month == 5) run_program(PROGRAM:"month_5"); else if(month == 6) run_program(PROGRAM:"month_6"); else if(month == 7) run_program(PROGRAM:"month_7"); else if(month == 8) run_program(PROGRAM:"month_8"); else if(month == 9) run_program(PROGRAM:"month_9"); else if(month == 10) run_program(PROGRAM:"month_10"); else if(month == 11) run_program(PROGRAM:"month_11"); else if(month == 12) run_program(PROGRAM:"month_12"); } } parts { part { name: "whole"; type: RECT; mouse_events: 1; description { state: "default" 0.0; color: 255 255 255 0; rel1 { relative: 0.0 0.1; offset: 0 0; } rel2 { relative: 1.0 0.9; offset: -1 -1; } } } part { name: "clipper"; type: RECT; mouse_events: 0; description { rel1 { to: "whole"; relative: 0.0 0.0; offset: 0 0; } rel2 { to: "whole"; relative: 1.0 1.0; offset: -1 -1; } } } part { name: "hour_10"; type: IMAGE; clip_to: "clipper"; DIGIT_DESCR_10HOUR(0.0,0, HOUR_10_XOFF); DIGIT_DESCR_10HOUR(0.1,1, HOUR_10_XOFF); DIGIT_DESCR_10HOUR(0.2,2, HOUR_10_XOFF); /* only used in 24-hour clock */ } part { name: "hour_1"; type: IMAGE; clip_to: "clipper"; BASE_DESCR(HOUR_1_XOFF); DIGIT_DESCR(0.0,0, HOUR_1_XOFF); DIGIT_DESCR(0.1,1, HOUR_1_XOFF); DIGIT_DESCR(0.2,2, HOUR_1_XOFF); DIGIT_DESCR(0.3,3, HOUR_1_XOFF); DIGIT_DESCR(0.4,4, HOUR_1_XOFF); DIGIT_DESCR(0.5,5, HOUR_1_XOFF); DIGIT_DESCR(0.6,6, HOUR_1_XOFF); DIGIT_DESCR(0.7,7, HOUR_1_XOFF); DIGIT_DESCR(0.8,8, HOUR_1_XOFF); DIGIT_DESCR(0.9,9, HOUR_1_XOFF); } part { name: "colon"; type: IMAGE; clip_to: "clipper"; description { state: "default" 0.0; image.normal: "clock/DM_Clock_time_center.png"; visible: 1; rel1 { to: "whole"; relative: COLON_XOFF DIGIT_Y; offset: 0 0; } rel2 { to: "whole"; relative: (COLON_XOFF+COLON_WIDTH) (DIGIT_Y+DIGIT_HEIGHT); offset: 0 0; } color: 255 255 255 255; } } part { name: "min_10"; type: IMAGE; clip_to: "clipper"; BASE_DESCR(MIN_10_XOFF); DIGIT_DESCR(0.0,0, MIN_10_XOFF); DIGIT_DESCR(0.1,1, MIN_10_XOFF); DIGIT_DESCR(0.2,2, MIN_10_XOFF); DIGIT_DESCR(0.3,3, MIN_10_XOFF); DIGIT_DESCR(0.4,4, MIN_10_XOFF); DIGIT_DESCR(0.5,5, MIN_10_XOFF); } part { name: "min_1"; type: IMAGE; clip_to: "clipper"; BASE_DESCR(MIN_1_XOFF); DIGIT_DESCR(0.0,0, MIN_1_XOFF); DIGIT_DESCR(0.1,1, MIN_1_XOFF); DIGIT_DESCR(0.2,2, MIN_1_XOFF); DIGIT_DESCR(0.3,3, MIN_1_XOFF); DIGIT_DESCR(0.4,4, MIN_1_XOFF); DIGIT_DESCR(0.5,5, MIN_1_XOFF); DIGIT_DESCR(0.6,6, MIN_1_XOFF); DIGIT_DESCR(0.7,7, MIN_1_XOFF); DIGIT_DESCR(0.8,8, MIN_1_XOFF); DIGIT_DESCR(0.9,9, MIN_1_XOFF); } part { name: "am_pm"; type: IMAGE; clip_to: "clipper"; BASE_DESCR_AM_PM(AM_PM_XOFF); DIGIT_DESCR_AM_PM(0.0,AM, AM_PM_XOFF); DIGIT_DESCR_AM_PM(0.1,PM, AM_PM_XOFF); } part { name: "weekday"; type: TEXT; effect: OUTLINE_SOFT_SHADOW; BASE_DESCR_WD_MD(WEEKDAY_XOFF); DIGIT_DESCR_WD_MD(0.0,Mon., WEEKDAY_XOFF); DIGIT_DESCR_WD_MD(0.1,Tue., WEEKDAY_XOFF); DIGIT_DESCR_WD_MD(0.2,Wed., WEEKDAY_XOFF); DIGIT_DESCR_WD_MD(0.3,Tur., WEEKDAY_XOFF); DIGIT_DESCR_WD_MD(0.4,Fri., WEEKDAY_XOFF); DIGIT_DESCR_WD_MD(0.5,Sat., WEEKDAY_XOFF); DIGIT_DESCR_WD_MD(0.6,Sun., WEEKDAY_XOFF); } part { name: "day"; type: TEXT; effect: OUTLINE_SOFT_SHADOW; BASE_DESCR_DAY(DAY_XOFF); } part { name: "month"; type: TEXT; effect: OUTLINE_SOFT_SHADOW; BASE_DESCR_WD_MD(MONTH_XOFF); DIGIT_DESCR_WD_MD(0.01,Jan, MONTH_XOFF); DIGIT_DESCR_WD_MD(0.02,Feb, MONTH_XOFF); DIGIT_DESCR_WD_MD(0.03,Mar, MONTH_XOFF); DIGIT_DESCR_WD_MD(0.04,Apr, MONTH_XOFF); DIGIT_DESCR_WD_MD(0.05,May, MONTH_XOFF); DIGIT_DESCR_WD_MD(0.06,Jun, MONTH_XOFF); DIGIT_DESCR_WD_MD(0.07,Jul, MONTH_XOFF); DIGIT_DESCR_WD_MD(0.08,Aug, MONTH_XOFF); DIGIT_DESCR_WD_MD(0.09,Sep, MONTH_XOFF); DIGIT_DESCR_WD_MD(0.10,Oct, MONTH_XOFF); DIGIT_DESCR_WD_MD(0.11,Nov, MONTH_XOFF); DIGIT_DESCR_WD_MD(0.12,Dec, MONTH_XOFF); } part { name: "main"; type: RECT; mouse_events: 1; description { state: "default" 0.0; rel1 { to: "whole"; relative: 0.0 0.0; offset: 0 2; } rel2 { to: "whole"; relative: 1.0 1.0; offset: -1 -2; } color: 255 255 255 0; } } } programs { program { name: "init"; signal: "load"; source: ""; script { set_int(cur_hour_,-1); set_int(m_10_,-1); clock_cb(0); } } /* Each transition happens in a similar manner. The only quirk * is that on a transition to 0 a transition to "reset" is made * before the actual change so that rolling always goes the same * direction. (It would be simpler and still work if I didn't do * this, but it looks odd on minute transitions like 19->20 * where '1' would roll one way to '2' and '9' would roll * backwards to '0'.) */ /* The tens of hours transitions */ program { name: "am"; action: STATE_SET "digit" 0.0; target: "am_pm"; } program { name: "pm"; action: STATE_SET "digit" 0.1; target: "am_pm"; } program { name: "hour_10_0"; action: STATE_SET "reset" 0.0; target: "hour_10"; after: "hour_10_to_zero"; } program { name: "hour_10_to_zero"; action: STATE_SET "digit" 0.0; transition: DIGITRANS; target: "hour_10"; } HOUR_10_TRANS("hour_10_1", 0.1); HOUR_10_TRANS("hour_10_2", 0.2); /* only used in 24-hour clock */ /* The hours transitions */ program { name: "hour_1_0"; action: STATE_SET "reset" 0.0; target: "hour_1"; after: "hour_1_to_zero"; } program { name: "hour_1_to_zero"; action: STATE_SET "digit" 0.0; transition: DIGITRANS; target: "hour_1"; } HOUR_1_TRANS("hour_1_1", 0.1); HOUR_1_TRANS("hour_1_2", 0.2); HOUR_1_TRANS("hour_1_3", 0.3); HOUR_1_TRANS("hour_1_4", 0.4); HOUR_1_TRANS("hour_1_5", 0.5); HOUR_1_TRANS("hour_1_6", 0.6); HOUR_1_TRANS("hour_1_7", 0.7); HOUR_1_TRANS("hour_1_8", 0.8); HOUR_1_TRANS("hour_1_9", 0.9); /* The tens of minutes transitions */ program { name: "min_10_0"; action: STATE_SET "reset" 0.0; target: "min_10"; after: "min_10_to_zero"; } program { name: "min_10_to_zero"; action: STATE_SET "digit" 0.0; transition: DIGITRANS; target: "min_10"; } MINUTE_10_TRANS("min_10_1", 0.1); MINUTE_10_TRANS("min_10_2", 0.2); MINUTE_10_TRANS("min_10_3", 0.3); MINUTE_10_TRANS("min_10_4", 0.4); MINUTE_10_TRANS("min_10_5", 0.5); /* The minute transitions */ program { name: "min_1_0"; action: STATE_SET "reset" 0.0; target: "min_1"; after: "min_1_to_zero"; } program { name: "min_1_to_zero"; action: STATE_SET "digit" 0.0; transition: DIGITRANS; target: "min_1"; } MINUTE_1_TRANS("min_1_1", 0.1); MINUTE_1_TRANS("min_1_2", 0.2); MINUTE_1_TRANS("min_1_3", 0.3); MINUTE_1_TRANS("min_1_4", 0.4); MINUTE_1_TRANS("min_1_5", 0.5); MINUTE_1_TRANS("min_1_6", 0.6); MINUTE_1_TRANS("min_1_7", 0.7); MINUTE_1_TRANS("min_1_8", 0.8); MINUTE_1_TRANS("min_1_9", 0.9); WEEKDAY_TRANS("weekday_0",0.0); WEEKDAY_TRANS("weekday_1",0.1); WEEKDAY_TRANS("weekday_2",0.2); WEEKDAY_TRANS("weekday_3",0.3); WEEKDAY_TRANS("weekday_4",0.4); WEEKDAY_TRANS("weekday_5",0.5); WEEKDAY_TRANS("weekday_6",0.6); MONTH_TRANS("month_1",0.01); MONTH_TRANS("month_2",0.02); MONTH_TRANS("month_3",0.03); MONTH_TRANS("month_4",0.04); MONTH_TRANS("month_5",0.05); MONTH_TRANS("month_6",0.06); MONTH_TRANS("month_7",0.07); MONTH_TRANS("month_8",0.08); MONTH_TRANS("month_9",0.09); MONTH_TRANS("month_10",0.10); MONTH_TRANS("month_11",0.11); MONTH_TRANS("month_12",0.12); } } group { name: "e/modules/clock/digital"; script { public cur_hour_; public m_10_; public clock_cb(unused) { new year, month, day, yearday, weekday, hour, minute; new Float:second; new h; new m_mod, m_tmp; new pm; new text[5]; date(year, month, day, yearday, weekday, hour, minute, second); // It is my preference not to have a second hand so the // the timer is set to go off at the top of the minute. timer(61.0 - second, "clock_cb", 1); snprintf(text, 5, "%d%d", day/10,day%10); set_text(PART:"day", text); h = get_int(cur_hour_) if (hour != h) { set_int(cur_hour_, hour); if (hour > 12) pm = 1; else if (hour == 12) pm = 0; if(pm == 1) run_program(PROGRAM:"pm"); else if(pm == 0) run_program(PROGRAM:"am"); #ifndef HOURS24 if (hour > 12) hour = hour - 12; if (hour == 0) hour = 12; #endif new htmp = hour / 10; if (htmp == 0) run_program(PROGRAM:"hour_10_0"); else if (htmp == 1) run_program(PROGRAM:"hour_10_1"); else if (htmp == 2) run_program(PROGRAM:"hour_10_2"); // htmp = hour % 10; if (htmp == 0) run_program(PROGRAM:"hour_1_0"); else if (htmp == 1) run_program(PROGRAM:"hour_1_1"); else if (htmp == 2) run_program(PROGRAM:"hour_1_2"); else if (htmp == 3) run_program(PROGRAM:"hour_1_3"); else if (htmp == 4) run_program(PROGRAM:"hour_1_4"); else if (htmp == 5) run_program(PROGRAM:"hour_1_5"); else if (htmp == 6) run_program(PROGRAM:"hour_1_6"); else if (htmp == 7) run_program(PROGRAM:"hour_1_7"); else if (htmp == 8) run_program(PROGRAM:"hour_1_8"); else if (htmp == 9) run_program(PROGRAM:"hour_1_9"); } m_mod = minute % 10; m_tmp = (minute - m_mod) / 10; if (m_10_ != m_tmp) { m_10_ = m_tmp; // value from 0-5 if (m_10_ == 0) run_program(PROGRAM:"min_10_0"); else if (m_10_ == 1) run_program(PROGRAM:"min_10_1"); else if (m_10_ == 2) run_program(PROGRAM:"min_10_2"); else if (m_10_ == 3) run_program(PROGRAM:"min_10_3"); else if (m_10_ == 4) run_program(PROGRAM:"min_10_4"); else if (m_10_ == 5) run_program(PROGRAM:"min_10_5"); } // minutes digit is 0 .. 9 if (m_mod == 0) run_program(PROGRAM:"min_1_0"); else if (m_mod == 1) run_program(PROGRAM:"min_1_1"); else if (m_mod == 2) run_program(PROGRAM:"min_1_2"); else if (m_mod == 3) run_program(PROGRAM:"min_1_3"); else if (m_mod == 4) run_program(PROGRAM:"min_1_4"); else if (m_mod == 5) run_program(PROGRAM:"min_1_5"); else if (m_mod == 6) run_program(PROGRAM:"min_1_6"); else if (m_mod == 7) run_program(PROGRAM:"min_1_7"); else if (m_mod == 8) run_program(PROGRAM:"min_1_8"); else if (m_mod == 9) run_program(PROGRAM:"min_1_9"); if(weekday == 0) run_program(PROGRAM:"weekday_0"); else if(weekday == 1) run_program(PROGRAM:"weekday_1"); else if(weekday == 2) run_program(PROGRAM:"weekday_2"); else if(weekday == 3) run_program(PROGRAM:"weekday_3"); else if(weekday == 4) run_program(PROGRAM:"weekday_4"); else if(weekday == 5) run_program(PROGRAM:"weekday_5"); else if(weekday == 6) run_program(PROGRAM:"weekday_6"); if(month == 1) run_program(PROGRAM:"month_1"); else if(month == 2) run_program(PROGRAM:"month_2"); else if(month == 3) run_program(PROGRAM:"month_3"); else if(month == 4) run_program(PROGRAM:"month_4"); else if(month == 5) run_program(PROGRAM:"month_5"); else if(month == 6) run_program(PROGRAM:"month_6"); else if(month == 7) run_program(PROGRAM:"month_7"); else if(month == 8) run_program(PROGRAM:"month_8"); else if(month == 9) run_program(PROGRAM:"month_9"); else if(month == 10) run_program(PROGRAM:"month_10"); else if(month == 11) run_program(PROGRAM:"month_11"); else if(month == 12) run_program(PROGRAM:"month_12"); } } parts { part { name: "whole"; type: RECT; mouse_events: 1; description { state: "default" 0.0; color: 255 255 255 0; rel1 { relative: 0.0 0.1; offset: 0 0; } rel2 { relative: 1.0 0.9; offset: -1 -1; } } } part { name: "clipper"; type: RECT; mouse_events: 0; description { rel1 { to: "whole"; relative: 0.0 0.0; offset: 0 0; } rel2 { to: "whole"; relative: 1.0 1.0; offset: -1 -1; } } } part { name: "hour_10"; type: IMAGE; clip_to: "clipper"; BASE_DESCR(HOUR_10_XOFF); DIGIT_DESCR(0.0,0, HOUR_10_XOFF); DIGIT_DESCR(0.1,1, HOUR_10_XOFF); DIGIT_DESCR(0.2,2, HOUR_10_XOFF); /* only used in 24-hour clock */ } part { name: "hour_1"; type: IMAGE; clip_to: "clipper"; BASE_DESCR(HOUR_1_XOFF); DIGIT_DESCR(0.0,0, HOUR_1_XOFF); DIGIT_DESCR(0.1,1, HOUR_1_XOFF); DIGIT_DESCR(0.2,2, HOUR_1_XOFF); DIGIT_DESCR(0.3,3, HOUR_1_XOFF); DIGIT_DESCR(0.4,4, HOUR_1_XOFF); DIGIT_DESCR(0.5,5, HOUR_1_XOFF); DIGIT_DESCR(0.6,6, HOUR_1_XOFF); DIGIT_DESCR(0.7,7, HOUR_1_XOFF); DIGIT_DESCR(0.8,8, HOUR_1_XOFF); DIGIT_DESCR(0.9,9, HOUR_1_XOFF); } part { name: "colon"; type: IMAGE; clip_to: "clipper"; description { state: "default" 0.0; image.normal: "clock/DM_Clock_time_center.png"; visible: 1; rel1 { to: "whole"; relative: COLON_XOFF DIGIT_Y; offset: 0 0; } rel2 { to: "whole"; relative: (COLON_XOFF+.1) 1.0; offset: 0 0; } color: 255 255 255 255; } } part { name: "min_10"; type: IMAGE; clip_to: "clipper"; BASE_DESCR(MIN_10_XOFF); DIGIT_DESCR(0.0,0, MIN_10_XOFF); DIGIT_DESCR(0.1,1, MIN_10_XOFF); DIGIT_DESCR(0.2,2, MIN_10_XOFF); DIGIT_DESCR(0.3,3, MIN_10_XOFF); DIGIT_DESCR(0.4,4, MIN_10_XOFF); DIGIT_DESCR(0.5,5, MIN_10_XOFF); } part { name: "min_1"; type: IMAGE; clip_to: "clipper"; BASE_DESCR(MIN_1_XOFF); DIGIT_DESCR(0.0,0, MIN_1_XOFF); DIGIT_DESCR(0.1,1, MIN_1_XOFF); DIGIT_DESCR(0.2,2, MIN_1_XOFF); DIGIT_DESCR(0.3,3, MIN_1_XOFF); DIGIT_DESCR(0.4,4, MIN_1_XOFF); DIGIT_DESCR(0.5,5, MIN_1_XOFF); DIGIT_DESCR(0.6,6, MIN_1_XOFF); DIGIT_DESCR(0.7,7, MIN_1_XOFF); DIGIT_DESCR(0.8,8, MIN_1_XOFF); DIGIT_DESCR(0.9,9, MIN_1_XOFF); } part { name: "am_pm"; type: IMAGE; clip_to: "clipper"; BASE_DESCR_AM_PM(AM_PM_XOFF); DIGIT_DESCR_AM_PM(0.0,AM, AM_PM_XOFF); DIGIT_DESCR_AM_PM(0.1,PM, AM_PM_XOFF); } part { name: "weekday"; type: TEXT; effect: OUTLINE_SOFT_SHADOW; BASE_DESCR_WD_MD(WEEKDAY_XOFF); DIGIT_DESCR_WD_MD(0.0,Mon., WEEKDAY_XOFF); DIGIT_DESCR_WD_MD(0.1,Tue., WEEKDAY_XOFF); DIGIT_DESCR_WD_MD(0.2,Wed., WEEKDAY_XOFF); DIGIT_DESCR_WD_MD(0.3,Tur., WEEKDAY_XOFF); DIGIT_DESCR_WD_MD(0.4,Fri., WEEKDAY_XOFF); DIGIT_DESCR_WD_MD(0.5,Sat., WEEKDAY_XOFF); DIGIT_DESCR_WD_MD(0.6,Sun., WEEKDAY_XOFF); } part { name: "day"; type: TEXT; effect: OUTLINE_SOFT_SHADOW; scale: 1; BASE_DESCR_DAY(DAY_XOFF); } part { name: "month"; type: TEXT; effect: OUTLINE_SOFT_SHADOW; BASE_DESCR_WD_MD(MONTH_XOFF); DIGIT_DESCR_WD_MD(0.01,Jan, MONTH_XOFF); DIGIT_DESCR_WD_MD(0.02,Feb, MONTH_XOFF); DIGIT_DESCR_WD_MD(0.03,Mar, MONTH_XOFF); DIGIT_DESCR_WD_MD(0.04,Apr, MONTH_XOFF); DIGIT_DESCR_WD_MD(0.05,May, MONTH_XOFF); DIGIT_DESCR_WD_MD(0.06,Jun, MONTH_XOFF); DIGIT_DESCR_WD_MD(0.07,Jul, MONTH_XOFF); DIGIT_DESCR_WD_MD(0.08,Aug, MONTH_XOFF); DIGIT_DESCR_WD_MD(0.09,Sep, MONTH_XOFF); DIGIT_DESCR_WD_MD(0.10,Oct, MONTH_XOFF); DIGIT_DESCR_WD_MD(0.11,Nov, MONTH_XOFF); DIGIT_DESCR_WD_MD(0.12,Dec, MONTH_XOFF); } part { name: "main"; type: RECT; mouse_events: 1; description { state: "default" 0.0; rel1 { to: "whole"; relative: 0.0 0.0; offset: 0 2; } rel2 { to: "whole"; relative: 1.0 1.0; offset: -1 -2; } color: 255 255 255 0; } } } programs { program { name: "init"; signal: "load"; source: ""; script { set_int(cur_hour_,-1); set_int(m_10_,-1); clock_cb(0); } } /* Each transition happens in a similar manner. The only quirk * is that on a transition to 0 a transition to "reset" is made * before the actual change so that rolling always goes the same * direction. (It would be simpler and still work if I didn't do * this, but it looks odd on minute transitions like 19->20 * where '1' would roll one way to '2' and '9' would roll * backwards to '0'.) */ /* The tens of hours transitions */ program { name: "am"; action: STATE_SET "digit" 0.0; target: "am_pm"; } program { name: "pm"; action: STATE_SET "digit" 0.1; target: "am_pm"; } program { name: "hour_10_0"; action: STATE_SET "reset" 0.0; target: "hour_10"; after: "hour_10_to_zero"; } program { name: "hour_10_to_zero"; action: STATE_SET "digit" 0.0; transition: DIGITRANS; target: "hour_10"; } HOUR_10_TRANS("hour_10_1", 0.1); HOUR_10_TRANS("hour_10_2", 0.2); /* only used in 24-hour clock */ /* The hours transitions */ program { name: "hour_1_0"; action: STATE_SET "reset" 0.0; target: "hour_1"; after: "hour_1_to_zero"; } program { name: "hour_1_to_zero"; action: STATE_SET "digit" 0.0; transition: DIGITRANS; target: "hour_1"; } HOUR_1_TRANS("hour_1_1", 0.1); HOUR_1_TRANS("hour_1_2", 0.2); HOUR_1_TRANS("hour_1_3", 0.3); HOUR_1_TRANS("hour_1_4", 0.4); HOUR_1_TRANS("hour_1_5", 0.5); HOUR_1_TRANS("hour_1_6", 0.6); HOUR_1_TRANS("hour_1_7", 0.7); HOUR_1_TRANS("hour_1_8", 0.8); HOUR_1_TRANS("hour_1_9", 0.9); /* The tens of minutes transitions */ program { name: "min_10_0"; action: STATE_SET "reset" 0.0; target: "min_10"; after: "min_10_to_zero"; } program { name: "min_10_to_zero"; action: STATE_SET "digit" 0.0; transition: DIGITRANS; target: "min_10"; } MINUTE_10_TRANS("min_10_1", 0.1); MINUTE_10_TRANS("min_10_2", 0.2); MINUTE_10_TRANS("min_10_3", 0.3); MINUTE_10_TRANS("min_10_4", 0.4); MINUTE_10_TRANS("min_10_5", 0.5); /* The minute transitions */ program { name: "min_1_0"; action: STATE_SET "reset" 0.0; target: "min_1"; after: "min_1_to_zero"; } program { name: "min_1_to_zero"; action: STATE_SET "digit" 0.0; transition: DIGITRANS; target: "min_1"; } /* */ MINUTE_1_TRANS("min_1_1", 0.1); MINUTE_1_TRANS("min_1_2", 0.2); MINUTE_1_TRANS("min_1_3", 0.3); MINUTE_1_TRANS("min_1_4", 0.4); MINUTE_1_TRANS("min_1_5", 0.5); MINUTE_1_TRANS("min_1_6", 0.6); MINUTE_1_TRANS("min_1_7", 0.7); MINUTE_1_TRANS("min_1_8", 0.8); MINUTE_1_TRANS("min_1_9", 0.9); WEEKDAY_TRANS("weekday_0",0.0); WEEKDAY_TRANS("weekday_1",0.1); WEEKDAY_TRANS("weekday_2",0.2); WEEKDAY_TRANS("weekday_3",0.3); WEEKDAY_TRANS("weekday_4",0.4); WEEKDAY_TRANS("weekday_5",0.5); WEEKDAY_TRANS("weekday_6",0.6); MONTH_TRANS("month_1",0.01); MONTH_TRANS("month_2",0.02); MONTH_TRANS("month_3",0.03); MONTH_TRANS("month_4",0.04); MONTH_TRANS("month_5",0.05); MONTH_TRANS("month_6",0.06); MONTH_TRANS("month_7",0.07); MONTH_TRANS("month_8",0.08); MONTH_TRANS("month_9",0.09); MONTH_TRANS("month_10",0.10); MONTH_TRANS("month_11",0.11); MONTH_TRANS("month_12",0.12); } } ///////////////////////////////////////////////////////////////////////////// /*** MOD: IBOX / IBAR ***/ group { name: "e/modules/ibox/icon"; alias: "e/modules/ibar/icon"; data { // This didn't seem to work ... item: "raise_on_hilight" "0"; // 1 or 0 if u want an icon holder // to raise when the mouse (or // keyboard) hilights it // item: "item_list" "item item2 item3"; } images { image: "added_images/DM_Doc_ef.png" COMP; image: "added_images/DM_icon_rollover.png" COMP; } parts { part { name: "item_clip"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 255 255 255 255; } } part { name: "doc_bg"; type: IMAGE; mouse_events: 0; description { state: "default" 0.0; rel1 { relative: 0.3 0.4; offset: 0 0; } rel2 { relative: 0.7 0.8; offset: 0 0; } image.normal:"added_images/DM_Doc_ef.png"; } } part { name: "e.swallow.content"; type: SWALLOW; clip_to: "item_clip"; description { state: "default" 0.0; rel1 { relative: 0.3 0.4; offset: 2 2; } rel2 { relative: 0.7 0.8; offset: -2 -2; } } description { state: "smaller" 0.0; inherit: "default" 0.0; rel1 { offset: 5 5; } rel2 { offset: -5 -5; } } } part { name: "icon_over"; type: IMAGE; mouse_events: 0; description{ state: "default" 0.0; visible: 0; rel1.to: "e.swallow.content"; rel2.to: "e.swallow.content"; image.normal: "added_images/DM_icon_rollover.png"; } description{ state: "focused" 0.0; inherit: "default" 0.0; visible: 1; } description { state: "pressed" 0.0; inherit: "default" 0.0; visible: 1; rel1 { offset: -1 -1; } rel2 { offset: 1 1; } color: 0 0 0 204; } } part { name: "over"; type: RECT; repeat_events: 0; description { state: "default" 0.0; color: 0 0 0 0; } } } programs { program { signal: "e,state,focused"; source: "e"; action: STATE_SET "focused" 0.0; target: "icon_over"; } program{ signal: "e,state,unfocused"; source: "e"; action: STATE_SET "default" 0.0; target: "icon_over"; } program { name: "hover_normal"; signal: "mouse,down,1"; source: "over"; action: STATE_SET "default" 0.0; target: "icon_over"; after: "hover_down"; } program { name: "hover_down"; source: "over"; action: STATE_SET "pressed" 0.0; target: "icon_over"; } program { name: "hover_up"; signal: "mouse,up,1"; source: "over"; action: STATE_SET "focused" 0.0; target: "icon_over"; } program { name: "exec_start"; signal: "e,action,start"; source: "e"; action: STATE_SET "faded" 0.0; transition: LINEAR 0.5; target: "item_clip"; } program { name: "exec_exec"; signal: "e,action,exec"; source: "e"; action: STATE_SET "faded" 0.0; transition: LINEAR 0.5; target: "item_clip"; after: "exec_stop"; } program { name: "exec_stop"; signal: "e,action,stop"; source: "e"; action: STATE_SET "default" 0.0; target: "item_clip"; } } } group { name: "e/modules/ibox/icon_overlay"; alias: "e/modules/ibar/icon_overlay"; data { // item: "item_list", "item item2 item3"; } parts { part { name: "base"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 255 255 255 0; } } part { name: "background"; type: RECT; mouse_events: 0; description { state: "default" 0.0; visible: 0; rel1 { to: "base"; } rel2 { to: "base"; } color: 255 255 255 0; } description { state: "visible" 0.0; visible: 1; rel1 { to: "base"; offset: 0 -5; } rel2 { to: "base"; offset: 0 -5; } color: 255 255 255 255; } description { state: "hidden" 0.0; visible: 1; rel1 { relative: -0.3 -0.3; offset: 0 -5; to: "base"; } rel2 { relative: 1.3 1.3; offset: 0 -5; to: "base"; } color: 255 255 255 0; } description { state: "huge" 0.0; visible: 1; rel1 { relative: -2.0 -2.0; to: "base"; } rel2 { relative: 3.0 3.0; to: "base"; } color: 255 255 255 0; } } part { name: "e.swallow.content"; type: SWALLOW; clip_to: "background"; description { state: "default" 0.0; rel1 { to: "background"; } rel2 { to: "background"; } } } // Smoke ibar text doesn't "fade away" it rolls up part { name: "text_clip"; type: RECT; mouse_events: 0; description { state: "default" 0.0; rel1 { to: "base"; offset: 0 0; } rel2 { to: "base"; offset: 0 0; } color: 255 255 255 255; } } part { name: "e.text.label"; type: TEXT; effect: SOFT_SHADOW; mouse_events: 0; clip_to: "text_clip"; description { state: "default" 0.0; align: 0.5 0.5; rel1 { relative: 0.0 0.7; offset: 0 0; } rel2 { relative: 1.0 1.0; offset: 0 0; } color: 255 255 255 255; color3: 0 0 0 42; color_class: "module_label"; text { text: ""; font: "Sans"; size: 14; min: 0 0; align: 0.5 0.5; elipsis: 0.0; text_class: "module_normal"; } } } } programs { program { name: "go_active"; signal: "e,state,focused"; source: "e"; action: STATE_SET "visible" 0.0; target: "background"; after: "go_active2"; } program { name: "go_activeB"; signal: "e,action,show,label"; source: "e"; action: STATE_SET "default" 0.0; target: "e.text.label"; after: "go_activeB2"; } program { name: "go_activeB2"; signal: ""; source: ""; action: STATE_SET "visible" 0.0; target: "e.text.label"; } program { name: "go_active2"; signal: ""; source: ""; action: STATE_SET "hidden" 0.0; target: "background"; after: "go_active"; } program { name: "go_passive"; signal: "e,state,unfocused"; source: "e"; action: ACTION_STOP; target: "go_active"; target: "go_active2"; after: "go_passive2"; } program { name: "go_passiveB"; signal: "e,action,hide,label"; source: "e"; action: STATE_SET "visible" 0.0; target: "e.text.label"; after: "go_passiveB2"; } program { name: "go_passiveB2"; signal: ""; source: ""; action: STATE_SET "default" 0.0; target: "e.text.label"; } program { name: "go_passive2"; signal: ""; source: ""; action: STATE_SET "default" 0.0; target: "background"; } program { name: "go_big"; action: STATE_SET "visible" 0.0; target: "background"; after: "go_big2"; } program { name: "go_big2"; action: STATE_SET "huge" 0.0; target: "background"; } program { name: "exec_start"; signal: "e,action,start"; source: "e"; action: ACTION_STOP; target: "go_active"; target: "go_active2"; target: "go_passive"; target: "go_passive2"; target: "go_big"; target: "go_big2"; after: "go_big"; } program { name: "exec_exec"; signal: "e,action,exec"; source: "e"; after: "exec_start"; } program { name: "exec_stop"; signal: "e,action,stop"; source: "e"; } } } group { name: "e/modules/ibox/drop"; alias: "e/modules/ibar/drop"; images.image: "inset_raised.png" COMP; parts { part { name: "bg"; mouse_events: 0; description { state: "default" 0.0; image { normal: "inset_raised.png"; border: 7 7 7 7; middle: 0; } } } } } group { name: "e/modules/ibox/drop_overlay"; alias: "e/modules/ibar/drop_overlay"; images { image: "gadman_top.png" COMP; image: "gadman_bottom.png" COMP; image: "gadman_left.png" COMP; image: "gadman_right.png" COMP; } parts { part { name: "left_arrow1"; description { state: "default" 0.0; aspect: 1.0 1.0; aspect_preference: VERTICAL; rel1.relative: -1.0 0.5; rel2.relative: -1.0 0.5; image.normal: "gadman_right.png"; } description { state: "1" 0.0; inherit: "default" 0.0; rel1.relative: -0.8 0.2; rel2.relative: -0.7 0.8; } description { state: "2" 0.0; inherit: "default" 0.0; rel1.relative: 0.2 0.5; rel2.relative: 0.2 0.5; } } part { name: "left_arrow2"; description { state: "default" 0.0; aspect: 1.0 1.0; aspect_preference: VERTICAL; rel1.relative: -1.0 0.5; rel2.relative: -1.0 0.5; image.normal: "gadman_right.png"; } description { state: "1" 0.0; inherit: "default" 0.0; rel1.relative: -0.8 0.2; rel2.relative: -0.7 0.8; } description { state: "2" 0.0; inherit: "default" 0.0; rel1.relative: 0.2 0.5; rel2.relative: 0.2 0.5; } } part { name: "right_arrow1"; description { state: "default" 0.0; aspect: 1.0 1.0; aspect_preference: VERTICAL; rel1.relative: 2.0 0.5; rel2.relative: 2.0 0.5; image.normal: "gadman_left.png"; } description { state: "1" 0.0; inherit: "default" 0.0; rel1.relative: 1.8 0.2; rel2.relative: 1.7 0.8; } description { state: "2" 0.0; inherit: "default" 0.0; rel1.relative: 0.8 0.5; rel2.relative: 0.8 0.5; } } part { name: "right_arrow2"; description { state: "default" 0.0; aspect: 1.0 1.0; aspect_preference: VERTICAL; rel1.relative: 2.0 0.5; rel2.relative: 2.0 0.5; image.normal: "gadman_left.png"; } description { state: "1" 0.0; inherit: "default" 0.0; rel1.relative: 1.8 0.2; rel2.relative: 1.7 0.8; } description { state: "2" 0.0; inherit: "default" 0.0; rel1.relative: 0.8 0.5; rel2.relative: 0.8 0.5; } } part { name: "top_arrow1"; description { state: "default" 0.0; aspect: 1.0 1.0; aspect_preference: HORIZONTAL; rel1.relative: 0.5 -1.0; rel2.relative: 0.5 -1.0; image.normal: "gadman_bottom.png"; } description { state: "1" 0.0; inherit: "default" 0.0; rel1.relative: 0.2 -0.8; rel2.relative: 0.8 -0.7; } description { state: "2" 0.0; inherit: "default" 0.0; rel1.relative: 0.5 0.2; rel2.relative: 0.5 0.2; } } part { name: "top_arrow2"; description { state: "default" 0.0; aspect: 1.0 1.0; aspect_preference: HORIZONTAL; rel1.relative: 0.5 -1.0; rel2.relative: 0.5 -1.0; image.normal: "gadman_bottom.png"; } description { state: "1" 0.0; inherit: "default" 0.0; rel1.relative: 0.2 -0.8; rel2.relative: 0.8 -0.7; } description { state: "2" 0.0; inherit: "default" 0.0; rel1.relative: 0.5 0.2; rel2.relative: 0.5 0.2; } } part { name: "bottom_arrow1"; description { state: "default" 0.0; aspect: 1.0 1.0; aspect_preference: HORIZONTAL; rel1.relative: 0.5 2.0; rel2.relative: 0.5 2.0; image.normal: "gadman_top.png"; } description { state: "1" 0.0; inherit: "default" 0.0; rel1.relative: 0.2 1.7; rel2.relative: 0.8 1.8; } description { state: "2" 0.0; inherit: "default" 0.0; rel1.relative: 0.5 0.8; rel2.relative: 0.5 0.8; } } part { name: "bottom_arrow2"; description { state: "default" 0.0; aspect: 1.0 1.0; aspect_preference: HORIZONTAL; rel1.relative: 0.5 2.0; rel2.relative: 0.5 2.0; image.normal: "gadman_top.png"; } description { state: "1" 0.0; inherit: "default" 0.0; rel1.relative: 0.2 1.7; rel2.relative: 0.8 1.8; } description { state: "2" 0.0; inherit: "default" 0.0; rel1.relative: 0.5 0.8; rel2.relative: 0.5 0.8; } } } programs { program { name: "start1"; signal: "show"; source: ""; after: "left1_1"; after: "right1_1"; after: "top1_1"; after: "bottom1_1"; } program { name: "start2"; signal: "show"; source: ""; in: 0.4 0.0; after: "left2_1"; after: "right2_1"; after: "top2_1"; after: "bottom2_1"; } // LEFT ARROW program { name: "left1_1"; action: STATE_SET "1" 0.0; target: "left_arrow1"; transition: LINEAR 0.4; after: "left1_2"; } program { name: "left1_2"; action: STATE_SET "2" 0.0; target: "left_arrow1"; transition: LINEAR 0.4; after: "left1_r"; } program { name: "left1_r"; action: STATE_SET "default" 0.0; target: "left_arrow1"; after: "left1_1"; } program { name: "left2_1"; action: STATE_SET "1" 0.0; target: "left_arrow2"; transition: LINEAR 0.4; after: "left2_2"; } program { name: "left2_2"; action: STATE_SET "2" 0.0; target: "left_arrow2"; transition: LINEAR 0.4; after: "left2_r"; } program { name: "left2_r"; action: STATE_SET "default" 0.0; target: "left_arrow2"; after: "left2_1"; } // RIGHT ARROW program { name: "right1_1"; action: STATE_SET "1" 0.0; target: "right_arrow1"; transition: LINEAR 0.4; after: "right1_2"; } program { name: "right1_2"; action: STATE_SET "2" 0.0; target: "right_arrow1"; transition: LINEAR 0.4; after: "right1_r"; } program { name: "right1_r"; action: STATE_SET "default" 0.0; target: "right_arrow1"; after: "right1_1"; } program { name: "right2_1"; action: STATE_SET "1" 0.0; target: "right_arrow2"; transition: LINEAR 0.4; after: "right2_2"; } program { name: "right2_2"; action: STATE_SET "2" 0.0; target: "right_arrow2"; transition: LINEAR 0.4; after: "right2_r"; } program { name: "right2_r"; action: STATE_SET "default" 0.0; target: "right_arrow2"; after: "right2_1"; } // TOP ARROW program { name: "top1_1"; action: STATE_SET "1" 0.0; target: "top_arrow1"; transition: LINEAR 0.4; after: "top1_2"; } program { name: "top1_2"; action: STATE_SET "2" 0.0; target: "top_arrow1"; transition: LINEAR 0.4; after: "top1_r"; } program { name: "top1_r"; action: STATE_SET "default" 0.0; target: "top_arrow1"; after: "top1_1"; } program { name: "top2_1"; action: STATE_SET "1" 0.0; target: "top_arrow2"; transition: LINEAR 0.4; after: "top2_2"; } program { name: "top2_2"; action: STATE_SET "2" 0.0; target: "top_arrow2"; transition: LINEAR 0.4; after: "top2_r"; } program { name: "top2_r"; action: STATE_SET "default" 0.0; target: "top_arrow2"; after: "top2_1"; } // BOTTOM ARROW program { name: "bottom1_1"; action: STATE_SET "1" 0.0; target: "bottom_arrow1"; transition: LINEAR 0.4; after: "bottom1_2"; } program { name: "bottom1_2"; action: STATE_SET "2" 0.0; target: "bottom_arrow1"; transition: LINEAR 0.4; after: "bottom1_r"; } program { name: "bottom1_r"; action: STATE_SET "default" 0.0; target: "bottom_arrow1"; after: "bottom1_1"; } program { name: "bottom2_1"; action: STATE_SET "1" 0.0; target: "bottom_arrow2"; transition: LINEAR 0.4; after: "bottom2_2"; } program { name: "bottom2_2"; action: STATE_SET "2" 0.0; target: "bottom_arrow2"; transition: LINEAR 0.4; after: "bottom2_r"; } program { name: "bottom2_r"; action: STATE_SET "default" 0.0; target: "bottom_arrow2"; after: "bottom2_1"; } } } ///////////////////////////////////////////////////////////////////////////// /*** DIALOG ***/ /* Used in all dialogs eg; Wallpaper selector */ group { name: "e/widgets/dialog/main"; images { image: "dia_grad.png" COMP; image: "dia_topshad.png" COMP; image: "dia_botshad.png" COMP; image: "menu_sep.png" COMP; } parts { part { name: "base"; mouse_events: 0; description { state: "default" 0.0; color_class: "dialog_base"; image.normal: "dia_grad.png"; fill { smooth: 0; size { relative: 0.0 1.0; offset: 64 0; } } } } part { name: "shadow"; mouse_events: 0; description { state: "default" 0.0; rel2.relative: 1.0 0.0; rel2.offset: -1 31; image.normal: "dia_topshad.png"; fill { smooth: 0; size { relative: 0.0 1.0; offset: 64 0; } } } } part { name: "shadow2"; mouse_events: 0; description { state: "default" 0.0; rel1.relative: 0.0 1.0; rel1.offset: 0 -4; image.normal: "dia_botshad.png"; fill { smooth: 0; size { relative: 0.0 1.0; offset: 64 0; } } } } part { name: "e.swallow.icon"; type: SWALLOW; description { state: "default" 0.0; align: 0.0 0.5; fixed: 1 0; rel1 { relative: 0.0 0.0; offset: 2 2; } rel2 { relative: 0.0 0.0; offset: 2 -5; to_y: "e.swallow.buttons"; } } } part { name: "e.swallow.content"; type: SWALLOW; description { state: "default" 0.0; rel1 { relative: 1.0 0.0; offset: 2 2; to_x: "e.swallow.icon"; } rel2 { relative: 1.0 0.0; offset: -3 -5; to_y: "e.swallow.buttons"; } } } part { name: "separator"; mouse_events: 0; description { state: "default" 0.0; min: 16 2; rel1 { relative: 0.0 1.0; offset: 4 -1; to_y: "e.swallow.content"; } rel2 { relative: 1.0 1.0; offset: -5 0; to_y: "e.swallow.content"; } image { normal: "menu_sep.png"; border: 2 2 0 0; } fill.smooth: 0; } } part { name: "e.swallow.buttons"; type: SWALLOW; description { state: "default" 0.0; align: 0.5 1.0; fixed: 0 1; rel1 { relative: 0.0 1.0; offset: 4 -5; } rel2 { relative: 1.0 1.0; offset: -5 -5; } } } } } group { name: "e/widgets/dialog/text"; styles { style { name: "dialog_style"; base: "font=Sans font_size=10 text_class=tb_plain align=center color=#000 style=shadow shadow_color=#ffffff80 wrap=word"; tag: "br" "\n"; tag: "hilight" "+ font=Sans:style=Bold text_class=tb_light"; } } parts { part { name: "e.textblock.message"; type: TEXTBLOCK; mouse_events: 0; scale: 1; description { state: "default" 0.0; rel1.offset: 4 4; rel2.offset: -5 -5; text { style: "dialog_style"; min: 1 1; } } } } } ///////////////////////////////////////////////////////////////////////////// /*** CONFIGURATION PANEL ***/ group { name: "e/widgets/configure/main"; images { image: "dia_grad.png" COMP; image: "dia_topshad.png" COMP; image: "dia_botshad.png" COMP; image: "menu_sep.png" COMP; } parts { part { name: "base"; mouse_events: 0; description { state: "default" 0.0; color_class: "dialog_base"; image.normal: "dia_grad.png"; fill { smooth: 0; size { relative: 0.0 1.0; offset: 64 0; } } } } part { name: "shadow"; mouse_events: 0; description { state: "default" 0.0; rel2.relative: 1.0 0.0; rel2.offset: -1 31; image.normal: "dia_topshad.png"; fill { smooth: 0; size { relative: 0.0 1.0; offset: 64 0; } } } } part { name: "shadow2"; mouse_events: 0; description { state: "default" 0.0; rel1.relative: 0.0 1.0; rel1.offset: 0 -4; image.normal: "dia_botshad.png"; fill { smooth: 0; size { relative: 0.0 1.0; offset: 64 0; } } } } part { name: "separator"; mouse_events: 0; description { state: "default" 0.0; min: 16 2; rel1 { relative: 0.0 1.0; offset: 4 -1; to_y: "e.swallow.content"; } rel2 { relative: 1.0 1.0; offset: -5 0; to_y: "e.swallow.content"; } image { normal: "menu_sep.png"; border: 2 2 0 0; } fill.smooth: 0; } } part { name: "e.swallow.content"; type: SWALLOW; description { state: "default" 0.0; align: 0.5 0.5; min: 100 200; rel1.offset: 2 2; rel2 { relative: 1.0 0.0; offset: -3 -5; to_y: "e.swallow.button"; } } } part { name: "e.swallow.button"; type: SWALLOW; description { state: "default" 0.0; align: 0.5 1.0; fixed: 1 1; rel1.relative: 0.5 1.0; rel2.relative: 0.5 1.0; } } } } ///////////////////////////////////////////////////////////////////////////// /*** MOVE/RESIZE BOX ***/ group { name: "e/widgets/border/default/move"; images { image: "base_bg.png" COMP; image: "icon_win_move.png" COMP; } parts { part { name: "base"; mouse_events: 0; description { state: "default" 0.0; image { normal: "base_bg.png"; border: 2 2 2 2; } fill.smooth: 0; } } part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; align: 0.0 0.5; min: 21 21; max: 21 21; fixed: 1 1; rel1.offset: 2 2; rel2.relative: 0.0 1.0; rel2.offset: 2 -3; image.normal: "icon_win_move.png"; } } part { name: "e.text.label"; type: TEXT; scale: 1; description { state: "default" 0.0; rel1.to_x: "icon"; rel1.offset: 2 4; rel1.relative: 1.0 0.0; rel2.offset: -5 -5; color_class: "move_text"; text { text: "X Y"; font: "Sans"; size: 10; align: 0.5 0.5; min: 1 1; text_class: "move_text"; } } } } } group { name: "e/widgets/border/default/resize"; images { image: "base_bg.png" COMP; image: "icon_win_resize.png" COMP; } parts { part { name: "base"; mouse_events: 0; description { state: "default" 0.0; align: 0.5 0.0; image { normal: "base_bg.png"; border: 2 2 2 2; } fill.smooth: 0; } } part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; align: 0.0 0.5; min: 21 21; max: 21 21; fixed: 1 1; rel1.offset: 2 2; rel2.relative: 0.0 1.0; rel2.offset: 2 -3; image.normal: "icon_win_resize.png"; } } part { name: "e.text.label"; type: TEXT; scale: 1; description { state: "default" 0.0; rel1.to_x: "icon"; rel1.offset: 2 4; rel1.relative: 1.0 0.0; rel2.offset: -5 -5; color_class: "resize_text"; text { text: "WxH"; font: "Sans"; size: 10; align: 0.5 0.5; min: 1 1; text_class: "resize_text"; } } } } } ///////////////////////////////////////////////////////////////////////////// /*** WIDGETS ***/ group { name: "e/widgets/check"; images { image: "check_base.png" COMP; image: "check_on.png" COMP; image: "check_sel.png" COMP; } parts { part { name: "base"; mouse_events: 0; scale: 1; description { state: "default" 0.0; min: 16 16; max: 16 16; align: 0.0 0.5; fixed: 1 1; rel1 { relative: 0.0 0.0; offset: 2 2; } rel2 { relative: 0.0 1.0; offset: 2 -3; } image.normal: "check_base.png"; } } part { name: "mark"; mouse_events: 0; clip_to: "mark_hold"; description { state: "default" 0.0; rel1.to: "mark_hold"; rel2.to: "mark_hold"; image.normal: "check_on.png"; } description { state: "selected" 0.0; inherit: "default" 0.0; image.normal: "check_sel.png"; } description { state: "disabled" 0.0; inherit: "default" 0.0; color: 255 255 255 128; } } part { name: "mark_hold"; type: RECT; mouse_events: 0; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; rel1 { to: "base"; offset: -5 -5; } rel2 { to: "base"; offset: 4 4; } } description { state: "on" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; rel1.offset: 0 0; rel2.offset: -1 -1; } } part { name: "e.text.label"; type: TEXT; mouse_events: 0; scale: 1; description { state: "default" 0.0; min: 16 16; rel1 { to_x: "base"; relative: 1.0 0.0; offset: 2 2; } rel2 { relative: 1.0 1.0; offset: -2 -2; } color_class: "check_text"; text { font: "Sans"; size: 10; min: 1 1; align: 0.0 0.5; text_class: "check_button"; } } description { state: "disabled" 0.0; inherit: "default" 0.0; color_class: "check_text_disabled"; } } part { name: "event"; type: RECT; ignore_flags: ON_HOLD; description { state: "default" 0.0; color: 0 0 0 0; } description { state: "disabled" 0.0; inherit: "default" 0.0; visible: 0; } } } programs { program { name: "on"; /* if the checkmark is to be displayed */ signal: "e,state,checked"; source: "e"; action: STATE_SET "on" 0.0; transition: LINEAR 0.15; target: "mark_hold"; } program { name: "off"; /* check mark is not to be displayed */ signal: "e,state,unchecked"; source: "e"; action: STATE_SET "default" 0.0; transition: LINEAR 0.2; target: "mark_hold"; } program { name: "click"; signal: "mouse,up,1"; source: "event"; action: SIGNAL_EMIT "e,action,toggle" ""; } program { name: "disable"; signal: "e,state,disabled"; source: "e"; action: STATE_SET "disabled" 0.0; target: "mark"; target: "event"; target: "e.text.label"; } program { name: "enable"; signal: "e,state,enabled"; source: "e"; action: STATE_SET "default" 0.0; target: "mark"; target: "event"; target: "e.text.label"; } } } group { name: "e/widgets/check_icon"; images { image: "check_base.png" COMP; image: "check_on.png" COMP; image: "check_sel.png" COMP; } parts { part { name: "base"; mouse_events: 0; scale: 1; description { state: "default" 0.0; min: 16 16; max: 16 16; align: 0.0 0.5; fixed: 1 1; rel1 { relative: 0.0 0.0; offset: 2 2; } rel2 { relative: 0.0 1.0; offset: 2 -3; } image.normal: "check_base.png"; } } part { name: "mark"; mouse_events: 0; clip_to: "mark_hold"; description { state: "default" 0.0; rel1.to: "mark_hold"; rel2.to: "mark_hold"; image.normal: "check_on.png"; } description { state: "selected" 0.0; inherit: "default" 0.0; image.normal: "check_sel.png"; } description { state: "disabled" 0.0; inherit: "default" 0.0; color: 255 255 255 128; } } part { name: "mark_hold"; type: RECT; mouse_events: 0; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; rel1 { to: "base"; offset: -5 -5; } rel2 { to: "base"; offset: 4 4; } } description { state: "on" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; rel1.offset: 0 0; rel2.offset: -1 -1; } } part { name: "e.swallow.icon"; type: SWALLOW; clip_to: "icon_clip"; description { state: "default" 0.0; min: 16 16; rel1 { to_x: "base"; relative: 1.0 0.0; offset: 2 2; } rel2 { relative: 1.0 1.0; offset: -2 -2; } } description { state: "label_visible" 0.0; inherit: "default" 0.0; min: 16 16; rel2 { to_y: "base"; relative: 1.0 0.0; offset: -2 -2; } } } part { name: "icon_clip"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 255 255 255 255; } } part { name: "label_clip"; type: RECT; mouse_events: 0; description { state: "default" 0.0; visible: 0; } description { state: "label_visible" 0.0; visible: 1; } } part { name: "e.text.label"; type: TEXT; mouse_events: 0; scale: 1; clip_to: "label_clip"; description { state: "default" 0.0; min: 16 16; rel1 { to_x: "base"; relative: 1.0 0.0; offset: 2 2; } rel2 { relative: 1.0 1.0; offset: -2 -2; } color_class: "check_text"; text { font: "Sans"; size: 10; min: 1 1; align: 0.5 0.5; text_class: "check_button"; } } description { state: "disabled" 0.0; inherit: "default" 0.0; color_class: "check_text_disabled"; } } part { name: "event"; type: RECT; ignore_flags: ON_HOLD; description { state: "default" 0.0; color: 0 0 0 0; } description { state: "disabled" 0.0; inherit: "default" 0.0; visible: 0; } } } programs { program { name: "on"; /* if the checkmark is to be displayed */ signal: "e,state,checked"; source: "e"; action: STATE_SET "on" 0.0; transition: LINEAR 0.15; target: "mark_hold"; } program { name: "off"; /* check mark is not to be displayed */ signal: "e,state,unchecked"; source: "e"; action: STATE_SET "default" 0.0; transition: LINEAR 0.2; target: "mark_hold"; } program { name: "click"; signal: "mouse,up,1"; source: "event"; action: SIGNAL_EMIT "e,action,toggle" ""; } program { name: "label_on"; signal: "e,state,labeled"; source: "e"; action: STATE_SET "label_visible" 0.0; target: "e.swallow.icon"; target: "label_clip"; } program { name: "disable"; signal: "e,state,disabled"; source: "e"; action: STATE_SET "disabled" 0.0; target: "mark"; target: "event"; target: "e.text.label"; } program { name: "enable"; signal: "e,state,enabled"; source: "e"; action: STATE_SET "default" 0.0; target: "mark"; target: "event"; target: "e.text.label"; } } } /* for a radio menu item - same as check, but only one of a group of radio * menu item can be selected at any one time */ group { name: "e/widgets/radio"; images { image: "radio_base.png" COMP; image: "radio_on.png" COMP; image: "radio_sel.png" COMP; } parts { part { name: "base"; mouse_events: 0; scale: 1; description { state: "default" 0.0; min: 16 16; max: 16 16; align: 0.0 0.5; fixed: 1 1; rel1 { relative: 0.0 0.0; offset: 2 2; } rel2 { relative: 0.0 1.0; offset: 2 -3; } image.normal: "radio_base.png"; } } part { name: "mark"; mouse_events: 0; clip_to: "mark_hold"; description { state: "default" 0.0; rel1.to: "mark_hold"; rel2.to: "mark_hold"; image.normal: "radio_on.png"; } description { state: "selected" 0.0; inherit: "default" 0.0; image.normal: "radio_sel.png"; } description { state: "disabled" 0.0; inherit: "default" 0.0; color: 255 255 255 128; } } part { name: "mark_hold"; type: RECT; mouse_events: 0; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; rel1 { to: "base"; offset: -5 -5; } rel2 { to: "base"; offset: 4 4; } } description { state: "on" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; rel1.offset: 0 0; rel2.offset: -1 -1; } } part { name: "e.text.label"; type: TEXT; mouse_events: 0; scale: 1; description { state: "default" 0.0; min: 16 16; rel1 { to_x: "base"; relative: 1.0 0.0; offset: 2 2; } rel2 { relative: 1.0 1.0; offset: -2 -2; } color_class: "radio_text"; text { font: "Sans"; size: 10; min: 1 1; align: 0.0 0.5; text_class: "radio_button"; } } description { state: "disabled" 0.0; inherit: "default" 0.0; color_class: "radio_text_disabled"; } } part { name: "event"; type: RECT; ignore_flags: ON_HOLD; description { state: "default" 0.0; color: 0 0 0 0; } description { state: "disabled" 0.0; inherit: "default" 0.0; visible: 0; } } } programs { program { name: "on"; /* if the checkmark is to be displayed */ signal: "e,state,on"; source: "e"; action: STATE_SET "on" 0.0; transition: LINEAR 0.15; target: "mark_hold"; } program { name: "off"; /* check mark is not to be displayed */ signal: "e,state,off"; source: "e"; action: STATE_SET "default" 0.0; transition: LINEAR 0.2; target: "mark_hold"; } program { name: "click"; signal: "mouse,up,1"; source: "event"; action: SIGNAL_EMIT "e,action,toggle" ""; } program { name: "disable"; signal: "e,state,disabled"; source: "e"; action: STATE_SET "disabled" 0.0; target: "mark"; target: "event"; target: "e.text.label"; } program { name: "enable"; signal: "e,state,enabled"; source: "e"; action: STATE_SET "default" 0.0; target: "mark"; target: "event"; target: "e.text.label"; } } } group { name: "e/widgets/radio_icon"; images { image: "radio_base.png" COMP; image: "radio_on.png" COMP; image: "radio_sel.png" COMP; } parts { part { name: "base"; mouse_events: 0; scale: 1; description { state: "default" 0.0; min: 16 16; max: 16 16; align: 0.0 0.5; fixed: 1 1; rel1 { relative: 0.0 0.0; offset: 2 2; } rel2 { relative: 0.0 1.0; offset: 2 -3; } image.normal: "radio_base.png"; } } part { name: "mark"; mouse_events: 0; clip_to: "mark_hold"; description { state: "default" 0.0; rel1.to: "mark_hold"; rel2.to: "mark_hold"; image.normal: "radio_on.png"; } description { state: "selected" 0.0; inherit: "default" 0.0; image.normal: "radio_sel.png"; } description { state: "disabled" 0.0; inherit: "default" 0.0; color: 255 255 255 128; } } part { name: "mark_hold"; type: RECT; mouse_events: 0; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; rel1 { to: "base"; offset: -5 -5; } rel2 { to: "base"; offset: 4 4; } } description { state: "on" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; rel1.offset: 0 0; rel2.offset: -1 -1; } } part { name: "e.swallow.icon"; type: SWALLOW; clip_to: "icon_clip"; description { state: "default" 0.0; min: 16 16; rel1 { to_x: "base"; relative: 1.0 0.0; offset: 2 2; } rel2 { relative: 1.0 1.0; offset: -2 -2; } } description { state: "label_visible" 0.0; inherit: "default" 0.0; min: 16 16; rel2 { to_y: "e.text.label"; relative: 1.0 0.0; offset: -2 -2; } } } part { name: "icon_clip"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 255 255 255 255; } } part { name: "label_clip"; type: RECT; mouse_events: 0; description { state: "default" 0.0; visible: 0; } description { state: "label_visible" 0.0; visible: 1; } } part { name: "e.text.label"; type: TEXT; mouse_events: 0; scale: 1; clip_to: "label_clip"; description { state: "default" 0.0; min: 16 16; rel1 { to_x: "base"; relative: 1.0 0.5; offset: 2 1; } rel2 { relative: 1.0 1.0; offset: -2 -2; } color_class: "radio_text"; text { font: "Sans"; size: 10; min: 1 1; align: 0.5 0.5; text_class: "radio_button"; } } description { state: "disabled" 0.0; inherit: "default" 0.0; color_class: "radio_text_disabled"; } } part { name: "event"; type: RECT; ignore_flags: ON_HOLD; description { state: "default" 0.0; color: 0 0 0 0; } description { state: "disabled" 0.0; inherit: "default" 0.0; visible: 0; } } } programs { program { name: "on"; /* if the radiomark is to be displayed */ signal: "e,state,on"; source: "e"; action: STATE_SET "on" 0.0; transition: LINEAR 0.15; target: "mark_hold"; } program { name: "off"; /* radio mark is not to be displayed */ signal: "e,state,off"; source: "e"; action: STATE_SET "default" 0.0; transition: LINEAR 0.2; target: "mark_hold"; } program { name: "click"; signal: "mouse,up,1"; source: "event"; action: SIGNAL_EMIT "e,action,toggle" ""; } program { name: "label_on"; signal: "e,state,labeled"; source: "e"; action: STATE_SET "label_visible" 0.0; target: "e.swallow.icon"; target: "label_clip"; } program { name: "disable"; signal: "e,state,disabled"; source: "e"; action: STATE_SET "disabled" 0.0; target: "mark"; target: "event"; target: "e.text.label"; } program { name: "enable"; signal: "e,state,enabled"; source: "e"; action: STATE_SET "default" 0.0; target: "mark"; target: "event"; target: "e.text.label"; } } } group { name: "e/widgets/button"; images { image: "bt_base1.png" COMP; image: "bt_base2.png" COMP; image: "bt_hilight.png" COMP; image: "bt_shine.png" COMP; image: "bt_glow.png" COMP; image: "bt_dis_base.png" COMP; image: "bt_dis_hilight.png" COMP; } parts { part { name: "button_image"; mouse_events: 1; description { state: "default" 0.0; min: 32 16; image { normal: "bt_base2.png"; border: 7 7 7 7; } } description { state: "clicked" 0.0; inherit: "default" 0.0; image.normal: "bt_base1.png"; } description { state: "disabled" 0.0; inherit: "default" 0.0; image { normal: "bt_dis_base.png"; border: 4 4 4 4; } } } part { name: "e.swallow.icon"; type: SWALLOW; mouse_events: 0; description { state: "default" 0.0; align: 0.0 0.5; rel1 { relative: 0.0 0.0; offset: 3 3; to: "button_image"; } rel2 { relative: 0.0 1.0; offset: 3 -4; to: "button_image"; } } description { state: "combo" 0.0; inherit: "default" 0.0; aspect: 1.0 1.0; aspect_preference: VERTICAL; align: 0.0 0.5; rel1 { relative: 0.0 0.0; offset: 3 3; to: "button_image"; } rel2 { relative: 0.0 1.0; offset: 3 -4; to: "button_image"; } } description { state: "icon" 0.0; inherit: "default" 0.0; aspect: 1.0 1.0; aspect_preference: BOTH; align: 0.5 0.5; rel1 { relative: 0.0 0.0; offset: 3 3; to: "button_image"; } rel2 { relative: 1.0 1.0; offset: -4 -4; to: "button_image"; } } } part { name: "e.text.label"; type: TEXT; effect: SOFT_SHADOW; mouse_events: 0; scale: 1; description { state: "default" 0.0; rel1 { relative: 1.0 0.0; offset: 2 3; to_x: "e.swallow.icon"; to_y: "button_image"; } rel2 { relative: 1.0 1.0; offset: -4 -4; to: "button_image"; } color_class: "button_text"; text { font: "Sans"; size: 10; min: 1 1; align: 0.5 0.5; text_class: "button"; } } description { state: "disabled" 0.0; inherit: "default" 0.0; color_class: "button_text_disabled"; } description { state: "icon" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "over1"; mouse_events: 0; description { state: "default" 0.0; rel2.relative: 1.0 0.5; image { normal: "bt_hilight.png"; border: 7 7 7 0; } } description { state: "disabled" 0.0; inherit: "default" 0.0; image { normal: "bt_dis_hilight.png"; border: 4 4 4 0; } } } part { name: "over2"; mouse_events: 0; description { state: "default" 0.0; image { normal: "bt_shine.png"; border: 7 7 7 7; } } description { state: "disabled" 0.0; inherit: "default" 0.0; visible: 0; } } part { name: "over3"; mouse_events: 0; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; image { normal: "bt_glow.png"; border: 7 7 9 9; } fill.smooth : 0; } description { state: "clicked" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "disabler"; type: RECT; description { state: "default" 0.0; color: 0 0 0 0; visible: 0; } description { state: "disabled" 0.0; inherit: "default" 0.0; visible: 1; } } } programs { program { name: "button_click"; signal: "mouse,down,1"; source: "button_image"; action: STATE_SET "clicked" 0.0; target: "button_image"; target: "over3"; } program { name: "button_unclick"; signal: "mouse,up,1"; source: "button_image"; action: STATE_SET "default" 0.0; target: "button_image"; target: "over3"; } program { name: "button_unclick2"; signal: "mouse,clicked,1"; source: "button_image"; action: SIGNAL_EMIT "e,action,click" ""; } program { name: "text_state"; signal: "e,state,text"; source: "e"; action: STATE_SET "default" 0.0; target: "e.swallow.icon"; target: "e.text.label"; } program { name: "icon_state"; signal: "e,state,icon"; source: "e"; action: STATE_SET "icon" 0.0; target: "e.swallow.icon"; target: "e.text.label"; } program { name: "combo_state"; signal: "e,state,combo"; source: "e"; action: STATE_SET "combo" 0.0; target: "e.swallow.icon"; target: "e.text.label"; } program { name: "disable"; signal: "e,state,disabled"; source: "e"; action: STATE_SET "disabled" 0.0; target: "button_image"; target: "over1"; target: "e.text.label"; target: "disabler"; } program { name: "enable"; signal: "e,state,enabled"; source: "e"; action: STATE_SET "default" 0.0; target: "button_image"; target: "over1"; target: "e.text.label"; target: "disabler"; } } } /* e/widgets/scrollframe is used in the Wallpaper selector dialog */ group { name: "e/widgets/scrollframe"; images { image: "added_images/e17_ibar_bg_v.png" COMP; image: "added_images/e17_ibar_over_v.png" COMP; image: "added_images/e17_scrollbar_hdrag_thumb.png" COMP; image: "added_images/e17_scrollbar_vdrag_thumb.png" COMP; image: "added_images/focus.png" COMP; image: "sb_thumb.png" COMP; image: "added_images/DM_Internet_Scroll_01.png" COMP; image: "added_images/DM_Internet_Scroll_02.png" COMP; image: "added_images/DM_Internet_Scroll_03.png" COMP; image: "added_images/DM_Internet_Scroll_h_01.png" COMP; image: "added_images/DM_Internet_Scroll_h_02.png" COMP; image: "added_images/DM_Internet_Scroll_h_03.png" COMP; image: "added_images/DM_Internet_Scroll_Up.png" COMP; image: "added_images/DM_Internet_Scroll_Middle.png" COMP; image: "added_images/DM_Internet_Scroll_Down.png" COMP; image: "added_images/DM_Internet_Scroll_Left_h.png" COMP; image: "added_images/DM_Internet_Scroll_Middle_h.png" COMP; image: "added_images/DM_Internet_Scroll_Right_h.png" COMP; image: "added_images/DM_Internet_Scroll_Increase.png" COMP; } parts { part { name: "bg"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 255 255 255 0; } } part { name: "clipper"; type: RECT; mouse_events: 0; description { state: "default" 0.0; rel1 { to: "bg"; } rel2 { to: "bg"; } } } part { name: "e.swallow.content"; clip_to: "clipper"; type: SWALLOW; description { state: "default" 0.0; rel1.to: "clipper"; rel2 { relative: 0.0 0.0; offset: -1 1; to_x: "sb_vbar"; to_y: "sb_hbar"; } } } part { name: "sb_vbar"; type: RECT; mouse_events: 0; description { state: "default" 0.0; min: 17 17; max: 17 9999; align: 1.0 0.0; rel1 { to: "bg"; relative: 1.0 0.0; offset: -16 0; } rel2 { relative: 1.0 0.0; offset: 0 2; to_y: "sb_hbar"; to_x: "bg"; } } description { state: "hidden" 0.0; visible: 0; max: 0 99999; rel1 { to: "bg"; relative: 1.0 0.0; offset: 0 4; } rel2 { to: "bg"; relative: 1.0 0.0; offset: 0 -1; to_y: "sb_hbar"; } } } part { name: "sb_vbar_base"; type: RECT; clip_to: "sb_vbar"; mouse_events: 1; description { state: "default" 0.0; color: 0 0 0 0; rel1 { relative: 0.0 1.0; offset: 0 0; to: "sb_vbar_a1"; } rel2 { relative: 1.0 0.0; offset: -3 -1; to: "sb_vbar_a2"; } } } part { name: "sb_vbar_runner"; clip_to: "sb_vbar"; mouse_events: 0; description { state: "default" 0.0; rel1 { to: "sb_vbar_base"; offset: 0 0; } rel2 { to: "sb_vbar_base"; offset: 0 0; } image { normal: "added_images/DM_Internet_Scroll_Middle.png"; } fill { smooth: 0; } } } part { name: "sb_vbar_p1"; type: RECT; clip_to: "sb_vbar"; mouse_events: 1; description { state: "default" 0.0; color: 0 0 0 0; rel1 { relative: 0.0 1.0; offset: 0 0; to: "sb_vbar_a1"; } rel2 { relative: 1.0 0.0; offset: -1 -1; to: "e.dragable.vbar"; } } } part { name: "sb_vbar_p2"; type: RECT; clip_to: "sb_vbar"; mouse_events: 1; description { state: "default" 0.0; color: 0 0 0 0; rel1 { relative: 0.0 1.0; offset: 0 0; to: "e.dragable.vbar"; } rel2 { relative: 1.0 0.0; offset: -1 -1; to: "sb_vbar_a2"; } } } part { name: "e.dragable.vbar"; clip_to: "sb_vbar"; mouse_events: 1; dragable { x: 0 0 0; y: 1 1 0; confine: "sb_vbar_base"; } description { state: "default" 0.0; rel1 { relative: 0.5 0.5; offset: 0 0; to: "sb_vbar_base"; } rel2 { relative: 0.5 0.5; offset: 0 0; to: "sb_vbar_base"; } image { normal: "added_images/DM_Internet_Scroll_01.png"; border: 5 5 5 5; } } description { state: "over" 0.0; inherit: "default" 0.0; image { normal: "added_images/DM_Internet_Scroll_02.png"; } } description { state: "clicked" 0.0; inherit: "default" 0.0; image { normal: "added_images/DM_Internet_Scroll_03.png"; } } } part { name: "vbar_bar_thumb"; clip_to: "sb_vbar"; mouse_events: 0; description { state: "default" 0.0; max: 8 8; min: 8 8; rel1 { to: "e.dragable.vbar"; } rel2 { to: "e.dragable.vbar"; } image { normal: "added_images/e17_scrollbar_vdrag_thumb.png"; } } } part { name: "sb_vbar_a1"; type: IMAGE; mouse_events: 1; clip_to: "sb_vbar"; description { state: "default" 0.0; align: 0.5 0.0; aspect: 1.0 1.0; aspect_preference: HORIZONTAL; rel1 { to: "sb_vbar"; relative: 0.0 0.0; offset: 1 0; } rel2 { to: "sb_vbar"; relative: 1.0 0.0; offset: 0 0; } image { normal: "added_images/DM_Internet_Scroll_Up.png"; } } description { state: "clicked" 0.0; inherit: "default" 0.0; image { normal: "added_images/DM_Internet_Scroll_Up.png"; } } } part { name: "sb_vbar_a2"; type: IMAGE; mouse_events: 1; clip_to: "sb_vbar"; description { state: "default" 0.0; align: 0.5 1.0; aspect: 1.0 1.0; aspect_preference: HORIZONTAL; rel1 { to: "sb_vbar"; relative: 0.0 1.0; offset: 1 0; } rel2 { to: "sb_vbar"; relative: 1.0 1.0; offset: 0 -1; } image { normal: "added_images/DM_Internet_Scroll_Down.png"; } } description { state: "clicked" 0.0; inherit: "default" 0.0; image { normal: "added_images/DM_Internet_Scroll_Down.png"; } } } part { name: "sb_increase"; type: IMAGE; mouse_events: 1; description { state: "default" 0.0; align: 0.5 1.0; aspect: 1.0 1.0; aspect_preference: HORIZONTAL; rel1 { to: "sb_hbar_a2"; relative: 1.0 0.0; offset: 0 2; } rel2 { to: "sb_vbar_a2"; relative: 1.0 2.0; offset: -1 -1; } image { normal: "added_images/DM_Internet_Scroll_Increase.png"; } } description { state: "clicked" 0.0; inherit: "default" 0.0; image { normal: "added_images/DM_Internet_Scroll_Increase.png"; } } description { state: "hidden" 0.0; visible: 0; rel1 { to: "sb_hbar_a2"; relative: 1.0 0.0; offset: 0 2; } rel2 { to: "sb_vbar_a2"; relative: 1.0 2.0; offset: -1 -1; } } } part { name: "sb_hbar"; type: RECT; mouse_events: 0; description { state: "default" 0.0; min: 16 16; align: 0.0 1.0; rel1 { to: "bg"; relative: 0.0 1.0; offset: 4 -5; } rel2 { to: "bg"; relative: 0.0 1.0; offset: -1 -5; to_x: "sb_vbar"; } } description { state: "hidden" 0.0; visible: 0; rel1 { to: "bg"; relative: 0.0 1.0; offset: 0 -4; } rel2 { to: "bg"; relative: 0.0 1.0; offset: -1 -4; to_x: "sb_vbar"; } } } part { name: "sb_hbar_base"; type: RECT; clip_to: "sb_hbar"; mouse_events: 1; description { state: "default" 0.0; color: 0 0 0 0; rel1 { relative: 1.0 0.0; offset: 0 0; to: "sb_hbar_a1"; } rel2 { relative: 0.0 1.0; offset: -1 -1; to: "sb_hbar_a2"; } } } part { name: "sb_hbar_runner"; clip_to: "sb_hbar"; mouse_events: 0; description { state: "default" 0.0; rel1 { to: "sb_hbar_base"; } rel2 { to: "sb_hbar_base"; } image { normal: "added_images/DM_Internet_Scroll_Middle_h.png"; } fill { smooth: 0; } } } part { name: "sb_hbar_p1"; type: RECT; clip_to: "sb_hbar"; mouse_events: 1; description { state: "default" 0.0; color: 0 0 0 0; rel1 { relative: 1.0 0.0; offset: 0 0; to: "sb_hbar_a1"; } rel2 { relative: 0.0 1.0; offset: -1 -1; to: "e.dragable.hbar"; } } } part { name: "sb_hbar_p2"; type: RECT; clip_to: "sb_hbar"; mouse_events: 1; description { state: "default" 0.0; color: 0 0 0 0; rel1 { relative: 1.0 0.0; offset: 0 0; to: "e.dragable.hbar"; } rel2 { relative: 0.0 1.0; offset: -1 -1; to: "sb_hbar_a2"; } } } part { name: "e.dragable.hbar"; clip_to: "sb_hbar"; mouse_events: 1; dragable { x: 1 1 0; y: 0 0 0; confine: "sb_hbar_base"; } description { state: "default" 0.0; min: 16 16; rel1 { relative: 0.5 0.5; offset: 0 0; to: "sb_hbar_base"; } rel2 { relative: 0.5 0.5; offset: 0 0; to: "sb_hbar_base"; } image { normal: "added_images/DM_Internet_Scroll_h_01.png"; border: 5 5 5 5; } } description { state: "over" 0.0; inherit: "default" 0.0; image { normal: "added_images/DM_Internet_Scroll_h_02.png"; } } description { state: "clicked" 0.0; inherit: "default" 0.0; image { normal: "added_images/DM_Internet_Scroll_h_01.png"; } } } part { name: "hbar_bar_thumb"; clip_to: "sb_hbar"; mouse_events: 0; description { state: "default" 0.0; max: 8 8; min: 8 8; rel1 { to: "e.dragable.hbar"; } rel2 { to: "e.dragable.hbar"; } image { normal: "added_images/e17_scrollbar_hdrag_thumb.png"; } } } part { name: "sb_hbar_a1"; type: IMAGE; mouse_events: 1; clip_to: "sb_hbar"; description { state: "default" 0.0; align: 0.0 0.5; aspect: 1.0 1.0; aspect_preference: VERTICAL; rel1 { to: "sb_hbar"; relative: 0.0 0.0; offset: 0 0; } rel2 { to: "sb_hbar"; relative: 0.0 1.0; offset: 0 -1; } image { normal: "added_images/DM_Internet_Scroll_Left_h.png"; } } description { state: "clicked" 0.0; inherit: "default" 0.0; image { normal: "added_images/DM_Internet_Scroll_Left_h.png"; } } } part { name: "sb_hbar_a2"; type: IMAGE; mouse_events: 1; clip_to: "sb_hbar"; description { state: "default" 0.0; align: 1.0 0.5; aspect: 1.0 1.0; aspect_preference: VERTICAL; rel1 { to: "sb_hbar"; relative: 1.0 0.0; offset: -1 0; } rel2 { to: "sb_hbar"; relative: 1.0 1.0; offset: -1 -1; } image { normal: "added_images/DM_Internet_Scroll_Right_h.png"; } } description { state: "clicked" 0.0; inherit: "default" 0.0; image { normal: "added_images/DM_Internet_Scroll_Right_h.png"; } } } part { name: "focus"; mouse_events: 0; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; image { normal: "added_images/focus.png"; border: 7 7 7 7; middle: 0; } fill { smooth: 0; } } description { state: "focused" 0.0; inherit: "default" 0.0; visible: 0; color: 255 255 255 255; } } } programs { program { name: "sb_vbar_show"; signal: "e,action,show,vbar"; source: "e"; action: STATE_SET "default" 0.0; target: "sb_vbar"; } program { name: "sb_vbar_hide"; signal: "e,action,hide,vbar"; source: "e"; action: STATE_SET "hidden" 0.0; target: "sb_vbar"; } program { name: "sb_hbar_show"; signal: "e,action,show,hbar"; source: "e"; action: STATE_SET "default" 0.0; target: "sb_hbar"; target: "sb_increase"; } program { name: "sb_hbar_hide"; signal: "e,action,hide,hbar"; source: "e"; action: STATE_SET "hidden" 0.0; target: "sb_hbar"; target: "sb_increase"; } program { name: "sb_vbar_a1_down"; signal: "mouse,down,1"; source: "sb_vbar_a1"; action: STATE_SET "clicked" 0.0; target: "sb_vbar_a1"; } program { name: "sb_vbar_a1_down2"; signal: "mouse,down,1"; source: "sb_vbar_a1"; action: DRAG_VAL_STEP 0.0 -1.0; target: "e.dragable.vbar"; } program { name: "sb_vbar_a1_up"; signal: "mouse,up,1"; source: "sb_vbar_a1"; action: STATE_SET "default" 0.0; target: "sb_vbar_a1"; } program { name: "sb_vbar_a2_down"; signal: "mouse,down,1"; source: "sb_vbar_a2"; action: STATE_SET "clicked" 0.0; target: "sb_vbar_a2"; } program { name: "sb_vbar_a2_down2"; signal: "mouse,down,1"; source: "sb_vbar_a2"; action: DRAG_VAL_STEP 0.0 1.0; target: "e.dragable.vbar"; } program { name: "sb_vbar_a2_up"; signal: "mouse,up,1"; source: "sb_vbar_a2"; action: STATE_SET "default" 0.0; target: "sb_vbar_a2"; } program { name: "sb_vbar_p1_down"; signal: "mouse,down,1"; source: "sb_vbar_p1"; action: DRAG_VAL_PAGE 0.0 -1.0; target: "e.dragable.vbar"; } program { name: "sb_vbar_p2_down"; signal: "mouse,down,1"; source: "sb_vbar_p2"; action: DRAG_VAL_PAGE 0.0 1.0; target: "e.dragable.vbar"; } program { name: "sb_vbar_down"; signal: "mouse,down,1"; source: "e.dragable.vbar"; action: STATE_SET "clicked" 0.0; target: "e.dragable.vbar"; } program { name: "sb_vbar_up"; signal: "mouse,up,1"; source: "e.dragable.vbar"; action: STATE_SET "default" 0.0; target: "e.dragable.vbar"; } program { name: "sb_vbar_in"; signal: "mouse,in"; source: "e.dragable.vbar"; action: STATE_SET "over" 0.0; target: "e.dragable.vbar"; } program { name: "sb_vbar_out"; signal: "mouse,out"; source: "e.dragable.vbar"; action: STATE_SET "default" 0.0; target: "e.dragable.vbar"; } program { name: "sb_hbar_a1_down"; signal: "mouse,down,1"; source: "sb_hbar_a1"; action: STATE_SET "clicked" 0.0; target: "sb_hbar_a1"; } program { name: "sb_hbar_a1_down2"; signal: "mouse,down,1"; source: "sb_hbar_a1"; action: DRAG_VAL_STEP -1.0 0.0; target: "e.dragable.hbar"; } program { name: "sb_hbar_a1_up"; signal: "mouse,up,1"; source: "sb_hbar_a1"; action: STATE_SET "default" 0.0; target: "sb_hbar_a1"; } program { name: "sb_hbar_a2_down"; signal: "mouse,down,1"; source: "sb_hbar_a2"; action: STATE_SET "clicked" 0.0; target: "sb_hbar_a2"; } program { name: "sb_hbar_a2_down2"; signal: "mouse,down,1"; source: "sb_hbar_a2"; action: DRAG_VAL_STEP 1.0 0.0; target: "e.dragable.hbar"; } program { name: "sb_hbar_a2_up"; signal: "mouse,up,1"; source: "sb_hbar_a2"; action: STATE_SET "default" 0.0; target: "sb_hbar_a2"; } program { name: "sb_hbar_p1_down"; signal: "mouse,down,1"; source: "sb_hbar_p1"; action: DRAG_VAL_PAGE -1.0 0.0; target: "e.dragable.hbar"; } program { name: "sb_hbar_p2_down"; signal: "mouse,down,1"; source: "sb_hbar_p2"; action: DRAG_VAL_PAGE 1.0 0.0; target: "e.dragable.hbar"; } program { name: "sb_hbar_down"; signal: "mouse,down,1"; source: "e.dragable.hbar"; action: STATE_SET "clicked" 0.0; target: "e.dragable.hbar"; } program { name: "sb_hbar_up"; signal: "mouse,up,1"; source: "e.dragable.hbar"; action: STATE_SET "default" 0.0; target: "e.dragable.hbar"; } program { name: "sb_hbar_in"; signal: "mouse,in"; source: "e.dragable.hbar"; action: STATE_SET "over" 0.0; target: "e.dragable.hbar"; } program { name: "sb_hbar_out"; signal: "mouse,out"; source: "e.dragable.hbar"; action: STATE_SET "default" 0.0; target: "e.dragable.hbar"; } program { name: "focus_in"; signal: "e,state,focused"; source: "e"; action: STATE_SET "focused" 0.0; transition: DECELERATE 0.2; target: "focus"; } program { name: "focus_out"; signal: "e,state,unfocused"; source: "e"; action: STATE_SET "default" 0.0; transition: ACCELERATE 0.5; target: "focus"; } } } /* e/widgets/ilist is used in the Module Config Dialog for the module list */ group { name: "e/widgets/ilist"; data.item: "stacking" "above"; data.item: "selectraise" "on"; images { image: "bt_sm_base1.png" COMP; image: "bt_sm_shine.png" COMP; image: "bt_sm_hilight.png" COMP; image: "ilist_1.png" COMP; image: "ilist_item_shadow.png" COMP; } parts { part { name: "base_sh"; mouse_events: 0; description { state: "default" 0.0; fixed: 1 1; align: 0.0 0.0; min: 0 10; rel1 { to: "base"; relative: 0.0 1.0; offset: 0 0; } rel2 { to: "base"; relative: 1.0 1.0; offset: -1 0; } image { normal: "ilist_item_shadow.png"; } fill.smooth: 0; } } part { name: "base"; mouse_events: 0; description { state: "default" 0.0; color_class: "ilist_item_base"; image { normal: "ilist_1.png"; border: 2 2 2 2; } fill.smooth: 0; } } part { name: "bg"; mouse_events: 0; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; rel1 { relative: 0.0 0.0; offset: -5 -5; } rel2 { relative: 1.0 1.0; offset: 4 4; } image { normal: "bt_sm_base1.png"; border: 6 6 6 6; } } description { state: "selected" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; rel1 { relative: 0.0 0.0; offset: -2 -2; } rel2 { relative: 1.0 1.0; offset: 1 1; } } } part { name: "e.swallow.icon"; type: SWALLOW; description { state: "default" 0.0; align: 0.0 0.5; aspect: 1.0 1.0; aspect_preference: VERTICAL; rel1 { relative: 0.0 0.0; offset: 4 4; } rel2 { relative: 0.0 1.0; offset: 4 -5; } } } part { name: "e.text.label"; type: TEXT; effect: SOFT_SHADOW; mouse_events: 0; scale: 1; description { state: "default" 0.0; min: 16 16; rel1 { to_x: "e.swallow.icon"; relative: 1.0 0.0; offset: 4 4; } rel2 { relative: 1.0 1.0; offset: -5 -5; } color_class: "ilist_item"; text { font: "Sans"; size: 10; min: 1 1; align: 0.0 0.5; text_class: "ilist_item"; } } description { state: "selected" 0.0; inherit: "default" 0.0; color_class: "ilist_item_selected"; } } part { name: "e.swallow.end"; type: SWALLOW; description { state: "default" 0.0; align: 1.0 0.5; aspect: 1.0 1.0; aspect_preference: VERTICAL; rel1 { relative: 1.0 0.0; offset: -5 4; } rel2 { relative: 1.0 1.0; offset: -5 -5; } } } part { name: "fg1"; mouse_events: 0; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; rel1.to: "bg"; rel2.relative: 1.0 0.5; rel2.to: "bg"; image { normal: "bt_sm_hilight.png"; border: 6 6 6 0; } } description { state: "selected" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "fg2"; mouse_events: 0; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; rel1.to: "bg"; rel2.to: "bg"; image { normal: "bt_sm_shine.png"; border: 6 6 6 0; } } description { state: "selected" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "event"; type: RECT; description { state: "default" 0.0; color: 0 0 0 0; } } } programs { program { name: "go_active"; signal: "e,state,selected"; source: "e"; action: STATE_SET "selected" 0.0; target: "bg"; target: "fg1"; target: "fg2"; target: "e.text.label"; } program { name: "go_passive"; signal: "e,state,unselected"; source: "e"; action: STATE_SET "default" 0.0; target: "bg"; target: "fg1"; target: "fg2"; target: "e.text.label"; transition: LINEAR 0.1; } } } group { name: "e/widgets/ilist_odd"; data.item: "stacking" "below"; data.item: "selectraise" "on"; images { image: "bt_sm_base1.png" COMP; image: "bt_sm_shine.png" COMP; image: "bt_sm_hilight.png" COMP; image: "ilist_2.png" COMP; } parts { part { name: "base"; mouse_events: 0; description { state: "default" 0.0; color_class: "ilist_item_odd_base"; image { normal: "ilist_2.png"; border: 2 2 2 2; } fill.smooth: 0; } } part { name: "bg"; mouse_events: 0; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; rel1 { relative: 0.0 0.0; offset: -5 -5; } rel2 { relative: 1.0 1.0; offset: 4 4; } image { normal: "bt_sm_base1.png"; border: 6 6 6 6; } } description { state: "selected" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; rel1 { relative: 0.0 0.0; offset: -2 -2; } rel2 { relative: 1.0 1.0; offset: 1 1; } } } part { name: "e.swallow.icon"; type: SWALLOW; description { state: "default" 0.0; align: 0.0 0.5; aspect: 1.0 1.0; aspect_preference: VERTICAL; rel1 { relative: 0.0 0.0; offset: 4 4; } rel2 { relative: 0.0 1.0; offset: 4 -5; } } } part { name: "e.text.label"; type: TEXT; effect: SOFT_SHADOW; mouse_events: 0; scale: 1; description { state: "default" 0.0; min: 16 16; rel1 { to_x: "e.swallow.icon"; relative: 1.0 0.0; offset: 4 4; } rel2 { relative: 1.0 1.0; offset: -5 -5; } color_class: "ilist_item_odd"; text { font: "Sans"; size: 10; min: 1 1; align: 0.0 0.5; text_class: "ilist_item"; } } description { state: "selected" 0.0; inherit: "default" 0.0; color_class: "ilist_item_selected"; } } part { name: "e.swallow.end"; type: SWALLOW; description { state: "default" 0.0; align: 1.0 0.5; aspect: 1.0 1.0; aspect_preference: VERTICAL; rel1 { relative: 1.0 0.0; offset: -5 4; } rel2 { relative: 1.0 1.0; offset: -5 -5; } } } part { name: "fg1"; mouse_events: 0; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; rel1.to: "bg"; rel2.relative: 1.0 0.5; rel2.to: "bg"; image { normal: "bt_sm_hilight.png"; border: 6 6 6 0; } } description { state: "selected" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "fg2"; mouse_events: 0; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; rel1.to: "bg"; rel2.to: "bg"; image { normal: "bt_sm_shine.png"; border: 6 6 6 0; } } description { state: "selected" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "event"; type: RECT; description { state: "default" 0.0; color: 0 0 0 0; } } } programs { program { name: "go_active"; signal: "e,state,selected"; source: "e"; action: STATE_SET "selected" 0.0; target: "bg"; target: "fg1"; target: "fg2"; target: "e.text.label"; } program { name: "go_passive"; signal: "e,state,unselected"; source: "e"; action: STATE_SET "default" 0.0; target: "bg"; target: "fg1"; target: "fg2"; target: "e.text.label"; transition: LINEAR 0.1; } } } group { name: "e/widgets/ilist_header"; data.item: "stacking" "above"; data.item: "selectraise" "on"; images { image: "bt_sm_base1.png" COMP; image: "bt_sm_shine.png" COMP; image: "bt_sm_hilight.png" COMP; image: "ilist_header_1.png" COMP; image: "ilist_item_shadow.png" COMP; } parts { part { name: "base_sh"; mouse_events: 0; description { state: "default" 0.0; fixed: 1 1; align: 0.0 0.0; min: 0 10; rel1 { to: "base"; relative: 0.0 1.0; offset: 0 0; } rel2 { to: "base"; relative: 1.0 1.0; offset: -1 0; } image { normal: "ilist_item_shadow.png"; } fill.smooth: 0; } } part { name: "base"; mouse_events: 0; description { state: "default" 0.0; color_class: "ilist_item_header_base"; image { normal: "ilist_header_1.png"; border: 2 2 2 2; } } } part { name: "bg"; mouse_events: 0; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; rel1 { relative: 0.0 0.0; offset: -5 -5; } rel2 { relative: 1.0 1.0; offset: 4 4; } image { normal: "bt_sm_base1.png"; border: 6 6 6 6; } } description { state: "selected" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; rel1 { relative: 0.0 0.0; offset: -2 -2; } rel2 { relative: 1.0 1.0; offset: 1 1; } } } part { name: "e.swallow.icon"; type: SWALLOW; description { state: "default" 0.0; align: 0.0 0.5; aspect: 1.0 1.0; aspect_preference: VERTICAL; rel1 { relative: 0.0 0.0; offset: 4 4; } rel2 { relative: 0.0 1.0; offset: 4 -5; } } } part { name: "e.text.label"; type: TEXT; effect: SOFT_SHADOW; mouse_events: 0; scale: 1; description { state: "default" 0.0; min: 16 16; rel1 { to_x: "e.swallow.icon"; relative: 1.0 0.0; offset: 4 4; } rel2 { relative: 1.0 1.0; offset: -5 -5; } color_class: "ilist_item_header"; text { font: "Sans:style=Bold"; size: 16; min: 1 1; align: 0.0 0.5; text_class: "ilist_item"; } } } part { name: "fg1"; mouse_events: 0; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; rel1.to: "bg"; rel2.relative: 1.0 0.5; rel2.to: "bg"; image { normal: "bt_sm_hilight.png"; border: 6 6 6 0; } } description { state: "selected" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "fg2"; mouse_events: 0; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; rel1.to: "bg"; rel2.to: "bg"; image { normal: "bt_sm_shine.png"; border: 6 6 6 0; } } description { state: "selected" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "event"; type: RECT; description { state: "default" 0.0; color: 0 0 0 0; } } } programs { program { name: "go_active"; signal: "e,state,selected"; source: "e"; action: STATE_SET "selected" 0.0; target: "bg"; target: "fg1"; target: "fg2"; target: "e.text.label"; } program { name: "go_passive"; signal: "e,state,unselected"; source: "e"; action: STATE_SET "default" 0.0; target: "bg"; target: "fg1"; target: "fg2"; target: "e.text.label"; transition: LINEAR 0.1; } } } group { name: "e/widgets/ilist_header_odd"; data.item: "stacking" "below"; data.item: "selectraise" "on"; images { image: "bt_sm_base1.png" COMP; image: "bt_sm_shine.png" COMP; image: "bt_sm_hilight.png" COMP; image: "ilist_header_2.png" COMP; } parts { part { name: "base"; mouse_events: 0; description { state: "default" 0.0; color_class: "ilist_item_header_odd_base"; image { normal: "ilist_header_2.png"; border: 2 2 2 2; } } } part { name: "bg"; mouse_events: 0; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; rel1 { relative: 0.0 0.0; offset: -5 -5; } rel2 { relative: 1.0 1.0; offset: 4 4; } image { normal: "bt_sm_base1.png"; border: 6 6 6 6; } } description { state: "selected" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; rel1 { relative: 0.0 0.0; offset: -2 -2; } rel2 { relative: 1.0 1.0; offset: 1 1; } } } part { name: "e.swallow.icon"; type: SWALLOW; description { state: "default" 0.0; align: 0.0 0.5; aspect: 1.0 1.0; aspect_preference: VERTICAL; rel1 { relative: 0.0 0.0; offset: 4 4; } rel2 { relative: 0.0 1.0; offset: 4 -5; } } } part { name: "e.text.label"; type: TEXT; effect: SOFT_SHADOW; mouse_events: 0; scale: 1; description { state: "default" 0.0; min: 16 16; rel1 { to_x: "e.swallow.icon"; relative: 1.0 0.0; offset: 4 4; } rel2 { relative: 1.0 1.0; offset: -5 -5; } color_class: "ilist_item_header_odd"; text { font: "Sans:style=Bold"; size: 16; min: 1 1; align: 0.0 0.5; text_class: "ilist_item"; } } } part { name: "fg1"; mouse_events: 0; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; rel1.to: "bg"; rel2.relative: 1.0 0.5; rel2.to: "bg"; image { normal: "bt_sm_hilight.png"; border: 6 6 6 0; } } description { state: "selected" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "fg2"; mouse_events: 0; description { state: "default" 0.0; visible: 0; color: 255 255 255 0; rel1.to: "bg"; rel2.to: "bg"; image { normal: "bt_sm_shine.png"; border: 6 6 6 0; } } description { state: "selected" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "event"; type: RECT; description { state: "default" 0.0; color: 0 0 0 0; } } } programs { program { name: "go_active"; signal: "e,state,selected"; source: "e"; action: STATE_SET "selected" 0.0; target: "bg"; target: "fg1"; target: "fg2"; target: "e.text.label"; } program { name: "go_passive"; signal: "e,state,unselected"; source: "e"; action: STATE_SET "default" 0.0; target: "bg"; target: "fg1"; target: "fg2"; target: "e.text.label"; transition: LINEAR 0.1; } } } group { name: "e/widgets/ilist/toggle_end"; images { image: "icon_active.png" COMP; } parts { part { name: "icon"; type: IMAGE; description { state: "default" 0.0; color: 255 255 255 0; visible: 0; align: 1.0 0.5; aspect: 1.0 1.0; aspect_preference: VERTICAL; rel1 { relative: 0.0 0.0; offset: 4 4; } rel2 { relative: 0.0 1.0; offset: 4 -5; } image.normal: "icon_active.png"; } description { state: "visible" 0.0; inherit: "default" 0.0; color: 255 255 255 255; visible: 1; } } } programs { program { signal: "e,state,checked"; source: "e"; action: STATE_SET "visible" 0.0; target: "icon"; transition: LINEAR 0.1; } program { signal: "e,state,unchecked"; source: "e"; action: STATE_SET "default" 0.0; target: "icon"; transition: LINEAR 0.1; } } } /* Used to display RGB/HSV values via sliders in Wallpaper Gradient Dialog */ group { name: "e/widgets/cslider"; images.image: "inset_sunk.png" COMP; parts { part { name: "content_clip"; type: RECT; mouse_events: 0; description { state: "default" 0.0; rel1.to: "e.swallow.content"; rel2.to: "e.swallow.content"; color: 255 255 255 255; } } part { name: "e.swallow.content"; type: SWALLOW; clip_to: "content_clip"; description { state: "default" 0.0; min: 50 20; rel1.offset: 4 4; rel2.offset: -5 -5; } description { state: "vertical" 0.0; inherit: "default" 0.0; min: 20 50; } } part { name: "border"; mouse_events: 1; description { state: "default" 0.0; rel1 { to: "e.swallow.content"; offset: -1 -1; } rel2 { to: "e.swallow.content"; offset: 0 0; } image { normal: "inset_sunk.png"; border: 7 7 7 7; middle: 0; } fill.smooth : 0; } } part { name: "e.dragable.cursor"; type: RECT; clip_to: "content_clip"; dragable { confine: "e.swallow.content"; x: 1 1 0; y: -1 1 0; } description { state: "default" 0.0; min: 1 24; max: 1 9999; fixed: 1 1; rel1 { to: "e.swallow.content"; relative: 0.5 0.0; offset: 0 0; } rel2 { to: "e.swallow.content"; relative: 0.5 1.0; offset: 0 -1; } color: 255 255 255 150; } description { state: "vertical" 0.0; min: 24 1; max: 9999 1; fixed: 1 1; rel1 { to: "e.swallow.content"; relative: 0.0 0.5 ; offset: 0 0; } rel2 { to: "e.swallow.content"; relative: 1.0 0.5; offset: -1 0; } color: 255 255 255 150; } } } programs { program { name: "go_vertical"; signal: "e,state,direction,v"; source: "e"; action: STATE_SET "vertical" 0.0; target: "e.dragable.cursor"; target: "e.swallow.content"; } } } /* e/widgets/slider* is used in the Virtual Desktops Config dialog */ group { name: "e/widgets/slider_vertical"; images { image: "slider.png" COMP; image: "slider_clicked.png" COMP; image: "sb_runnerv.png" COMP; image: "inset_sunk.png" COMP; } parts { part { name: "base"; type: RECT; mouse_events: 1; description { state: "default" 0.0; color: 0 0 0 0; min: 22 0; rel1.offset: 2 2; rel2.offset: -3 -3; } description { state: "active" 0.0; inherit: "default" 0.0; rel2 { to_y: "label"; relative: 1.0 0.0; offset: -3 -1; } } } part { name: "runner"; mouse_events: 0; clip_to: "clip"; description { state: "default" 0.0; max: 3 99999; rel1.to: "base"; rel2.to: "base"; image { normal: "sb_runnerv.png"; border: 0 0 4 4; } fill.smooth: 0; } } part { name: "label_base"; clip_to: "clip"; type: RECT; description { state: "default" 0.0; color: 255 255 255 0; visible: 0; rel1.to: "label"; rel1.offset: 1 1; rel2.to: "label"; rel2.offset: -2 -2; } description { state: "active" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "label"; mouse_events: 0; clip_to: "clip"; description { state: "default" 0.0; visible: 0; } description { state: "active" 0.0; rel1 { to: "e.text.label"; offset: -4 -2; } rel2 { to: "e.text.label"; offset: 3 1; } } } part { name: "e.text.label"; type: TEXT; mouse_events: 0; clip_to: "clip"; scale: 1; description { state: "default" 0.0; visible: 0; } description { state: "active" 0.0; align: 0.5 1.0; fixed: 1 1; rel1 { relative: 0.0 1.0; offset: 7 -8; } rel2 { relative: 1.0 1.0; offset: -8 -8; } color_class: "slider_text"; text { text: "0.0"; font: "Sans"; size: 10; min: 1 1; align: 0.5 0.5; text_class: "slider"; } } } part { name: "sld_p1"; type: RECT; mouse_events: 1; description { state: "default" 0.0; color: 0 0 0 0; rel2 { relative: 1.0 0.0; to: "e.dragable.slider"; } } } part { name: "sld_p2"; type: RECT; mouse_events: 1; description { state: "default" 0.0; color: 0 0 0 0; rel1 { relative: 0.0 1.0; to: "e.dragable.slider"; } } } part { name: "e.swallow.bar"; type: SWALLOW; description { state: "default" 0.0; rel1 { to_x: "e.dragable.slider"; to_y: "base"; offset: 0 5; } rel2 { to_x: "e.dragable.slider"; to_y: "base"; offset: -1 -6; } } } part { name: "e.dragable.slider"; type: RECT; mouse_events: 1; scale: 1; dragable { x: 0 0 0; y: -1 1 0; confine: "base"; } description { state: "default" 0.0; min: 11 11; fixed: 1 1; rel1 { relative: 0.5 0.5; offset: -1 0; to: "base"; } rel2 { relative: 0.5 0.5; offset: -1 -1; to: "base"; } color: 0 0 0 0; } } part { name: "button"; mouse_events: 0; scale: 1; description { state: "default" 0.0; min: 22 22; fixed: 1 1; rel1.to: "e.dragable.slider"; rel2.to: "e.dragable.slider"; image.normal: "slider.png"; } description { state: "clicked" 0.0; inherit: "default" 0.0; image.normal: "slider_clicked.png"; } } part { name: "clip"; type: RECT; description { state: "default" 0.0; color: 255 255 255 255; } description { state: "disabled" 0.0; inherit: "default" 0.0; color: 255 255 255 128; } } part { name: "event"; type: RECT; mouse_events: 1; description { state: "default" 0.0; visible: 0; color: 0 0 0 0; } description { state: "disabled" 0.0; inherit: "default" 0.0; visible: 1; } } } programs { program { name: "sld_p1_down"; signal: "mouse,down,1"; source: "sld_p1"; action: DRAG_VAL_PAGE 0.0 -1.0; target: "e.dragable.slider"; } program { name: "sld_p2_down"; signal: "mouse,down,1"; source: "sld_p2"; action: DRAG_VAL_PAGE 0.0 1.0; target: "e.dragable.slider"; } program { name: "button_down"; signal: "mouse,down,1"; source: "e.dragable.slider"; action: STATE_SET "clicked" 0.0; target: "button"; } program { name: "button_up"; signal: "mouse,up,1"; source: "e.dragable.slider"; action: STATE_SET "default" 0.0; target: "button"; } program { name: "show_label"; signal: "e,action,show,label"; source: "e"; action: STATE_SET "active" 0.0; target: "base"; target: "label"; target: "label_base"; target: "e.text.label"; } program { name: "hide_label"; signal: "e,action,hide,label"; source: "e"; action: STATE_SET "default" 0.0; target: "base"; target: "label"; target: "label_base"; target: "e.text.label"; } program { name: "disable"; signal: "e,state,disabled"; source: "e"; action: STATE_SET "disabled" 0.0; target: "clip"; target: "event"; } program { name: "enable"; signal: "e,state,enabled"; source: "e"; action: STATE_SET "default" 0.0; target: "clip"; target: "event"; } } } group { name: "e/widgets/slider_horizontal"; images { image: "slider.png" COMP; image: "slider_clicked.png" COMP; image: "sb_runnerh.png" COMP; image: "inset_sunk.png" COMP; } parts { part { name: "base"; type: RECT; mouse_events: 1; description { state: "default" 0.0; color: 0 0 0 0; min: 0 22; rel1.offset: 2 2; rel2.offset: -3 -3; } description { state: "active" 0.0; inherit: "default" 0.0; rel2 { to_x: "label"; relative: 0.0 1.0; offset: -1 -3; } } } part { name: "runner"; mouse_events: 0; clip_to: "clip"; description { state: "default" 0.0; max: 99999 3; rel1.to: "base"; rel2.to: "base"; image { normal: "sb_runnerh.png"; border: 4 4 0 0; } fill.smooth: 0; } } part { name: "label_base"; clip_to: "clip"; type: RECT; description { state: "default" 0.0; color: 255 255 255 0; visible: 0; rel1.to: "label"; rel1.offset: 1 1; rel2.to: "label"; rel2.offset: -2 -2; } description { state: "active" 0.0; inherit: "default" 0.0; visible: 1; } } part { name: "label"; mouse_events: 0; clip_to: "clip"; description { state: "default" 0.0; visible: 0; } description { state: "active" 0.0; min: 20 0; rel1 { to: "e.text.label"; offset: -4 -2; } rel2 { to: "e.text.label"; offset: 2 1; } } } part { name: "e.text.label"; type: TEXT; mouse_events: 0; clip_to: "clip"; scale: 1; description { state: "default" 0.0; visible: 0; } description { state: "active" 0.0; align: 1.0 0.5; fixed: 1 0; rel1 { relative: 1.0 0.0; offset: -8 7; } rel2 { relative: 1.0 1.0; offset: -8 -8; } color_class: "slider_text"; text { text: "0.0"; font: "Sans"; size: 10; min: 1 1; align: 0.5 0.5; text_class: "slider"; } } } part { name: "sld_p1"; type: RECT; mouse_events: 1; description { state: "default" 0.0; color: 0 0 0 0; rel2 { relative: 0.0 1.0; to: "e.dragable.slider"; } } } part { name: "sld_p2"; type: RECT; mouse_events: 1; description { state: "default" 0.0; color: 0 0 0 0; rel1 { relative: 1.0 0.0; to: "e.dragable.slider"; } } } part { name: "e.swallow.bar"; type: SWALLOW; description { state: "default" 0.0; rel1 { to_x: "base"; to_y: "e.dragable.slider"; offset: 5 0; } rel2 { to_x: "base"; to_y: "e.dragable.slider"; offset: -6 -1; } } } part { name: "e.dragable.slider"; type: RECT; mouse_events: 1; scale: 1; dragable { x: 1 1 0; y: 0 0 0; confine: "base"; } description { state: "default" 0.0; min: 11 11; fixed: 1 1; rel1 { relative: 0.5 0.5; to: "base"; } rel2 { relative: 0.5 0.5; offset: 0 0; to: "base"; } color: 0 0 0 0; } } part { name: "slider"; mouse_events: 0; clip_to: "clip"; scale: 1; description { state: "default" 0.0; min: 22 22; fixed: 1 1; rel1.to: "e.dragable.slider"; rel2.to: "e.dragable.slider"; image.normal: "slider.png"; } description { state: "clicked" 0.0; inherit: "default" 0.0; image.normal: "slider_clicked.png"; } } part { name: "clip"; type: RECT; description { state: "default" 0.0; } description { state: "disabled" 0.0; inherit: "default" 0.0; color: 255 255 255 128; } } part { name: "event"; type: RECT; mouse_events: 1; description { state: "default" 0.0; visible: 0; color: 0 0 0 0; } description { state: "disabled" 0.0; inherit: "default" 0.0; visible: 1; } } } programs { program { name: "sld_p1_down"; signal: "mouse,down,1"; source: "sld_p1"; action: DRAG_VAL_PAGE -1.0 0.0; target: "e.dragable.slider"; } program { name: "sld_p2_down"; signal: "mouse,down,1"; source: "sld_p2"; action: DRAG_VAL_PAGE 1.0 0.0; target: "e.dragable.slider"; } program { name: "sld_down"; signal: "mouse,down,1"; source: "e.dragable.slider"; action: STATE_SET "clicked" 0.0; target: "slider"; } program { name: "sld_up"; signal: "mouse,up,1"; source: "e.dragable.slider"; action: STATE_SET "default" 0.0; target: "slider"; } program { name: "show_label"; signal: "e,action,show,label"; source: "e"; action: STATE_SET "active" 0.0; target: "base"; target: "label"; target: "label_base"; target: "e.text.label"; } program { name: "hide_label"; signal: "e,action,hide,label"; source: "e"; action: STATE_SET "default" 0.0; target: "base"; target: "label"; target: "label_base"; target: "e.text.label"; } program { name: "disable"; signal: "e,state,disabled"; source: "e"; action: STATE_SET "disabled" 0.0; target: "clip"; target: "event"; } program { name: "enable"; signal: "e,state,enabled"; source: "e"; action: STATE_SET "default" 0.0; target: "clip"; target: "event"; } } } /* e/widgets/frame is used in the Config Dialog to outline the content */ group { name: "e/widgets/frame"; images { image: "frame_1.png" COMP; image: "frame_2.png" COMP; image: "dia_grad.png" COMP; } parts { part { name: "base0"; mouse_events: 0; description { state: "default" 0.0; color_class: "frame_base"; image.normal: "dia_grad.png"; rel1.to: "over"; rel2.to: "over"; fill { smooth: 0; size { relative: 0.0 1.0; offset: 64 0; } } } } part { name: "base"; mouse_events: 0; description { state: "default" 0.0; image { normal: "frame_2.png"; border: 5 5 32 26; middle: 0; } fill.smooth : 0; } } part { name: "e.swallow.content"; type: SWALLOW; description { state: "default" 0.0; rel1 { to_y: "e.text.label"; relative: 0.0 1.0; offset: 8 2; } rel2.offset: -9 -9; } } part { name: "e.text.label"; type: TEXT; mouse_events: 0; scale: 1; description { state: "default" 0.0; align: 0.0 0.0; fixed: 0 1; rel1 { relative: 0.0 0.0; offset: 6 6; } rel2 { relative: 1.0 0.0; offset: -7 6; } color: 0 0 0 64; text { font: "Sans:style=Bold"; size: 10; min: 1 1; max: 1 1; align: 0.0 0.0; text_class: "frame"; } } } part { name: "over"; mouse_events: 0; description { state: "default" 0.0; rel1.offset: 4 4; rel2.offset: -5 -5; image { normal: "frame_1.png"; border: 2 2 28 22; middle: 0; } fill.smooth : 0; } } } } group { name: "e/widgets/label"; parts { part { name: "e.text.label"; type: TEXT; mouse_events: 0; scale: 1; description { state: "default" 0.0; rel1.offset: 2 2; rel2.offset: -3 -3; color_class: "label_text"; text { font: "Sans"; size: 10; min: 1 1; align: 0.0 0.5; text_class: "label"; } } description { state: "disabled" 0.0; inherit: "default" 0.0; color_class: "label_text_disabled"; } } } programs { program { name: "disable"; signal: "e,state,disabled"; source: "e"; action: STATE_SET "disabled" 0.0; target: "e.text.label"; } program { name: "enable"; signal: "e,state,enabled"; source: "e"; action: STATE_SET "default" 0.0; target: "e.text.label"; } } } /* e/widgets/textblock is used in the description of modules in Module Config dialog */ group { name: "e/widgets/textblock"; styles { style { name: "textblock_style"; base: "font=Sans font_size=10 align=left color=#000 style=shadow shadow_color=#ffffff80 wrap=word"; tag: "title" "+ font=Sans:style=Bold font_size=12 style=soft_shadow color=#fff shadow_color=#00000021"; tag: "hilight" "+ font=Sans:style=Bold style=glow color=#fff glow2_color=#333333be glow_color=#0000005a"; tag: "urgent" "+ font=Sans:style=Bold style=glow color=#fff glow2_color=#333 glow_color=#b01010"; tag: "b" "+ font=Sans:style=Bold"; tag: "br" "\n"; } } parts { part { name: "e.textblock.text"; type: TEXTBLOCK; mouse_events: 0; scale: 1; description { state: "default" 0.0; rel1.offset: 4 4; rel2.offset: -5 -5; text { style: "textblock_style"; min: 1 1; } } } } } ///////////////////////////////////////////////////////////////////////////// /*** GADMAN ***/ group { name: "e/gadman/popup"; images.image: "base_bg.png" COMP; parts { part { name: "base"; mouse_events: 0; description { state: "default" 0.0; image { normal: "base_bg.png"; border: 2 2 2 2; } fill.smooth: 0; } } part { name: "e.swallow.content"; type: SWALLOW; description { state: "default" 0.0; rel1.offset: 3 3; rel2.offset: -4 -4; } } } } group { name: "e/gadman/full_bg"; parts { part { name: "bg"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 0 0 0 0; } description { state: "visible" 0.0; color: 0 0 0 128; } } part { name: "custom_bg"; type: RECT; description { state: "default" 0.0; color: 255 255 255 0; } description { state: "visible" 0.0; color: 255 255 255 200; } } part { name: "e.swallow.bg"; type: SWALLOW; clip_to: "custom_bg"; description { state: "default" 0.0; } } part { name: "grabber"; type: RECT; mouse_events: 1; repeat_events: 1; description { state: "default" 0.0; color: 0 0 0 0; } } } programs { program { name: "show"; signal: "e,state,visibility,show"; source: "e"; action: STATE_SET "visible" 0.0; transition: LINEAR 0.4; target: "bg"; } program { name: "show_now"; signal: "e,state,visibility,show,now"; source: "e"; action: STATE_SET "visible" 0.0; transition: LINEAR 0.0; target: "bg"; } program { name: "hide"; signal: "e,state,visibility,hide"; source: "e"; action: STATE_SET "default" 0.0; transition: LINEAR 0.4; target: "bg"; after: "hide_stop"; } program { name: "hide_now"; signal: "e,state,visibility,hide,now"; source: "e"; action: STATE_SET "default" 0.0; transition: LINEAR 0.0; target: "bg"; after: "hide_stop"; } program { name: "show_custom"; signal: "e,state,visibility,show,custom"; source: "e"; action: STATE_SET "visible" 0.0; transition: LINEAR 0.4; target: "custom_bg"; } program { name: "show_custom_now"; signal: "e,state,visibility,show,custom,now"; source: "e"; action: STATE_SET "visible" 0.0; transition: LINEAR 0.0; target: "custom_bg"; } program { name: "hide_custom"; signal: "e,state,visibility,hide,custom"; source: "e"; action: STATE_SET "default" 0.0; transition: LINEAR 0.4; target: "custom_bg"; after: "hide_stop"; } program { name: "hide_custom_now"; signal: "e,state,visibility,hide,custom,now"; source: "e"; action: STATE_SET "default" 0.0; transition: LINEAR 0.0; target: "custom_bg"; after: "hide_stop"; } program { name: "hide_stop"; action: SIGNAL_EMIT "e,action,hide,stop" ""; } } } group { name: "e/gadman/frame"; images.image: "inset_raised.png" COMP; parts { part { name: "bg_clip"; type: RECT; mouse_events: 0; description { state: "default" 0.0; rel1.to: "overlay"; rel2.to: "overlay"; color: 255 255 255 255; } description { state: "plain" 0.0; rel1.relative: 0.0 0.0; rel2.relative: 0.0 0.0; color: 255 255 255 255; } } part { name: "items_clip"; type: RECT; mouse_events: 0; description { state: "default" 0.0; rel1 { to: "overlay"; offset: 4 4; } rel2 { to: "overlay"; offset: -5 -5; } color: 255 255 255 255; } description { state: "hidden" 0.0; inherit: "default" 0.0; color: 255 255 255 0; } } part { name: "e.swallow.content"; type: SWALLOW; clip_to: "items_clip"; description { state: "default" 0.0; rel1.offset: 4 4; rel2.offset: -5 -5; color: 255 255 255 255; } description { state: "hidden" 0.0; rel1.relative: 0.5 0.5; rel2.relative: 0.5 0.5; color: 255 255 255 0; } } part { name: "overlay"; mouse_events: 0; clip_to: "bg_clip"; description { state: "default" 0.0; image { normal: "inset_raised.png"; border: 7 7 7 7; middle: 0; } fill.smooth: 0; color: 255 255 255 255; } description { state: "hidden" 0.0; inherit: "default" 0.0; rel1.relative: 0.5 0.5; rel2.relative: 0.5 0.5; color: 255 255 255 0; } } } programs { program { name: "inset"; signal: "e,state,visibility,inset"; source: "e"; action: STATE_SET "default" 0.0; target: "bg_clip"; } program { name: "plain"; signal: "e,state,visibility,plain"; source: "e"; action: STATE_SET "plain" 0.0; target: "bg_clip"; } program { name: "hide"; signal: "e,state,visibility,hide"; source: "e"; action: STATE_SET "hidden" 0.0; transition: ACCELERATE 0.4; target: "items_clip"; target: "overlay"; target: "e.swallow.content"; } program { name: "hide_now"; signal: "e,state,visibility,hide,now"; source: "e"; action: STATE_SET "hidden" 0.0; transition: LINEAR 0.0; target: "items_clip"; target: "overlay"; target: "e.swallow.content"; } program { name: "show"; signal: "e,state,visibility,show"; source: "e"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.4; target: "items_clip"; target: "overlay"; target: "e.swallow.content"; } program { name: "show_now"; signal: "e,state,visibility,show,now"; source: "e"; action: STATE_SET "default" 0.0; transition: LINEAR 0.0; target: "items_clip"; target: "overlay"; target: "e.swallow.content"; } } } group { name: "e/gadman/control"; images { image: "gadman_frame.png" COMP; image: "gadman_border.png" COMP; image: "gadman_top.png" COMP; image: "gadman_bottom.png" COMP; image: "gadman_left.png" COMP; image: "gadman_right.png" COMP; } parts { part { name: "hclip"; mouse_events: 0; type: RECT; description { state: "default" 0.0; visible: 1; rel1.offset: -85 -85; rel2.offset: 74 74; } description { state: "disabled" 0.0; inherit: "default" 0.0; visible : 0; } } part { name: "vclip"; mouse_events: 0; type: RECT; description { state: "default" 0.0; visible: 1; rel1.offset: -85 -85; rel2.offset: 84 84; } description { state: "disabled" 0.0; inherit: "default" 0.0; visible : 0; } } part { name: "overlay"; mouse_events: 1; description { state: "default" 0.0; rel1 { to: "border"; offset: 4 4; } rel2 { to: "border"; offset: -5 -5; } image.normal: "gadman_frame.png"; fill.size.relative: 0 0; fill.size.offset: 24 24; } } part { name: "left_arrow1"; description { state: "default" 0.0; aspect: 1.0 1.0; max: 12 24; rel1 { relative: 0.0 0.5; offset: 3 0; } rel2 { relative: 0.0 0.5; offset: 3 -1; } image.normal: "gadman_left.png"; } description { state: "1" 0.0; inherit: "default" 0.0; rel1 { relative: 0.0 0.5; offset: -32 -12; } rel2 { relative: 0.0 0.5; offset: -18 11; } } description { state: "2" 0.0; inherit: "default" 0.0; rel1 { relative: 0.0 0.5; offset: -24 -6; } rel2 { relative: 0.0 0.5; offset: -10 5; } } } part { name: "left_arrow2"; description { state: "default" 0.0; aspect: 1.0 1.0; max: 12 24; rel1 { relative: 0.0 0.5; offset: 3 0; } rel2 { relative: 0.0 0.5; offset: 3 -1; } image.normal: "gadman_left.png"; } description { state: "1" 0.0; inherit: "default" 0.0; rel1 { relative: 0.0 0.5; offset: -32 -12; } rel2 { relative: 0.0 0.5; offset: -18 11; } } description { state: "2" 0.0; inherit: "default" 0.0; rel1 { relative: 0.0 0.5; offset: -24 -6; } rel2 { relative: 0.0 0.5; offset: -10 5; } } } part { name: "right_arrow1"; description { state: "default" 0.0; aspect: 1.0 1.0; max: 12 24; rel1 { relative: 1.0 0.5; offset: -3 0; } rel2 { relative: 1.0 0.5; offset: -3 -1; } image.normal: "gadman_right.png"; } description { state: "1" 0.0; inherit: "default" 0.0; rel1 { relative: 1.0 0.5; offset: 32 -12; } rel2 { relative: 1.0 0.5; offset: 18 11; } } description { state: "2" 0.0; inherit: "default" 0.0; rel1 { relative: 1.0 0.5; offset: 24 -6; } rel2 { relative: 1.0 0.5; offset: 10 5; } } } part { name: "right_arrow2"; description { state: "default" 0.0; aspect: 1.0 1.0; max: 12 24; rel1 { relative: 1.0 0.5; offset: -3 0; } rel2 { relative: 1.0 0.5; offset: -3 -1; } image.normal: "gadman_right.png"; } description { state: "1" 0.0; inherit: "default" 0.0; rel1 { relative: 1.0 0.5; offset: 32 -12; } rel2 { relative: 1.0 0.5; offset: 18 11; } } description { state: "2" 0.0; inherit: "default" 0.0; rel1 { relative: 1.0 0.5; offset: 24 -6; } rel2 { relative: 1.0 0.5; offset: 10 5; } } } part { name: "top_arrow1"; description { state: "default" 0.0; aspect: 1.0 1.0; max: 24 12; rel1 { relative: 0.5 0.0; offset: 0 3; } rel2 { relative: 0.5 0.0; offset: -1 3; } image.normal: "gadman_top.png"; } description { state: "1" 0.0; inherit: "default" 0.0; rel1 { relative: 0.5 0.0; offset: -12 -32; } rel2 { relative: 0.5 0.0; offset: 11 -18; } } description { state: "2" 0.0; inherit: "default" 0.0; rel1 { relative: 0.5 0.0; offset: -6 -24; } rel2 { relative: 0.5 0.0; offset: 5 -9; } } } part { name: "top_arrow2"; description { state: "default" 0.0; aspect: 1.0 1.0; max: 24 12; rel1 { relative: 0.5 0.0; offset: 0 3; } rel2 { relative: 0.5 0.0; offset: -1 3; } image.normal: "gadman_top.png"; } description { state: "1" 0.0; inherit: "default" 0.0; rel1 { relative: 0.5 0.0; offset: -12 -32; } rel2 { relative: 0.5 0.0; offset: 11 -18; } } description { state: "2" 0.0; inherit: "default" 0.0; rel1 { relative: 0.5 0.0; offset: -6 -24; } rel2 { relative: 0.5 0.0; offset: 5 -9; } } } part { name: "bottom_arrow1"; description { state: "default" 0.0; aspect: 1.0 1.0; max: 24 12; rel1 { relative: 0.5 1.0; offset: 0 -3; } rel2 { relative: 0.5 1.0; offset: -1 -3; } image.normal: "gadman_bottom.png"; } description { state: "1" 0.0; inherit: "default" 0.0; rel1 { relative: 0.5 1.0; offset: -12 18; } rel2 { relative: 0.5 1.0; offset: 11 31; } } description { state: "2" 0.0; inherit: "default" 0.0; rel1 { relative: 0.5 1.0; offset: -6 10; } rel2 { relative: 0.5 1.0; offset: 5 24; } } } part { name: "bottom_arrow2"; description { state: "default" 0.0; aspect: 1.0 1.0; max: 24 12; rel1 { relative: 0.5 1.0; offset: 0 -3; } rel2 { relative: 0.5 1.0; offset: -1 -3; } image.normal: "gadman_bottom.png"; } description { state: "1" 0.0; inherit: "default" 0.0; rel1 { relative: 0.5 1.0; offset: -12 18; } rel2 { relative: 0.5 1.0; offset: 11 31; } } description { state: "2" 0.0; inherit: "default" 0.0; rel1 { relative: 0.5 1.0; offset: -6 10; } rel2 { relative: 0.5 1.0; offset: 5 24; } } } part { name: "v1"; mouse_events: 1; clip_to: "vclip"; description { state: "default" 0.0; rel2.relative: 1.0 0.0; rel2.offset: -1 9; } } part { name: "v2"; mouse_events: 1; clip_to: "vclip"; description { state: "default" 0.0; rel1.relative: 0.0 1.0; rel1.offset: 0 -8; } } part { name: "h1"; mouse_events: 1; clip_to: "hclip"; description { state: "default" 0.0; rel2.relative: 0.0 1.0; rel2.offset: 9 -1; } } part { name: "h2"; mouse_events: 1; clip_to: "hclip"; description { state: "default" 0.0; rel1.relative: 1.0 0.0; rel1.offset: -8 0; } } part { name: "border"; mouse_events: 1; repeat_events: 1; description { state: "default" 0.0; image { normal: "gadman_border.png"; border: 10 10 10 10; middle: 0; } fill.smooth: 0; } } } programs { program { name: "api_hsize_on"; signal: "e,state,hsize,on"; source: "e"; action: STATE_SET "default" 0.0; target: "hclip"; } program { name: "api_hsize_off"; signal: "e,state,hsize,off"; source: "e"; action: STATE_SET "disabled" 0.0; target: "hclip"; } program { name: "api_vsize_on"; signal: "e,state,vsize,on"; source: "e"; action: STATE_SET "default" 0.0; target: "vclip"; } program { name: "api_vsize_off"; signal: "e,state,vsize,off"; source: "e"; action: STATE_SET "disabled" 0.0; target: "vclip"; } /* program { name: "api_move_on"; signal: "e,state,move,on"; source: "e"; } program { name: "api_move_off"; signal: "e,state,move,off"; source: "e"; } program { name: "api_active"; signal: "e,state,focused"; source: "e"; } program { name: "api_inactive"; signal: "e,state,unfocused"; source: "e"; } */ // MOVE PROGRAMS program { name: "mv_down"; signal: "mouse,down,1"; source: "overlay"; action: SIGNAL_EMIT "e,action,move,start" ""; } program { name: "mv_up"; signal: "mouse,up,1"; source: "overlay"; action: SIGNAL_EMIT "e,action,move,stop" ""; } program { name: "mv_move"; signal: "mouse,move"; source: "overlay"; action: SIGNAL_EMIT "e,action,move,go" ""; } program { name: "h1_down1"; signal: "mouse,down,1"; source: "h1"; action: STATE_SET "clicked" 0.0; target: "h1"; } program { name: "h1_up1"; signal: "mouse,up,1"; source: "h1"; action: STATE_SET "default" 0.0; target: "h1"; } program { name: "h1_down2"; signal: "mouse,down,1"; source: "h1"; action: SIGNAL_EMIT "e,action,resize,left,start" ""; } program { name: "h1_up2"; signal: "mouse,up,1"; source: "h1"; action: SIGNAL_EMIT "e,action,resize,left,stop" ""; } program { name: "h1_move"; signal: "mouse,move"; source: "h1"; action: SIGNAL_EMIT "e,action,resize,left,go" ""; } program { name: "h2_down1"; signal: "mouse,down,1"; source: "h2"; action: STATE_SET "clicked" 0.0; target: "h2"; } program { name: "h2_up1"; signal: "mouse,up,1"; source: "h2"; action: STATE_SET "default" 0.0; target: "h2"; } program { name: "h2_down2"; signal: "mouse,down,1"; source: "h2"; action: SIGNAL_EMIT "e,action,resize,right,start" ""; } program { name: "h2_up2"; signal: "mouse,up,1"; source: "h2"; action: SIGNAL_EMIT "e,action,resize,right,stop" ""; } program { name: "h2_move"; signal: "mouse,move"; source: "h2"; action: SIGNAL_EMIT "e,action,resize,right,go" ""; } program { name: "v1_down1"; signal: "mouse,down,1"; source: "v1"; action: STATE_SET "clicked" 0.0; target: "v1"; } program { name: "v1_up1"; signal: "mouse,up,1"; source: "v1"; action: STATE_SET "default" 0.0; target: "v1"; } program { name: "v1_down2"; signal: "mouse,down,1"; source: "v1"; action: SIGNAL_EMIT "e,action,resize,up,start" ""; } program { name: "v1_up2"; signal: "mouse,up,1"; source: "v1"; action: SIGNAL_EMIT "e,action,resize,up,stop" ""; } program { name: "v1_move"; signal: "mouse,move"; source: "v1"; action: SIGNAL_EMIT "e,action,resize,up,go" ""; } program { name: "v2_down1"; signal: "mouse,down,1"; source: "v2"; action: STATE_SET "clicked" 0.0; target: "v2"; } program { name: "v2_up1"; signal: "mouse,up,1"; source: "v2"; action: STATE_SET "default" 0.0; target: "v2"; } program { name: "v2_down2"; signal: "mouse,down,1"; source: "v2"; action: SIGNAL_EMIT "e,action,resize,down,start" ""; } program { name: "v2_up2"; signal: "mouse,up,1"; source: "v2"; action: SIGNAL_EMIT "e,action,resize,down,stop" ""; } program { name: "v2_move"; signal: "mouse,move"; source: "v2"; action: SIGNAL_EMIT "e,action,resize,down,go" ""; } // LEFT ARROW program { name: "start_left1"; signal: "mouse,in"; source: "h1"; after: "left1_1"; } program { name: "start_left2"; signal: "mouse,in"; source: "h1"; in: 0.4 0.0; after: "left2_1"; } program { name: "left1_1"; action: STATE_SET "1" 0.0; target: "left_arrow1"; transition: LINEAR 0.4; after: "left1_2"; } program { name: "left1_2"; action: STATE_SET "2" 0.0; target: "left_arrow1"; transition: LINEAR 0.4; after: "left1_r"; } program { name: "left1_r"; action: STATE_SET "default" 0.0; target: "left_arrow1"; after: "left1_1"; } program { name: "left2_1"; action: STATE_SET "1" 0.0; target: "left_arrow2"; transition: LINEAR 0.4; after: "left2_2"; } program { name: "left2_2"; action: STATE_SET "2" 0.0; target: "left_arrow2"; transition: LINEAR 0.4; after: "left2_r"; } program { name: "left2_r"; action: STATE_SET "default" 0.0; target: "left_arrow2"; after: "left2_1"; } program { name: "stop_left1"; signal: "mouse,out"; source: "h1"; action: ACTION_STOP; target: "left1_1"; target: "left1_2"; target: "left1_r"; target: "left2_1"; target: "left2_2"; target: "left2_r"; target: "start_left2"; after: "stop_left2"; } program { name: "stop_left2"; action: STATE_SET "default" 0.0; target: "left_arrow1"; target: "left_arrow2"; } // RIGHT ARROW program { name: "start_right1"; signal: "mouse,in"; source: "h2"; after: "right1_1"; } program { name: "start_right2"; signal: "mouse,in"; source: "h2"; in: 0.4 0.0; after: "right2_1"; } program { name: "right1_1"; action: STATE_SET "1" 0.0; target: "right_arrow1"; transition: LINEAR 0.4; after: "right1_2"; } program { name: "right1_2"; action: STATE_SET "2" 0.0; target: "right_arrow1"; transition: LINEAR 0.4; after: "right1_r"; } program { name: "right1_r"; action: STATE_SET "default" 0.0; target: "right_arrow1"; after: "right1_1"; } program { name: "right2_1"; action: STATE_SET "1" 0.0; target: "right_arrow2"; transition: LINEAR 0.4; after: "right2_2"; } program { name: "right2_2"; action: STATE_SET "2" 0.0; target: "right_arrow2"; transition: LINEAR 0.4; after: "right2_r"; } program { name: "right2_r"; action: STATE_SET "default" 0.0; target: "right_arrow2"; after: "right2_1"; } program { name: "stop_right1"; signal: "mouse,out"; source: "h2"; action: ACTION_STOP; target: "right1_1"; target: "right1_2"; target: "right1_r"; target: "right2_1"; target: "right2_2"; target: "right2_r"; target: "start_right2"; after: "stop_right2"; } program { name: "stop_right2"; action: STATE_SET "default" 0.0; target: "right_arrow1"; target: "right_arrow2"; } // TOP ARROW program { name: "start_top1"; signal: "mouse,in"; source: "v1"; after: "top1_1"; } program { name: "start_top2"; signal: "mouse,in"; source: "v1"; in: 0.4 0.0; after: "top2_1"; } program { name: "top1_1"; action: STATE_SET "1" 0.0; target: "top_arrow1"; transition: LINEAR 0.4; after: "top1_2"; } program { name: "top1_2"; action: STATE_SET "2" 0.0; target: "top_arrow1"; transition: LINEAR 0.4; after: "top1_r"; } program { name: "top1_r"; action: STATE_SET "default" 0.0; target: "top_arrow1"; after: "top1_1"; } program { name: "top2_1"; action: STATE_SET "1" 0.0; target: "top_arrow2"; transition: LINEAR 0.4; after: "top2_2"; } program { name: "top2_2"; action: STATE_SET "2" 0.0; target: "top_arrow2"; transition: LINEAR 0.4; after: "top2_r"; } program { name: "top2_r"; action: STATE_SET "default" 0.0; target: "top_arrow2"; after: "top2_1"; } program { name: "stop_top1"; signal: "mouse,out"; source: "v1"; action: ACTION_STOP; target: "top1_1"; target: "top1_2"; target: "top1_r"; target: "top2_1"; target: "top2_2"; target: "top2_r"; target: "start_top2"; after: "stop_top2"; } program { name: "stop_top2"; action: STATE_SET "default" 0.0; target: "top_arrow1"; target: "top_arrow2"; } // BOTTOM ARROW program { name: "start_bottom1"; signal: "mouse,in"; source: "v2"; after: "bottom1_1"; } program { name: "start_bottom2"; signal: "mouse,in"; source: "v2"; in: 0.4 0.0; after: "bottom2_1"; } program { name: "bottom1_1"; action: STATE_SET "1" 0.0; target: "bottom_arrow1"; transition: LINEAR 0.4; after: "bottom1_2"; } program { name: "bottom1_2"; action: STATE_SET "2" 0.0; target: "bottom_arrow1"; transition: LINEAR 0.4; after: "bottom1_r"; } program { name: "bottom1_r"; action: STATE_SET "default" 0.0; target: "bottom_arrow1"; after: "bottom1_1"; } program { name: "bottom2_1"; action: STATE_SET "1" 0.0; target: "bottom_arrow2"; transition: LINEAR 0.4; after: "bottom2_2"; } program { name: "bottom2_2"; action: STATE_SET "2" 0.0; target: "bottom_arrow2"; transition: LINEAR 0.4; after: "bottom2_r"; } program { name: "bottom2_r"; action: STATE_SET "default" 0.0; target: "bottom_arrow2"; after: "bottom2_1"; } program { name: "stop_bottom1"; signal: "mouse,out"; source: "v2"; action: ACTION_STOP; target: "bottom1_1"; target: "bottom1_2"; target: "bottom1_r"; target: "bottom2_1"; target: "bottom2_2"; target: "bottom2_r"; target: "start_bottom2"; after: "stop_bottom2"; } program { name: "stop_bottom2"; action: STATE_SET "default" 0.0; target: "bottom_arrow1"; target: "bottom_arrow2"; } } } group { name: "e/widgets/slidesel"; alias: "e/pointer/enlightenment/default/mono"; alias: "e/modules/connman/network"; alias: "e/fileman/default/list/drop_between"; alias: "e/fileman/desktop/list/drop_in"; alias: "e/fileman/desktop/list/drop_between"; alias: "e/fileman/desktop/overlay"; alias: "e/fileman/desktop/list/fixed"; alias: "e/fileman/desktop/list_odd/fixed"; alias: "e/sys/halt"; alias: "e/sys/reboot"; alias: "e/sys/suspend"; alias: "e/sys/hibernate"; alias: "e/widgets/gradpreview"; alias: "e/modules/connman/main"; alias: "e/modules/conf_edgebindings/selection"; alias: "e/modules/start/main"; alias: "e/modules/pager/popup"; alias: "e/modules/pager/desk"; alias: "e/modules/pager/window"; alias: "e/modules/battery/main"; alias: "e/modules/battery/popup"; alias: "e/modules/temperature/main"; alias: "e/modules/clock/main"; alias: "e/modules/cpufreq/main"; alias: "e/widgets/winlist/main"; alias: "e/widgets/winlist/item"; alias: "e/widgets/exebuf/main"; alias: "e/widgets/exebuf/item"; alias: "e/widgets/syscon/main"; alias: "e/widgets/syscon/item/button"; alias: "e/modules/mixer/main"; alias: "e/fileman/default/window/main"; alias: "e/fileman/default/progress"; alias: "e/fileman/default/scrollframe"; alias: "e/fileman/desktop/scrollframe"; alias: "e/fileman/default/list/drop_in"; alias: "e/fileman/default/rubberband"; alias: "e/fileman/default/overlay"; alias: "e/fileman/default/icon/variable"; alias: "e/fileman/default/icon/fixed"; alias: "e/fileman/desktop/icon/variable"; alias: "e/fileman/desktop/icon/fixed"; alias: "e/fileman/default/list/variable"; alias: "e/fileman/default/list_odd/variable"; alias: "e/fileman/default/list/fixed"; alias: "e/fileman/default/list_odd/fixed"; alias: "e/sys/logout"; alias: "e/transpreview/0"; alias: "e/transpreview/1"; alias: "e/transitions/crossfade"; alias: "e/transitions/vswipe"; alias: "e/widgets/entry"; alias: "e/widgets/entry/text"; alias: "e/widgets/entry/cursor"; alias: "e/widgets/entry/selection"; alias: "e/widgets/preview"; alias: "e/widgets/deskpreview/desk"; alias: "e/widgets/color_well"; alias: "e/widgets/spectrum"; alias: "e/widgets/fontpreview"; alias: "e/desklock/background"; alias: "e/desklock/login_box"; alias: "e/wizard/extra"; alias: "e/wizard/main"; alias: "e/widgets/about/main"; alias: "e/theme/about"; alias: "e/icons/enlightenment/wallpaper_stretch"; alias: "e/icons/enlightenment/wallpaper_tile"; alias: "e/icons/enlightenment/wallpaper_center"; alias: "e/icons/enlightenment/wallpaper_scale_aspect_in"; alias: "e/icons/enlightenment/wallpaper_scale_aspect_out"; alias: "e/icons/enlightenment/gradient_h"; alias: "e/icons/enlightenment/gradient_v"; alias: "e/icons/enlightenment/gradient_du"; alias: "e/icons/enlightenment/gradient_dd"; alias: "e/icons/enlightenment/gradient_rad"; alias: "e/init/splash"; alias: "e/init/extra_screen"; alias: "e/conf/wallpaper/main/window"; alias: "e/conf/wallpaper/main/mini"; alias: "e/conf/wallpaper/main/mini-theme"; alias: "e/conf/wallpaper/main/mini-remote"; alias: "e/conf/wallpaper/main/scrollframe"; alias: "e/widgets/everything/main"; alias: "e/widgets/everything/item"; parts { part { name: "base"; mouse_events: 0; type: RECT; description { state: "default" 0.0; color: 0 0 0 0; } } } } }