From: Seunghun Lee Date: Tue, 21 Aug 2012 12:12:51 +0000 (+0900) Subject: Migrating source code to RSA from private. X-Git-Tag: 2.0_alpha^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=HEAD;p=framework%2Fuifw%2Fe17.git Migrating source code to RSA from private. --- diff --git a/COPYING b/COPYING index 7625f00..4556b54 100644 --- a/COPYING +++ b/COPYING @@ -1,6 +1,6 @@ Copyright notice for Enlightenment: -Copyright (C) 2000-2011 Carsten Haitzler and various contributors (see AUTHORS) +Copyright (C) 2000-2012 Carsten Haitzler and various contributors (see AUTHORS) All rights reserved. diff --git a/config/Makefile.am b/config/Makefile.am old mode 100755 new mode 100644 diff --git a/config/illume/Makefile.am b/config/illume/Makefile.am old mode 100755 new mode 100644 diff --git a/config/profile.src b/config/profile.src old mode 100755 new mode 100644 diff --git a/config/samsung/Makefile.am b/config/samsung/Makefile.am old mode 100755 new mode 100644 diff --git a/config/samsung/e.src b/config/samsung/e.src old mode 100755 new mode 100644 diff --git a/config/samsung/icon.png b/config/samsung/icon.png old mode 100755 new mode 100644 diff --git a/config/samsung/profile.desktop b/config/samsung/profile.desktop old mode 100755 new mode 100644 diff --git a/configure.ac b/configure.ac index 0304d74..e3601d2 100644 --- a/configure.ac +++ b/configure.ac @@ -578,6 +578,11 @@ e_extra_features+="-D_F_COMP_SCREEN_LOCK_ " e_extra_features+="-D_F_COMP_INPUT_REGION_SET_ " # enable window move lock / unlock e_extra_features+="-D_F_COMP_MOVE_LOCK_ " +# enable composite mode set / get +e_extra_features+="-D_F_COMP_COMPOSITE_MODE_ " +# using external elementary dialog util instead of e_dialog to display error message +e_extra_features+="-D_F_USE_EXTN_DIALOG_ " + have_extra_features=no AC_ARG_ENABLE(extra_features, diff --git a/data/etc/Makefile.am b/data/etc/Makefile.am old mode 100755 new mode 100644 diff --git a/data/images/test.svg b/data/images/test.svg old mode 100755 new mode 100644 diff --git a/data/themes/Makefile.am b/data/themes/Makefile.am old mode 100755 new mode 100644 diff --git a/data/themes/images/added_images/DM_Internet_Address_bg.png b/data/themes/images/added_images/DM_Internet_Address_bg.png new file mode 100644 index 0000000..bd40659 Binary files /dev/null and b/data/themes/images/added_images/DM_Internet_Address_bg.png differ diff --git a/data/themes/images/added_images/DM_Internet_Scroll_01.png b/data/themes/images/added_images/DM_Internet_Scroll_01.png new file mode 100644 index 0000000..2a7aa96 Binary files /dev/null and b/data/themes/images/added_images/DM_Internet_Scroll_01.png differ diff --git a/data/themes/images/added_images/DM_Internet_Scroll_Down.png b/data/themes/images/added_images/DM_Internet_Scroll_Down.png new file mode 100644 index 0000000..9213af9 Binary files /dev/null and b/data/themes/images/added_images/DM_Internet_Scroll_Down.png differ diff --git a/data/themes/images/added_images/DM_Internet_Scroll_Increase.png b/data/themes/images/added_images/DM_Internet_Scroll_Increase.png new file mode 100644 index 0000000..0cd2072 Binary files /dev/null and b/data/themes/images/added_images/DM_Internet_Scroll_Increase.png differ diff --git a/data/themes/images/added_images/DM_Internet_Scroll_Left_h.png b/data/themes/images/added_images/DM_Internet_Scroll_Left_h.png new file mode 100644 index 0000000..25ec7d3 Binary files /dev/null and b/data/themes/images/added_images/DM_Internet_Scroll_Left_h.png differ diff --git a/data/themes/images/added_images/DM_Internet_Scroll_Middle.png b/data/themes/images/added_images/DM_Internet_Scroll_Middle.png new file mode 100644 index 0000000..ae364c0 Binary files /dev/null and b/data/themes/images/added_images/DM_Internet_Scroll_Middle.png differ diff --git a/data/themes/images/added_images/DM_Internet_Scroll_Middle_h.png b/data/themes/images/added_images/DM_Internet_Scroll_Middle_h.png new file mode 100644 index 0000000..09e8d22 Binary files /dev/null and b/data/themes/images/added_images/DM_Internet_Scroll_Middle_h.png differ diff --git a/data/themes/images/added_images/DM_Internet_Scroll_Right_h.png b/data/themes/images/added_images/DM_Internet_Scroll_Right_h.png new file mode 100644 index 0000000..a2642b5 Binary files /dev/null and b/data/themes/images/added_images/DM_Internet_Scroll_Right_h.png differ diff --git a/data/themes/images/added_images/DM_Internet_Scroll_Up.png b/data/themes/images/added_images/DM_Internet_Scroll_Up.png new file mode 100644 index 0000000..e41c03b Binary files /dev/null and b/data/themes/images/added_images/DM_Internet_Scroll_Up.png differ diff --git a/data/themes/images/added_images/DM_Internet_Scroll_h_01.png b/data/themes/images/added_images/DM_Internet_Scroll_h_01.png new file mode 100644 index 0000000..923fad7 Binary files /dev/null and b/data/themes/images/added_images/DM_Internet_Scroll_h_01.png differ diff --git a/data/themes/images/added_images/DM_Internet_Title_bg.png b/data/themes/images/added_images/DM_Internet_Title_bg.png new file mode 100644 index 0000000..96b0f74 Binary files /dev/null and b/data/themes/images/added_images/DM_Internet_Title_bg.png differ diff --git a/data/themes/images/added_images/DM_Internet_bg.png b/data/themes/images/added_images/DM_Internet_bg.png new file mode 100644 index 0000000..73a9334 Binary files /dev/null and b/data/themes/images/added_images/DM_Internet_bg.png differ diff --git a/data/themes/images/added_images/DM_Internet_icon_Reduction.png b/data/themes/images/added_images/DM_Internet_icon_Reduction.png new file mode 100644 index 0000000..3295ff1 Binary files /dev/null and b/data/themes/images/added_images/DM_Internet_icon_Reduction.png differ diff --git a/data/themes/images/added_images/DM_Internet_icon_Zoom.png b/data/themes/images/added_images/DM_Internet_icon_Zoom.png new file mode 100644 index 0000000..f0606e5 Binary files /dev/null and b/data/themes/images/added_images/DM_Internet_icon_Zoom.png differ diff --git a/data/themes/images/added_images/DM_Internet_icon_close.png b/data/themes/images/added_images/DM_Internet_icon_close.png new file mode 100644 index 0000000..80f0a03 Binary files /dev/null and b/data/themes/images/added_images/DM_Internet_icon_close.png differ diff --git a/data/themes/images/added_images/DM_Internet_icon_next.png b/data/themes/images/added_images/DM_Internet_icon_next.png new file mode 100644 index 0000000..dfba257 Binary files /dev/null and b/data/themes/images/added_images/DM_Internet_icon_next.png differ diff --git a/data/themes/images/added_images/DM_Internet_icon_previous.png b/data/themes/images/added_images/DM_Internet_icon_previous.png new file mode 100644 index 0000000..223ef6b Binary files /dev/null and b/data/themes/images/added_images/DM_Internet_icon_previous.png differ diff --git a/data/themes/images/added_images/DM_mouse_cursor.png b/data/themes/images/added_images/DM_mouse_cursor.png new file mode 100644 index 0000000..3f64fbc Binary files /dev/null and b/data/themes/images/added_images/DM_mouse_cursor.png differ diff --git a/data/themes/images/added_images/DM_tab_normal.png b/data/themes/images/added_images/DM_tab_normal.png new file mode 100644 index 0000000..d3daba9 Binary files /dev/null and b/data/themes/images/added_images/DM_tab_normal.png differ diff --git a/data/themes/images/added_images/DM_tab_over.png b/data/themes/images/added_images/DM_tab_over.png new file mode 100644 index 0000000..0822018 Binary files /dev/null and b/data/themes/images/added_images/DM_tab_over.png differ diff --git a/data/themes/images/added_images/DM_tab_press.png b/data/themes/images/added_images/DM_tab_press.png new file mode 100644 index 0000000..0c26875 Binary files /dev/null and b/data/themes/images/added_images/DM_tab_press.png differ diff --git a/data/themes/images/added_images/e17_ibar_bg_v.png b/data/themes/images/added_images/e17_ibar_bg_v.png new file mode 100644 index 0000000..c1288d6 Binary files /dev/null and b/data/themes/images/added_images/e17_ibar_bg_v.png differ diff --git a/data/themes/images/added_images/e17_ibar_over_v.png b/data/themes/images/added_images/e17_ibar_over_v.png new file mode 100644 index 0000000..37007f9 Binary files /dev/null and b/data/themes/images/added_images/e17_ibar_over_v.png differ diff --git a/data/themes/images/added_images/e17_pointer_mono.png b/data/themes/images/added_images/e17_pointer_mono.png new file mode 100644 index 0000000..51f2f45 Binary files /dev/null and b/data/themes/images/added_images/e17_pointer_mono.png differ diff --git a/data/themes/images/added_images/e17_scrollbar_hdrag_thumb.png b/data/themes/images/added_images/e17_scrollbar_hdrag_thumb.png new file mode 100644 index 0000000..4792e25 Binary files /dev/null and b/data/themes/images/added_images/e17_scrollbar_hdrag_thumb.png differ diff --git a/data/themes/images/added_images/e17_scrollbar_vdrag_thumb.png b/data/themes/images/added_images/e17_scrollbar_vdrag_thumb.png new file mode 100644 index 0000000..298dddb Binary files /dev/null and b/data/themes/images/added_images/e17_scrollbar_vdrag_thumb.png differ diff --git a/data/themes/images/added_images/focus.png b/data/themes/images/added_images/focus.png new file mode 100644 index 0000000..e57f00f Binary files /dev/null and b/data/themes/images/added_images/focus.png differ diff --git a/data/themes/images/clock/DM_Clock_time.png b/data/themes/images/clock/DM_Clock_time.png new file mode 100644 index 0000000..26987da Binary files /dev/null and b/data/themes/images/clock/DM_Clock_time.png differ diff --git a/data/themes/images/clock/DM_Clock_time_0.png b/data/themes/images/clock/DM_Clock_time_0.png new file mode 100644 index 0000000..7c76721 Binary files /dev/null and b/data/themes/images/clock/DM_Clock_time_0.png differ diff --git a/data/themes/images/clock/DM_Clock_time_1.png b/data/themes/images/clock/DM_Clock_time_1.png new file mode 100644 index 0000000..a584b57 Binary files /dev/null and b/data/themes/images/clock/DM_Clock_time_1.png differ diff --git a/data/themes/images/clock/DM_Clock_time_2.png b/data/themes/images/clock/DM_Clock_time_2.png new file mode 100644 index 0000000..b55a61e Binary files /dev/null and b/data/themes/images/clock/DM_Clock_time_2.png differ diff --git a/data/themes/images/clock/DM_Clock_time_3.png b/data/themes/images/clock/DM_Clock_time_3.png new file mode 100644 index 0000000..ff72bd4 Binary files /dev/null and b/data/themes/images/clock/DM_Clock_time_3.png differ diff --git a/data/themes/images/clock/DM_Clock_time_4.png b/data/themes/images/clock/DM_Clock_time_4.png new file mode 100644 index 0000000..992580f Binary files /dev/null and b/data/themes/images/clock/DM_Clock_time_4.png differ diff --git a/data/themes/images/clock/DM_Clock_time_5.png b/data/themes/images/clock/DM_Clock_time_5.png new file mode 100644 index 0000000..4e842e5 Binary files /dev/null and b/data/themes/images/clock/DM_Clock_time_5.png differ diff --git a/data/themes/images/clock/DM_Clock_time_6.png b/data/themes/images/clock/DM_Clock_time_6.png new file mode 100644 index 0000000..9b63e74 Binary files /dev/null and b/data/themes/images/clock/DM_Clock_time_6.png differ diff --git a/data/themes/images/clock/DM_Clock_time_7.png b/data/themes/images/clock/DM_Clock_time_7.png new file mode 100644 index 0000000..2c56288 Binary files /dev/null and b/data/themes/images/clock/DM_Clock_time_7.png differ diff --git a/data/themes/images/clock/DM_Clock_time_8.png b/data/themes/images/clock/DM_Clock_time_8.png new file mode 100644 index 0000000..17cfdb2 Binary files /dev/null and b/data/themes/images/clock/DM_Clock_time_8.png differ diff --git a/data/themes/images/clock/DM_Clock_time_9.png b/data/themes/images/clock/DM_Clock_time_9.png new file mode 100644 index 0000000..e0decf5 Binary files /dev/null and b/data/themes/images/clock/DM_Clock_time_9.png differ diff --git a/data/themes/images/clock/DM_Clock_time_AM.png b/data/themes/images/clock/DM_Clock_time_AM.png new file mode 100644 index 0000000..fd77f60 Binary files /dev/null and b/data/themes/images/clock/DM_Clock_time_AM.png differ diff --git a/data/themes/images/clock/DM_Clock_time_PM.png b/data/themes/images/clock/DM_Clock_time_PM.png new file mode 100644 index 0000000..fbde98f Binary files /dev/null and b/data/themes/images/clock/DM_Clock_time_PM.png differ diff --git a/data/themes/images/clock/DM_Clock_time_center.png b/data/themes/images/clock/DM_Clock_time_center.png new file mode 100644 index 0000000..568779c Binary files /dev/null and b/data/themes/images/clock/DM_Clock_time_center.png differ diff --git a/data/themes/images/flip_0b.png b/data/themes/images/flip_0b.png old mode 100755 new mode 100644 diff --git a/data/themes/images/flip_0t.png b/data/themes/images/flip_0t.png old mode 100755 new mode 100644 diff --git a/data/themes/images/flip_1b.png b/data/themes/images/flip_1b.png old mode 100755 new mode 100644 diff --git a/data/themes/images/flip_1t.png b/data/themes/images/flip_1t.png old mode 100755 new mode 100644 diff --git a/data/themes/images/flip_2b.png b/data/themes/images/flip_2b.png old mode 100755 new mode 100644 diff --git a/data/themes/images/flip_2t.png b/data/themes/images/flip_2t.png old mode 100755 new mode 100644 diff --git a/data/themes/images/flip_3b.png b/data/themes/images/flip_3b.png old mode 100755 new mode 100644 diff --git a/data/themes/images/flip_3t.png b/data/themes/images/flip_3t.png old mode 100755 new mode 100644 diff --git a/data/themes/images/flip_4b.png b/data/themes/images/flip_4b.png old mode 100755 new mode 100644 diff --git a/data/themes/images/flip_4t.png b/data/themes/images/flip_4t.png old mode 100755 new mode 100644 diff --git a/data/themes/images/flip_5b.png b/data/themes/images/flip_5b.png old mode 100755 new mode 100644 diff --git a/data/themes/images/flip_5t.png b/data/themes/images/flip_5t.png old mode 100755 new mode 100644 diff --git a/data/themes/images/flip_6b.png b/data/themes/images/flip_6b.png old mode 100755 new mode 100644 diff --git a/data/themes/images/flip_6t.png b/data/themes/images/flip_6t.png old mode 100755 new mode 100644 diff --git a/data/themes/images/flip_7b.png b/data/themes/images/flip_7b.png old mode 100755 new mode 100644 diff --git a/data/themes/images/flip_7t.png b/data/themes/images/flip_7t.png old mode 100755 new mode 100644 diff --git a/data/themes/images/flip_8b.png b/data/themes/images/flip_8b.png old mode 100755 new mode 100644 diff --git a/data/themes/images/flip_8t.png b/data/themes/images/flip_8t.png old mode 100755 new mode 100644 diff --git a/data/themes/images/flip_9b.png b/data/themes/images/flip_9b.png old mode 100755 new mode 100644 diff --git a/data/themes/images/flip_9t.png b/data/themes/images/flip_9t.png old mode 100755 new mode 100644 diff --git a/data/themes/images/flip_amb.png b/data/themes/images/flip_amb.png old mode 100755 new mode 100644 diff --git a/data/themes/images/flip_amt.png b/data/themes/images/flip_amt.png old mode 100755 new mode 100644 diff --git a/data/themes/images/flip_b.png b/data/themes/images/flip_b.png old mode 100755 new mode 100644 diff --git a/data/themes/images/flip_base.png b/data/themes/images/flip_base.png old mode 100755 new mode 100644 diff --git a/data/themes/images/flip_base_shad.png b/data/themes/images/flip_base_shad.png old mode 100755 new mode 100644 diff --git a/data/themes/images/flip_colon.png b/data/themes/images/flip_colon.png old mode 100755 new mode 100644 diff --git a/data/themes/images/flip_pmb.png b/data/themes/images/flip_pmb.png old mode 100755 new mode 100644 diff --git a/data/themes/images/flip_pmt.png b/data/themes/images/flip_pmt.png old mode 100755 new mode 100644 diff --git a/data/themes/images/flip_shad.png b/data/themes/images/flip_shad.png old mode 100755 new mode 100644 diff --git a/data/themes/images/flip_t.png b/data/themes/images/flip_t.png old mode 100755 new mode 100644 diff --git a/data/themes/images/icon_gadget.png b/data/themes/images/icon_gadget.png old mode 100755 new mode 100644 diff --git a/data/themes/images/icon_look.png b/data/themes/images/icon_look.png old mode 100755 new mode 100644 diff --git a/data/themes/images/icon_screenshot.png b/data/themes/images/icon_screenshot.png old mode 100755 new mode 100644 diff --git a/data/themes/images/t0-sh.png b/data/themes/images/t0-sh.png old mode 100755 new mode 100644 diff --git a/data/themes/images/t0.png b/data/themes/images/t0.png old mode 100755 new mode 100644 diff --git a/data/themes/images/t1-sh.png b/data/themes/images/t1-sh.png old mode 100755 new mode 100644 diff --git a/data/themes/images/t1.png b/data/themes/images/t1.png old mode 100755 new mode 100644 diff --git a/data/themes/images/t2.png b/data/themes/images/t2.png old mode 100755 new mode 100644 diff --git a/data/themes/samsung.edc b/data/themes/samsung.edc old mode 100755 new mode 100644 index a831ae6..f7af85c --- a/data/themes/samsung.edc +++ b/data/themes/samsung.edc @@ -1,12 +1,17 @@ // TODO: -// Add group{} locations to all sections. eg. "widget/preview" is found in Wallpaper selector" -// Icons: -// EFM - All popup icons ... eg, paste copy delete properties -// Icons for Menus modules -// Icon for Edge Bindings -// Icon for Modes? +// 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? * @@ -36,1227 +41,13883 @@ * and make sure you have replaced/provided everything here. */ -/* Specturm used in all the gradient icons +/* 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"; + 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: 255 255 255 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: 255 255 255 255; + } + 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 defined all the theme elements (a collection of groupings of + * 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 */ + +collections { +/* begin the collection of edje groups that are in this file */ ///////////////////////////////////////////////////////////////////////////// - /*** DEFAULT WALLPAPER ***/ - group { name: "e/desktop/background"; /* the name of the group */ - /* this section defines that images are to be included and how to - * encode them */ - /* this section actually contains the list of parts from bottom to top - * (defining the layering/stacking order) */ +/*** DEFAULT WALLPAPER ***/ + group { + name: "e/desktop/background"; parts { - part { name: "background_image"; /* this is the base background */ + part { + name: "background_image"; type: RECT; - description { state: "default" 0.0; /* its default state */ + /* this is the base background */ + description { + state: "default" 0.0; + /* its default state */ color: 0 0 0 255; - } - } + } + } } } - - group { name: "e/desktop/background/scrollframe"; + group { + name: "e/desktop/background/scrollframe"; parts { - part { name: "clipper"; + part { + name: "clipper"; type: RECT; mouse_events: 0; - description { state: "default" 0.0; + description { + state: "default" 0.0; } } - part { name: "e.swallow.content"; + part { + name: "e.swallow.content"; clip_to: "clipper"; type: SWALLOW; - description { state: "default" 0.0; + description { + state: "default" 0.0; rel1.offset: 0 0; rel2 { relative: 0.0 0.0; - offset: -1 -1; + offset: -1 -1; } } } } } - -///////////////////////////////////////////////////////////////////////////// - /*** DEFAULT WINDOW BORDER ***/ - group { name: "e/widgets/border/default/border"; - alias: "e/widgets/border/shaped/border"; - alias: "e/widgets/border/noresize/border"; - alias: "e/widgets/border/dialog/border"; - alias: "e/widgets/border/noresize_dialog/border"; - alias: "e/widgets/border/pixel/border"; + group { + name: "e/desktop/background/scrollframe"; parts { - part { name: "top"; - mouse_events: 0; /* accept no mouse events here */ - type: RECT; - description { state: "default" 0.0; - color: 0 0 0 255; - 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 */ - offset: -1 -1; /* relative to the bottom right */ - to_y: "title_base"; /* only y is relative to title_base. the - * rest is relative to the whole object - * (because its not specified) */ - } - } - } - part { name: "bottom"; /* this is the bottom of the window */ + part { + name: "clipper"; type: RECT; - mouse_events: 0; - description { state: "default" 0.0; - color: 0 0 0 255; - rel1 { - relative: 0.0 1.0; /* relative to the bottom-left of the edje - * but 4 pixels up */ - offset: 0 -8; - } - rel2 { - relative: 1.0 1.0; - offset: -1 -1; - } - } - 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.5; /* 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; - offset: 2 2; /* 2 pixels in from the top-left of the border - * corner */ - } - rel2 { - relative: 0.0 1.0; /* bottom-right of this part is also 2 - * pixels in from the left (but align will - * mean it goes to the right) and be 2 - * pixels in from the bottom edge of - * "title_base" (remember rel2 is the - * pixel immediately OUTSIDE the part. - * i.e. x + width & y + height). */ - offset: 2 -3; - to_y: "title_base"; - } - } - description { state: "active" 0.0; /* and an active state */ - inherit: "default" 0.0; - rel1 { - offset: 2 3; /* 1 pixel down from default so it looks like it - * is pressed down a bit */ - } - rel2 { - offset: 2 -2; /* same here - down 1 pixel from "default" */ - } - } - } - 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: "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: "e.text.title"; /* this is a text part - the black - * text on the white title top image */ - type: TEXT; - mouse_events: 0; - scale: 1; /* allow this part to scale by a scale factor (dpi) */ - description { state: "default" 0.0; - visible: 1; - align: 0.0 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: 200 200 200 255; /* black */ - text { - font: "Sans:style=Bold"; /* Use the Bold style - * of the Sans font from - * fontconfig */ - size: 10; /* 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.0 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; - color: 255 255 255 255; - } - } + 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; + } + } + } + } + } - part { name: "bt_close"; /* the close button shadow */ - mouse_events: 0; - type: RECT; - description { state: "default" 0.0; - color: 255 0 0 255; - align: 1.0 0.5; - min: 20 20; /* min and max size are the same, so never - * resize this */ - aspect: 1.0 1.0; /* square - always */ - aspect_preference: VERTICAL; /* the vetical axis controls size - * when applying the aspect ratio - * hint above */ - rel1 { - relative: 1.0 0.0; - offset: -2 1; - to_x: "top"; - to_y: "top"; - } - rel2 { - relative: 1.0 1.0; - offset: -2 -2; - to_x: "top"; - to_y: "top"; - } - } - } - part { name: "bt_max"; /* maximize button shadow */ - mouse_events: 0; - type: RECT; - description { state: "default" 0.0; - color: 255 128 0 255; - align: 1.0 0.5; - min: 20 20; - aspect: 1.0 1.0; - aspect_preference: VERTICAL; - rel1 { - relative: 0.0 0.0; - offset: -2 1; - to_x: "bt_close"; /* left of the close button */ - to_y: "top"; - } - rel2 { - relative: 0.0 1.0; - offset: -2 -2; - to_x: "bt_close"; /* left of the close button */ - to_y: "top"; - } - } - } - part { name: "bt_min"; /* minimize button shadow */ - mouse_events: 0; +///////////////////////////////////////////////////////////////////////////// +/*** DEFAULT WINDOW BORDER ***/ + group { + name: "e/widgets/border/default/border"; + /* 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_bg.png" COMP; + image: "added_images/DM_Internet_Address_bg.png" COMP; + image: "added_images/DM_Internet_Title_bg.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; + /* 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_Title_bg.png"; + /* the image */ + } + } + } + part { + name: "bottom"; + /* this is the bottom of the window */ + mouse_events: 0; + description { + state: "default" 0.0; + rel1 { + relative: 0.0 1.0; + } + rel2 { + relative: 1.0 1.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; - color: 255 255 0 255; - align: 1.0 0.5; - min: 20 20; - aspect: 1.0 1.0; - aspect_preference: VERTICAL; - rel1 { - relative: 0.0 0.0; - offset: -2 1; - to_x: "bt_max"; /* left of the maximize button */ - to_y: "top"; - } - rel2 { - relative: 0.0 1.0; - offset: -2 -2; - to_x: "bt_max"; /* left of the maximize button */ - to_y: "top"; - } - } - } - - 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: "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; + 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; - color: 0 0 0 255; - 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; - } + 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; + aspect: 1.0 1.0; + /* square - always */ + aspect_preference: VERTICAL; + /* the vetical axis controls size + * when applying the aspect ratio + * hint above */ + rel1 { + relative: 1.0 0.0; + offset: -28 1; + to_x: "top"; + to_y: "top"; + } + rel2 { + relative: 1.0 1.0; + offset: -14 -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; + align: 1.0 0.5; + min: 14 14; + max: 14 14; + aspect: 1.0 1.0; + aspect_preference: VERTICAL; + rel1 { + relative: 0.0 0.0; + offset: -2 1; + to_x: "bt_close"; + /* left of the close button */ + to_y: "top"; + } + rel2 { + relative: 0.0 1.0; + offset: -2 -2; + to_x: "bt_close"; + /* left of the close button */ + to_y: "top"; + } + image.normal: "added_images/DM_Internet_icon_Zoom.png"; + } + } + part { + name: "bt_min"; + /* minimize button shadow */ + mouse_events: 0; + description { + state: "default" 0.0; + align: 1.0 0.5; + min: 14 14; + max: 14 14; + aspect: 1.0 1.0; + aspect_preference: VERTICAL; + rel1 { + relative: 0.0 0.0; + offset: -2 1; + to_x: "bt_max"; + /* left of the maximize button */ + to_y: "top"; + } + rel2 { + relative: 0.0 1.0; + offset: -2 -2; + 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"; + image.normal: "added_images/DM_Internet_icon_Zoom.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: "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: "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"; + image.normal: "added_images/DM_Internet_icon_Zoom.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: "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: 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"; + } + } + } + /* 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.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 - 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: "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: "e.swallow.client"; + } + // 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"; + 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"; + } + } + } + /* 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"; + } + } + } + /*** 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; + description { + state: "default" 0.0; + rel1 { + relative: 0.0 1.0; + } + 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: "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:style=Bold"; + size: 10; + 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: -28 1; + to_x: "top"; + to_y: "top"; + } + rel2 { + relative: 1.0 1.0; + 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: 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.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; + } + 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: "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:style=Bold"; + size: 10; + 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: -28 2; + to_x: "top"; + to_y: "top"; + } + rel2 { + relative: 1.0 1.0; + 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: 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.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 - 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: 0.5 1.0; - offset: 0 9; + 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 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 0.0; \ + offset: 0 0; \ + } \ + rel2 { \ + to: "whole"; \ + relative: (XOFF+0.5) 0.3; \ + offset: -1 -1; \ + } \ + color: 255 255 255 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 0.0; \ + offset: 0 0; \ + } \ + rel2 { \ + relative: (X+0.5) DAY_HEIGHT; \ + offset: -1 -1; \ + } \ + color: 255 255 255 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 0.0; \ + offset: 0 0; \ + } \ + rel2 { \ + to: "whole"; \ + relative: (XOFF+0.5) DAY_HEIGHT; \ + offset: -1 -1; \ + } \ + color: 255 255 255 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"; + } + parts { + part { + name: "item_clip"; + type: RECT; + mouse_events: 0; + description { + state: "default" 0.0; + color: 255 255 255 255; + } + } + part { + name: "e.swallow.content"; + type: SWALLOW; + clip_to: "item_clip"; + description { + state: "default" 0.0; + rel1 { + relative: 0.35 0.25; + offset: 2 2; + } + rel2 { + relative: 0.65 0.55; + offset: -2 -2; + } + } + description { + state: "smaller" 0.0; + inherit: "default" 0.0; + rel1 { + offset: 5 5; + } + rel2 { + offset: -5 -5; + } + } + } + part { + name: "over"; + type: RECT; + repeat_events: 0; + description { + state: "default" 0.0; + color: 0 0 0 0; + } + } + } + programs { + program { + name: "hover_down"; + signal: "mouse,down,1"; + source: "over"; + action: STATE_SET "smaller" 0.0; + transition: LINEAR 0.2; + target: "e.swallow.content"; + } + program { + name: "hover_up"; + signal: "mouse,up,1"; + source: "over"; + action: STATE_SET "default" 0.0; + transition: LINEAR 0.2; + target: "e.swallow.content"; + } + 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.45; + offset: 0 0; + } + rel2 { + relative: 1.0 0.9; + 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; + } + } + } + } - 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: 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"; - } - } - } +///////////////////////////////////////////////////////////////////////////// +/*** MOVE/RESIZE BOX ***/ - /* 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; - } - } + 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"; + } + } + } + } + } - 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; - } - } +///////////////////////////////////////////////////////////////////////////// +/*** 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_h_01.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"; + mouse_events: 0; + description { + state: "default" 0.0; + image { + normal: "added_images/e17_ibar_bg_v.png"; + border: 7 7 7 7; + } + fill { + smooth : 0; + } + } + } + part { + name: "clipper"; + type: RECT; + mouse_events: 0; + description { + state: "default" 0.0; + rel1 { + to: "bg"; + offset: 4 4; + } + rel2 { + to: "bg"; + offset: -5 -5; + } + } + } + part { + name: "e.swallow.content"; + clip_to: "clipper"; + type: SWALLOW; + description { + state: "default" 0.0; + rel1 { + offset: 4 4; + } + rel2 { + relative: 0.0 0.0; + offset: -1 -1; + to_x: "sb_vbar"; + to_y: "sb_hbar"; + } + } + } + part { + name: "conf_over"; + mouse_events: 0; + description { + state: "default" 0.0; + rel1 { + to: "bg"; + } + rel2 { + to: "bg"; + } + image { + normal: "added_images/e17_ibar_over_v.png"; + border: 13 13 13 13; + middle: 0; + } + fill { + smooth : 0; + } + } + } + part { + name: "sb_vbar"; + type: RECT; + mouse_events: 0; + description { + state: "default" 0.0; + min: 16 16; + align: 1.0 0.0; + rel1 { + to: "bg"; + relative: 1.0 0.0; + offset: -5 4; + } + rel2 { + to: "bg"; + relative: 1.0 0.0; + offset: -5 -1; + to_y: "sb_hbar"; + } + } + description { + state: "hidden" 0.0; + visible: 0; + max: 0 99999; + rel1 { + to: "bg"; + relative: 1.0 0.0; + offset: -4 4; + } + rel2 { + to: "bg"; + relative: 1.0 0.0; + offset: -4 -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: -1 -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"; + } + rel2 { + to: "sb_vbar_base"; + } + 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; + min: 16 16; + 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: "clicked" 0.0; + inherit: "default" 0.0; + image { + normal: "added_images/DM_Internet_Scroll_01.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: 0 0; + } + rel2 { + to: "sb_vbar"; + relative: 1.0 0.0; + offset: -1 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: 0 -1; + } + rel2 { + to: "sb_vbar"; + relative: 1.0 1.0; + offset: -1 -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: "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"; + target: "sb_increase"; + } + program { + name: "sb_vbar_hide"; + signal: "e,action,hide,vbar"; + source: "e"; + action: STATE_SET "hidden" 0.0; + target: "sb_vbar"; + target: "sb_increase"; + } + 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_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: "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; + } + } + } + } + } - 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; - } - } +///////////////////////////////////////////////////////////////////////////// +/*** GADMAN ***/ - 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; - } - } + 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 - 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 "focused" 0.0; /* the action the program will - * perform. in this case - * it will set the state to - * "focused" @ value 0.0 */ - 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: "e.text.title"; - } - - program { name: "max_full"; /* run on fullscreen maximize */ - signal: "e,action,maximize,fullscreen"; - source: "e"; - action: STATE_SET "max" 0.0; - target: "bottom"; - 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: "e.swallow.client"; - } - -// 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"; - 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: "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"; + } } } - -///////////////////////////////////////////////////////////////////////////// -/*** DIALOG ***/ -/* Used in all dialogs eg; Wallpaper selector */ - group { - name: "e/widgets/dialog/main"; + name: "e/gadman/control"; images { - image: "dia_grad.png" COMP; - image: "dia_topshad.png" COMP; - image: "dia_botshad.png" COMP; - image: "menu_sep.png" COMP; + 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: "base"; + name: "hclip"; mouse_events: 0; + type: RECT; 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; - } - } + visible: 1; + rel1.offset: -85 -85; + rel2.offset: 74 74; + } + description { + state: "disabled" 0.0; + inherit: "default" 0.0; + visible : 0; } } part { - name: "shadow"; + name: "vclip"; mouse_events: 0; + type: RECT; 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; - } + 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: "shadow2"; - mouse_events: 0; + name: "left_arrow1"; 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; - } + 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: "e.swallow.icon"; - type: SWALLOW; + name: "left_arrow2"; description { state: "default" 0.0; - align: 0.0 0.5; - fixed: 1 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.0 0.0; - offset: 2 2; + relative: 0.5 0.0; + offset: -6 -24; } rel2 { - relative: 0.0 0.0; - offset: 2 -5; - to_y: "e.swallow.buttons"; + relative: 0.5 0.0; + offset: 5 -9; } } } part { - name: "e.swallow.content"; - type: SWALLOW; + name: "top_arrow2"; description { state: "default" 0.0; + aspect: 1.0 1.0; + max: 24 12; rel1 { - relative: 1.0 0.0; - offset: 2 2; - to_x: "e.swallow.icon"; + relative: 0.5 0.0; + offset: 0 3; } rel2 { - relative: 1.0 0.0; - offset: -3 -5; - to_y: "e.swallow.buttons"; + relative: 0.5 0.0; + offset: -1 3; } + image.normal: "gadman_top.png"; } - } - part { - name: "separator"; - mouse_events: 0; description { - state: "default" 0.0; - min: 16 2; + state: "1" 0.0; + inherit: "default" 0.0; rel1 { - relative: 0.0 1.0; - offset: 4 -1; - to_y: "e.swallow.content"; + relative: 0.5 0.0; + offset: -12 -32; } rel2 { - relative: 1.0 1.0; - offset: -5 0; - to_y: "e.swallow.content"; - } - image { - normal: "menu_sep.png"; - border: 2 2 0 0; + relative: 0.5 0.0; + offset: 11 -18; } - fill.smooth: 0; } - } - part { - name: "e.swallow.buttons"; - type: SWALLOW; description { - state: "default" 0.0; - align: 0.5 1.0; - fixed: 0 1; + state: "2" 0.0; + inherit: "default" 0.0; rel1 { - relative: 0.0 1.0; - offset: 4 -5; + relative: 0.5 0.0; + offset: -6 -24; } rel2 { - relative: 1.0 1.0; - offset: -5 -5; + relative: 0.5 0.0; + offset: 5 -9; } } } - } - } - 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; + name: "bottom_arrow1"; description { state: "default" 0.0; - rel1.offset: 4 4; - rel2.offset: -5 -5; - text { - style: "dialog_style"; - min: 1 1; + aspect: 1.0 1.0; + max: 24 12; + rel1 { + relative: 0.5 1.0; + offset: 0 -3; } - } - } - } - } - - 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; + rel2 { + relative: 0.5 1.0; + offset: -1 -3; } + image.normal: "gadman_bottom.png"; } description { - state: "clicked" 0.0; + state: "1" 0.0; inherit: "default" 0.0; - image.normal: "bt_base1.png"; + rel1 { + relative: 0.5 1.0; + offset: -12 18; + } + rel2 { + relative: 0.5 1.0; + offset: 11 31; + } } description { - state: "disabled" 0.0; + state: "2" 0.0; inherit: "default" 0.0; - image { - normal: "bt_dis_base.png"; - border: 4 4 4 4; + rel1 { + relative: 0.5 1.0; + offset: -6 10; + } + rel2 { + relative: 0.5 1.0; + offset: 5 24; } } } part { - name: "e.swallow.icon"; - type: SWALLOW; - mouse_events: 0; + name: "bottom_arrow2"; description { state: "default" 0.0; - align: 0.0 0.5; + aspect: 1.0 1.0; + max: 24 12; rel1 { - relative: 0.0 0.0; - offset: 3 3; - to: "button_image"; + relative: 0.5 1.0; + offset: 0 -3; } rel2 { - relative: 0.0 1.0; - offset: 3 -4; - to: "button_image"; + relative: 0.5 1.0; + offset: -1 -3; } + image.normal: "gadman_bottom.png"; } description { - state: "combo" 0.0; + state: "1" 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"; + relative: 0.5 1.0; + offset: -12 18; } rel2 { - relative: 0.0 1.0; - offset: 3 -4; - to: "button_image"; + relative: 0.5 1.0; + offset: 11 31; } } description { - state: "icon" 0.0; + state: "2" 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"; + relative: 0.5 1.0; + offset: -6 10; } rel2 { - relative: 1.0 1.0; - offset: -4 -4; - to: "button_image"; + relative: 0.5 1.0; + offset: 5 24; } } } part { - name: "e.text.label"; - type: TEXT; - effect: SOFT_SHADOW; - mouse_events: 0; - scale: 1; + name: "v1"; + mouse_events: 1; + clip_to: "vclip"; 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"; - } + rel2.relative: 1.0 0.0; + rel2.offset: -1 9; } + } + part { + name: "v2"; + mouse_events: 1; + clip_to: "vclip"; description { - state: "disabled" 0.0; - inherit: "default" 0.0; - color_class: "button_text_disabled"; + 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: "icon" 0.0; - inherit: "default" 0.0; - visible: 0; + state: "default" 0.0; + rel2.relative: 0.0 1.0; + rel2.offset: 9 -1; } } part { - name: "over1"; - mouse_events: 0; + name: "h2"; + mouse_events: 1; + clip_to: "hclip"; description { state: "default" 0.0; - rel2.relative: 1.0 0.5; - image { - normal: "bt_hilight.png"; - border: 7 7 7 0; - } + rel1.relative: 1.0 0.0; + rel1.offset: -8 0; } + } + part { + name: "border"; + mouse_events: 1; + repeat_events: 1; description { - state: "disabled" 0.0; - inherit: "default" 0.0; + state: "default" 0.0; image { - normal: "bt_dis_hilight.png"; - border: 4 4 4 0; + normal: "gadman_border.png"; + border: 10 10 10 10; + middle: 0; } + fill.smooth: 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; - } + } + 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" ""; } - 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; - } + program { + name: "h2_up2"; + signal: "mouse,up,1"; + source: "h2"; + action: SIGNAL_EMIT "e,action,resize,right,stop" ""; } - 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; - } + program { + name: "h2_move"; + signal: "mouse,move"; + source: "h2"; + action: SIGNAL_EMIT "e,action,resize,right,go" ""; } - } - programs { program { - name: "button_click"; + name: "v1_down1"; signal: "mouse,down,1"; - source: "button_image"; + source: "v1"; action: STATE_SET "clicked" 0.0; - target: "button_image"; - target: "over3"; + target: "v1"; } program { - name: "button_unclick"; + name: "v1_up1"; signal: "mouse,up,1"; - source: "button_image"; + source: "v1"; action: STATE_SET "default" 0.0; - target: "button_image"; - target: "over3"; + target: "v1"; } program { - name: "button_unclick2"; - signal: "mouse,clicked,1"; - source: "button_image"; - action: SIGNAL_EMIT "e,action,click" ""; + name: "v1_down2"; + signal: "mouse,down,1"; + source: "v1"; + action: SIGNAL_EMIT "e,action,resize,up,start" ""; } program { - name: "text_state"; - signal: "e,state,text"; - source: "e"; + 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: "e.swallow.icon"; - target: "e.text.label"; + target: "v2"; } program { - name: "icon_state"; - signal: "e,state,icon"; - source: "e"; - action: STATE_SET "icon" 0.0; - target: "e.swallow.icon"; - target: "e.text.label"; + name: "v2_down2"; + signal: "mouse,down,1"; + source: "v2"; + action: SIGNAL_EMIT "e,action,resize,down,start" ""; } program { - name: "combo_state"; - signal: "e,state,combo"; - source: "e"; - action: STATE_SET "combo" 0.0; - target: "e.swallow.icon"; - target: "e.text.label"; + name: "v2_up2"; + signal: "mouse,up,1"; + source: "v2"; + action: SIGNAL_EMIT "e,action,resize,down,stop" ""; } 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"; + name: "v2_move"; + signal: "mouse,move"; + source: "v2"; + action: SIGNAL_EMIT "e,action,resize,down,go" ""; } + // LEFT ARROW program { - name: "enable"; - signal: "e,state,enabled"; - source: "e"; + 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: "button_image"; - target: "over1"; - target: "e.text.label"; - target: "disabler"; + target: "left_arrow1"; + after: "left1_1"; } - } - } - - 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: 0 0 0 255; - 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: 0 0 0 128; - } + program { + name: "left2_1"; + action: STATE_SET "1" 0.0; + target: "left_arrow2"; + transition: LINEAR 0.4; + after: "left2_2"; } - } - programs { program { - name: "disable"; - signal: "e,state,disabled"; - source: "e"; - action: STATE_SET "disabled" 0.0; - target: "e.text.label"; + name: "left2_2"; + action: STATE_SET "2" 0.0; + target: "left_arrow2"; + transition: LINEAR 0.4; + after: "left2_r"; } program { - name: "enable"; - signal: "e,state,enabled"; - source: "e"; + name: "left2_r"; action: STATE_SET "default" 0.0; - target: "e.text.label"; + 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"; + + group { + name: "e/widgets/slidesel"; alias: "e/pointer/enlightenment/default/mono"; - alias: "e/widgets/toolbar"; - alias: "e/widgets/menu/default/submenu_bg"; alias: "e/modules/connman/network"; - alias: "e/modules/ibar/icon"; - alias: "e/modules/ibar/icon_overlay"; - alias: "e/modules/ibar/drop"; - alias: "e/modules/ibar/drop_overlay"; alias: "e/fileman/default/list/drop_between"; alias: "e/fileman/desktop/list/drop_in"; alias: "e/fileman/desktop/list/drop_between"; @@ -1268,24 +13929,6 @@ collections { /* begin the collection of edje groups that are in this file */ alias: "e/sys/suspend"; alias: "e/sys/hibernate"; alias: "e/widgets/gradpreview"; - alias: "e/widgets/toolbar/item"; - alias: "e/widgets/menu/default/background"; - alias: "e/widgets/menu/default/separator"; - alias: "e/widgets/menu/default/item_bg"; - alias: "e/widgets/menu/default/icon"; - alias: "e/widgets/menu/default/label"; - alias: "e/widgets/menu/default/submenu"; - alias: "e/widgets/menu/default/check"; - alias: "e/widgets/menu/default/radio"; - alias: "e/shelf/default/base"; - alias: "e/shelf/default/inset"; - alias: "e/shelf/default/plain"; - alias: "e/shelf/invisible/base"; - alias: "e/shelf/invisible/inset"; - alias: "e/shelf/invisible/plain"; - alias: "e/shelf/alternate/base"; - alias: "e/shelf/alternate/inset"; - alias: "e/shelf/alternate/plain"; alias: "e/modules/connman/main"; alias: "e/modules/conf_edgebindings/selection"; alias: "e/modules/start/main"; @@ -1297,10 +13940,6 @@ collections { /* begin the collection of edje groups that are in this file */ alias: "e/modules/temperature/main"; alias: "e/modules/clock/main"; alias: "e/modules/cpufreq/main"; - alias: "e/modules/ibox/icon"; - alias: "e/modules/ibox/icon_overlay"; - alias: "e/modules/ibox/drop"; - alias: "e/modules/ibox/drop_overlay"; alias: "e/widgets/winlist/main"; alias: "e/widgets/winlist/item"; alias: "e/widgets/exebuf/main"; @@ -1324,23 +13963,10 @@ collections { /* begin the collection of edje groups that are in this file */ alias: "e/fileman/default/list/fixed"; alias: "e/fileman/default/list_odd/fixed"; alias: "e/sys/logout"; - alias: "e/widgets/configure/main"; - alias: "e/widgets/border/default/move"; - alias: "e/widgets/border/default/resize"; - alias: "e/toolbar/default/base"; alias: "e/transpreview/0"; alias: "e/transpreview/1"; alias: "e/transitions/crossfade"; alias: "e/transitions/vswipe"; - alias: "e/widgets/check"; - alias: "e/widgets/check_icon"; - alias: "e/widgets/radio"; - alias: "e/widgets/radio_icon"; - alias: "e/widgets/scrollframe"; - alias: "e/widgets/ilist"; - alias: "e/widgets/ilist_odd"; - alias: "e/widgets/ilist_header"; - alias: "e/widgets/ilist_header_odd"; alias: "e/widgets/entry"; alias: "e/widgets/entry/text"; alias: "e/widgets/entry/cursor"; @@ -1349,18 +13975,9 @@ collections { /* begin the collection of edje groups that are in this file */ alias: "e/widgets/deskpreview/desk"; alias: "e/widgets/color_well"; alias: "e/widgets/spectrum"; - alias: "e/widgets/cslider"; - alias: "e/widgets/slider_vertical"; - alias: "e/widgets/slider_horizontal"; - alias: "e/widgets/frame"; alias: "e/widgets/fontpreview"; - alias: "e/widgets/textblock"; alias: "e/desklock/background"; alias: "e/desklock/login_box"; - alias: "e/gadman/popup"; - alias: "e/gadman/full_bg"; - alias: "e/gadman/frame"; - alias: "e/gadman/control"; alias: "e/wizard/extra"; alias: "e/wizard/main"; alias: "e/widgets/about/main"; @@ -1385,13 +14002,15 @@ collections { /* begin the collection of edje groups that are in this file */ alias: "e/widgets/everything/main"; alias: "e/widgets/everything/item"; parts { - part { name: "base"; - mouse_events: 0; + part { + name: "base"; + mouse_events: 0; type: RECT; - description { state: "default" 0.0; + description { + state: "default" 0.0; color: 0 0 0 0; - } - } + } + } } } } diff --git a/debian/changelog b/debian/changelog index 6e7ad63..ba48b09 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,189 @@ +e17 (1:1.0.0.001+svn.68441slp2+build23) unstable; urgency=low + + * Change auto-focus policy + - Skip the app-in-app mode window while finding next focused window + [OBS] e17-1.0.0.001+svn.68441slp2+build23-slp.1.1 + * Git: framework/uifw/e17 + * Tag: e17_1.0.0.001+svn.68441slp2+build23 + + -- Doyoun Kang Sun, 19 Aug 2012 15:27:29 +0900 + +e17 (1:1.0.0.001+svn.68441slp2+build22) unstable; urgency=low + + * [E_Gadcon] Add code to remove E_Gadcon from the custom_populate_request list + when the E_Gadcon is removed + [OBS] e17-1.0.0.001+svn.68441slp2+build22-slp.1.1 + * Git: slp/pkgs/e/e17 + * Tag: e17_1.0.0.001+svn.68441slp2+build22 + + -- Doyoun Kang Wed, 08 Aug 2012 23:21:15 +0900 + +e17 (1:1.0.0.001+svn.68441slp2+build21) unstable; urgency=low + + * [E_Border] Changed _e_border_eval0 to show border on the proper E_Desk. + Border which specifies E_PROFILE_LIST shouldn't appear on the screen + due to incorrect border events at _e_border_eval0. Thus it has been + changed to set desk after creating E_BORDER_ADD event. + - Previous Incorrect Border Events: BORDER_SHOW -> BORDER_ADD + - Changed Border Events: BORDER_ADD -> BORDER_SHOW + [OBS] e17-1.0.0.001+svn.68441slp2+build21-slp.1.1 + * Git: slp/pkgs/e/e17 + * Tag: e17_1.0.0.001+svn.68441slp2+build21 + + -- Gwanglim Sun, 05 Aug 2012 18:06:14 +0900 + +e17 (1:1.0.0.001+svn.68441slp2+build20) unstable; urgency=low + + * [E_Util] add feature - external elementary dialog show + Using external elementary dialog util instead of e_dialog to display error + or warning messages. It is a temporary solution for supporting consistent + UX theme. The external dialog is a simple EFL application which is based on + elementary. Thus window manager can display message using elementary UX theme, + along with other system popup. + [OBS] e17-1.0.0.001+svn.68441slp2+build20-slp.1.1 + * Git: slp/pkgs/e/e17 + * Tag: e17_1.0.0.001+svn.68441slp2+build20 + + -- Gwanglim Lee Tue, 24 Jul 2012 23:06:28 +0900 + +e17 (1:1.0.0.001+svn.68441slp2+build19) unstable; urgency=low + + * [E_Manager] add feature - composite mode set / get + [OBS] e17-1.0.0.001+svn.68441slp2+build19-slp.1.1 + * Git: slp/pkgs/e/e17 + * Tag: e17_1.0.0.001+svn.68441slp2+build19 + + -- Gwanglim Lee Wed, 18 Jul 2012 15:22:50 +0900 + +e17 (1:1.0.0.001+svn.68441slp2+build18) unstable; urgency=low + + * [Theme] Change samsung.edc theme file according to UX guide + [OBS] e17-1.0.0.001+svn.68441slp2+build18-slp.1.1 + * Git: slp/pkgs/e/e17 + * Tag: e17_1.0.0.001+svn.68441slp2+build18 + + -- Doyoun Kang Tue, 17 Jul 2012 21:18:07 +0900 + +e17 (1:1.0.0.001+svn.68441slp2+build17) unstable; urgency=low + + * [gadman] bug fix - calculate gadget's relative geometry using zone's geometry + [OBS] e17-1.0.0.001+svn.68441slp2+build17-slp.1.1 + * Git: slp/pkgs/e/e17 + * Tag: e17_1.0.0.001+svn.68441slp2+build17 + + -- Doyoun Kang Thu, 12 Jul 2012 17:19:22 +0900 + +e17 (1:1.0.0.001+svn.68441slp2+build16) unstable; urgency=low + + * [ibar] add feature - lock to move icon + [OBS] e17-1.0.0.001+svn.68441slp2+build16-slp.1.1 + * Git: slp/pkgs/e/e17 + * Tag: e17_1.0.0.001+svn.68441slp2+build16 + + -- Doyoun Kang Sat, 30 Jun 2012 13:40:39 +0900 + +e17 (1:1.0.0.001+svn.68441slp2+build15) unstable; urgency=low + + * 1. Install clock module + 2. Added per-window profile to support multi-head display + 3. Remove _F_SUPPORT_DESKTOP_MODE_ environment variable feature + 4. Apply new UX theme + [OBS] e17-1.0.0.001+svn.68441slp2+build15-slp.1.1 + * Git: slp/pkgs/e/e17 + * Tag: e17_1.0.0.001+svn.68441slp2+build15 + + -- Doyoun Kang Wed, 20 Jun 2012 20:14:21 +0900 + +e17 (1:1.0.0.001+svn.68441slp2+build14) unstable; urgency=low + + * [gadman] Add code to handle gadget list when a zone is added or deleted + [theme ] Add script to handle gadgets in samsung.edj theme + * Git: slp/pkgs/e/e17 + * Tag: e17_1.0.0.001+svn.68441slp2+build14 + + -- Doyoun Kang Wed, 13 Jun 2012 20:41:12 +0900 + +e17 (1:1.0.0.001+svn.68441slp2+build13) unstable; urgency=low + + * [ibar] change ELM_SCALE environment value to "extension" + * Git: slp/pkgs/e/e17 + * Tag: e17_1.0.0.001+svn.68441slp2+build13 + + -- Doyoun Kang Mon, 4 Jun 2012 14:26:26 +0900 + +e17 (1:1.0.0.001+svn.68441slp2+build12) unstable; urgency=low + + * [ibar] Add code to set ELM_SCALE environment value for desktop mode + [featuring] Add feature - _F_SUPPORT_DESKTOP_MODE_ : support desktop mode + * Git: slp/pkgs/e/e17 + * Tag: e17_1.0.0.001+svn.68441slp2+build12 + + -- Doyoun Kang Thu, 24 May 2012 15:20:20 +0900 + +e17 (1:1.0.0.001+svn.68441slp2+build11) unstable; urgency=low + + * Change debian/e17.postinst file + - Remove libtool files + * Git: slp/pkgs/e/e17 + * Tag: e17_1.0.0.001+svn.68441slp2+build11 + + -- Doyoun Kang Fri, 18 May 2012 13:39:42 +0900 + +e17 (1:1.0.0.001+svn.68441slp2+build10) unstable; urgency=low + + * [Theme] change the samsung.edc theme file to support various border type + * Git: slp/pkgs/e/e17 + * Tag: e17_1.0.0.001+svn.68441slp2+build10 + + -- Doyoun Kang Sun, 13 May 2012 17:37:08 +0900 + +e17 (1:1.0.0.001+svn.68441slp2+build09) unstable; urgency=low + + * Change environment to support desktop mode + - change debian/rules and debian/e17.install to install some modules + (ibar, ibox, gadman, conf_applications, conf_theme) + - change the samsung.edc theme file + * Git: slp/pkgs/e/e17 + * Tag: e17_1.0.0.001+svn.68441slp2+build09 + + -- Doyoun Kang Wed, 09 May 2012 10:14:39 +0900 + +e17 (1:1.0.0.001+svn.68441slp2+build08) unstable; urgency=low + + * Bug fix - Checking the geometry of a window while the e finding the next + focused window when it gets active request message + * Git: slp/pkgs/e/e17 + * Tag: e17_1.0.0.001+svn.68441slp2+build08 + + -- Doyoun Kang Fri, 04 May 2012 18:01:34 +0900 + +e17 (1:1.0.0.001+svn.68441slp2+build07) unstable; urgency=low + + * Rollback e_container.c file to rev.70439 + * Git: slp/pkgs/e/e17 + * Tag: e17_1.0.0.001+svn.68441slp2+build07 + + -- Doyoun Kang Wed, 25 Apr 2012 17:49:37 +0900 + +e17 (1:1.0.0.001+svn.68441slp2+build06) unstable; urgency=low + + * Patch e_container.c file(rev.70442) - this contains below change + - if screens dynamically come and go ONLy free zones we no longer need + and ONLy new zones we now do need, dont free all and new existing set + + new ones. + * Git: slp/pkgs/e/e17 + * Tag: e17_1.0.0.001+svn.68441slp2+build06 + + -- Doyoun Kang Wed, 25 Apr 2012 08:14:22 +0900 + +e17 (1:1.0.0.001+svn.68441slp2+build05) unstable; urgency=low + + * Update COPYING file + * Git: slp/pkgs/e/e17 + * Tag: e17_1.0.0.001+svn.68441slp2+build05 + + -- Doyoun Kang Mon, 09 Apr 2012 15:45:11 +0900 + e17 (1:1.0.0.001+svn.68441slp2+build04) unstable; urgency=low * [E_Zone] There is a bug doesn't send E_EVENT_ZONE_DEL event when the zone diff --git a/debian/e17.install b/debian/e17.install index 555b5d9..29a9e18 100644 --- a/debian/e17.install +++ b/debian/e17.install @@ -5,3 +5,4 @@ debian/tmp/usr/bin/enlightenment_imc #debian/tmp/usr/lib/enlightenment/utils/enlightenment_* debian/tmp/etc/enlightenment/sysactions.conf debian/tmp/usr/lib/enlightenment/preload/e_precache.so +debian/tmp/usr/lib/enlightenment/modules/* diff --git a/debian/e17.postinst b/debian/e17.postinst index b7502ab..e985d0c 100644 --- a/debian/e17.postinst +++ b/debian/e17.postinst @@ -7,4 +7,6 @@ wm=enlightenment_start #update-alternatives --install /usr/bin/x-window-manager x-window-manager \ # /usr/bin/$wm 90 +find /usr/lib/enlightenment/modules -name *.la -exec rm -f {} \; + #DEBHELPER# diff --git a/debian/rules b/debian/rules index 51b2490..da375f3 100755 --- a/debian/rules +++ b/debian/rules @@ -8,7 +8,7 @@ DEB_FIXPERMS_EXCLUDE := enlightenment_sys freqset tempget batget DEB_MAKE_CLEAN_TARGET := distclean DEB_INSTALL_MANPAGES_e17 := $(DEB_SRCDIR)/debian/enlightenment.1 $(DEB_SRCDIR)/debian/enlightenment_*.1 DEB_DH_STRIP_ARGS := --dbg-package=e17-dbg -DEB_CONFIGURE_EXTRA_FLAGS := --enable-extra-features --disable-clock --disable-temperature --disable-mixer --disable-everything --disable-ibar --disable-dropshadow --disable-pager --disable-battery --disable-cpufreq --disable-ibox --disable-start --disable-exebuf --disable-winlist --disable-fileman --disable-fileman-opinfo --disable-wizard --disable-conf --disable-conf-wallpaper --disable-conf-wallpaper2 --disable-conf-theme --disable-conf-colors --disable-conf-fonts --disable-conf-borders --disable-conf-icon-theme --disable-conf-mouse-cursor --disable-conf-transitions --disable-conf-startup --disable-conf-intl --disable-conf-imc --disable-conf-profiles --disable-msgbus-lang --disable-conf-engine --disable-conf-applications --disable-conf-desks --disable-conf-desk --disable-conf-display --disable-conf-desklock --disable-conf-screensaver --disable-conf-dpms --disable-conf-shelves --disable-conf-shelves --disable-conf-keybindings --disable-conf-mousebindings --disable-conf-edgebindings --disable-conf-mouse --disable-conf-window-display --disable-conf-window-focus --disable-conf-window-remembers --disable-conf-window-manipulation --disable-conf-menus --disable-conf-clientlist --disable-conf-dialogs --disable-conf-performance --disable-conf-winlist --disable-conf-exebuf --disable-conf-paths --disable-conf-mime --disable-conf-interaction --disable-conf-scale --disable-gadman --disable-mixel --disable-connman --disable-illume --disable-syscon --disable-bluez --disable-ofono --disable-msgbus --disable-systray --disable-conf_acpibindings --disable-everything-apps --disable-everything-aspell --disable-everything-calc --disable-everything-files --disable-everything-settings --disable-everything-windows --disable-illume-bluetooth --disable-illume-home --disable-illume-toggle --disable-illume-indicator --disable-illume-kbd-toggle --disable-illume-keyboard --disable-illume-mode-toggle --disable-illume-softkey --disable-comp --disable-illume2 --disable-notification --disable-conf_randr --disable-tasks --disable-backlight --disable-shot +DEB_CONFIGURE_EXTRA_FLAGS := --enable-extra-features --disable-temperature --disable-mixer --disable-everything --disable-dropshadow --disable-pager --disable-battery --disable-cpufreq --disable-start --disable-exebuf --disable-winlist --disable-fileman --disable-fileman-opinfo --disable-wizard --disable-conf --disable-conf-wallpaper --disable-conf-wallpaper2 --disable-conf-colors --disable-conf-fonts --disable-conf-borders --disable-conf-icon-theme --disable-conf-mouse-cursor --disable-conf-transitions --disable-conf-startup --disable-conf-intl --disable-conf-imc --disable-conf-profiles --disable-msgbus-lang --disable-conf-engine --disable-conf-desks --disable-conf-desk --disable-conf-display --disable-conf-desklock --disable-conf-screensaver --disable-conf-dpms --disable-conf-shelves --disable-conf-shelves --disable-conf-keybindings --disable-conf-mousebindings --disable-conf-edgebindings --disable-conf-mouse --disable-conf-window-display --disable-conf-window-focus --disable-conf-window-remembers --disable-conf-window-manipulation --disable-conf-menus --disable-conf-clientlist --disable-conf-dialogs --disable-conf-performance --disable-conf-winlist --disable-conf-exebuf --disable-conf-paths --disable-conf-mime --disable-conf-interaction --disable-conf-scale --disable-mixel --disable-connman --disable-illume --disable-syscon --disable-bluez --disable-ofono --disable-msgbus --disable-systray --disable-conf_acpibindings --disable-everything-apps --disable-everything-aspell --disable-everything-calc --disable-everything-files --disable-everything-settings --disable-everything-windows --disable-illume-bluetooth --disable-illume-home --disable-illume-toggle --disable-illume-indicator --disable-illume-kbd-toggle --disable-illume-keyboard --disable-illume-mode-toggle --disable-illume-softkey --disable-comp --disable-illume2 --disable-notification --disable-conf_randr --disable-tasks --disable-backlight --disable-shot CFLAGS += -fvisibility=hidden -fPIC LDFLAGS += -fvisibility=hidden -Wl,--hash-style=both -Wl,--as-needed diff --git a/doc/cache.txt b/doc/cache.txt old mode 100755 new mode 100644 diff --git a/doc/illume2.html b/doc/illume2.html old mode 100755 new mode 100644 diff --git a/packaging/e17.spec b/packaging/e17.spec index ee4400c..4a8bedb 100644 --- a/packaging/e17.spec +++ b/packaging/e17.spec @@ -1,6 +1,7 @@ +#sbs-git:slp/pkgs/e/e17 e17 1.0.0.001+svn.68441slp2+build21 Name: e17 Summary: The Enlightenment window manager -Version: 1.0.0.001+svn.68441slp2 +Version: 1.0.0.001+svn.68441slp2+build21 Release: 1 Group: System/GUI/Other License: BSD @@ -75,16 +76,13 @@ export LDFLAGS+=" -fvisibility=hidden -Wl,--hash-style=both -Wl,--as-needed" %autogen --disable-static LIBS='-ledbus' ./configure --prefix=/usr --disable-static \ - --disable-clock \ --disable-temperature \ --disable-mixer \ --disable-everything \ - --disable-ibar \ --disable-dropshadow \ --disable-pager \ --disable-battery \ --disable-cpufreq \ - --disable-ibox \ --disable-start \ --disable-exebuf \ --disable-winlist \ @@ -94,7 +92,6 @@ LIBS='-ledbus' ./configure --prefix=/usr --disable-static \ --disable-conf \ --disable-conf-wallpaper \ --disable-conf-wallpaper2 \ - --disable-conf-theme \ --disable-conf-colors \ --disable-conf-fonts \ --disable-conf-borders \ @@ -107,7 +104,6 @@ LIBS='-ledbus' ./configure --prefix=/usr --disable-static \ --disable-conf-profiles \ --disable-msgbus-lang \ --disable-conf-engine \ - --disable-conf-applications \ --disable-conf-desks \ --disable-conf-desk \ --disable-conf-display \ @@ -134,7 +130,6 @@ LIBS='-ledbus' ./configure --prefix=/usr --disable-static \ --disable-conf-mime \ --disable-conf-interaction \ --disable-conf-scale \ - --disable-gadman \ --disable-mixel \ --disable-connman \ --disable-illume \ @@ -179,6 +174,7 @@ rm -rf %{buildroot} /usr/bin/enlightenment_imc /usr/bin/enlightenment_remote /usr/bin/enlightenment_start +/usr/lib/enlightenment/modules /usr/lib/enlightenment/preload/* /usr/etc/enlightenment/sysactions.conf diff --git a/src/bin/e_border.c b/src/bin/e_border.c index 10128ce..4d8b2a0 100644 --- a/src/bin/e_border.c +++ b/src/bin/e_border.c @@ -124,6 +124,9 @@ static Eina_Bool _e_border_cb_grab_replay(void *data, void *event); static void _e_border_cb_drag_finished(E_Drag *drag, int dropped); +static Eina_Bool _e_border_cb_desk_window_profile_change(void *data, + int ev_type, + void *ev); static void _e_border_eval(E_Border *bd); static void _e_border_eval0(E_Border *bd); @@ -299,6 +302,7 @@ e_border_init(void) handlers = eina_list_append(handlers, ecore_event_handler_add(EFREET_EVENT_DESKTOP_CACHE_UPDATE, _e_border_cb_efreet_cache_update, NULL)); handlers = eina_list_append(handlers, ecore_event_handler_add(EFREET_EVENT_ICON_CACHE_UPDATE, _e_border_cb_efreet_cache_update, NULL)); handlers = eina_list_append(handlers, ecore_event_handler_add(E_EVENT_CONFIG_ICON_THEME, _e_border_cb_config_icon_theme, NULL)); + handlers = eina_list_append(handlers, ecore_event_handler_add(E_EVENT_DESK_WINDOW_PROFILE_CHANGE, _e_border_cb_desk_window_profile_change, NULL)); if (!borders_hash) borders_hash = eina_hash_string_superfast_new(NULL); @@ -600,6 +604,9 @@ e_border_new(E_Container *con, video_parent = EINA_TRUE; else if (atoms[i] == ECORE_X_ATOM_E_VIDEO_POSITION) video_position = EINA_TRUE; + /* loop to check for window profile list atom */ + else if (atoms[i] == ECORE_X_ATOM_E_PROFILE_LIST) + bd->client.e.fetch.profile_list = 1; } if (video_position && video_parent) { @@ -675,6 +682,12 @@ e_border_new(E_Container *con, desk[0] = deskx; desk[1] = desky; ecore_x_window_prop_card32_set(win, E_ATOM_DESK, desk, 2); + if (strcmp(bd->desk->window_profile, + e_config->desktop_default_window_profile) != 0) + { + ecore_x_e_window_profile_set(bd->client.win, + bd->desk->window_profile); + } focus_stack = eina_list_append(focus_stack, bd); @@ -4371,6 +4384,7 @@ e_border_resize_limit(E_Border *bd, static void _e_border_free(E_Border *bd) { + const char *str; if (bd->client.e.state.video_parent) { Eina_List *l; @@ -4533,6 +4547,14 @@ _e_border_free(E_Border *bd) if (bd->internal_icon) eina_stringshare_del(bd->internal_icon); if (bd->internal_icon_key) eina_stringshare_del(bd->internal_icon_key); if (bd->icon_object) evas_object_del(bd->icon_object); + EINA_LIST_FREE(bd->client.e.state.profiles, str) + { + if (str) eina_stringshare_del(str); + } + bd->client.e.state.profiles = NULL; + if (bd->client.e.state.profile) + eina_stringshare_del(bd->client.e.state.profile); + bd->client.e.state.profile = NULL; evas_object_del(bd->bg_object); e_canvas_del(bd->bg_ecore_evas); ecore_evas_free(bd->bg_ecore_evas); @@ -5366,6 +5388,11 @@ _e_border_cb_window_property(void *data __UNUSED__, bd->client.e.fetch.video_parent = 1; bd->changed = 1; } + else if (e->atom == ECORE_X_ATOM_E_PROFILE_LIST) + { + bd->client.e.fetch.profile_list = 1; + bd->changed = 1; + } return ECORE_CALLBACK_PASS_ON; } @@ -6407,6 +6434,27 @@ _e_border_cb_drag_finished(E_Drag *drag, } static Eina_Bool +_e_border_cb_desk_window_profile_change(void *data __UNUSED__, + int ev_type __UNUSED__, + void *ev) +{ + E_Event_Desk_Window_Profile_Change *e; + Eina_List *l; + E_Border *bd; + + e = ev; + EINA_LIST_FOREACH(borders, l, bd) + { + if ((bd) && (!e_object_is_del(E_OBJECT(bd)))) + { + bd->client.e.fetch.profile_list = 1; + bd->changed = 1; + } + } + return ECORE_CALLBACK_PASS_ON; +} + +static Eina_Bool _e_border_post_move_resize_job(void *data) { E_Border *bd; @@ -6500,6 +6548,7 @@ _e_border_eval0(E_Border *bd) { int change_urgent = 0; int rem_change = 0; + Eina_Bool need_desk_set = EINA_FALSE; if (e_object_is_del(E_OBJECT(bd))) { @@ -6626,6 +6675,52 @@ _e_border_eval0(E_Border *bd) bd->client.e.fetch.state = 0; rem_change = 1; } + if (bd->client.e.fetch.profile_list) + { + const char **profiles = NULL; + const char *str; + int num, i; + + if (bd->client.e.state.profile) + eina_stringshare_del(bd->client.e.state.profile); + EINA_LIST_FREE(bd->client.e.state.profiles, str) + { + if (str) eina_stringshare_del(str); + } + bd->client.e.state.profile = NULL; + bd->client.e.state.profiles = NULL; + bd->client.e.state.profile_list = 0; + + if (ecore_x_e_window_profile_list_get(bd->client.win, + &profiles, &num)) + { + bd->client.e.state.profile_list = 1; + for (i = 0; i < num; i++) + { + str = eina_stringshare_add(profiles[i]); + bd->client.e.state.profiles = eina_list_append(bd->client.e.state.profiles, str); + } + + /* We should set desk to contain given border after creating E_BORDER_ADD event. + * If not, e will have an E_BORDER_SHOW event before E_BORDER_ADD event. + */ + need_desk_set = EINA_TRUE; + } + else + { + if (strcmp(bd->desk->window_profile, + e_config->desktop_default_window_profile) != 0) + { + ecore_x_e_window_profile_set(bd->client.win, + bd->desk->window_profile); + } + } + + if (profiles) + free(profiles); + + bd->client.e.fetch.profile_list = 0; + } if (bd->client.netwm.fetch.type) { e_hints_window_type_get(bd); @@ -7236,6 +7331,29 @@ _e_border_eval0(E_Border *bd) bd->client.border.changed = 1; } + if (need_desk_set) + { + E_Container *con = bd->zone->container; + E_Desk *desk = NULL; + Eina_List *l; + const char *str; + EINA_LIST_FOREACH(bd->client.e.state.profiles, l, str) + { + desk = e_container_desk_window_profile_get(con, str); + if (desk) + { + if (bd->desk != desk) + { + bd->client.e.state.profile = eina_stringshare_add(str); + if (bd->zone != desk->zone) + e_border_zone_set(bd, desk->zone); + e_border_desk_set(bd, desk); + } + break; + } + } + } + /* PRE_POST_FETCH calls e_remember apply for new client */ _e_border_hook_call(E_BORDER_HOOK_EVAL_PRE_POST_FETCH, bd); _e_border_hook_call(E_BORDER_HOOK_EVAL_POST_FETCH, bd); @@ -7460,7 +7578,6 @@ _e_border_eval0(E_Border *bd) static void _e_border_latest_stacked_focus (E_Border* bd) { - Eina_List *l = NULL; E_Border *temp_bd; int root_w, root_h; @@ -7473,6 +7590,7 @@ _e_border_latest_stacked_focus (E_Border* bd) { if ((temp_bd->x >= root_w) || (temp_bd->y >= root_h)) continue; if (((temp_bd->x + temp_bd->w) <= 0) || ((temp_bd->y + temp_bd->h) <= 0)) continue; + if (temp_bd->client.illume.win_state.state == ECORE_X_ILLUME_WINDOW_STATE_FLOATING) continue; if ((!temp_bd->iconic) && (temp_bd->visible) && (temp_bd->desk == bd->desk) && (temp_bd->client.icccm.accepts_focus || temp_bd->client.icccm.take_focus) && @@ -7501,7 +7619,6 @@ _e_border_latest_stacked_focus (E_Border* bd) static void _e_border_check_stack (E_Border *bd) { - Eina_List* l = NULL; E_Border* temp_bd = NULL;; E_Border* top_bd = NULL; int passed_focus = 0; @@ -7515,6 +7632,7 @@ _e_border_check_stack (E_Border *bd) { if ((temp_bd->x >= root_w) || (temp_bd->y >= root_h)) continue; if (((temp_bd->x + temp_bd->w) <= 0) || ((temp_bd->y + temp_bd->h) <= 0)) continue; + if (temp_bd->client.illume.win_state.state == ECORE_X_ILLUME_WINDOW_STATE_FLOATING) continue; if ((!temp_bd->iconic) && (temp_bd->visible) && (temp_bd->desk == bd->desk) && (temp_bd->client.icccm.accepts_focus || temp_bd->client.icccm.take_focus) && @@ -7570,9 +7688,8 @@ _e_border_check_stack (E_Border *bd) } static void -_e_border_focus_top_stack_set (E_Border* bd) +_e_border_focus_top_stack_set(E_Border* bd) { - Eina_List *l = NULL; E_Border *temp_bd; int root_w, root_h; @@ -7585,6 +7702,7 @@ _e_border_focus_top_stack_set (E_Border* bd) { if ((temp_bd->x >= root_w) || (temp_bd->y >= root_h)) continue; if (((temp_bd->x + temp_bd->w) <= 0) || ((temp_bd->y + temp_bd->h) <= 0)) continue; + if (temp_bd->client.illume.win_state.state == ECORE_X_ILLUME_WINDOW_STATE_FLOATING) continue; if ((!temp_bd->iconic) && (temp_bd->visible) && (temp_bd->desk == bd->desk) && (temp_bd->client.icccm.accepts_focus || temp_bd->client.icccm.take_focus) && diff --git a/src/bin/e_border.h b/src/bin/e_border.h index ab1bd3d..86f0843 100644 --- a/src/bin/e_border.h +++ b/src/bin/e_border.h @@ -355,15 +355,19 @@ struct _E_Border Ecore_X_Window video_parent; E_Border *video_parent_border; Eina_List *video_child; + const char *profile; + Eina_List *profiles; unsigned char centered : 1; unsigned char video : 1; + unsigned char profile_list : 1; } state; struct { unsigned char state : 1; unsigned char video_parent : 1; unsigned char video_position : 1; + unsigned char profile_list : 1; } fetch; } e; diff --git a/src/bin/e_config.c b/src/bin/e_config.c index 7f9cfe5..ffc2d46 100644 --- a/src/bin/e_config.c +++ b/src/bin/e_config.c @@ -40,6 +40,7 @@ static E_Config_DD *_e_config_bindings_acpi_edd = NULL; static E_Config_DD *_e_config_path_append_edd = NULL; static E_Config_DD *_e_config_desktop_bg_edd = NULL; static E_Config_DD *_e_config_desktop_name_edd = NULL; +static E_Config_DD *_e_config_desktop_window_profile_edd = NULL; static E_Config_DD *_e_config_remember_edd = NULL; static E_Config_DD *_e_config_color_class_edd = NULL; static E_Config_DD *_e_config_gadcon_edd = NULL; @@ -276,6 +277,17 @@ e_config_init(void) E_CONFIG_VAL(D, T, desk_y, INT); E_CONFIG_VAL(D, T, name, STR); + _e_config_desktop_window_profile_edd = E_CONFIG_DD_NEW("E_Config_Desktop_Window_Profile", E_Config_Desktop_Window_Profile); +#undef T +#undef D +#define T E_Config_Desktop_Window_Profile +#define D _e_config_desktop_window_profile_edd + E_CONFIG_VAL(D, T, container, INT); + E_CONFIG_VAL(D, T, zone, INT); + E_CONFIG_VAL(D, T, desk_x, INT); + E_CONFIG_VAL(D, T, desk_y, INT); + E_CONFIG_VAL(D, T, profile, STR); + _e_config_path_append_edd = E_CONFIG_DD_NEW("E_Path_Dir", E_Path_Dir); #undef T #undef D @@ -625,8 +637,10 @@ e_config_init(void) E_CONFIG_VAL(D, T, init_default_theme, STR); /**/ E_CONFIG_VAL(D, T, desktop_default_background, STR); /**/ E_CONFIG_VAL(D, T, desktop_default_name, STR); /**/ + E_CONFIG_VAL(D, T, desktop_default_window_profile, STR); /**/ E_CONFIG_LIST(D, T, desktop_backgrounds, _e_config_desktop_bg_edd); /**/ E_CONFIG_LIST(D, T, desktop_names, _e_config_desktop_name_edd); /**/ + E_CONFIG_LIST(D, T, desktop_window_profiles, _e_config_desktop_window_profile_edd); /**/ E_CONFIG_VAL(D, T, menus_scroll_speed, DOUBLE); /**/ E_CONFIG_VAL(D, T, menus_fast_mouse_move_threshhold, DOUBLE); /**/ E_CONFIG_VAL(D, T, menus_click_drag_timeout, DOUBLE); /**/ @@ -925,6 +939,7 @@ e_config_shutdown(void) E_CONFIG_DD_FREE(_e_config_path_append_edd); E_CONFIG_DD_FREE(_e_config_desktop_bg_edd); E_CONFIG_DD_FREE(_e_config_desktop_name_edd); + E_CONFIG_DD_FREE(_e_config_desktop_window_profile_edd); E_CONFIG_DD_FREE(_e_config_remember_edd); E_CONFIG_DD_FREE(_e_config_gadcon_edd); E_CONFIG_DD_FREE(_e_config_gadcon_client_edd); @@ -1559,6 +1574,20 @@ e_config_domain_system_load(const char *domain, E_Config_DD *edd) static void _e_config_mv_error(const char *from, const char *to) { +#if _F_USE_EXTN_DIALOG_ + char buf[8192]; + snprintf(buf, sizeof(buf), + _("Enlightenment has had an error while moving config files
" + "from:
" + "%s
" + "
" + "to:
" + "%s
" + "
" + "The rest of the write has been aborted for safety.
"), + from, to); + e_util_extn_dialog_show(_("Enlightenment Settings Write Problems"), buf); +#else if (!_e_config_error_dialog) { E_Dialog *dia; @@ -1591,6 +1620,7 @@ _e_config_mv_error(const char *from, const char *to) _e_config_error_dialog = dia; } } +#endif } EAPI int @@ -2010,6 +2040,7 @@ _e_config_free(E_Config *ecf) if (ecf->init_default_theme) eina_stringshare_del(ecf->init_default_theme); if (ecf->desktop_default_background) eina_stringshare_del(ecf->desktop_default_background); if (ecf->desktop_default_name) eina_stringshare_del(ecf->desktop_default_name); + if (ecf->desktop_default_window_profile) eina_stringshare_del(ecf->desktop_default_window_profile); if (ecf->language) eina_stringshare_del(ecf->language); if (ecf->transition_start) eina_stringshare_del(ecf->transition_start); if (ecf->transition_desk) eina_stringshare_del(ecf->transition_desk); @@ -2132,6 +2163,20 @@ _e_config_eet_close_handle(Eet_File *ef, char *file) { /* delete any partially-written file */ ecore_file_unlink(file); +#if _F_USE_EXTN_DIALOG_ + char buf[8192]; + snprintf(buf, sizeof(buf), + _("Enlightenment has had an error while writing
" + "its config file.
" + "%s
" + "
" + "The file where the error occurred was:
" + "%s
" + "
" + "This file has been deleted to avoid corrupt data.
"), + erstr, file); + e_util_extn_dialog_show(_("Enlightenment Settings Write Problems"), buf); +#else /* only show dialog for first error - further ones are likely */ /* more of the same error */ if (!_e_config_error_dialog) @@ -2166,6 +2211,7 @@ _e_config_eet_close_handle(Eet_File *ef, char *file) _e_config_error_dialog = dia; } } +#endif return 0; } return 1; diff --git a/src/bin/e_config.h b/src/bin/e_config.h index 86e278f..5f7bc27 100644 --- a/src/bin/e_config.h +++ b/src/bin/e_config.h @@ -2,25 +2,26 @@ #define E_CONFIG_LIMIT(v, min, max) {if (v > max) v = max; else if (v < min) v = min;} -typedef struct _E_Config E_Config; -typedef struct _E_Config_Module E_Config_Module; -typedef struct _E_Config_Theme E_Config_Theme; -typedef struct _E_Config_Binding_Mouse E_Config_Binding_Mouse; -typedef struct _E_Config_Binding_Key E_Config_Binding_Key; -typedef struct _E_Config_Binding_Edge E_Config_Binding_Edge; -typedef struct _E_Config_Binding_Signal E_Config_Binding_Signal; -typedef struct _E_Config_Binding_Wheel E_Config_Binding_Wheel; -typedef struct _E_Config_Binding_Acpi E_Config_Binding_Acpi; -typedef struct _E_Config_Desktop_Background E_Config_Desktop_Background; -typedef struct _E_Config_Desktop_Name E_Config_Desktop_Name; -typedef struct _E_Config_Gadcon E_Config_Gadcon; -typedef struct _E_Config_Gadcon_Client E_Config_Gadcon_Client; -typedef struct _E_Config_Shelf E_Config_Shelf; -typedef struct _E_Config_Shelf_Desk E_Config_Shelf_Desk; -typedef struct _E_Config_Mime_Icon E_Config_Mime_Icon; -typedef struct _E_Config_Syscon_Action E_Config_Syscon_Action; -typedef struct _E_Config_Env_Var E_Config_Env_Var; -typedef struct _E_Event_Config_Icon_Theme E_Event_Config_Icon_Theme; +typedef struct _E_Config E_Config; +typedef struct _E_Config_Module E_Config_Module; +typedef struct _E_Config_Theme E_Config_Theme; +typedef struct _E_Config_Binding_Mouse E_Config_Binding_Mouse; +typedef struct _E_Config_Binding_Key E_Config_Binding_Key; +typedef struct _E_Config_Binding_Edge E_Config_Binding_Edge; +typedef struct _E_Config_Binding_Signal E_Config_Binding_Signal; +typedef struct _E_Config_Binding_Wheel E_Config_Binding_Wheel; +typedef struct _E_Config_Binding_Acpi E_Config_Binding_Acpi; +typedef struct _E_Config_Desktop_Background E_Config_Desktop_Background; +typedef struct _E_Config_Desktop_Name E_Config_Desktop_Name; +typedef struct _E_Config_Desktop_Window_Profile E_Config_Desktop_Window_Profile; +typedef struct _E_Config_Gadcon E_Config_Gadcon; +typedef struct _E_Config_Gadcon_Client E_Config_Gadcon_Client; +typedef struct _E_Config_Shelf E_Config_Shelf; +typedef struct _E_Config_Shelf_Desk E_Config_Shelf_Desk; +typedef struct _E_Config_Mime_Icon E_Config_Mime_Icon; +typedef struct _E_Config_Syscon_Action E_Config_Syscon_Action; +typedef struct _E_Config_Env_Var E_Config_Env_Var; +typedef struct _E_Event_Config_Icon_Theme E_Event_Config_Icon_Theme; #else #ifndef E_CONFIG_H @@ -44,7 +45,9 @@ struct _E_Config const char *desktop_default_background; // GUI Eina_List *desktop_backgrounds; // GUI const char *desktop_default_name; + const char *desktop_default_window_profile; Eina_List *desktop_names; // GUI + Eina_List *desktop_window_profiles; // GUI double menus_scroll_speed; // GUI double menus_fast_mouse_move_threshhold; // GUI double menus_click_drag_timeout; // GUI @@ -449,6 +452,15 @@ struct _E_Config_Desktop_Name const char *name; }; +struct _E_Config_Desktop_Window_Profile +{ + int container; + int zone; + int desk_x; + int desk_y; + const char *profile; +}; + struct _E_Config_Gadcon { const char *name; diff --git a/src/bin/e_container.c b/src/bin/e_container.c index 3f71fe8..46d422a 100644 --- a/src/bin/e_container.c +++ b/src/bin/e_container.c @@ -86,12 +86,12 @@ e_container_new(E_Manager *man) if (!getenv("EVAS_RENDER_MODE")) { int have_comp = 0; - Eina_List *l; + Eina_List *ll; E_Config_Module *em; // FIXME: major hack. checking in advance for comp. eventully comp // will be rolled into e17 core and this won't be needed - EINA_LIST_FOREACH(e_config->modules, l, em) + EINA_LIST_FOREACH(e_config->modules, ll, em) { if (!strcmp(em->name, "comp")) { @@ -363,6 +363,36 @@ e_container_zone_id_get(E_Container *con, int id) return NULL; } +EAPI E_Desk * +e_container_desk_window_profile_get(E_Container *con, + const char *profile) +{ + Eina_List *l = NULL; + E_Zone *zone = NULL; + int x, y; + + E_OBJECT_CHECK_RETURN(con, NULL); + E_OBJECT_TYPE_CHECK_RETURN(con, E_CONTAINER_TYPE, NULL); + + EINA_LIST_FOREACH(con->zones, l, zone) + { + for (x = 0; x < zone->desk_x_count; x++) + { + for (y = 0; y < zone->desk_y_count; y++) + { + E_Desk *desk = e_desk_at_xy_get(zone, x, y); + if ((desk->window_profile) && + strcmp(desk->window_profile, profile) == 0) + { + return desk; + } + } + } + } + + return NULL; +} + EAPI E_Container_Shape * e_container_shape_add(E_Container *con) { @@ -1116,7 +1146,7 @@ static void _e_container_resize_handle(E_Container *con) { E_Event_Container_Resize *ev; - Eina_List *l, *screens, *zones = NULL; + Eina_List *l, *screens, *zones = NULL, *ll; E_Zone *zone; E_Screen *scr; int i; @@ -1135,8 +1165,14 @@ _e_container_resize_handle(E_Container *con) con->zones = NULL; EINA_LIST_FOREACH(screens, l, scr) { + zone = NULL; + printf("@@@ SCREENS: %i %i | %i %i %ix%i\n", scr->screen, scr->escreen, scr->x, scr->y, scr->w, scr->h); - zone = e_container_zone_id_get(con, scr->escreen); + EINA_LIST_FOREACH(zones, ll, zone) + { + if (zone->id == scr->escreen) break; + zone = NULL; + } if (zone) { printf("@@@ FOUND ZONE %i %i\n", zone->num, zone->id); @@ -1151,7 +1187,7 @@ _e_container_resize_handle(E_Container *con) Eina_List *ll; E_Config_Shelf *cf_es; - printf("@@@ container resize handle\n"); + printf("@@@ container resize handle - new zone\n"); zone = e_zone_new(con, scr->screen, scr->escreen, scr->x, scr->y, scr->w, scr->h); /* find any shelves configured for this zone and add them in */ EINA_LIST_FOREACH(e_config->shelves, ll, cf_es) @@ -1164,17 +1200,12 @@ _e_container_resize_handle(E_Container *con) if (zones) { E_Zone *spare_zone = NULL; - Eina_List *ll; - EINA_LIST_FOREACH(con->zones, ll, spare_zone) - { - if (eina_list_data_find(zones, spare_zone)) - spare_zone = NULL; - else break; - } + if (con->zones) spare_zone = con->zones->data; + EINA_LIST_FREE(zones, zone) { - Eina_List *shelves, *ll, *del_shelves; + Eina_List *shelves, *ll2, *del_shelves; E_Shelf *es; E_Border_List *bl; E_Border *bd; @@ -1182,7 +1213,7 @@ _e_container_resize_handle(E_Container *con) /* delete any shelves on this zone */ shelves = e_shelf_list(); del_shelves = NULL; - EINA_LIST_FOREACH(shelves, ll, es) + EINA_LIST_FOREACH(shelves, ll2, es) { if (es->zone == zone) del_shelves = eina_list_append(del_shelves, es); @@ -1207,11 +1238,14 @@ _e_container_resize_handle(E_Container *con) } else { - E_Zone *zone; + E_Zone *z; - zone = e_container_zone_number_get(con, 0); - e_zone_move_resize(zone, 0, 0, con->w, con->h); - e_shelf_zone_move_resize_handle(zone); + z = e_container_zone_number_get(con, 0); + if (z) + { + e_zone_move_resize(z, 0, 0, con->w, con->h); + e_shelf_zone_move_resize_handle(z); + } } ecore_event_add(E_EVENT_CONTAINER_RESIZE, ev, _e_container_event_container_resize_free, NULL); diff --git a/src/bin/e_container.h b/src/bin/e_container.h index 2c6dbaf..58fa91d 100644 --- a/src/bin/e_container.h +++ b/src/bin/e_container.h @@ -110,6 +110,8 @@ EAPI E_Zone *e_container_zone_at_point_get(E_Container *con, int x, int y); EAPI E_Zone *e_container_zone_number_get(E_Container *con, int num); EAPI E_Zone *e_container_zone_id_get(E_Container *con, int id); +EAPI E_Desk *e_container_desk_window_profile_get(E_Container *con, const char *profile); + EAPI E_Container_Shape *e_container_shape_add(E_Container *con); EAPI void e_container_shape_show(E_Container_Shape *es); EAPI void e_container_shape_hide(E_Container_Shape *es); diff --git a/src/bin/e_desk.c b/src/bin/e_desk.c index 70ae582..6006e71 100644 --- a/src/bin/e_desk.c +++ b/src/bin/e_desk.c @@ -11,6 +11,7 @@ static void _e_desk_event_desk_before_show_free(void *data, void *ev); static void _e_desk_event_desk_after_show_free(void *data, void *ev); static void _e_desk_event_desk_deskshow_free(void *data, void *ev); static void _e_desk_event_desk_name_change_free(void *data, void *ev); +static void _e_desk_event_desk_window_profile_change_free(void *data, void *ev); static void _e_desk_show_begin(E_Desk *desk, int mode, int x, int dy); static void _e_desk_show_end(E_Desk *desk); static Eina_Bool _e_desk_show_animator(void *data); @@ -23,6 +24,7 @@ EAPI int E_EVENT_DESK_BEFORE_SHOW = 0; EAPI int E_EVENT_DESK_AFTER_SHOW = 0; EAPI int E_EVENT_DESK_DESKSHOW = 0; EAPI int E_EVENT_DESK_NAME_CHANGE = 0; +EAPI int E_EVENT_DESK_WINDOW_PROFILE_CHANGE = 0; EINTERN int e_desk_init(void) @@ -32,6 +34,7 @@ e_desk_init(void) E_EVENT_DESK_AFTER_SHOW = ecore_event_type_new(); E_EVENT_DESK_DESKSHOW = ecore_event_type_new(); E_EVENT_DESK_NAME_CHANGE = ecore_event_type_new(); + E_EVENT_DESK_WINDOW_PROFILE_CHANGE = ecore_event_type_new(); return 1; } @@ -47,6 +50,7 @@ e_desk_new(E_Zone *zone, int x, int y) E_Desk *desk; Eina_List *l; E_Config_Desktop_Name *cfname; + E_Config_Desktop_Window_Profile *cfprof; char name[40]; int ok = 0; @@ -80,6 +84,27 @@ e_desk_new(E_Zone *zone, int x, int y) desk->name = eina_stringshare_add(name); } + /* Get window profile name for current desktop */ + ok = 0; + EINA_LIST_FOREACH(e_config->desktop_window_profiles, l, cfprof) + { + if ((cfprof->container >= 0) && + ((int)zone->container->num != cfprof->container)) continue; + if ((cfprof->zone >= 0) && + ((int)zone->num != cfprof->zone)) continue; + if ((cfprof->desk_x != desk->x) || (cfprof->desk_y != desk->y)) + continue; + desk->window_profile = eina_stringshare_add(cfprof->profile); + ok = 1; + break; + } + + if (!ok) + { + desk->window_profile = eina_stringshare_add + (e_config->desktop_default_window_profile); + } + return desk; } @@ -517,6 +542,119 @@ e_desk_prev(E_Zone *zone) e_desk_show(e_desk_at_xy_get(zone, x, y)); } +EAPI void +e_desk_window_profile_set(E_Desk *desk, + const char *profile) +{ + E_Event_Desk_Window_Profile_Change *ev; + + E_OBJECT_CHECK(desk); + E_OBJECT_TYPE_CHECK(desk, E_DESK_TYPE); + + eina_stringshare_replace(&desk->window_profile, profile); + + ev = E_NEW(E_Event_Desk_Window_Profile_Change, 1); + ev->desk = desk; + e_object_ref(E_OBJECT(desk)); + ecore_event_add(E_EVENT_DESK_WINDOW_PROFILE_CHANGE, ev, + _e_desk_event_desk_window_profile_change_free, NULL); +} + +EAPI void +e_desk_window_profile_add(int container, + int zone, + int desk_x, + int desk_y, + const char *profile) +{ + E_Config_Desktop_Window_Profile *cfprof; + + e_desk_window_profile_del(container, zone, desk_x, desk_y); + + cfprof = E_NEW(E_Config_Desktop_Window_Profile, 1); + cfprof->container = container; + cfprof->zone = zone; + cfprof->desk_x = desk_x; + cfprof->desk_y = desk_y; + if (profile) cfprof->profile = eina_stringshare_add(profile); + else cfprof->profile = NULL; + e_config->desktop_window_profiles = eina_list_append(e_config->desktop_window_profiles, cfprof); +} + +EAPI void +e_desk_window_profile_del(int container, + int zone, + int desk_x, + int desk_y) +{ + Eina_List *l = NULL; + E_Config_Desktop_Window_Profile *cfprof = NULL; + + EINA_LIST_FOREACH(e_config->desktop_window_profiles, l, cfprof) + { + if (!((cfprof->container == container) && + (cfprof->zone == zone) && + (cfprof->desk_x == desk_x) && + (cfprof->desk_y == desk_y))) + continue; + + e_config->desktop_window_profiles = + eina_list_remove_list(e_config->desktop_window_profiles, l); + if (cfprof->profile) eina_stringshare_del(cfprof->profile); + E_FREE(cfprof); + break; + } +} + +EAPI void +e_desk_window_profile_update(void) +{ + Eina_List *m, *c, *z, *l; + E_Manager *man; + E_Container *con; + E_Zone *zone; + E_Desk *desk; + E_Config_Desktop_Window_Profile *cfprof; + int d_x, d_y, ok; + + EINA_LIST_FOREACH(e_manager_list(), m, man) + { + EINA_LIST_FOREACH(man->containers, c, con) + { + EINA_LIST_FOREACH(con->zones, z, zone) + { + for (d_x = 0; d_x < zone->desk_x_count; d_x++) + { + for (d_y = 0; d_y < zone->desk_y_count; d_y++) + { + desk = zone->desks[d_x + zone->desk_x_count * d_y]; + ok = 0; + + EINA_LIST_FOREACH(e_config->desktop_window_profiles, l, cfprof) + { + if ((cfprof->container >= 0) && + ((int)con->num != cfprof->container)) continue; + if ((cfprof->zone >= 0) && + ((int)zone->num != cfprof->zone)) continue; + if ((cfprof->desk_x != d_x) || + (cfprof->desk_y != d_y)) continue; + e_desk_window_profile_set(desk, cfprof->profile); + ok = 1; + break; + } + + if (!ok) + { + e_desk_window_profile_set + (desk, e_config->desktop_default_window_profile); + } + } + } + } + } + } +} + static void _e_desk_free(E_Desk *desk) { @@ -578,6 +716,16 @@ _e_desk_event_desk_name_change_free(void *data __UNUSED__, void *event) } static void +_e_desk_event_desk_window_profile_change_free(void *data __UNUSED__, + void *event) +{ + E_Event_Desk_Window_Profile_Change *ev; + ev = event; + e_object_unref(E_OBJECT(ev->desk)); + E_FREE(ev); +} + +static void _e_desk_show_begin(E_Desk *desk, int mode, int dx, int dy) { E_Border_List *bl; diff --git a/src/bin/e_desk.h b/src/bin/e_desk.h index 9ee9547..bbe4355 100644 --- a/src/bin/e_desk.h +++ b/src/bin/e_desk.h @@ -6,6 +6,7 @@ typedef struct _E_Event_Desk_Before_Show E_Event_Desk_Before_Show; typedef struct _E_Event_Desk_After_Show E_Event_Desk_After_Show; typedef struct _E_Event_Desk_DeskShow E_Event_Desk_DeskShow; typedef struct _E_Event_Desk_Name_Change E_Event_Desk_Name_Change; +typedef struct _E_Event_Desk_Window_Profile_Change E_Event_Desk_Window_Profile_Change; #else #ifndef E_DESK_H @@ -19,6 +20,7 @@ struct _E_Desk E_Zone *zone; const char *name; + const char *window_profile; int x, y; unsigned char visible : 1; unsigned int deskshow_toggle : 1; @@ -50,6 +52,11 @@ struct _E_Event_Desk_Name_Change E_Desk *desk; }; +struct _E_Event_Desk_Window_Profile_Change +{ + E_Desk *desk; +}; + EINTERN int e_desk_init(void); EINTERN int e_desk_shutdown(void); EAPI E_Desk *e_desk_new(E_Zone *zone, int x, int y); @@ -70,12 +77,17 @@ EAPI void e_desk_row_add(E_Zone *zone); EAPI void e_desk_row_remove(E_Zone *zone); EAPI void e_desk_col_add(E_Zone *zone); EAPI void e_desk_col_remove(E_Zone *zone); +EAPI void e_desk_window_profile_set(E_Desk *desk, const char *profile); +EAPI void e_desk_window_profile_add(int container, int zone, int desk_x, int desk_y, const char *profile); +EAPI void e_desk_window_profile_del(int container, int zone, int desk_x, int desk_y); +EAPI void e_desk_window_profile_update(void); extern EAPI int E_EVENT_DESK_SHOW; extern EAPI int E_EVENT_DESK_BEFORE_SHOW; extern EAPI int E_EVENT_DESK_AFTER_SHOW; extern EAPI int E_EVENT_DESK_DESKSHOW; extern EAPI int E_EVENT_DESK_NAME_CHANGE; +extern EAPI int E_EVENT_DESK_WINDOW_PROFILE_CHANGE; #endif #endif diff --git a/src/bin/e_fm/e_fm_ipc.h b/src/bin/e_fm/e_fm_ipc.h old mode 100755 new mode 100644 diff --git a/src/bin/e_fm/e_fm_main_hal.h b/src/bin/e_fm/e_fm_main_hal.h old mode 100755 new mode 100644 diff --git a/src/bin/e_fm/e_fm_main_udisks.h b/src/bin/e_fm/e_fm_main_udisks.h old mode 100755 new mode 100644 diff --git a/src/bin/e_gadcon.c b/src/bin/e_gadcon.c index a76d6ba..a05c52f 100644 --- a/src/bin/e_gadcon.c +++ b/src/bin/e_gadcon.c @@ -279,6 +279,10 @@ e_gadcon_custom_del(E_Gadcon *gc) { E_OBJECT_CHECK(gc); E_OBJECT_TYPE_CHECK(gc, E_GADCON_TYPE); + + if (eina_list_data_find(custom_populate_requests, gc)) + custom_populate_requests = eina_list_remove(custom_populate_requests, gc); + gadcons = eina_list_remove(gadcons, gc); } diff --git a/src/bin/e_hints.c b/src/bin/e_hints.c index 30ebb35..d88f11b 100644 --- a/src/bin/e_hints.c +++ b/src/bin/e_hints.c @@ -1421,6 +1421,13 @@ e_hints_window_desktop_set(E_Border *bd) deskpos[1] = bd->desk->y; ecore_x_window_prop_card32_set(bd->client.win, E_ATOM_DESK, deskpos, 2); + if (strcmp(bd->desk->window_profile, + e_config->desktop_default_window_profile) != 0) + { + ecore_x_e_window_profile_set(bd->client.win, + bd->desk->window_profile); + } + #if 0 ecore_x_netwm_desktop_set(bd->client.win, current); #endif diff --git a/src/bin/e_main.c b/src/bin/e_main.c index 5ec0880..76b3452 100644 --- a/src/bin/e_main.c +++ b/src/bin/e_main.c @@ -134,7 +134,9 @@ main(int argc, char **argv) Eina_Bool after_restart = EINA_FALSE; double t = 0.0, tstart = 0.0; char *s = NULL, buff[32]; +#ifndef _F_DO_NOT_USE_SIG_HANDLER_ struct sigaction action; +#endif #ifdef TS_DO t0 = t1 = t2 = ecore_time_unix_get(); #endif diff --git a/src/bin/e_manager.c b/src/bin/e_manager.c index 8451fcf..917dc7e 100644 --- a/src/bin/e_manager.c +++ b/src/bin/e_manager.c @@ -673,6 +673,30 @@ e_manager_comp_src_move_unlock(E_Manager *man, E_Manager_Comp_Source *src) } #endif +#ifdef _F_COMP_COMPOSITE_MODE_ +EAPI void +e_manager_comp_composite_mode_set(E_Manager *man, E_Zone *zone, Eina_Bool set) +{ + E_OBJECT_CHECK(man); + E_OBJECT_CHECK(zone); + E_OBJECT_TYPE_CHECK(man, E_MANAGER_TYPE); + E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE); + if (!man->comp) return; + man->comp->func.composite_mode_set(man->comp->data, man, zone, set); +} + +EAPI Eina_Bool +e_manager_comp_composite_mode_get(E_Manager *man, E_Zone *zone) +{ + E_OBJECT_CHECK_RETURN(man, EINA_FALSE); + E_OBJECT_CHECK_RETURN(zone, EINA_FALSE); + E_OBJECT_TYPE_CHECK_RETURN(man, E_MANAGER_TYPE, EINA_FALSE); + E_OBJECT_TYPE_CHECK_RETURN(zone, E_ZONE_TYPE, EINA_FALSE); + if (!man->comp) return EINA_FALSE; + return man->comp->func.composite_mode_get(man->comp->data, man, zone); +} +#endif /* _F_COMP_COMPOSITE_MODE_ */ + EAPI void e_manager_comp_event_resize_send(E_Manager *man) { @@ -1039,9 +1063,7 @@ _e_manager_windows_group_raise (E_Border* bd) leader_win = bd->client.icccm.client_leader; if (leader_win) { - Eina_List* border_list; Eina_List* restack_list; - Eina_List *l; E_Border *temp_bd; E_Border *top_bd; E_Border_List *bl; @@ -1199,13 +1221,16 @@ _e_manager_cb_client_message(void *data __UNUSED__, int ev_type __UNUSED__, void e_border_focus_set(bd, 1, 1); else { - Eina_List* l = NULL; E_Border* temp_bd = NULL; E_Border_List *bl; bl = e_container_border_list_last(bd->zone->container); while ((temp_bd = e_container_border_list_prev(bl))) { + if ((temp_bd->x >= bd->zone->w) || (temp_bd->y >= bd->zone->h)) continue; + if (((temp_bd->x + temp_bd->w) <= 0) || ((temp_bd->y + temp_bd->h) <= 0)) continue; + if (temp_bd->client.illume.win_state.state == ECORE_X_ILLUME_WINDOW_STATE_FLOATING) continue; + if ((!temp_bd->iconic) && (temp_bd->visible) && (temp_bd->desk == bd->desk) && (temp_bd->client.icccm.accepts_focus || temp_bd->client.icccm.take_focus) && (temp_bd->client.netwm.type != ECORE_X_WINDOW_TYPE_DOCK) && diff --git a/src/bin/e_manager.h b/src/bin/e_manager.h index 916c6cd..83b3d87 100644 --- a/src/bin/e_manager.h +++ b/src/bin/e_manager.h @@ -56,6 +56,10 @@ struct _E_Manager_Comp Eina_Bool (*src_move_lock) (void *data, E_Manager *man, E_Manager_Comp_Source *src); Eina_Bool (*src_move_unlock) (void *data, E_Manager *man, E_Manager_Comp_Source *src); #endif +#ifdef _F_COMP_COMPOSITE_MODE_ + void (*composite_mode_set) (void *data, E_Manager *man, E_Zone *zone, Eina_Bool set); + Eina_Bool (*composite_mode_get) (void *data, E_Manager *man, E_Zone *zone); +#endif } func; void *data; }; @@ -151,5 +155,14 @@ EAPI Eina_Bool e_manager_comp_src_input_region_set(E_Manager *man, E_Mana EAPI Eina_Bool e_manager_comp_src_move_lock(E_Manager *man, E_Manager_Comp_Source *src); EAPI Eina_Bool e_manager_comp_src_move_unlock(E_Manager *man, E_Manager_Comp_Source *src); #endif +#ifdef _F_COMP_COMPOSITE_MODE_ +// set the composite rendering state of a zone. +// if set is EINA_TRUE, then composite module will be running with composite rendering mode. +// if set is EINA_FALSE, then composite module may be running with nocomposite mode on given zone. +EAPI void e_manager_comp_composite_mode_set(E_Manager *man, E_Zone *zone, Eina_Bool set); +// get the composite rendering state of a zone. +// if return value is EINA_TRUE, zone is rendered with composite mode. +EAPI Eina_Bool e_manager_comp_composite_mode_get(E_Manager *man, E_Zone *zone); +#endif #endif #endif diff --git a/src/bin/e_module.c b/src/bin/e_module.c index 633f96d..fc9a404 100644 --- a/src/bin/e_module.c +++ b/src/bin/e_module.c @@ -501,6 +501,16 @@ _e_module_free(E_Module *m) free(m); } +#if _F_USE_EXTN_DIALOG_ +static void +_e_module_dialog_disable_show(const char *title, + const char *body, + E_Module *m __UNUSED__) +{ + printf("MODULE ERR:\n%s\n", body); + e_util_extn_dialog_show(title, body); +} +#else static void _e_module_dialog_disable_show(const char *title, const char *body, E_Module *m) { @@ -523,6 +533,7 @@ _e_module_dialog_disable_show(const char *title, const char *body, E_Module *m) e_win_centered_set(dia->win, 1); e_dialog_show(dia); } +#endif static void _e_module_cb_dialog_disable(void *data, E_Dialog *dia) diff --git a/src/bin/e_utils.c b/src/bin/e_utils.c index b5128b9..ba357a4 100644 --- a/src/bin/e_utils.c +++ b/src/bin/e_utils.c @@ -1637,3 +1637,24 @@ e_util_fullscreen_any(void) } return EINA_FALSE; } + +#if _F_USE_EXTN_DIALOG_ +/** + * Using external elementary dialog util instead of e_dialog to display error or warning + * messages. It is a temporary solution for supporting consistent UX theme. The external + * dialog is a simple EFL application which is based on elementary. Thus window manager + * can display message using elementary UX theme, along with other system popup. + */ +EAPI void +e_util_extn_dialog_show(const char *title, + const char *txt) +{ + Ecore_Exe *exe; + char cmd[4096]; + + /* external_dialog_name, icccm_name, icccm_class, popup_title, popup_contents */ + snprintf(cmd, sizeof(cmd), "/usr/bin/extndialog E _extn_dialog \'%s\' \'%s\'", title, txt); + exe = ecore_exe_run(cmd, NULL); + if (exe) ecore_exe_free(exe); +} +#endif diff --git a/src/bin/e_utils.h b/src/bin/e_utils.h index 835f0d0..9070315 100644 --- a/src/bin/e_utils.h +++ b/src/bin/e_utils.h @@ -103,5 +103,9 @@ EAPI int e_util_container_desk_count_get(E_Container *con); EAPI Eina_Bool e_util_fullscreen_curreny_any(void); EAPI Eina_Bool e_util_fullscreen_any(void); +#if _F_USE_EXTN_DIALOG_ +EAPI void e_util_extn_dialog_show(const char *title, const char *txt); +#endif + #endif #endif diff --git a/src/modules/bluez/module.desktop.in b/src/modules/bluez/module.desktop.in old mode 100755 new mode 100644 diff --git a/src/modules/clock/module.desktop.in b/src/modules/clock/module.desktop.in old mode 100755 new mode 100644 diff --git a/src/modules/conf/module.desktop.in b/src/modules/conf/module.desktop.in old mode 100755 new mode 100644 diff --git a/src/modules/conf_applications/module.desktop.in b/src/modules/conf_applications/module.desktop.in old mode 100755 new mode 100644 diff --git a/src/modules/conf_dialogs/module.desktop.in b/src/modules/conf_dialogs/module.desktop.in old mode 100755 new mode 100644 diff --git a/src/modules/conf_display/e_int_config_desk.c b/src/modules/conf_display/e_int_config_desk.c index cb2f457..d546ee6 100644 --- a/src/modules/conf_display/e_int_config_desk.c +++ b/src/modules/conf_display/e_int_config_desk.c @@ -15,6 +15,7 @@ struct _E_Config_Dialog_Data int desk_y; char *bg; char *name; + char *profile; Evas_Object *preview; Ecore_Event_Handler *hdl; @@ -61,6 +62,7 @@ _fill_data(E_Config_Dialog_Data *cfdata) const char *bg; char name[40]; int ok = 0; + E_Config_Desktop_Window_Profile *prof; bg = e_bg_file_get(cfdata->con_num, cfdata->zone_num, cfdata->desk_x, cfdata->desk_y); if (!bg) @@ -88,6 +90,23 @@ _fill_data(E_Config_Dialog_Data *cfdata) snprintf(name, sizeof(name), _(e_config->desktop_default_name), cfdata->desk_x, cfdata->desk_y); cfdata->name = strdup(name); } + + EINA_LIST_FOREACH(e_config->desktop_window_profiles, l, prof) + { + if (!((prof->container == cfdata->con_num) && + (prof->zone == cfdata->zone_num) && + (prof->desk_x == cfdata->desk_x) && + (prof->desk_y == cfdata->desk_y))) + continue; + + if (prof->profile) + cfdata->profile = strdup(prof->profile); + ok = 1; + break; + } + + if (!ok) + cfdata->profile = strdup(e_config->desktop_default_window_profile); } static void * @@ -110,6 +129,8 @@ _free_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) E_FREE(cfdata->bg); if (cfdata->name) E_FREE(cfdata->name); + if (cfdata->profile) + E_FREE(cfdata->profile); E_FREE(cfdata); } @@ -125,11 +146,20 @@ _basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) cfdata->name = strdup(name); } + if (!cfdata->profile[0]) + cfdata->profile = strdup(e_config->desktop_default_window_profile); + e_desk_name_del(cfdata->con_num, cfdata->zone_num, cfdata->desk_x, cfdata->desk_y); e_desk_name_add(cfdata->con_num, cfdata->zone_num, cfdata->desk_x, cfdata->desk_y, cfdata->name); e_desk_name_update(); + + e_desk_window_profile_del(cfdata->con_num, cfdata->zone_num, + cfdata->desk_x, cfdata->desk_y); + e_desk_window_profile_add(cfdata->con_num, cfdata->zone_num, + cfdata->desk_x, cfdata->desk_y, cfdata->profile); + e_desk_window_profile_update(); e_bg_del(cfdata->con_num, cfdata->zone_num, cfdata->desk_x, cfdata->desk_y); e_bg_add(cfdata->con_num, cfdata->zone_num, @@ -156,6 +186,13 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata) ob = e_widget_entry_add(evas, &(cfdata->name), NULL, NULL, NULL); e_widget_frametable_object_append(of, ob, 1, 0, 2, 1, 1, 1, 1, 0); e_widget_list_object_append(o, of, 1, 1, 0.5); + + of = e_widget_frametable_add(evas, _("Desktop Window Profile"), 0); + ob = e_widget_label_add(evas, _("Profile Name:")); + e_widget_frametable_object_append(of, ob, 0, 0, 1, 1, 1, 1, 1, 0); + ob = e_widget_entry_add(evas, &(cfdata->profile), NULL, NULL, NULL); + e_widget_frametable_object_append(of, ob, 1, 0, 2, 1, 1, 1, 1, 0); + e_widget_list_object_append(o, of, 1, 1, 0.5); of = e_widget_frametable_add(evas, _("Desktop Wallpaper"), 0); ob = e_widget_preview_add(evas, 240, (240 * zone->h) / zone->w); diff --git a/src/modules/conf_edgebindings/module.desktop.in b/src/modules/conf_edgebindings/module.desktop.in old mode 100755 new mode 100644 diff --git a/src/modules/conf_interaction/module.desktop.in b/src/modules/conf_interaction/module.desktop.in old mode 100755 new mode 100644 diff --git a/src/modules/conf_intl/module.desktop.in b/src/modules/conf_intl/module.desktop.in old mode 100755 new mode 100644 diff --git a/src/modules/conf_keybindings/module.desktop.in b/src/modules/conf_keybindings/module.desktop.in old mode 100755 new mode 100644 diff --git a/src/modules/conf_menus/module.desktop.in b/src/modules/conf_menus/module.desktop.in old mode 100755 new mode 100644 diff --git a/src/modules/conf_paths/module.desktop.in b/src/modules/conf_paths/module.desktop.in old mode 100755 new mode 100644 diff --git a/src/modules/conf_performance/module.desktop.in b/src/modules/conf_performance/module.desktop.in old mode 100755 new mode 100644 diff --git a/src/modules/conf_shelves/module.desktop.in b/src/modules/conf_shelves/module.desktop.in old mode 100755 new mode 100644 diff --git a/src/modules/conf_wallpaper2/module.desktop.in b/src/modules/conf_wallpaper2/module.desktop.in old mode 100755 new mode 100644 diff --git a/src/modules/conf_window_manipulation/module.desktop.in b/src/modules/conf_window_manipulation/module.desktop.in old mode 100755 new mode 100644 diff --git a/src/modules/conf_window_remembers/module.desktop.in b/src/modules/conf_window_remembers/module.desktop.in old mode 100755 new mode 100644 diff --git a/src/modules/connman/module.desktop.in b/src/modules/connman/module.desktop.in old mode 100755 new mode 100644 diff --git a/src/modules/cpufreq/module.desktop.in b/src/modules/cpufreq/module.desktop.in old mode 100755 new mode 100644 diff --git a/src/modules/dropshadow/module.desktop.in b/src/modules/dropshadow/module.desktop.in old mode 100755 new mode 100644 diff --git a/src/modules/everything/module.desktop.in b/src/modules/everything/module.desktop.in old mode 100755 new mode 100644 diff --git a/src/modules/fileman/module.desktop.in b/src/modules/fileman/module.desktop.in old mode 100755 new mode 100644 diff --git a/src/modules/fileman_opinfo/module.desktop.in b/src/modules/fileman_opinfo/module.desktop.in old mode 100755 new mode 100644 diff --git a/src/modules/gadman/e_mod_gadman.c b/src/modules/gadman/e_mod_gadman.c index 80cddb8..cdef849 100644 --- a/src/modules/gadman/e_mod_gadman.c +++ b/src/modules/gadman/e_mod_gadman.c @@ -42,9 +42,15 @@ static void on_menu_add(void *data, E_Menu *m, E_Menu_Item *mi); static int _e_gadman_client_add (void *data __UNUSED__, const E_Gadcon_Client_Class *cc); static void _e_gadman_client_remove (void *data __UNUSED__, E_Gadcon_Client *gcc); +static void _e_gadman_handlers_add(void); +static void _e_gadman_handler_del(void); +static Eina_Bool _e_gadman_cb_zone_add(void *data __UNUSED__, int type __UNUSED__, void *event); +static Eina_Bool _e_gadman_cb_zone_del(void *data __UNUSED__, int type __UNUSED__, void *event); + E_Gadcon_Client *current = NULL; Manager *Man = NULL; static E_Gadcon_Location *location = NULL; +static Eina_List *_gadman_hdls = NULL; /* Implementation */ void @@ -90,6 +96,8 @@ gadman_init(E_Module *m) Man->gadcons[layer] = eina_list_append(Man->gadcons[layer], gc); } } + + _e_gadman_handlers_add(); } void @@ -98,6 +106,8 @@ gadman_shutdown(void) E_Gadcon *gc; unsigned int layer; + _e_gadman_handler_del(); + e_gadcon_location_unregister(location); e_container_shape_change_callback_del(Man->container, on_shape_change, NULL); @@ -667,14 +677,14 @@ _apply_widget_position(E_Gadcon_Client *gcc) int x, y, w, h; E_Zone *zone; - x = gcc->cf->geom.pos_x * Man->width; - y = gcc->cf->geom.pos_y * Man->height; - w = gcc->cf->geom.size_w * Man->width; - h = gcc->cf->geom.size_h * Man->height; - /* Obtain zone from parent gadcon */ zone = gcc->gadcon->zone; + x = (gcc->cf->geom.pos_x * zone->w) + zone->x; + y = (gcc->cf->geom.pos_y * zone->h) + zone->y; + w = gcc->cf->geom.size_w * zone->w; + h = gcc->cf->geom.size_h * zone->h; + /* Respect min sizes */ if (h < gcc->min.h) h = gcc->min.h; if (w < gcc->min.w) w = gcc->min.w; @@ -873,10 +883,11 @@ _get_bind_text(const char* action) static void on_shape_change(void *data __UNUSED__, E_Container_Shape *es, E_Container_Shape_Change ch __UNUSED__) { - const Eina_List *l, *g; + const Eina_List *l, *g, *ll; E_Gadcon *gc; E_Config_Gadcon_Client *cf_gcc; E_Container *con; + E_Gadcon_Client *gcc; unsigned int layer; con = e_container_shape_container_get(es); @@ -890,12 +901,18 @@ on_shape_change(void *data __UNUSED__, E_Container_Shape *es, E_Container_Shape_ for (layer = 0; layer < GADMAN_LAYER_COUNT; layer++) { - EINA_LIST_FOREACH(Man->gadcons[layer], g, gc) - { - e_gadcon_unpopulate(gc); - EINA_LIST_FOREACH(gc->cf->clients, l, cf_gcc) - gadman_gadget_place(cf_gcc, layer, gc->zone); - } + EINA_LIST_FOREACH(Man->gadcons[layer], g, gc) + { + EINA_LIST_FOREACH(gc->clients, ll, gcc) + { + Man->gadgets[layer] = eina_list_remove(Man->gadgets[layer], gcc); + if (gcc->gadcon->editing) gadman_gadget_edit_end(NULL, NULL, NULL, NULL); + } + + e_gadcon_unpopulate(gc); + EINA_LIST_FOREACH(gc->cf->clients, l, cf_gcc) + gadman_gadget_place(cf_gcc, layer, gc->zone); + } } } @@ -1365,3 +1382,102 @@ _e_gadman_client_remove(void *data __UNUSED__, E_Gadcon_Client *gcc) { gadman_gadget_del(gcc); } + +static void +_e_gadman_handlers_add(void) +{ + _gadman_hdls = + eina_list_append(_gadman_hdls, + ecore_event_handler_add(E_EVENT_ZONE_ADD, + _e_gadman_cb_zone_add, + NULL)); + _gadman_hdls = + eina_list_append(_gadman_hdls, + ecore_event_handler_add(E_EVENT_ZONE_DEL, + _e_gadman_cb_zone_del, + NULL)); +} + +static void +_e_gadman_handler_del(void) +{ + Ecore_Event_Handler *hdl; + + /* remove the ecore event handlers */ + EINA_LIST_FREE(_gadman_hdls, hdl) + ecore_event_handler_del(hdl); +} + +static Eina_Bool +_e_gadman_cb_zone_add(void *data __UNUSED__, int type __UNUSED__, void *event) +{ + E_Event_Zone_Add *ev; + E_Zone* zone; + E_Gadcon *gc; + Eina_List *l; + unsigned int layer; + + ev = event; + zone = ev->zone; + + for (layer = 0; layer < GADMAN_LAYER_COUNT; layer++) + { + EINA_LIST_FOREACH(Man->gadcons[layer], l, gc) + if (gc->zone == zone) return ECORE_CALLBACK_PASS_ON; + } + + // Not exist, then add + /* iterating through zones - and making gadmans on each */ + const char *layer_name[] = {"gadman", "gadman_top"}; + + for (layer = 0; layer < GADMAN_LAYER_COUNT; layer++) + { + E_Gadcon *gc; + + gc = _gadman_gadcon_new(layer_name[layer], layer, zone, location); + Man->gadcons[layer] = eina_list_append(Man->gadcons[layer], gc); + } + + return ECORE_CALLBACK_PASS_ON; +} + +static Eina_Bool +_e_gadman_cb_zone_del(void *data __UNUSED__, int type __UNUSED__, void *event) +{ + E_Event_Zone_Del *ev; + E_Zone* zone; + Eina_List *l, *ll; + E_Gadcon *gc; + E_Gadcon_Client *gcc; + unsigned int layer; + + ev = event; + zone = ev->zone; + + for (layer = 0; layer < GADMAN_LAYER_COUNT; layer++) + { + EINA_LIST_FOREACH(Man->gadcons[layer], l, gc) + { + if (gc->zone != zone) continue; + + Man->gadcons[layer] = eina_list_remove(Man->gadcons[layer], gc); + + EINA_LIST_FOREACH(gc->clients, ll, gcc) + { + Man->gadgets[layer] = eina_list_remove(Man->gadgets[layer], gcc); + if (gcc->gadcon->editing) gadman_gadget_edit_end(NULL, NULL, NULL, NULL); + } + + e_gadcon_unpopulate(gc); + e_gadcon_custom_del(gc); + + eina_stringshare_del(gc->name); + if (gc->config_dialog) e_object_del(E_OBJECT(gc->config_dialog)); + + E_FREE(gc); + } + } + + return ECORE_CALLBACK_PASS_ON; +} + diff --git a/src/modules/ibar/e_mod_config.c b/src/modules/ibar/e_mod_config.c index 8e4264a..cf3cec6 100644 --- a/src/modules/ibar/e_mod_config.c +++ b/src/modules/ibar/e_mod_config.c @@ -5,6 +5,7 @@ struct _E_Config_Dialog_Data { const char *dir; int show_label, eap_label; + int lock_move; Evas_Object *tlist; Evas_Object *radio_name; @@ -26,6 +27,7 @@ static void _cb_confirm_dialog_yes(void *data); static void _cb_confirm_dialog_destroy(void *data); static void _load_tlist(E_Config_Dialog_Data *cfdata); static void _show_label_cb_change(void *data, Evas_Object *obj); +static void _lock_move_cb_change(void *data, Evas_Object *obj); void _config_ibar_module(Config_Item *ci) @@ -64,6 +66,7 @@ _fill_data(Config_Item *ci, E_Config_Dialog_Data *cfdata) cfdata->dir = eina_stringshare_add(""); cfdata->show_label = ci->show_label; cfdata->eap_label = ci->eap_label; + cfdata->lock_move = ci->lock_move; } static void * @@ -136,6 +139,14 @@ _basic_create_widgets(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dial if (!cfdata->show_label) e_widget_disabled_set(cfdata->radio_generic, 1); e_widget_list_object_append(o, of, 1, 1, 0.5); + + of = e_widget_framelist_add(evas, _("Icon Movement"), 0); + ob = e_widget_check_add(evas, _("Lock Icon Move"), &(cfdata->lock_move)); + e_widget_on_change_hook_set(ob, _lock_move_cb_change, cfdata); + e_widget_framelist_object_append(of, ob); + + e_widget_list_object_append(o, of, 1, 1, 0.5); + return o; } @@ -148,8 +159,10 @@ _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) if (ci->dir) eina_stringshare_del(ci->dir); ci->dir = NULL; if (cfdata->dir) ci->dir = eina_stringshare_ref(cfdata->dir); + ci->show_label = cfdata->show_label; ci->eap_label = cfdata->eap_label; + ci->lock_move = cfdata->lock_move; _ibar_config_update(ci); e_config_save_queue(); return 1; @@ -305,3 +318,13 @@ _show_label_cb_change(void *data, Evas_Object *obj __UNUSED__) e_widget_disabled_set(cfdata->radio_comment, !cfdata->show_label); e_widget_disabled_set(cfdata->radio_generic, !cfdata->show_label); } + +static void +_lock_move_cb_change(void *data, Evas_Object *obj __UNUSED__) +{ + E_Config_Dialog_Data *cfdata; + + cfdata = data; + if (!cfdata) return; +} + diff --git a/src/modules/ibar/e_mod_main.c b/src/modules/ibar/e_mod_main.c index 7d4ddd9..322cce0 100644 --- a/src/modules/ibar/e_mod_main.c +++ b/src/modules/ibar/e_mod_main.c @@ -442,6 +442,8 @@ _ibar_config_item_get(const char *id) ci->dir = eina_stringshare_add("default"); ci->show_label = 1; ci->eap_label = 0; + ci->lock_move= 0; + ibar_config->items = eina_list_append(ibar_config->items, ci); return ci; } @@ -746,11 +748,11 @@ _ibar_cb_icon_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUS ic = data; if (ev->button == 1) { - ic->drag.x = ev->output.x; - ic->drag.y = ev->output.y; - ic->drag.start = 1; - ic->drag.dnd = 0; - ic->mouse_down = 1; + ic->drag.x = ev->output.x; + ic->drag.y = ev->output.y; + ic->drag.start = 1; + ic->drag.dnd = 0; + ic->mouse_down = 1; } else if ((ev->button == 3) && (!ibar_config->menu)) { @@ -827,28 +829,31 @@ _ibar_cb_icon_mouse_up(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *e ev = event_info; ic = data; - if ((ev->button == 1) && (!ic->drag.dnd) && (ic->mouse_down == 1)) - { - if (ic->app->type == EFREET_DESKTOP_TYPE_APPLICATION) - e_exec(ic->ibar->inst->gcc->gadcon->zone, ic->app, NULL, NULL, "ibar"); - else if (ic->app->type == EFREET_DESKTOP_TYPE_LINK) - { - if (!strncasecmp(ic->app->url, "file:", 5)) - { - E_Action *act; - - act = e_action_find("fileman"); - if (act) act->func.go(E_OBJECT(obj), ic->app->url + 5); - } - } - ic->drag.start = 0; - ic->drag.dnd = 0; - ic->mouse_down = 0; - /* TODO: bring back "e,action,start|stop" for the startup_notify apps - * when startup_notify is used again - */ - _ibar_icon_signal_emit(ic, "e,action,exec", "e"); + if ((ev->button == 1) && (ic->mouse_down == 1)) + { + if (!ic->drag.dnd) + { + if (ic->app->type == EFREET_DESKTOP_TYPE_APPLICATION) + e_exec(ic->ibar->inst->gcc->gadcon->zone, ic->app, NULL, NULL, "ibar"); + else if (ic->app->type == EFREET_DESKTOP_TYPE_LINK) + { + if (!strncasecmp(ic->app->url, "file:", 5)) + { + E_Action *act; + + act = e_action_find("fileman"); + if (act) act->func.go(E_OBJECT(obj), ic->app->url + 5); + } + } + /* TODO: bring back "e,action,start|stop" for the startup_notify apps + * when startup_notify is used again + */ + _ibar_icon_signal_emit(ic, "e,action,exec", "e"); + } + ic->drag.start = 0; + ic->drag.dnd = 0; + ic->mouse_down = 0; } } @@ -879,6 +884,8 @@ _ibar_cb_icon_mouse_move(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUS ic->drag.dnd = 1; ic->drag.start = 0; + if (ic->ibar->inst->ci->lock_move) return; + evas_object_geometry_get(ic->o_icon, &x, &y, &w, &h); d = e_drag_new(ic->ibar->inst->gcc->gadcon->zone->container, x, y, drag_types, 1, @@ -1162,6 +1169,7 @@ e_modapi_init(E_Module *m) E_CONFIG_VAL(D, T, dir, STR); E_CONFIG_VAL(D, T, show_label, INT); E_CONFIG_VAL(D, T, eap_label, INT); + E_CONFIG_VAL(D, T, lock_move, INT); conf_edd = E_CONFIG_DD_NEW("IBar_Config", Config); #undef T @@ -1183,6 +1191,8 @@ e_modapi_init(E_Module *m) ci->dir = eina_stringshare_add("default"); ci->show_label = 1; ci->eap_label = 0; + ci->lock_move= 0; + ibar_config->items = eina_list_append(ibar_config->items, ci); } diff --git a/src/modules/ibar/e_mod_main.h b/src/modules/ibar/e_mod_main.h index 0811876..dd32910 100644 --- a/src/modules/ibar/e_mod_main.h +++ b/src/modules/ibar/e_mod_main.h @@ -22,6 +22,7 @@ struct _Config_Item const char *dir; int show_label; int eap_label; + int lock_move; }; EAPI extern E_Module_Api e_modapi; diff --git a/src/modules/illume-keyboard/module.desktop.in b/src/modules/illume-keyboard/module.desktop.in old mode 100755 new mode 100644 diff --git a/src/modules/illume-mode-toggle/module.desktop.in b/src/modules/illume-mode-toggle/module.desktop.in old mode 100755 new mode 100644 diff --git a/src/modules/illume-softkey/module.desktop.in b/src/modules/illume-softkey/module.desktop.in old mode 100755 new mode 100644 diff --git a/src/modules/layout/module.desktop.in b/src/modules/layout/module.desktop.in old mode 100755 new mode 100644 diff --git a/src/modules/msgbus/module.desktop.in b/src/modules/msgbus/module.desktop.in old mode 100755 new mode 100644 diff --git a/src/modules/ofono/module.desktop.in b/src/modules/ofono/module.desktop.in old mode 100755 new mode 100644 diff --git a/src/modules/pager/module.desktop.in b/src/modules/pager/module.desktop.in old mode 100755 new mode 100644 diff --git a/src/modules/shot/.svn/all-wcprops b/src/modules/shot/.svn/all-wcprops deleted file mode 100755 index 997dc22..0000000 --- a/src/modules/shot/.svn/all-wcprops +++ /dev/null @@ -1,41 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 46 -/svn/e/!svn/ver/59941/trunk/e/src/modules/shot -END -module.desktop.in -K 25 -svn:wc:ra_dav:version-url -V 64 -/svn/e/!svn/ver/59829/trunk/e/src/modules/shot/module.desktop.in -END -e-module-shot.edj -K 25 -svn:wc:ra_dav:version-url -V 64 -/svn/e/!svn/ver/59797/trunk/e/src/modules/shot/e-module-shot.edj -END -e_mod_main.c -K 25 -svn:wc:ra_dav:version-url -V 59 -/svn/e/!svn/ver/59792/trunk/e/src/modules/shot/e_mod_main.c -END -Makefile.am -K 25 -svn:wc:ra_dav:version-url -V 58 -/svn/e/!svn/ver/59766/trunk/e/src/modules/shot/Makefile.am -END -.cvsignore -K 25 -svn:wc:ra_dav:version-url -V 57 -/svn/e/!svn/ver/59766/trunk/e/src/modules/shot/.cvsignore -END -e_mod_main.h -K 25 -svn:wc:ra_dav:version-url -V 59 -/svn/e/!svn/ver/59766/trunk/e/src/modules/shot/e_mod_main.h -END diff --git a/src/modules/shot/.svn/dir-prop-base b/src/modules/shot/.svn/dir-prop-base deleted file mode 100755 index feed959..0000000 --- a/src/modules/shot/.svn/dir-prop-base +++ /dev/null @@ -1,9 +0,0 @@ -K 10 -svn:ignore -V 42 -Makefile -Makefile.in -.deps -module.desktop - -END diff --git a/src/modules/shot/.svn/entries b/src/modules/shot/.svn/entries deleted file mode 100755 index 83c070f..0000000 --- a/src/modules/shot/.svn/entries +++ /dev/null @@ -1,232 +0,0 @@ -10 - -dir -60234 -https://svn.enlightenment.org/svn/e/trunk/e/src/modules/shot -https://svn.enlightenment.org/svn/e - - - -2011-06-04T01:21:47.218159Z -59941 -raster -has-props - - - - - - - - - - - - - -7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 - -module.desktop.in -file - - - - -2011-06-12T06:33:50.000000Z -2576a4fa15a98341d07ed5eae5f1c276 -2011-05-31T00:55:25.015330Z -59829 -seoz - - - - - - - - - - - - - - - - - - - - - -382 - -e-module-shot.edj -file - - - - -2011-06-12T06:33:50.000000Z -a3ebb37b918859a4ee1a960092700b3c -2011-05-30T05:35:45.697661Z -59797 -raster -has-props - - - - - - - - - - - - - - - - - - - - -9475 - -e_mod_main.c -file - - - - -2011-06-12T06:33:50.000000Z -cb66237d4e2373a5dd7fd8405a58cc33 -2011-05-29T23:45:40.227255Z -59792 -raster - - - - - - - - - - - - - - - - - - - - - -23589 - -Makefile.am -file - - - - -2011-05-29T06:47:52.000000Z -da54f69937931d923395364370e0e776 -2011-05-28T06:53:44.881572Z -59766 -raster - - - - - - - - - - - - - - - - - - - - - -982 - -.cvsignore -file - - - - -2011-05-29T06:47:52.000000Z -30ebe381b2db35c06ea554373a095af7 -2011-05-28T06:53:44.881572Z -59766 -raster - - - - - - - - - - - - - - - - - - - - - -63 - -e_mod_main.h -file - - - - -2011-05-29T06:47:52.000000Z -b027d70ec5e628a1b3c5e7891c153218 -2011-05-28T06:53:44.881572Z -59766 -raster - - - - - - - - - - - - - - - - - - - - - -219 - diff --git a/src/modules/shot/.svn/prop-base/e-module-shot.edj.svn-base b/src/modules/shot/.svn/prop-base/e-module-shot.edj.svn-base deleted file mode 100755 index 5e9587e..0000000 --- a/src/modules/shot/.svn/prop-base/e-module-shot.edj.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/src/modules/shot/.svn/text-base/.cvsignore.svn-base b/src/modules/shot/.svn/text-base/.cvsignore.svn-base deleted file mode 100755 index 06d064a..0000000 --- a/src/modules/shot/.svn/text-base/.cvsignore.svn-base +++ /dev/null @@ -1,7 +0,0 @@ -.deps -.libs -Makefile -Makefile.in -*.lo -module.la -module.desktop diff --git a/src/modules/shot/.svn/text-base/Makefile.am.svn-base b/src/modules/shot/.svn/text-base/Makefile.am.svn-base deleted file mode 100755 index 3bf6d94..0000000 --- a/src/modules/shot/.svn/text-base/Makefile.am.svn-base +++ /dev/null @@ -1,28 +0,0 @@ -MAINTAINERCLEANFILES = Makefile.in -MODULE = shot - -# data files for the module -filesdir = $(libdir)/enlightenment/modules/$(MODULE) -files_DATA = \ -e-module-$(MODULE).edj module.desktop - -EXTRA_DIST = $(files_DATA) - -# the module .so file -INCLUDES = -I. \ - -I$(top_srcdir) \ - -I$(top_srcdir)/src/modules/$(MODULE) \ - -I$(top_srcdir)/src/bin \ - -I$(top_builddir)/src/bin \ - -I$(top_srcdir)/src/modules \ - @e_cflags@ -pkgdir = $(libdir)/enlightenment/modules/$(MODULE)/$(MODULE_ARCH) -pkg_LTLIBRARIES = module.la -module_la_SOURCES = e_mod_main.c \ - e_mod_main.h -module_la_LIBADD = @e_libs@ @dlopen_libs@ -module_la_LDFLAGS = -module -avoid-version -module_la_DEPENDENCIES = $(top_builddir)/config.h - -uninstall: - rm -rf $(DESTDIR)$(libdir)/enlightenment/modules/$(MODULE) diff --git a/src/modules/shot/.svn/text-base/e-module-shot.edj.svn-base b/src/modules/shot/.svn/text-base/e-module-shot.edj.svn-base deleted file mode 100755 index a507906..0000000 Binary files a/src/modules/shot/.svn/text-base/e-module-shot.edj.svn-base and /dev/null differ diff --git a/src/modules/shot/.svn/text-base/e_mod_main.c.svn-base b/src/modules/shot/.svn/text-base/e_mod_main.c.svn-base deleted file mode 100755 index f4a85c7..0000000 --- a/src/modules/shot/.svn/text-base/e_mod_main.c.svn-base +++ /dev/null @@ -1,839 +0,0 @@ -#include "e.h" -#include "e_mod_main.h" - -static E_Module *shot_module = NULL; - -static E_Action *act = NULL; -static E_Int_Menu_Augmentation *maug = NULL; -static Ecore_Timer *timer = NULL; -static E_Win *win = NULL; -static Evas_Object *o_bg = NULL, *o_box = NULL, *o_content = NULL; -static Evas_Object *o_event = NULL, *o_img = NULL, *o_hlist = NULL; -static E_Manager *sman = NULL; -static E_Container *scon = NULL; -static int quality = 90; -static int screen = -1; -#define MAXZONES 64 -static Evas_Object *o_rectdim[MAXZONES] = { NULL }; -static Evas_Object *o_radio_all = NULL; -static Evas_Object *o_radio[MAXZONES] = { NULL }; -static Evas_Object *o_fsel = NULL; -static Evas_Object *o_label = NULL; -static Evas_Object *o_entry = NULL; -static unsigned char *fdata = NULL; -static int fsize = 0; -static Ecore_Con_Url *url_up = NULL; -static Eina_List *handlers = NULL; -static char *url_ret = NULL; - -static void -_win_delete_cb(E_Win *w __UNUSED__) -{ - if (win) - { - e_object_del(E_OBJECT(win)); - win = NULL; - } -} - -static void -_win_resize_cb(E_Win *w __UNUSED__) -{ - evas_object_resize(o_bg, win->w, win->h); -} - -static void -_on_focus_cb(void *data __UNUSED__, Evas_Object *obj) -{ - if (obj == o_content) e_widget_focused_object_clear(o_box); - else if (o_content) e_widget_focused_object_clear(o_content); -} - -static void -_key_down_cb(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event) -{ - Evas_Event_Key_Down *ev = event; - - if (!strcmp(ev->keyname, "Tab")) - { - if (evas_key_modifier_is_set(evas_key_modifier_get(e_win_evas_get(win)), "Shift")) - { - if (e_widget_focus_get(o_box)) - { - if (!e_widget_focus_jump(o_box, 0)) - { - e_widget_focus_set(o_content, 0); - if (!e_widget_focus_get(o_content)) - e_widget_focus_set(o_box, 0); - } - } - else - { - if (!e_widget_focus_jump(o_content, 0)) - e_widget_focus_set(o_box, 0); - } - } - else - { - if (e_widget_focus_get(o_box)) - { - if (!e_widget_focus_jump(o_box, 1)) - { - e_widget_focus_set(o_content, 1); - if (!e_widget_focus_get(o_content)) - e_widget_focus_set(o_box, 1); - } - } - else - { - if (!e_widget_focus_jump(o_content, 1)) - e_widget_focus_set(o_box, 1); - } - } - } - else if (((!strcmp(ev->keyname, "Return")) || - (!strcmp(ev->keyname, "KP_Enter")) || - (!strcmp(ev->keyname, "space")))) - { - Evas_Object *o = NULL; - - if ((o_content) && (e_widget_focus_get(o_content))) - o = e_widget_focused_object_get(o_content); - else - o = e_widget_focused_object_get(o_box); - if (o) e_widget_activate(o); - } -} - -static void -_screen_change_cb(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) -{ - Eina_List *l; - E_Zone *z; - - EINA_LIST_FOREACH(scon->zones, l, z) - { - if (screen == -1) - evas_object_color_set(o_rectdim[z->num], 0, 0, 0, 0); - else if (screen == (int)z->num) - evas_object_color_set(o_rectdim[z->num], 0, 0, 0, 0); - else - evas_object_color_set(o_rectdim[z->num], 0, 0, 0, 200); - } -} - -static void -_save_to(const char *file) -{ - char *extn = strrchr(file, '.'); - char opts[256]; - - if (!extn) - { - e_util_dialog_show - (_("Error - Unknown format"), - _("File has an unspecified extension.
" - "Please use '.jpg' or '.png' extensions
" - "only as other formats are not
" - "supported currently.")); - return; - } - if (!((!strcasecmp(extn, ".png")) || - (!strcasecmp(extn, ".jpg")) || - (!strcasecmp(extn, ".jpeg")))) - { - e_util_dialog_show - (_("Error - Unknown format"), - _("File has an unrecognized extension.
" - "Please use '.jpg' or '.png' extensions
" - "only as other formats are not
" - "supported currently.")); - return; - } - if (!strcasecmp(extn, ".png")) - snprintf(opts, sizeof(opts), "compress=%i", 9); - else - snprintf(opts, sizeof(opts), "quality=%i", quality); - if (screen == -1) - { - evas_object_image_save(o_img, file, NULL, opts); - } - else - { - Evas_Object *o; - Eina_List *l; - E_Zone *z = NULL; - - EINA_LIST_FOREACH(scon->zones, l, z) - { - if (screen == (int)z->num) break; - z = NULL; - } - if (z) - { - unsigned char *src, *dst, *s, *d; - int sstd, dstd, y; - - o = evas_object_image_add(evas_object_evas_get(o_img)); - evas_object_image_colorspace_set(o, EVAS_COLORSPACE_ARGB8888); - evas_object_image_alpha_set(o, EINA_FALSE); - evas_object_image_size_set(o, z->w, z->h); - src = evas_object_image_data_get(o_img, EINA_FALSE); - sstd = evas_object_image_stride_get(o_img); - dst = evas_object_image_data_get(o, EINA_TRUE); - dstd = evas_object_image_stride_get(o); - d = dst; - for (y = 0; y < z->h; y++) - { - s = src + (sstd * y) + (z->x * 4); - memcpy(d, s, z->w * 4); - d += z->w * 4; - } - evas_object_image_save(o, file, NULL, opts); - evas_object_del(o); - } - } -} - -static void -_file_select_ok_cb(void *data __UNUSED__, E_Dialog *dia) -{ - const char *file; - - file = e_widget_fsel_selection_path_get(o_fsel); - if (file) _save_to(file); - if (dia) e_util_defer_object_del(E_OBJECT(dia)); - if (win) - { - e_object_del(E_OBJECT(win)); - win = NULL; - } -} - -static void -_file_select_cancel_cb(void *data __UNUSED__, E_Dialog *dia) -{ - if (dia) e_util_defer_object_del(E_OBJECT(dia)); - if (win) - { - e_object_del(E_OBJECT(win)); - win = NULL; - } -} - -static void -_win_save_cb(void *data __UNUSED__, void *data2 __UNUSED__) -{ - E_Dialog *dia; - Evas_Object *o; - Evas_Coord mw, mh; - - dia = e_dialog_new(scon, "E", "_e_shot_fsel"); - e_dialog_title_set(dia, _("Select screenshot save location")); - o = e_widget_fsel_add(dia->win->evas, "~/", "/", NULL, NULL, - NULL, NULL, - NULL, NULL, 1); - o_fsel = o; - evas_object_show(o); - e_widget_size_min_get(o, &mw, &mh); - e_dialog_content_set(dia, o, mw, mh); - e_dialog_button_add(dia, _("OK"), NULL, - _file_select_ok_cb, NULL); - e_dialog_button_add(dia, _("Cancel"), NULL, - _file_select_cancel_cb, NULL); - e_dialog_resizable_set(dia, 1); - e_win_centered_set(dia->win, 1); - e_dialog_show(dia); -} - -static void -_share_done(void) -{ - Ecore_Event_Handler *h; - - EINA_LIST_FREE(handlers, h) ecore_event_handler_del(h); - o_label = NULL; - if (url_ret) - { - free(url_ret); - url_ret = NULL; - } - if (url_up) - { - ecore_con_url_free(url_up); - url_up = NULL; - } - ecore_con_url_shutdown(); -} - -static void -_upload_ok_cb(void *data __UNUSED__, E_Dialog *dia) -{ - // ok just hides dialog and does background upload - o_label = NULL; - if (dia) e_util_defer_object_del(E_OBJECT(dia)); - if (win) - { - e_object_del(E_OBJECT(win)); - win = NULL; - } - _share_done(); -} - -static void -_upload_cancel_cb(void *data __UNUSED__, E_Dialog *dia) -{ - if (dia) e_util_defer_object_del(E_OBJECT(dia)); - if (win) - { - e_object_del(E_OBJECT(win)); - win = NULL; - } -} - -static Eina_Bool -_upload_data_cb(void *data __UNUSED__, int ev_type __UNUSED__, void *event) -{ - Ecore_Con_Event_Url_Data *ev = event; - if (ev->url_con != url_up) return EINA_TRUE; - if ((o_label) && (ev->size < 1024)) - { - char *txt = alloca(ev->size + 1); - - memcpy(txt, ev->data, ev->size); - txt[ev->size] = 0; -/* - printf("GOT %i bytes: '%s'\n", ev->size, txt); - int i; - for (i = 0; i < ev->size; i++) printf("%02x.", ev->data[i]); - printf("\n"); - */ - if (!url_ret) url_ret = strdup(txt); - else - { - char *n; - - n = malloc(strlen(url_ret) + ev->size + 1); - if (n) - { - free(url_ret); - strcpy(n, url_ret); - strcat(n, txt); - url_ret = n; - } - } - } - return EINA_FALSE; -} - -static Eina_Bool -_upload_progress_cb(void *data __UNUSED__, int ev_type __UNUSED__, void *event) -{ - Ecore_Con_Event_Url_Progress *ev = event; - if (ev->url_con != url_up) return EINA_TRUE; - if (o_label) - { - char buf[1024]; - - snprintf(buf, sizeof(buf), - "Uploaded %1.1fKB / %1.1fKB", - ev->up.now / 1024, - ev->up.total / 1024); - e_widget_label_text_set(o_label, buf); - } - return EINA_FALSE; -} - -static Eina_Bool -_upload_complete_cb(void *data __UNUSED__, int ev_type __UNUSED__, void *event) -{ - Ecore_Con_Event_Url_Complete *ev = event; - if (ev->url_con != url_up) return EINA_TRUE; - if (ev->status != 200) - { - e_util_dialog_show - (_("Error - Upload Failed"), - _("Upload failed with status code:
" - "%i"), - ev->status); - _share_done(); - return EINA_FALSE; - } - if ((o_entry) && (url_ret)) - e_widget_entry_text_set(o_entry, url_ret); - _share_done(); - return EINA_FALSE; -} - -static void -_win_share_cb(void *data __UNUSED__, void *data2 __UNUSED__) -{ - E_Dialog *dia; - Evas_Object *o, *ol; - Evas_Coord mw, mh; - char buf[PATH_MAX]; - FILE *f; - - if (quality == 100) snprintf(buf, sizeof(buf), "/tmp/e-shot-XXXXXX.png"); - else snprintf(buf, sizeof(buf), "/tmp/e-shot-XXXXXX.jpg"); - if (!mkstemp(buf)) - { - e_util_dialog_show - (_("Error - Can't create File"), - _("Cannot create temporary file:\n" - "%s"), - buf); - if (win) - { - e_object_del(E_OBJECT(win)); - win = NULL; - } - return; - } - _save_to(buf); - if (win) - { - e_object_del(E_OBJECT(win)); - win = NULL; - } - f = fopen(buf, "rb"); - if (!f) - { - // FIXME: error disp - return; - } - fseek(f, 0, SEEK_END); - fsize = ftell(f); - if (fsize < 1) - { - // FIXME: error disp - fclose(f); - return; - } - rewind(f); - if (fdata) free(fdata); - fdata = malloc(fsize); - if (!fdata) - { - // FIXME: error disp - fclose(f); - return; - } - if (fread(fdata, fsize, 1, f) != 1) - { - // FIXME: error disp - free(fdata); - fdata = NULL; - fclose(f); - return; - } - fclose(f); - ecore_file_unlink(buf); - - _share_done(); - - if (!ecore_con_url_init()) - { - // FIXME: error disp - free(fdata); - fdata = NULL; - return; - } - - handlers = eina_list_append - (handlers, ecore_event_handler_add - (ECORE_CON_EVENT_URL_DATA, _upload_data_cb, NULL)); - handlers = eina_list_append - (handlers, ecore_event_handler_add - (ECORE_CON_EVENT_URL_PROGRESS, _upload_progress_cb, NULL)); - handlers = eina_list_append - (handlers, ecore_event_handler_add - (ECORE_CON_EVENT_URL_COMPLETE, _upload_complete_cb, NULL)); - - url_up = ecore_con_url_new("http://www.enlightenment.org/shot.php"); - ecore_con_url_post(url_up, fdata, fsize, "application/x-e-shot"); - - dia = e_dialog_new(scon, "E", "_e_shot_share"); - e_dialog_title_set(dia, _("Uploading screenshot")); - - o = e_widget_list_add(dia->win->evas, 0, 0); - ol = o; - - o = e_widget_label_add(dia->win->evas, _("Uploading ...")); - o_label = o; - e_widget_list_object_append(ol, o, 0, 0, 0.5); - - o = e_widget_label_add(dia->win->evas, - _("Screenshot is available at this location:")); - e_widget_list_object_append(ol, o, 0, 0, 0.5); - - o = e_widget_entry_add(dia->win->evas, NULL, NULL, NULL, NULL); - o_entry = o; - e_widget_list_object_append(ol, o, 1, 0, 0.5); - - e_widget_size_min_get(ol, &mw, &mh); - e_dialog_content_set(dia, ol, mw, mh); - e_dialog_button_add(dia, _("OK"), NULL, _upload_ok_cb, NULL); - e_dialog_button_add(dia, _("Cancel"), NULL, _upload_cancel_cb, NULL); - e_dialog_resizable_set(dia, 1); - e_win_centered_set(dia->win, 1); - e_dialog_show(dia); -} - -static void -_win_cancel_cb(void *data __UNUSED__, void *data2 __UNUSED__) -{ - if (win) - { - e_object_del(E_OBJECT(win)); - win = NULL; - } -} - -static void -_rect_down_cb(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info) -{ - Evas_Event_Mouse_Down *ev = event_info; - Eina_List *l; - E_Zone *z; - - if (ev->button != 1) return; - - e_widget_radio_toggle_set(o_radio_all, 0); - EINA_LIST_FOREACH(scon->zones, l, z) - { - if (obj == o_rectdim[z->num]) - { - screen = z->num; - e_widget_radio_toggle_set(o_radio[z->num], 1); - } - else - e_widget_radio_toggle_set(o_radio[z->num], 0); - } - - EINA_LIST_FOREACH(scon->zones, l, z) - { - if (screen == -1) - evas_object_color_set(o_rectdim[z->num], 0, 0, 0, 0); - else if (screen == (int)z->num) - evas_object_color_set(o_rectdim[z->num], 0, 0, 0, 0); - else - evas_object_color_set(o_rectdim[z->num], 0, 0, 0, 200); - } -} - -static void -_shot_now(E_Zone *zone) -{ - Ecore_X_Image *img; - Ecore_X_Window_Attributes att; - unsigned char *src; - unsigned int *dst; - int bpl = 0, rows = 0, bpp = 0; - Evas *evas, *evas2; - Evas_Object *o, *oa, *op, *ol; - Evas_Coord w, h; - Evas_Modifier_Mask mask; - E_Radio_Group *rg; - - sman = zone->container->manager; - scon = zone->container; - memset(&att, 0, sizeof(Ecore_X_Window_Attributes)); - ecore_x_window_attributes_get(sman->root, &att); - img = ecore_x_image_new(sman->w, sman->h, att.visual, att.depth); - ecore_x_image_get(img, sman->root, 0, 0, 0, 0, sman->w, sman->h); - src = ecore_x_image_data_get(img, &bpl, &rows, &bpp); - if (!ecore_x_image_is_argb32_get(img)) - { - dst = malloc(sman->w * sman->h * sizeof(int)); - ecore_x_image_to_argb_convert(src, bpp, bpl, att.colormap, att.visual, - 0, 0, sman->w, sman->h, - dst, (sman->w * sizeof(int)), 0, 0); - } - else - dst = (unsigned int *)src; - - if (win) e_object_del(E_OBJECT(win)); - win = e_win_new(e_container_current_get(e_manager_current_get())); - - evas = e_win_evas_get(win); - e_win_title_set(win, _("Where to put Screenshot...")); - e_win_delete_callback_set(win, _win_delete_cb); - e_win_resize_callback_set(win, _win_resize_cb); - e_win_dialog_set(win, 1); - e_win_centered_set(win, 1); - e_win_name_class_set(win, "E", "_shot_dialog"); - - o = edje_object_add(evas); - o_bg = o;; - e_theme_edje_object_set(o, "base/theme/dialog", "e/widgets/dialog/main"); - evas_object_move(o, 0, 0); - evas_object_show(o); - - o = e_widget_list_add(evas, 0, 0); - o_content = o; - e_widget_size_min_get(o, &w, &h); - edje_extern_object_min_size_set(o, w, h); - edje_object_part_swallow(o_bg, "e.swallow.content", o); - evas_object_show(o); - - w = sman->w / 4; - if (w < 220) w = 220; - h = (w * sman->h) / sman->w; - - o = e_widget_aspect_add(evas, w, h); - oa = o; - o = e_widget_preview_add(evas, w, h); - op = o; - - evas2 = e_widget_preview_evas_get(op); - - o = evas_object_image_filled_add(evas2); - o_img = o; - evas_object_image_colorspace_set(o, EVAS_COLORSPACE_ARGB8888); - evas_object_image_alpha_set(o, EINA_FALSE); - evas_object_image_size_set(o, sman->w, sman->h); - evas_object_image_data_copy_set(o, dst); - if (dst != (unsigned int *)src) free(dst); - ecore_x_image_free(img); - evas_object_image_data_update_add(o, 0, 0, sman->w, sman->h); - e_widget_preview_extern_object_set(op, o); - evas_object_show(o); - - evas_object_show(op); - evas_object_show(oa); - - e_widget_aspect_child_set(oa, op); - e_widget_list_object_append(o_content, oa, 0, 0, 0.5); - - o = e_widget_list_add(evas, 1, 1); - o_hlist = o; - - o = e_widget_framelist_add(evas, _("Quality"), 0); - ol = o; - - rg = e_widget_radio_group_new(&quality); - o = e_widget_radio_add(evas, _("Perfect"), 100, rg); - e_widget_framelist_object_append(ol, o); - o = e_widget_radio_add(evas, _("High"), 90, rg); - e_widget_framelist_object_append(ol, o); - o = e_widget_radio_add(evas, _("Medium"), 70, rg); - e_widget_framelist_object_append(ol, o); - o = e_widget_radio_add(evas, _("Low"), 50, rg); - e_widget_framelist_object_append(ol, o); - - e_widget_list_object_append(o_hlist, ol, 1, 0, 0.5); - - screen = -1; - if (eina_list_count(scon->zones) > 1) - { - Eina_List *l; - E_Zone *z; - int i; - - o = e_widget_framelist_add(evas, _("Screen"), 0); - ol = o; - - rg = e_widget_radio_group_new(&screen); - o = e_widget_radio_add(evas, _("All"), -1, rg); - o_radio_all = o; - evas_object_smart_callback_add(o, "changed", _screen_change_cb, NULL); - e_widget_framelist_object_append(ol, o); - i = 0; - EINA_LIST_FOREACH(scon->zones, l, z) - { - char buf[32]; - - if (z->num >= MAXZONES) continue; - snprintf(buf, sizeof(buf), "%i", z->num); - o = e_widget_radio_add(evas, buf, z->num, rg); - o_radio[z->num] = o; - evas_object_smart_callback_add(o, "changed", _screen_change_cb, NULL); - e_widget_framelist_object_append(ol, o); - - o = evas_object_rectangle_add(evas2); - evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, - _rect_down_cb, NULL); - o_rectdim[z->num] = o; - evas_object_color_set(o, 0, 0, 0, 0); - evas_object_show(o); - evas_object_geometry_get(o_img, NULL, NULL, &w, &h); - evas_object_move(o, - (z->x * w) / sman->w, - (z->y * h) / sman->h); - evas_object_resize(o, - (z->w * w) / sman->w, - (z->h * h) / sman->h); - i++; - } - - e_widget_list_object_append(o_hlist, ol, 1, 0, 0.5); - } - - e_widget_list_object_append(o_content, o_hlist, 0, 0, 0.5); - - o = o_content; - e_widget_size_min_get(o, &w, &h); - edje_extern_object_min_size_set(o, w, h); - edje_object_part_swallow(o_bg, "e.swallow.content", o); - evas_object_show(o); - - /////////////////////////////////////////////////////////////////////// - - o = e_widget_list_add(evas, 1, 1); - o_box = o; - e_widget_on_focus_hook_set(o, _on_focus_cb, NULL); - edje_object_part_swallow(o_bg, "e.swallow.buttons", o); - - o = e_widget_button_add(evas, _("Save"), NULL, _win_save_cb, win, NULL); - e_widget_list_object_append(o_box, o, 1, 0, 0.5); - o = e_widget_button_add(evas, _("Share"), NULL, _win_share_cb, win, NULL); - e_widget_list_object_append(o_box, o, 1, 0, 0.5); - o = e_widget_button_add(evas, _("Cancel"), NULL, _win_cancel_cb, win, NULL); - e_widget_list_object_append(o_box, o, 1, 0, 0.5); - - o = o_box; - e_widget_size_min_get(o, &w, &h); - edje_extern_object_min_size_set(o, w, h); - edje_object_part_swallow(o_bg, "e.swallow.buttons", o); - - o = evas_object_rectangle_add(evas); - o_event = o; - mask = 0; - if (!evas_object_key_grab(o, "Tab", mask, ~mask, 0)) printf("grab err\n"); - mask = evas_key_modifier_mask_get(evas, "Shift"); - if (!evas_object_key_grab(o, "Tab", mask, ~mask, 0)) printf("grab err\n"); - mask = 0; - if (!evas_object_key_grab(o, "Return", mask, ~mask, 0)) printf("grab err\n"); - mask = 0; - if (!evas_object_key_grab(o, "KP_Enter", mask, ~mask, 0)) printf("grab err\n"); - evas_object_event_callback_add(o, EVAS_CALLBACK_KEY_DOWN, _key_down_cb, NULL); - - edje_object_size_min_calc(o_bg, &w, &h); - evas_object_resize(o_bg, w, h); - e_win_resize(win, w, h); - e_win_size_min_set(win, w, h); - e_win_size_max_set(win, 99999, 99999); - e_win_show(win); - e_win_border_icon_set(win, "enlightenment/shot"); - - if (!e_widget_focus_get(o_bg)) e_widget_focus_set(o_box, 1); -} - -static Eina_Bool -_shot_delay(void *data) -{ - timer = NULL; - _shot_now(data); - return EINA_FALSE; -} - -static void -_shot(E_Zone *zone) -{ - if (timer) ecore_timer_del(timer); - timer = ecore_timer_add(1.0, _shot_delay, zone); -} - -static void -_e_mod_menu_cb(void *data __UNUSED__, E_Menu *m, E_Menu_Item *mi __UNUSED__) -{ - if (m->zone) _shot(m->zone); -} - -static void -_e_mod_action_cb(E_Object *obj, const char *params __UNUSED__) -{ - E_Zone *zone = NULL; - - if (obj) - { - if (obj->type == E_MANAGER_TYPE) - zone = e_util_zone_current_get((E_Manager *)obj); - else if (obj->type == E_CONTAINER_TYPE) - zone = e_util_zone_current_get(((E_Container *)obj)->manager); - else if (obj->type == E_ZONE_TYPE) - zone = ((E_Zone *)obj); - else - zone = e_util_zone_current_get(e_manager_current_get()); - } - if (!zone) zone = e_util_zone_current_get(e_manager_current_get()); - if (!zone) return; - if (timer) - { - ecore_timer_del(timer); - timer = NULL; - } - _shot_now(zone); -} - -static void -_e_mod_menu_add(void *data __UNUSED__, E_Menu *m) -{ - E_Menu_Item *mi; - - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Take Screenshot")); - e_util_menu_item_theme_icon_set(mi, "screenshot"); - e_menu_item_callback_set(mi, _e_mod_menu_cb, NULL); -} - -/* module setup */ -EAPI E_Module_Api e_modapi = -{ - E_MODULE_API_VERSION, - "Shot" -}; - -EAPI void * -e_modapi_init(E_Module *m) -{ - e_module_delayed_set(m, 1); - - shot_module = m; - act = e_action_add("shot"); - if (act) - { - act->func.go = _e_mod_action_cb; - e_action_predef_name_set(_("Screen"), _("Take Screenshot"), - "shot", NULL, NULL, 0); - } - maug = e_int_menus_menu_augmentation_add_sorted - ("main/2", _("Take Screenshot"), _e_mod_menu_add, NULL, NULL, NULL); - return m; -} - -EAPI int -e_modapi_shutdown(E_Module *m __UNUSED__) -{ - _share_done(); - if (win) - { - e_object_del(E_OBJECT(win)); - win = NULL; - } - if (timer) - { - ecore_timer_del(timer); - timer = NULL; - } - if (maug) - { - e_int_menus_menu_augmentation_del("main/2", maug); - maug = NULL; - } - if (act) - { - e_action_predef_name_del(_("Screen"), _("Take Screenshot")); - e_action_del("shot"); - act = NULL; - } - shot_module = NULL; - return 1; -} - -EAPI int -e_modapi_save(E_Module *m __UNUSED__) -{ - return 1; -} diff --git a/src/modules/shot/.svn/text-base/e_mod_main.h.svn-base b/src/modules/shot/.svn/text-base/e_mod_main.h.svn-base deleted file mode 100755 index 4adf2f1..0000000 --- a/src/modules/shot/.svn/text-base/e_mod_main.h.svn-base +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef E_MOD_MAIN_H -#define E_MOD_MAIN_H - -EAPI extern E_Module_Api e_modapi; - -EAPI void *e_modapi_init (E_Module *m); -EAPI int e_modapi_shutdown (E_Module *m); -EAPI int e_modapi_save (E_Module *m); - -#endif diff --git a/src/modules/shot/.svn/text-base/module.desktop.in.svn-base b/src/modules/shot/.svn/text-base/module.desktop.in.svn-base deleted file mode 100755 index d13feb9..0000000 --- a/src/modules/shot/.svn/text-base/module.desktop.in.svn-base +++ /dev/null @@ -1,11 +0,0 @@ -[Desktop Entry] -Type=Link -Name=Shot -Name[fr]=Déclic -Name[ko]=스크린샷 -Icon=e-module-shot -X-Enlightenment-ModuleType=utils -Comment=Simple screenshot+save/upload module -Comment[fr]=Module pour faire des captures d'écran et les partager. -Comment[it]=Semplice modulo per il salvataggio e l'upload di istantanee del desktop. -Comment[ko]=간단한 스크린샷 저장/공유 모듈 diff --git a/src/modules/shot/e-module-shot.edj b/src/modules/shot/e-module-shot.edj old mode 100755 new mode 100644 diff --git a/src/modules/start/module.desktop.in b/src/modules/start/module.desktop.in old mode 100755 new mode 100644 diff --git a/src/modules/syscon/module.desktop.in b/src/modules/syscon/module.desktop.in old mode 100755 new mode 100644 diff --git a/src/modules/systray/module.desktop.in b/src/modules/systray/module.desktop.in old mode 100755 new mode 100644 diff --git a/src/modules/winlist/module.desktop.in b/src/modules/winlist/module.desktop.in old mode 100755 new mode 100644