raster pushed a commit to branch master.

http://git.enlightenment.org/apps/rage.git/commit/?id=47df468a4644e6ada8f4cb1501bc8ff3de931f65

commit 47df468a4644e6ada8f4cb1501bc8ff3de931f65
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date:   Mon Aug 11 22:07:57 2014 +0900

    make ui even nicer... especially for music
---
 data/themes/default.edc                            | 1680 ++++++++++----------
 data/themes/images/Makefile.mk                     |   17 +-
 .../images/horizontal_separated_bar_small_glow.png |  Bin 309 -> 0 bytes
 data/themes/images/icon_arrow_right.png            |  Bin 2015 -> 1930 bytes
 data/themes/images/icon_close.png                  |  Bin 3939 -> 3136 bytes
 data/themes/images/icon_close2.png                 |  Bin 4066 -> 3854 bytes
 data/themes/images/icon_eject.png                  |  Bin 2542 -> 2419 bytes
 data/themes/images/icon_forward.png                |  Bin 2850 -> 2432 bytes
 data/themes/images/icon_fullscreen.png             |  Bin 4821 -> 2116 bytes
 data/themes/images/icon_fullscreen2.png            |  Bin 2780 -> 3578 bytes
 data/themes/images/icon_mute.png                   |  Bin 4369 -> 3975 bytes
 data/themes/images/icon_next.png                   |  Bin 3232 -> 2141 bytes
 data/themes/images/icon_next2.png                  |  Bin 7594 -> 2405 bytes
 data/themes/images/icon_pause.png                  |  Bin 2168 -> 1791 bytes
 data/themes/images/icon_pause2.png                 |  Bin 6680 -> 2135 bytes
 data/themes/images/icon_play.png                   |  Bin 2134 -> 1676 bytes
 data/themes/images/icon_play2.png                  |  Bin 7009 -> 1987 bytes
 data/themes/images/icon_prev.png                   |  Bin 3212 -> 2146 bytes
 data/themes/images/icon_prev2.png                  |  Bin 7659 -> 2353 bytes
 data/themes/images/icon_refresh.png                |  Bin 6452 -> 4672 bytes
 data/themes/images/icon_rewind.png                 |  Bin 2837 -> 2481 bytes
 data/themes/images/icon_spanner.png                |  Bin 3959 -> 1981 bytes
 data/themes/images/icon_spanner2.png               |  Bin 8969 -> 3213 bytes
 data/themes/images/icon_stop.png                   |  Bin 1821 -> 1747 bytes
 data/themes/images/icon_unfullscreen.png           |  Bin 5468 -> 2099 bytes
 data/themes/images/icon_unfullscreen2.png          |  Bin 2839 -> 2957 bytes
 data/themes/images/icon_volume.png                 |  Bin 5142 -> 2221 bytes
 data/themes/images/icon_volume2.png                |  Bin 8787 -> 2547 bytes
 data/themes/images/inset_round_hilight.png         |  Bin 1367 -> 0 bytes
 data/themes/images/inset_round_shading.png         |  Bin 6785 -> 0 bytes
 data/themes/images/inset_round_shadow.png          |  Bin 2034 -> 0 bytes
 data/themes/images/pos_indicator.png               |  Bin 931 -> 0 bytes
 data/themes/images/pos_indicator_big.png           |  Bin 1669 -> 0 bytes
 data/themes/images/posglow.png                     |  Bin 0 -> 519 bytes
 data/themes/images/speaker-base.png                |  Bin 0 -> 19231 bytes
 data/themes/images/speaker-bevel-hi.png            |  Bin 0 -> 1979 bytes
 data/themes/images/speaker-bevel-lo.png            |  Bin 0 -> 1874 bytes
 data/themes/images/speaker-over.png                |  Bin 0 -> 9425 bytes
 data/themes/images/speaker-shadow.png              |  Bin 0 -> 10257 bytes
 data/themes/images/speaker.png                     |  Bin 19879 -> 0 bytes
 data/themes/images/vgrad-dark-inv.png              |  Bin 0 -> 3896 bytes
 data/themes/images/vgrad_shadow_bi.png             |  Bin 1647 -> 0 bytes
 data/themes/orig/icons.svgz                        |  Bin 0 -> 1102 bytes
 data/themes/orig/musicmode.xcf.gz                  |  Bin 0 -> 241067 bytes
 data/themes/orig/next.xcf.gz                       |  Bin 0 -> 3347 bytes
 data/themes/orig/pause.xcf.gz                      |  Bin 0 -> 2856 bytes
 data/themes/orig/play.xcf.gz                       |  Bin 0 -> 3227 bytes
 data/themes/orig/prev.xcf.gz                       |  Bin 0 -> 3393 bytes
 data/themes/orig/vol.xcf.gz                        |  Bin 0 -> 6205 bytes
 src/bin/controls.c                                 |    4 +-
 src/bin/main.c                                     |    1 -
 src/bin/win.c                                      |    5 +-
 src/bin/winvid.c                                   |    2 +-
 53 files changed, 889 insertions(+), 820 deletions(-)

diff --git a/data/themes/default.edc b/data/themes/default.edc
index d82f2af..7779eb6 100644
--- a/data/themes/default.edc
+++ b/data/themes/default.edc
@@ -1,7 +1,5 @@
 collections {
    
-//////////////////////////////////////////////////////////////////////////////
-   //// the background and general container for the terminal
    group { name: "rage/core";
       images.image: "bg_bevel.png" COMP;
       images.image: "bevel_dark_out.png" COMP;
@@ -32,22 +30,18 @@ collections {
       images.image: "icon_unfullscreen.png" COMP;
       images.image: "icon_close.png" COMP;
       
-      images.image: "horizontal_separated_bar_small_glow.png" COMP;
-      images.image: "vgrad_shadow_bi.png" COMP;
-      
       images.image: "win_shadow.png" COMP;
       images.image: "bg_shine.png" COMP;
       images.image: "bg_glint.png" COMP;
 
-      images.image: "speaker.png" COMP;
-      images.image: "inset_round_hilight.png" COMP;
-      images.image: "inset_round_shadow.png" COMP;
-      images.image: "inset_round_shading.png" COMP;
-      
-      set { name: "pos_indicator";
-         image { image: "pos_indicator_big.png" COMP; size: 32 28 99999 99999; 
}
-         image { image: "pos_indicator.png" COMP; size: 0 0 31 27; }
-      }
+      images.image: "vgrad-dark-inv.png" COMP;
+      images.image: "posglow.png" COMP;
+         
+      images.image: "speaker-base.png" COMP;
+      images.image: "speaker-bevel-hi.png" COMP;
+      images.image: "speaker-bevel-lo.png" COMP;
+      images.image: "speaker-over.png" COMP;
+      images.image: "speaker-shadow.png" COMP;
 
       images.image: "icon_next2.png" COMP;
       images.image: "icon_prev2.png" COMP;
@@ -71,16 +65,22 @@ collections {
          public pos_visible;
          public pos_timer;
          public drag_is_down;
+         public novideo;
          
          public pos_timeout(val) {
             set_int(pos_visible, 0);
             set_int(pos_timer, 0);
             stop_program(PROGRAM:"posshow");
             run_program(PROGRAM:"poshide");
+            if (!get_int(novideo)) {
+               stop_program(PROGRAM:"cbarshow");
+               run_program(PROGRAM:"cbarhide");
+            }
          }
       }
       
       parts {
+         //// -- BACKGROUND
          part { name: "fill"; mouse_events: 0;
             description { state: "default" 0.0;
                fixed: 1 1;
@@ -98,14 +98,6 @@ collections {
                fill.smooth: 0;
             }
          }
-         part { name: "bevel";
-            description { state: "default" 0.0;
-               image.normal: "bevel_dark_out.png";
-               image.border: 1 1 1 1;
-               image.middle: 0;
-               fill.smooth: 0;
-            }
-         }
          part { name: "bevel2";
             description { state: "default" 0.0;
                image.normal: "bg_bevel.png";
@@ -124,6 +116,15 @@ collections {
                rel1.offset: -32 -32;
                rel2.offset: 31 31;
                fill.smooth: 0;
+               visible: 0;
+            }
+            description { state: "video" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+            }
+            description { state: "novideo" 0.0;
+               inherit: "default" 0.0;
+               visible: 0;
             }
          }
          part { name: "black"; type: RECT; mouse_events: 0;
@@ -149,12 +150,13 @@ collections {
             transition: SINUSOIDAL 1.0;
             target: "black";
          }
-         
+
          part { name: "base"; type: RECT; mouse_events: 0;
             description { state: "default" 0.0;
                rel1.to: "rage.content";
                rel2.to: "rage.content";
                color: 0 0 0 255;
+               visible: 0;
             }
             description { state: "visible" 0.0;
                inherit: "default" 0.0;
@@ -230,7 +232,25 @@ collections {
             target: "base";
             target: "base_bevel";
          }
-         
+
+         part { name: "rage.content"; type: SWALLOW;
+            description { state: "default" 0.0;
+            }
+         }
+         part { name: "controlbar_shadow"; mouse_events: 0;
+            clip_to: "controlbar_clip";
+            description { state: "default" 0.0;
+               fixed: 1 1;
+               rel1.to: "controlbar";
+               rel2.to: "controlbar";
+               image.normal: "pm_shadow.png";
+               image.border: 64 64 64 64;
+               rel1.offset: -32 -32;
+               rel2.offset: 31 31;
+               fill.smooth: 0;
+            }
+         }
+
          part { name: "novid_clip"; type: RECT;
             description { state: "default" 0.0;
             }
@@ -239,96 +259,67 @@ collections {
                visible: 0;
             }
          }
-         part { name: "novid_base"; type: RECT; mouse_events: 0;
-            clip_to: "novid_clip2";
+
+         part { name: "speaker_clip"; type: RECT;
             description { state: "default" 0.0;
-               rel1.to: "rage.content";
-               rel2.to: "rage.content";
-               color: 32 32 32 255;
+               visible: 0;
             }
-         }
-         part { name: "novid_base_bevel";
-            clip_to: "novid_clip2";
-            description { state: "default" 0.0;
-               rel1.to: "novid_base";
-               rel2.to: "novid_base";
-               image.normal: "bevel_dark_out.png";
-               image.border: 1 1 1 1;
-               image.middle: 0;
-               fill.smooth: 0;
+            description { state: "novideo" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
             }
-         }
-         part { name: "base-sh";
-            clip_to: "novid_clip2";
-            description { state: "default" 0.0;
-               rel1.to: "novid";
-               rel1.offset: 0 -1;
-               rel2.to: "novid";
-               rel2.offset: -1 -2;
-               image.normal: "inset_round_shadow.png";
+            description { state: "video" 0.0;
+               inherit: "default" 0.0;
+               visible: 0;
             }
          }
-         part { name: "base-hi";
-            clip_to: "novid_clip2";
+         part { name: "speaker_bg_shadow"; mouse_events: 0;
+            clip_to: "speaker_clip";
             description { state: "default" 0.0;
-               rel1.to: "novid";
-               rel1.offset: 0 1;
-               rel2.to: "novid";
-               rel2.offset: -1 0;
-               image.normal: "inset_round_hilight.png";
+               fixed: 1 1;
+               rel1.to: "speaker_base";
+               rel2.to: "speaker_base";
+               image.normal: "pm_shadow.png";
+               image.border: 64 64 64 64;
+               rel1.offset: -32 -32;
+               rel2.offset: 31 31;
+               fill.smooth: 0;
             }
          }
-         part { name: "novid"; mouse_events: 0;
-            scale: 1;
-            clip_to: "novid_clip2";
+         part { name: "speaker_base"; type: RECT;
+            clip_to: "speaker_clip";
             description { state: "default" 0.0;
-               rel1.to: "base";
-               rel1.relative: 0.1 0.1;
-               rel1.offset: 4 4;
-               rel2.to: "base";
-               rel2.relative: 0.9 0.9;
-               rel2.offset: -5 -5;
-               fixed: 1 1;
-               image.normal: "speaker.png";
-               max: 160 160;
+               rel2.to: "controlbar";
+               rel2.relative: 1.0 0.0;
                aspect: 1.0 1.0; aspect_preference: BOTH;
+               max: 160 160;
+               color: 32 32 32 255;
             }
          }
-         part { name: "novid_clip2"; type: RECT;
+         part { name: "speaker_cone";
+            clip_to: "speaker_clip";
             description { state: "default" 0.0;
-               visible: 0;
-            }
-            description { state: "novideo" 0.0;
-               inherit: "default" 0.0;
-               visible: 1;
+               rel1.to: "speaker_base";
+               rel2.to: "speaker_base";
+               image.normal: "speaker-base.png";
             }
          }
-         program {
-            signal: "state,novideo"; source: "rage";
-            action: STATE_SET "novideo" 0.0;
-            target: "novid_clip";
-            target: "novid_clip2";
-         }
-         program {
-            signal: "state,video"; source: "rage";
-            action: STATE_SET "default" 0.0;
-            target: "novid_clip";
-            target: "novid_clip2";
-         }
-
          part { name: "art_clip"; type: RECT; mouse_events: 0;
+            clip_to: "speaker_clip";
             description { state: "default" 0.0;
-               max: 0 0;
                visible: 0;
                color: 255 255 255 0;
-               rel1.to: "base";
-               rel2.to: "base";
+               rel1.to: "speaker_base";
+               rel2.to: "speaker_base";
+               rel1.relative: -0.5 -0.5;
+               rel2.relative: 1.5 1.5;
                fixed: 1 1;
                aspect: 1.0 1.0; aspect_preference: BOTH;
             }
             description { state: "visible" 0.0;
                inherit: "default" 0.0;
-               max: 9999 9999;
+               rel1.relative: 0.0 0.0;
+               rel2.relative: 1.0 1.0;
                visible: 1;
                color: 255 255 255 255;
             }
@@ -337,8 +328,8 @@ collections {
             description { state: "default" 0.0;
                visible: 0;
                color: 255 255 255 0;
-               rel1.to: "base";
-               rel2.to: "base";
+               rel1.to: "speaker_base";
+               rel2.to: "speaker_base";
                fixed: 1 1;
                aspect: 1.0 1.0; aspect_preference: BOTH;
             }
@@ -348,49 +339,72 @@ collections {
                color: 255 255 255 255;
             }
          }
-         part { name: "artshadow"; mouse_events: 0;
-            clip_to: "art_clip2";
+         part { name: "rage.art"; type: SWALLOW; mouse_events: 0;
+            clip_to: "art_clip";
             description { state: "default" 0.0;
-               fixed: 1 1;
                rel1.to: "art_clip";
                rel2.to: "art_clip";
-               image.normal: "win_shadow.png";
-               image.border: 14 14 14 14;
-               image.middle: 0;
-               rel1.offset: -7  -3;
-               rel2.offset: 6 11;
-               fill.smooth: 0;
             }
          }
-         part { name: "rage.art"; type: SWALLOW; mouse_events: 0;
-            clip_to: "art_clip";
+         part { name: "speaker_shadow";
+            clip_to: "speaker_clip";
             description { state: "default" 0.0;
-               rel1.to: "art_clip";
-               rel2.to: "art_clip";
+               rel1.to: "speaker_base";
+               rel2.to: "speaker_base";
+               image.normal: "speaker-shadow.png";
             }
          }
-         part { name: "art_glintclip"; type: RECT;
-            clip_to: "art_clip2";
+         part { name: "speaker_lo";
+            clip_to: "speaker_clip";
             description { state: "default" 0.0;
-               rel1.to: "art_clip2";
-               rel2.to: "art_clip2";
-               rel1.offset: 0 -10;
+               rel1.to: "speaker_base";
+               rel1.offset: 0 1;
+               rel2.to: "speaker_base";
+               rel2.relative: 1.0 0.5;
+               rel2.offset: -1 0;
+               image.normal: "speaker-bevel-lo.png";
             }
          }
-         part { name: "artshine"; mouse_events: 0;
-            clip_to: "art_clip2";
+         part { name: "speaker_hi";
+            clip_to: "speaker_clip";
             description { state: "default" 0.0;
-               image.normal: "bg_shine.png";
+               rel1.to: "speaker_base";
+               rel1.relative: 0.0 0.5;
+               rel1.offset: 0 -1;
+               rel2.to: "speaker_base";
+               rel2.offset: -1 -2;
+               image.normal: "speaker-bevel-hi.png";
+            }
+         }
+         part { name: "speaker_cover";
+            clip_to: "speaker_clip";
+            description { state: "default" 0.0;
+               rel1.to: "speaker_base";
+               rel2.to: "speaker_base";
+               image.normal: "speaker-over.png";
+            }
+         }
+         part { name: "speaker_bevel";
+            clip_to: "speaker_clip";
+            description { state: "default" 0.0;
+               rel1.to: "speaker_cover";
+               rel2.to: "speaker_cover";
+               image.normal: "bg_bevel.png";
+               image.border: 1 1 1 1;
+               image.middle: 0;
                fill.smooth: 0;
-               rel1.to: "art_clip2";
-               rel2.to: "art_clip2";
-               align: 0.5 0.0;
-               aspect: (255/120) (255/120);
-               aspect_preference: HORIZONTAL;
             }
          }
-         part { name: "artglint"; mouse_events: 0;
-            clip_to: "art_glintclip";
+         part { name: "speaker_glintclip"; type: RECT;
+            clip_to: "speaker_clip";
+            description { state: "default" 0.0;
+               rel1.to: "speaker_cover";
+               rel2.to: "speaker_cover";
+               rel1.offset: 0 -10;
+            }
+         }
+         part { name: "speaker_glint"; mouse_events: 0;
+            clip_to: "speaker_glintclip";
             description { state: "default" 0.0;
                fixed: 1 1;
                min: 79 5;
@@ -398,27 +412,43 @@ collections {
                rel1 {
                  relative: 0.0 0.0;
                  offset: 0 0;
-                 to: "art_clip2";
+                 to: "speaker_cover";
                }
                rel2 {
                  relative: 1.0 0.0;
                  offset: -1 0;
-                 to: "art_clip2";
+                 to: "speaker_cover";
                }
                image.normal: "bg_glint.png";
             }
          }
-         part { name: "art_bevel2"; mouse_events: 0;
-            clip_to: "art_clip2";
-            description { state: "default" 0.0;
-               image.normal: "bg_bevel.png";
-               image.border: 1 1 1 1;
-               image.middle: 0;
-               fill.smooth: 0;
-               rel1.to: "art_clip2";
-               rel2.to: "art_clip2";
+         program {
+            signal: "state,novideo"; source: "rage";
+            action: STATE_SET "novideo" 0.0;
+            target: "speaker_clip";
+            target: "shadow";
+            target: "statusloc";
+         }
+         program {
+            signal: "state,video"; source: "rage";
+            action: STATE_SET "video" 0.0;
+            target: "speaker_clip";
+            target: "shadow";
+            target: "statusloc";
+         }
+         program {
+            signal: "state,novideo"; source: "rage";
+            script {
+               set_int(novideo, 1);
+            }
+         }
+         program {
+            signal: "state,video"; source: "rage";
+            script {
+               set_int(novideo, 0);
             }
          }
+
          program {
             signal: "action,newvid"; source: "rage";
             action: STATE_SET "default" 0.0;
@@ -441,112 +471,579 @@ collections {
             target: "art_clip2";
          }
 
-         part { name: "rage.content"; type: SWALLOW;
-            description { state: "default" 0.0;
-            }
-         }
-
          part { name: "rage.gesture"; type: SWALLOW;
             description { state: "default" 0.0;
             }
          }
 
-         part { name: "rage.list"; type: SWALLOW;
+         part { name: "controlbar_clip"; type: RECT;
             description { state: "default" 0.0;
-               align: 0.0 0.5;
-               rel1.relative: 1.0 0.0;
-               fixed: 1 1;
+               color: 255 255 255 0;
+               visible: 0;
             }
             description { state: "visible" 0.0;
-               inherit: "default" 0.0;
-               align: 1.0 0.5;
+               color: 255 255 255 255;
                visible: 1;
             }
          }
-         program {
-            signal: "list,state,visible"; source: "rage";
-            action: STATE_SET "visible" 0.0;
-            transition: DECELERATE 0.3;
-            target: "rage.list";
-         }
-         program {
-            signal: "list,state,hidden"; source: "rage";
-            action: STATE_SET "default" 0.0;
-            transition: ACCELERATE 0.5;
-            target: "rage.list";
-            after: "list_hidden";
-         }
-         program { name: "list_hidden";
-            action: SIGNAL_EMIT "list,state,hidden,finished" "rage";
+         part { name: "controlbar"; mouse_events: 0;
+            clip_to: "controlbar_clip";
+            description { state: "default" 0.0;
+               image.normal: "vgrad-dark-inv.png";
+               fill {
+                  smooth: 0;
+                  size.relative: 0.0 1.0;
+                  size.offset: 160 0;
+               }
+               rel1.to: "rage.pos.prev.swallow";
+            }
          }
-         
-         part { name: "poscover"; mouse_events: 0;
-            scale: 1;
+
+         part { name: "posclip"; type: RECT;
             description { state: "default" 0.0;
-               fixed: 1 1;
-               image.normal: "vgrad_shadow_bi.png";
-               rel1.relative: 0.0 1.0;
-               visible: 0;
                color: 255 255 255 0;
+               visible: 0;
             }
             description { state: "visible" 0.0;
-               inherit: "default" 0.0;
                color: 255 255 255 255;
                visible: 1;
-               min: 0 240;
             }
          }
-         
-         part { name: "mute"; mouse_events: 0;
-            scale: 1;
+         part { name: "bar_bg"; type: SPACER;
             description { state: "default" 0.0;
                fixed: 1 1;
-               rel1.to_x: "rage.vol.swallow";
-               rel1.relative: 1.0 0.0;
-               rel1.offset: 5 5;
-               rel2.to_x: "rage.vol.swallow";
-               rel2.relative: 1.0 0.0;
-               rel2.offset: 5 5;
-               align: 0.0 0.0;
-               image.normal: "icon_mute.png";
-               min: 20 20; max: 20 20;
-               aspect: 1.0 1.0; aspect_preference: BOTH;
-               color: 255 255 255 0;
-               visible: 0;
+               rel1.offset: 0 -1;
+               rel1.relative: 0.0 1.0;
+               min: 1 1;
             }
-            description { state: "visible" 0.0;
-               inherit: "default" 0.0;
-               color: 255 255 255 255;
-               visible: 1;
+         }
+         part { name: "rage.dragable.pos"; type: RECT; mouse_events: 0;
+            clip_to: "controlbar_clip";
+            dragable.x: 1 1 0;
+            dragable.y: 0 0 0;
+            dragable.confine: "bar_bg";
+            description { state: "default" 0.0;
+               min: 1 1;
+               max: 1 1;
+               rel1.relative: 0.5 0.0;
+               rel1.to_x: "bar_bg";
+               rel2.relative: 0.5 1.0;
+               rel2.to_x: "bar_bg";
+               color: 0 0 0 0;
+               fixed: 1 1;
             }
          }
-#define STATE_FADE_PROG(_name) \
-         program { \
-            signal: "action,"_name; source: "rage"; \
-            action: STATE_SET "visible" 0.0; \
-            transition: SINUSOIDAL 0.2 CURRENT; \
-            target: _name; \
-            after: _name"2"; \
-         } \
-         program { name: _name"2"; \
-            action: STATE_SET "default" 0.0; \
-            in: 1.0 0.0; \
-            transition: SINUSOIDAL 1.0 CURRENT; \
-            target: _name""; \
+
+         part { name: "bar"; mouse_events: 0;
+            clip_to: "controlbar_clip";
+            description { state: "default" 0.0;
+               fixed: 1 1;
+               image.normal: "posglow.png";
+               image.border: 7 7 7 0;
+               rel1.offset: -7 -9;
+               rel1.relative: 0.0 1.0;
+               rel1.to_x: "bar_bg";
+               rel2.offset: 6 -1;
+               rel2.to_x: "rage.dragable.pos";
+               min: 14 9;
+               fill.smooth: 0;
+            }
          }
-         STATE_FADE_PROG("mute")
-         part { name: "unmute"; mouse_events: 0;
+
+         part { name: "rage.pos.swallow"; type: SWALLOW;
             scale: 1;
             description { state: "default" 0.0;
                fixed: 1 1;
-               rel1.to_x: "rage.vol.swallow";
+               rel1.to: "rage.dragable.pos";
+               rel2.to: "rage.dragable.pos";
+               align: 0.5 1.0;
+               min: 20 20;
+            }
+         }
+         part { name: "posevent"; type: RECT;
+            clip_to: "controlbar_clip";
+            scale: 1;
+            ignore_flags: ON_HOLD;
+            dragable.events: "rage.dragable.pos";
+            description { state: "default" 0.0;
+               fixed: 1 1;
+               rel1.to: "rage.pos.swallow";
+               rel2.to: "rage.pos.swallow";
+               color: 0 0 0 0;
+               min: 20 20;
+               align: 0.5 1.0;
+            }
+         }
+         part { name: "rage.pos.prev.swallow"; type: SWALLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               fixed: 1 1;
+               rel1.relative: 0.0 0.0;
+               rel1.to_y: "dragover_event";
+               rel2.relative: 0.0 0.0;
+               rel2.to_y: "dragover_event";
+               min: 20 20;
+               align: 0.0 1.0;
+            }
+         }
+         part { name: "rage.pos.play.swallow"; type: SWALLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               fixed: 1 1;
+               rel1.to_x: "rage.pos.prev.swallow";
+               rel1.to_y: "dragover_event";
+               rel1.relative: 1.0 0.0;
+               rel2.to_x: "rage.pos.prev.swallow";
+               rel2.to_y: "dragover_event";
+               rel2.relative: 1.0 0.0;
+               min: 20 20;
+               align: 0.0 1.0;
+            }
+         }
+         part { name: "rage.pos.next.swallow"; type: SWALLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               fixed: 1 1;
+               rel1.to_x: "rage.pos.play.swallow";
+               rel1.to_y: "dragover_event";
+               rel1.relative: 1.0 0.0;
+               rel2.to_x: "rage.pos.play.swallow";
+               rel2.to_y: "dragover_event";
+               rel2.relative: 1.0 0.0;
+               min: 20 20;
+               align: 0.0 1.0;
+            }
+         }
+         part { name: "rage.vol.swallow"; type: SWALLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               fixed: 1 1;
+               rel1.to_y: "dragover_event";
+               rel1.relative: 1.0 0.0;
+               rel2.to_y: "dragover_event";
+               rel2.relative: 1.0 0.0;
+               min: 20 20;
+               align: 1.0 1.0;
+            }
+         }
+         part { name: "pos_prev";
+            scale: 1;
+            clip_to: "controlbar_clip";
+            description { state: "default" 0.0;
+               fixed: 1 1;
+               rel1.to: "rage.pos.prev.swallow";
+               rel2.to: "rage.pos.prev.swallow";
+               image.normal: "icon_prev.png";
+               min: 20 20; max: 20 20;
+            }
+            description { state: "active" 0.0;
+               inherit: "default" 0.0;
+               image.normal: "icon_prev2.png";
+            }
+         }
+         part { name: "pos_prevev"; type: RECT;
+            description { state: "default" 0.0;
+               rel1.to: "rage.pos.prev.swallow";
+               rel2.to: "rage.pos.prev.swallow";
+               color: 0 0 0 0;
+            }
+         }
+         program {
+            signal: "mouse,down,1"; source: "pos_prevev";
+            action: STATE_SET "active" 0.0;
+            target: "pos_prev";
+         }
+         program {
+            signal: "mouse,up,1"; source: "pos_prevev";
+            action: STATE_SET "default" 0.0;
+            target: "pos_prev";
+         }
+
+         part { name: "playpause"; type: RECT;
+            clip_to: "controlbar_clip";
+            description { state: "default" 0.0;
+               visible: 0;
+            }
+            description { state: "pause" 0.0;
+               visible: 1;
+            }
+         }
+         part { name: "playpause2"; type: RECT;
+            clip_to: "controlbar_clip";
+            description { state: "default" 0.0;
+               visible: 1;
+            }
+            description { state: "pause" 0.0;
+               visible: 0;
+            }
+         }
+
+         part { name: "pos_pause";
+            scale: 1;
+            clip_to: "playpause";
+            description { state: "default" 0.0;
+               fixed: 1 1;
+               rel1.to: "rage.pos.play.swallow";
+               rel2.to: "rage.pos.play.swallow";
+               image.normal: "icon_play.png";
+               min: 20 20; max: 20 20;
+            }
+            description { state: "active" 0.0;
+               inherit: "default" 0.0;
+               image.normal: "icon_play2.png";
+            }
+         }
+         part { name: "pos_pauseev"; type: RECT;
+            clip_to: "playpause";
+            description { state: "default" 0.0;
+               rel1.to: "rage.pos.play.swallow";
+               rel2.to: "rage.pos.play.swallow";
+               color: 0 0 0 0;
+            }
+         }
+         program {
+            signal: "mouse,down,1"; source: "pos_pauseev";
+            action: STATE_SET "active" 0.0;
+            target: "pos_pause";
+         }
+         program {
+            signal: "mouse,up,1"; source: "pos_pauseev";
+            action: STATE_SET "default" 0.0;
+            target: "pos_pause";
+         }
+         
+         part { name: "pos_play";
+            scale: 1;
+            clip_to: "playpause2";
+            description { state: "default" 0.0;
+               fixed: 1 1;
+               rel1.to: "rage.pos.play.swallow";
+               rel2.to: "rage.pos.play.swallow";
+               min: 20 20; max: 20 20;
+               image.normal: "icon_pause.png";
+            }
+            description { state: "active" 0.0;
+               inherit: "default" 0.0;
+               image.normal: "icon_pause2.png";
+            }
+         }
+         part { name: "pos_playev"; type: RECT;
+            clip_to: "playpause2";
+            description { state: "default" 0.0;
+               rel1.to: "rage.pos.play.swallow";
+               rel2.to: "rage.pos.play.swallow";
+               color: 0 0 0 0;
+            }
+         }
+         program {
+            signal: "mouse,down,1"; source: "pos_playev";
+            action: STATE_SET "active" 0.0;
+            target: "pos_play";
+         }
+         program {
+            signal: "mouse,up,1"; source: "pos_playev";
+            action: STATE_SET "default" 0.0;
+            target: "pos_play";
+         }
+         
+         program {
+            signal: "action,play"; source: "rage";
+            action: STATE_SET "default" 0.0;
+            target: "playpause";
+            target: "playpause2";
+         }
+         program {
+            signal: "action,pause"; source: "rage";
+            action: STATE_SET "pause" 0.0;
+            target: "playpause";
+            target: "playpause2";
+         }
+
+         part { name: "pos_next";
+            scale: 1;
+            clip_to: "controlbar_clip";
+            description { state: "default" 0.0;
+               fixed: 1 1;
+               rel1.to: "rage.pos.next.swallow";
+               rel2.to: "rage.pos.next.swallow";
+               image.normal: "icon_next.png";
+               min: 20 20; max: 20 20;
+            }
+            description { state: "active" 0.0;
+               inherit: "default" 0.0;
+               image.normal: "icon_next2.png";
+            }
+         }
+         part { name: "pos_nextev"; type: RECT;
+            description { state: "default" 0.0;
+               rel1.to: "rage.pos.next.swallow";
+               rel2.to: "rage.pos.next.swallow";
+               color: 0 0 0 0;
+            }
+         }
+         program {
+            signal: "mouse,down,1"; source: "pos_nextev";
+            action: STATE_SET "active" 0.0;
+            target: "pos_next";
+         }
+         program {
+            signal: "mouse,up,1"; source: "pos_nextev";
+            action: STATE_SET "default" 0.0;
+            target: "pos_next";
+         }
+
+         part { name: "vol"; scale: 1;
+            clip_to: "controlbar_clip";
+            description { state: "default" 0.0;
+               fixed: 1 1;
+               rel1.to: "rage.vol.swallow";
+               rel2.to: "rage.vol.swallow";
+               image.normal: "icon_volume.png";
+               min: 20 20; max: 20 20;
+            }
+            description { state: "active" 0.0;
+               inherit: "default" 0.0;
+               image.normal: "icon_volume2.png";
+            }
+         }
+         part { name: "volev"; type: RECT;
+            clip_to: "controlbar_clip";
+            description { state: "default" 0.0;
+               rel1.to: "rage.vol.swallow";
+               rel2.to: "rage.vol.swallow";
+               color: 0 0 0 0;
+            }
+         }
+         program {
+            signal: "mouse,down,1"; source: "volev";
+            action: STATE_SET "active" 0.0;
+            target: "vol";
+         }
+         program {
+            signal: "mouse,up,1"; source: "volev";
+            action: STATE_SET "default" 0.0;
+            target: "vol";
+         }
+
+         program {
+            signal: "mouse,clicked,1"; source: "optev";
+            action: SIGNAL_EMIT "pos,action,options" "rage";
+         }
+         
+         program {
+            signal: "mouse,clicked,1"; source: "fullscreenev";
+            action: SIGNAL_EMIT "win,fullscreen" "rage";
+         }
+         program {
+            signal: "mouse,clicked,1"; source: "unfullscreenev";
+            action: SIGNAL_EMIT "win,unfullscreen" "rage";
+         }
+         
+         program {
+            signal: "mouse,clicked,1"; source: "closeev";
+            action: SIGNAL_EMIT "win,close" "rage";
+         }
+         
+         program {
+            signal: "mouse,clicked,1"; source: "pos_prevev";
+            action: SIGNAL_EMIT "pos,action,prev" "rage";
+         }
+         program {
+            signal: "mouse,clicked,1"; source: "pos_nextev";
+            action: SIGNAL_EMIT "pos,action,next" "rage";
+         }
+         program {
+            signal: "mouse,clicked,1"; source: "pos_playev";
+            action: SIGNAL_EMIT "pos,action,pause" "rage";
+         }
+         program {
+            signal: "mouse,clicked,1"; source: "pos_pauseev";
+            action: SIGNAL_EMIT "pos,action,play" "rage";
+         }
+         
+         part { name: "rage.pos"; type: TEXT; mouse_events: 0;
+            clip_to: "controlbar_clip";
+            effect: GLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               fixed: 1 1;
+               rel1.to: "slash";
+               rel1.relative: 0.0 0.0;
+               rel1.offset: -1 0;
+               rel2.to: "slash";
+               rel2.relative: 0.0 1.0;
+               rel2.offset: -1 -1;
+               color: 255 255 255 255;
+               color2: 51 153 255 128;
+               color3: 51 153 255 20;
+               align: 1.0 0.5;
+               text { font: "Sans"; size: 8;
+                  align: 1.0 0.5;
+                  min: 1 1;
+                  elipsis: -1;
+               }
+            }
+         }
+         part { name: "slash"; type: TEXT; mouse_events: 0;
+            clip_to: "controlbar_clip";
+            effect: GLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               fixed: 1 1;
+               rel1.to: "rage.length";
+               rel1.relative: 0.0 0.0;
+               rel1.offset: -1 0;
+               rel2.to: "rage.length";
+               rel2.relative: 0.0 1.0;
+               rel2.offset: -1 -1;
+               color: 255 255 255 255;
+               color2: 51 153 255 128;
+               color3: 51 153 255 20;
+               align: 1.0 0.5;
+               text { font: "Sans"; size: 8;
+                  align: 1.0 0.5;
+                  min: 1 1;
+                  text: "/";
+                  elipsis: -1;
+               }
+            }
+         }
+         part { name: "rage.length"; type: TEXT; mouse_events: 0;
+            clip_to: "controlbar_clip";
+            effect: GLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               fixed: 1 1;
+               rel1.to_y: "pos_next";
+               rel1.to_x: "vol";
+               rel1.relative: 0.0 0.0;
+               rel1.offset: -1 0;
+               rel2.to_y: "pos_next";
+               rel2.to_x: "vol";
+               rel2.relative: 0.0 1.0;
+               rel2.offset: -1 -1;
+               color: 255 255 255 255;
+               color2: 51 153 255 128;
+               color3: 51 153 255 20;
+               align: 1.0 0.5;
+               text { font: "Sans"; size: 8;
+                  align: 1.0 0.5;
+                  min: 1 1;
+                  elipsis: -1;
+               }
+            }
+         }
+
+         part { name: "controlbar_bevel"; mouse_events: 0;
+            clip_to: "controlbar_clip";
+            description { state: "default" 0.0;
+               image.normal: "bg_bevel.png";
+               image.border: 1 1 1 1;
+               image.middle: 0;
+               fill.smooth: 0;
+               rel1.to: "controlbar";
+               rel2.to: "controlbar";
+            }
+         }
+         part { name: "controlbar_glintclip"; type: RECT;
+            clip_to: "controlbar_clip";
+            description { state: "default" 0.0;
+               rel1.to: "controlbar";
+               rel2.to: "controlbar";
+               rel1.offset: 0 -10;
+            }
+         }
+         part { name: "controlbar_glint"; mouse_events: 0;
+            clip_to: "controlbar_glintclip";
+            description { state: "default" 0.0;
+               fixed: 1 1;
+               min: 79 5;
+               max: 79 5;
+               rel1 {
+                 relative: 0.0 0.0;
+                 offset: 0 0;
+                 to: "controlbar";
+               }
+               rel2 {
+                 relative: 1.0 0.0;
+                 offset: -1 0;
+                 to: "controlbar";
+               }
+               image.normal: "bg_glint.png";
+            }
+         }
+
+         part { name: "rage.list"; type: SWALLOW;
+            description { state: "default" 0.0;
+               align: 0.0 0.5;
                rel1.relative: 1.0 0.0;
-               rel1.offset: 5 5;
-               rel2.to_x: "rage.vol.swallow";
-               rel2.relative: 1.0 0.0;
-               rel2.offset: 5 5;
+               fixed: 1 1;
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               align: 1.0 0.5;
+               visible: 1;
+            }
+         }
+         program {
+            signal: "list,state,visible"; source: "rage";
+            action: STATE_SET "visible" 0.0;
+            transition: DECELERATE 0.3;
+            target: "rage.list";
+         }
+         program {
+            signal: "list,state,hidden"; source: "rage";
+            action: STATE_SET "default" 0.0;
+            transition: ACCELERATE 0.5;
+            target: "rage.list";
+            after: "list_hidden";
+         }
+         program { name: "list_hidden";
+            action: SIGNAL_EMIT "list,state,hidden,finished" "rage";
+         }
+
+#define STATE_FADE_PROG(_name) \
+         program { \
+            signal: "action,"_name; source: "rage"; \
+            action: STATE_SET "visible" 0.0; \
+            transition: SINUSOIDAL 0.2 CURRENT; \
+            target: _name; \
+            after: _name"2"; \
+         } \
+         program { name: _name"2"; \
+            action: STATE_SET "default" 0.0; \
+            in: 1.0 0.0; \
+            transition: SINUSOIDAL 1.0 CURRENT; \
+            target: _name""; \
+         }
+         part { name: "mute"; mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               fixed: 1 1;
+               rel2.relative: 0.0 0.0;
+               rel2.offset: 0 0;
                align: 0.0 0.0;
-               image.normal: "icon_volume.png";
+               image.normal: "icon_mute.png";
+               min: 20 20; max: 20 20;
+               aspect: 1.0 1.0; aspect_preference: BOTH;
+               color: 255 255 255 0;
+               visible: 0;
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               color: 255 255 255 255;
+               visible: 1;
+            }
+         }
+         STATE_FADE_PROG("mute")
+         part { name: "unmute"; mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               fixed: 1 1;
+               rel2.relative: 0.0 0.0;
+               rel2.offset: 0 0;
+               align: 0.0 0.0;
+               image.normal: "icon_volume2.png";
                min: 20 20; max: 20 20;
                aspect: 1.0 1.0; aspect_preference: BOTH;
                color: 255 255 255 0;
@@ -564,10 +1061,10 @@ collections {
             description { state: "default" 0.0;
                fixed: 1 1;
                rel1.relative: 1.0 0.0;
-               rel1.offset: 5 5;
+               rel1.offset: 0 0;
                rel1.to_x: "mute";
                rel2.relative: 1.0 0.0;
-               rel2.offset: 5 5;
+               rel2.offset: 0 0;
                rel2.to_x: "mute";
                align: 0.0 0.0;
                image.normal: "icon_refresh.png";
@@ -588,10 +1085,10 @@ collections {
             description { state: "default" 0.0;
                fixed: 1 1;
                rel1.relative: 1.0 0.0;
-               rel1.offset: 5 5;
+               rel1.offset: 0 0;
                rel1.to_x: "mute";
                rel2.relative: 1.0 0.0;
-               rel2.offset: 5 5;
+               rel2.offset: 0 0;
                rel2.to_x: "mute";
                align: 0.0 0.0;
                image.normal: "icon_arrow_right.png";
@@ -607,20 +1104,27 @@ collections {
             }
          }
          STATE_FADE_PROG("sequential")
-         
+
+         part { name: "statusloc"; type: SPACER;
+            description { state: "default" 0.0;
+               rel1.to: "rage.content";
+               rel2.to: "rage.content";
+            }
+            description { state: "novideo" 0.0;
+               rel1.to: "speaker_base";
+               rel2.to: "speaker_base";
+            }
+         }
          part { name: "play"; mouse_events: 0;
             scale: 1;
             description { state: "default" 0.0;
                fixed: 1 1;
-               rel1.to_x: "rage.options.swallow";
-               rel1.relative: 0.0 0.0;
-               rel1.offset: -6 5;
-               rel2.to_x: "rage.options.swallow";
-               rel2.relative: 0.0 0.0;
-               rel2.offset: -6 5;
-               align: 1.0 0.0;
-               image.normal: "icon_play.png";
-               min: 20 20; max: 20 20;
+               rel1.relative: 0.5 0.5;
+               rel2.relative: 0.5 0.5;
+               rel1.to: "statusloc";
+               rel2.to: "statusloc";
+               image.normal: "icon_play2.png";
+               min: 40 40; max: 40 40;
                aspect: 1.0 1.0; aspect_preference: BOTH;
                color: 255 255 255 0;
                visible: 0;
@@ -636,15 +1140,12 @@ collections {
             scale: 1;
             description { state: "default" 0.0;
                fixed: 1 1;
-               rel1.to_x: "rage.options.swallow";
-               rel1.relative: 0.0 0.0;
-               rel1.offset: -6 5;
-               rel2.to_x: "rage.options.swallow";
-               rel2.relative: 0.0 0.0;
-               rel2.offset: -6 5;
-               align: 1.0 0.0;
-               image.normal: "icon_pause.png";
-               min: 20 20; max: 20 20;
+               rel1.relative: 0.5 0.5;
+               rel2.relative: 0.5 0.5;
+               rel1.to: "statusloc";
+               rel2.to: "statusloc";
+               image.normal: "icon_pause2.png";
+               min: 40 40; max: 40 40;
                aspect: 1.0 1.0; aspect_preference: BOTH;
                color: 255 255 255 0;
                visible: 0;
@@ -660,13 +1161,12 @@ collections {
             scale: 1;
             description { state: "default" 0.0;
                fixed: 1 1;
-               rel1.relative: 1.0 0.0;
-               rel1.offset: -6 5;
-               rel2.relative: 1.0 0.0;
-               rel2.offset: -6 5;
-               align: 1.0 0.0;
+               rel1.relative: 0.5 0.5;
+               rel2.relative: 0.5 0.5;
+               rel1.to: "statusloc";
+               rel2.to: "statusloc";
                image.normal: "icon_stop.png";
-               min: 20 20; max: 20 20;
+               min: 40 40; max: 40 40;
                aspect: 1.0 1.0; aspect_preference: BOTH;
                color: 255 255 255 0;
                visible: 0;
@@ -678,20 +1178,16 @@ collections {
             }
          }
          STATE_FADE_PROG("stop")
-
          part { name: "eject"; mouse_events: 0;
             scale: 1;
             description { state: "default" 0.0;
                fixed: 1 1;
-               rel1.relative: 0.0 0.0;
-               rel1.offset: -6 5;
-               rel1.to_x: "play";
-               rel2.relative: 0.0 0.0;
-               rel2.offset: -6 5;
-               rel2.to_x: "play";
-               align: 1.0 0.0;
+               rel1.relative: 0.5 0.5;
+               rel2.relative: 0.5 0.5;
+               rel1.to: "statusloc";
+               rel2.to: "statusloc";
                image.normal: "icon_eject.png";
-               min: 20 20; max: 20 20;
+               min: 40 40; max: 40 40;
                aspect: 1.0 1.0; aspect_preference: BOTH;
                color: 255 255 255 0;
                visible: 0;
@@ -703,18 +1199,16 @@ collections {
             }
          }
          STATE_FADE_PROG("eject")
-
          part { name: "forward"; mouse_events: 0;
             scale: 1;
             description { state: "default" 0.0;
                fixed: 1 1;
-               rel1.relative: 1.0 0.5;
-               rel1.offset: -6 0;
-               rel2.relative: 1.0 0.5;
-               rel2.offset: -6 -1;
-               align: 1.0 0.5;
+               rel1.relative: 0.5 0.5;
+               rel2.relative: 0.5 0.5;
+               rel1.to: "statusloc";
+               rel2.to: "statusloc";
                image.normal: "icon_forward.png";
-               min: 20 20; max: 20 20;
+               min: 40 40; max: 40 40;
                aspect: 1.0 1.0; aspect_preference: BOTH;
                color: 255 255 255 0;
                visible: 0;
@@ -730,13 +1224,12 @@ collections {
             scale: 1;
             description { state: "default" 0.0;
                fixed: 1 1;
-               rel1.relative: 1.0 0.5;
-               rel1.offset: -6 0;
-               rel2.relative: 1.0 0.5;
-               rel2.offset: -6 -1;
-               align: 1.0 0.5;
-               image.normal: "icon_next.png";
-               min: 20 20; max: 20 20;
+               rel1.relative: 0.5 0.5;
+               rel2.relative: 0.5 0.5;
+               rel1.to: "statusloc";
+               rel2.to: "statusloc";
+               image.normal: "icon_next2.png";
+               min: 40 40; max: 40 40;
                aspect: 1.0 1.0; aspect_preference: BOTH;
                color: 255 255 255 0;
                visible: 0;
@@ -748,40 +1241,16 @@ collections {
             }
          }
          STATE_FADE_PROG("next")
-
          part { name: "rewind"; mouse_events: 0;
             scale: 1;
             description { state: "default" 0.0;
                fixed: 1 1;
-               rel1.relative: 0.0 0.5;
-               rel1.offset: 5 0;
-               rel2.relative: 0.0 0.5;
-               rel2.offset: 5 -1;
-               align: 0.0 0.5;
+               rel1.relative: 0.5 0.5;
+               rel2.relative: 0.5 0.5;
+               rel1.to: "statusloc";
+               rel2.to: "statusloc";
                image.normal: "icon_rewind.png";
-               min: 20 20; max: 20 20;
-               aspect: 1.0 1.0; aspect_preference: BOTH;
-               color: 255 255 255 0;
-               visible: 0;
-            }
-            description { state: "visible" 0.0;
-               inherit: "default" 0.0;
-               color: 255 255 255 255;
-               visible: 1;
-            }
-         }
-         STATE_FADE_PROG("rewind")
-         part { name: "prev"; mouse_events: 0;
-            scale: 1;
-            description { state: "default" 0.0;
-               fixed: 1 1;
-               rel1.relative: 0.0 0.5;
-               rel1.offset: 5 0;
-               rel2.relative: 0.0 0.5;
-               rel2.offset: 5 -1;
-               align: 0.0 0.5;
-               image.normal: "icon_prev.png";
-               min: 20 20; max: 20 20;
+               min: 40 40; max: 40 40;
                aspect: 1.0 1.0; aspect_preference: BOTH;
                color: 255 255 255 0;
                visible: 0;
@@ -792,117 +1261,38 @@ collections {
                visible: 1;
             }
          }
-         STATE_FADE_PROG("prev")
-
-         part { name: "posclip"; type: RECT;
-            description { state: "default" 0.0;
-               color: 255 255 255 0;
-               visible: 0;
-            }
-            description { state: "visible" 0.0;
-               color: 255 255 255 255;
-               visible: 1;
-            }
-         }
-         part { name: "bar_bg"; type: SPACER;
-            description { state: "default" 0.0;
-               fixed: 1 1;
-               rel1.offset: 0 -1;
-               rel1.relative: 0.0 1.0;
-               min: 1 1;
-            }
-         }
-         part { name: "rage.dragable.pos"; type: RECT; mouse_events: 0;
-            clip_to: "posclip";
-            dragable.x: 1 1 0;
-            dragable.y: 0 0 0;
-            dragable.confine: "bar_bg";
-            description { state: "default" 0.0;
-               min: 1 1;
-               max: 1 1;
-               rel1.relative: 0.5 0.0;
-               rel1.to_x: "bar_bg";
-               rel2.relative: 0.5 1.0;
-               rel2.to_x: "bar_bg";
-               color: 0 0 255 128;
-               fixed: 1 1;
-            }
-         }
-         
-         part { name: "bar"; mouse_events: 0;
-            clip_to: "posclip";
-            description { state: "default" 0.0;
-               fixed: 1 1;
-               image.normal: "horizontal_separated_bar_small_glow.png";
-               image.border: 4 4 4 44;
-               rel1.offset: -3 -7;
-               rel1.relative: 0.0 1.0;
-               rel1.to_x: "bar_bg";
-               rel2.offset: 2 2;
-               rel2.to_x: "rage.dragable.pos";
-               min: 8 0;
-               fill.smooth: 0;
-            }
-         }
-         part { name: "pos"; mouse_events: 0;
-            scale: 1;
-            clip_to: "posclip";
-            description { state: "default" 0.0;
-               fixed: 1 1;
-               image.normal: "pos_indicator";
-               min: 15 13;
-               max: 15 13;
-               rel1.to: "rage.dragable.pos";
-               rel2.to: "rage.dragable.pos";
-               align: 0.5 0.815;
-            }
-         }
-         
-         part { name: "rage.pos.swallow"; type: SWALLOW;
-            scale: 1;
-            description { state: "default" 0.0;
-               fixed: 1 1;
-               rel1.to: "rage.dragable.pos";
-               rel2.to: "rage.dragable.pos";
-               align: 0.5 1.0;
-               min: 20 20;
-            }
-         }
-         part { name: "posevent"; type: RECT;
-            clip_to: "posclip";
-            scale: 1;
-            ignore_flags: ON_HOLD;
-            dragable.events: "rage.dragable.pos";
-            description { state: "default" 0.0;
-               fixed: 1 1;
-               rel1.to: "rage.pos.swallow";
-               rel2.to: "rage.pos.swallow";
-               color: 0 0 0 0;
-               min: 24 24;
-               align: 0.5 1.0;
-            }
-         }
-         part { name: "rage.vol.swallow"; type: SWALLOW;
+         STATE_FADE_PROG("rewind")
+         part { name: "prev"; mouse_events: 0;
             scale: 1;
             description { state: "default" 0.0;
                fixed: 1 1;
-               rel1.relative: 0.0 0.0;
-               rel1.offset: 5 5;
-               rel2.relative: 0.0 0.0;
-               rel2.offset: 5 5;
-               min: 20 20;
-               align: 0.0 0.0;
+               rel1.relative: 0.5 0.5;
+               rel2.relative: 0.5 0.5;
+               rel1.to: "statusloc";
+               rel2.to: "statusloc";
+               image.normal: "icon_prev2.png";
+               min: 40 40; max: 40 40;
+               aspect: 1.0 1.0; aspect_preference: BOTH;
+               color: 255 255 255 0;
+               visible: 0;
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               color: 255 255 255 255;
+               visible: 1;
             }
          }
+         STATE_FADE_PROG("prev")
+
          part { name: "rage.options.swallow"; type: SWALLOW;
             scale: 1;
             description { state: "default" 0.0;
                fixed: 1 1;
                rel1.relative: 0.0 0.0;
-               rel1.offset: -6 0;
+               rel1.offset: -1 0;
                rel1.to: "rage.win.fullscreen";
                rel2.relative: 0.0 1.0;
-               rel2.offset: -6 -1;
+               rel2.offset: -1 -1;
                rel2.to: "rage.win.fullscreen";
                min: 20 20;
                align: 1.0 0.0;
@@ -913,10 +1303,10 @@ collections {
             description { state: "default" 0.0;
                fixed: 1 1;
                rel1.relative: 0.0 0.0;
-               rel1.offset: -6 0;
+               rel1.offset: -1 0;
                rel1.to: "rage.win.close";
                rel2.relative: 0.0 1.0;
-               rel2.offset: -6 -1;
+               rel2.offset: -1 -1;
                rel2.to: "rage.win.close";
                min: 20 20;
                align: 1.0 0.0;
@@ -927,93 +1317,22 @@ collections {
             description { state: "default" 0.0;
                fixed: 1 1;
                rel1.relative: 1.0 0.0;
-               rel1.offset: 0 5;
+               rel1.offset: 0 0;
                rel2.relative: 1.0 0.0;
-               rel2.offset: 0 5;
+               rel2.offset: 0 0;
                min: 20 20;
                align: 0.0 0.0;
             }
             description { state: "fullscreen" 0.0;
                fixed: 1 1;
                rel1.relative: 1.0 0.0;
-               rel1.offset: -6 5;
+               rel1.offset: -1 0;
                rel2.relative: 1.0 0.0;
-               rel2.offset: -6 5;
+               rel2.offset: -1 0;
                min: 20 20;
                align: 1.0 0.0;
             }
          }
-         part { name: "rage.pos.prev.swallow"; type: SWALLOW;
-            scale: 1;
-            description { state: "default" 0.0;
-               fixed: 1 1;
-               rel1.relative: 0.0 0.0;
-               rel1.to_y: "dragover_event";
-               rel2.relative: 0.0 0.0;
-               rel2.to_y: "dragover_event";
-               min: 20 20;
-               align: 0.0 1.0;
-            }
-         }
-         part { name: "rage.pos.play.swallow"; type: SWALLOW;
-            scale: 1;
-            description { state: "default" 0.0;
-               fixed: 1 1;
-               rel1.to_x: "rage.pos.prev.swallow";
-               rel1.to_y: "dragover_event";
-               rel1.relative: 1.0 0.0;
-               rel2.to_x: "rage.pos.prev.swallow";
-               rel2.to_y: "dragover_event";
-               rel2.relative: 1.0 0.0;
-               min: 20 20;
-               align: 0.0 1.0;
-            }
-         }
-         part { name: "rage.pos.next.swallow"; type: SWALLOW;
-            scale: 1;
-            description { state: "default" 0.0;
-               fixed: 1 1;
-               rel1.relative: 1.0 0.0;
-               rel1.to_y: "dragover_event";
-               rel2.relative: 1.0 0.0;
-               rel2.to_y: "dragover_event";
-               min: 20 20;
-               align: 1.0 1.0;
-            }
-         }
-         
-         part { name: "vol";
-            scale: 1;
-            clip_to: "posclip";
-            description { state: "default" 0.0;
-               fixed: 1 1;
-               rel1.to: "rage.vol.swallow";
-               rel2.to: "rage.vol.swallow";
-               image.normal: "icon_volume.png";
-               min: 20 20; max: 20 20;
-            }
-            description { state: "active" 0.0;
-               inherit: "default" 0.0;
-               image.normal: "icon_volume2.png";
-            }
-         }
-         part { name: "volev"; type: RECT;
-            description { state: "default" 0.0;
-               rel1.to: "rage.vol.swallow";
-               rel2.to: "rage.vol.swallow";
-               color: 0 0 0 0;
-            }
-         }
-         program {
-            signal: "mouse,down,1"; source: "volev";
-            action: STATE_SET "active" 0.0;
-            target: "vol";
-         }
-         program {
-            signal: "mouse,up,1"; source: "volev";
-            action: STATE_SET "default" 0.0;
-            target: "vol";
-         }
          
          part { name: "close";
             scale: 1;
@@ -1047,7 +1366,7 @@ collections {
             action: STATE_SET "default" 0.0;
             target: "close";
          }
-         
+
          part { name: "fullscreenclip"; type: RECT;
             clip_to: "posclip";
             description { state: "default" 0.0;
@@ -1056,408 +1375,136 @@ collections {
                visible: 1;
             }
             description { state: "fullscreen" 0.0;
-               inherit: "default" 0.0;
-               visible: 0;
-            }
-         }
-         part { name: "unfullscreenclip"; type: RECT;
-            clip_to: "posclip";
-            description { state: "default" 0.0;
-               rel1.to: "unfullscreen";
-               rel2.to: "unfullscreen";
-               visible: 0;
-            }
-            description { state: "fullscreen" 0.0;
-               inherit: "default" 0.0;
-               visible: 1;
-            }
-         }
-         program {
-            signal: "state,win,fullscreen"; source: "rage";
-            action: STATE_SET "fullscreen" 0.0;
-            target: "fullscreenclip";
-            target: "unfullscreenclip";
-            target: "rage.win.close";
-         }
-         program {
-            signal: "state,win,normal"; source: "rage";
-            action: STATE_SET "default" 0.0;
-            target: "fullscreenclip";
-            target: "unfullscreenclip";
-            target: "rage.win.close";
-         }
-         part { name: "fullscreen";
-            scale: 1;
-            clip_to: "fullscreenclip";
-            description { state: "default" 0.0;
-               fixed: 1 1;
-               rel1.to: "rage.win.fullscreen";
-               rel2.to: "rage.win.fullscreen";
-               image.normal: "icon_fullscreen.png";
-               min: 20 20; max: 20 20;
-            }
-            description { state: "active" 0.0;
-               inherit: "default" 0.0;
-               image.normal: "icon_fullscreen2.png";
-            }
-         }
-         part { name: "fullscreenev"; type: RECT;
-            clip_to: "fullscreenclip";
-            description { state: "default" 0.0;
-               rel1.to: "rage.win.fullscreen";
-               rel2.to: "rage.win.fullscreen";
-               color: 0 0 0 0;
-            }
-         }
-         program {
-            signal: "mouse,down,1"; source: "fullscreenev";
-            action: STATE_SET "active" 0.0;
-            target: "fullscreen";
-         }
-         program {
-            signal: "mouse,up,1"; source: "fullscreenev";
-            action: STATE_SET "default" 0.0;
-            target: "fullscreen";
-         }
-         part { name: "unfullscreen";
-            scale: 1;
-            clip_to: "unfullscreenclip";
-            description { state: "default" 0.0;
-               fixed: 1 1;
-               rel1.to: "rage.win.fullscreen";
-               rel2.to: "rage.win.fullscreen";
-               image.normal: "icon_unfullscreen.png";
-               min: 20 20; max: 20 20;
-            }
-            description { state: "active" 0.0;
-               inherit: "default" 0.0;
-               image.normal: "icon_unfullscreen2.png";
-            }
-         }
-         part { name: "unfullscreenev"; type: RECT;
-            clip_to: "unfullscreenclip";
-            description { state: "default" 0.0;
-               rel1.to: "rage.win.fullscreen";
-               rel2.to: "rage.win.fullscreen";
-               color: 0 0 0 0;
-            }
-         }
-         program {
-            signal: "mouse,down,1"; source: "unfullscreenev";
-            action: STATE_SET "active" 0.0;
-            target: "unfullscreen";
-         }
-         program {
-            signal: "mouse,up,1"; source: "unfullscreenev";
-            action: STATE_SET "default" 0.0;
-            target: "unfullscreen";
-         }
-         
-         part { name: "opt";
-            scale: 1;
-            clip_to: "posclip";
-            description { state: "default" 0.0;
-               fixed: 1 1;
-               rel1.to: "rage.options.swallow";
-               rel2.to: "rage.options.swallow";
-               image.normal: "icon_spanner.png";
-               min: 20 20; max: 20 20;
-            }
-            description { state: "active" 0.0;
-               inherit: "default" 0.0;
-               image.normal: "icon_spanner2.png";
-            }
-         }
-         part { name: "optev"; type: RECT;
-            description { state: "default" 0.0;
-               rel1.to: "rage.options.swallow";
-               rel2.to: "rage.options.swallow";
-               color: 0 0 0 0;
-            }
-         }
-         program {
-            signal: "mouse,down,1"; source: "optev";
-            action: STATE_SET "active" 0.0;
-            target: "opt";
-         }
-         program {
-            signal: "mouse,up,1"; source: "optev";
-            action: STATE_SET "default" 0.0;
-            target: "opt";
-         }
-         
-         part { name: "pos_prev";
-            scale: 1;
-            clip_to: "posclip";
-            description { state: "default" 0.0;
-               fixed: 1 1;
-               rel1.to: "rage.pos.prev.swallow";
-               rel2.to: "rage.pos.prev.swallow";
-               image.normal: "icon_prev.png";
-               min: 20 20; max: 20 20;
-            }
-            description { state: "active" 0.0;
-               inherit: "default" 0.0;
-               image.normal: "icon_prev2.png";
-            }
-         }
-         part { name: "pos_prevev"; type: RECT;
-            description { state: "default" 0.0;
-               rel1.to: "rage.pos.prev.swallow";
-               rel2.to: "rage.pos.prev.swallow";
-               color: 0 0 0 0;
-            }
-         }
-         program {
-            signal: "mouse,down,1"; source: "pos_prevev";
-            action: STATE_SET "active" 0.0;
-            target: "pos_prev";
-         }
-         program {
-            signal: "mouse,up,1"; source: "pos_prevev";
-            action: STATE_SET "default" 0.0;
-            target: "pos_prev";
+               inherit: "default" 0.0;
+               visible: 0;
+            }
          }
-
-         part { name: "playpause"; type: RECT;
+         part { name: "unfullscreenclip"; type: RECT;
             clip_to: "posclip";
             description { state: "default" 0.0;
+               rel1.to: "unfullscreen";
+               rel2.to: "unfullscreen";
                visible: 0;
             }
-            description { state: "pause" 0.0;
+            description { state: "fullscreen" 0.0;
+               inherit: "default" 0.0;
                visible: 1;
             }
          }
-         part { name: "pos_pause";
+         program {
+            signal: "state,win,fullscreen"; source: "rage";
+            action: STATE_SET "fullscreen" 0.0;
+            target: "fullscreenclip";
+            target: "unfullscreenclip";
+            target: "rage.win.close";
+         }
+         program {
+            signal: "state,win,normal"; source: "rage";
+            action: STATE_SET "default" 0.0;
+            target: "fullscreenclip";
+            target: "unfullscreenclip";
+            target: "rage.win.close";
+         }
+         part { name: "fullscreen";
             scale: 1;
-            clip_to: "playpause";
+            clip_to: "fullscreenclip";
             description { state: "default" 0.0;
                fixed: 1 1;
-               rel1.to: "rage.pos.play.swallow";
-               rel2.to: "rage.pos.play.swallow";
-               image.normal: "icon_pause.png";
+               rel1.to: "rage.win.fullscreen";
+               rel2.to: "rage.win.fullscreen";
+               image.normal: "icon_fullscreen.png";
                min: 20 20; max: 20 20;
             }
             description { state: "active" 0.0;
                inherit: "default" 0.0;
-               image.normal: "icon_pause2.png";
+               image.normal: "icon_fullscreen2.png";
             }
          }
-         part { name: "pos_pauseev"; type: RECT;
-            clip_to: "playpause";
+         part { name: "fullscreenev"; type: RECT;
+            clip_to: "fullscreenclip";
             description { state: "default" 0.0;
-               rel1.to: "rage.pos.play.swallow";
-               rel2.to: "rage.pos.play.swallow";
+               rel1.to: "rage.win.fullscreen";
+               rel2.to: "rage.win.fullscreen";
                color: 0 0 0 0;
             }
          }
          program {
-            signal: "mouse,down,1"; source: "pos_pauseev";
+            signal: "mouse,down,1"; source: "fullscreenev";
             action: STATE_SET "active" 0.0;
-            target: "pos_pause";
+            target: "fullscreen";
          }
          program {
-            signal: "mouse,up,1"; source: "pos_pauseev";
+            signal: "mouse,up,1"; source: "fullscreenev";
             action: STATE_SET "default" 0.0;
-            target: "pos_pause";
-         }
-         
-         part { name: "playpause2"; type: RECT;
-            clip_to: "posclip";
-            description { state: "default" 0.0;
-               visible: 1;
-            }
-            description { state: "pause" 0.0;
-               visible: 0;
-            }
+            target: "fullscreen";
          }
-         part { name: "pos_play";
+         part { name: "unfullscreen";
             scale: 1;
-            clip_to: "playpause2";
+            clip_to: "unfullscreenclip";
             description { state: "default" 0.0;
                fixed: 1 1;
-               rel1.to: "rage.pos.play.swallow";
-               rel2.to: "rage.pos.play.swallow";
-               image.normal: "icon_play.png";
+               rel1.to: "rage.win.fullscreen";
+               rel2.to: "rage.win.fullscreen";
+               image.normal: "icon_unfullscreen.png";
                min: 20 20; max: 20 20;
             }
             description { state: "active" 0.0;
                inherit: "default" 0.0;
-               image.normal: "icon_play2.png";
+               image.normal: "icon_unfullscreen2.png";
             }
          }
-         part { name: "pos_playev"; type: RECT;
-            clip_to: "playpause2";
+         part { name: "unfullscreenev"; type: RECT;
+            clip_to: "unfullscreenclip";
             description { state: "default" 0.0;
-               rel1.to: "rage.pos.play.swallow";
-               rel2.to: "rage.pos.play.swallow";
+               rel1.to: "rage.win.fullscreen";
+               rel2.to: "rage.win.fullscreen";
                color: 0 0 0 0;
             }
          }
          program {
-            signal: "mouse,down,1"; source: "pos_playev";
+            signal: "mouse,down,1"; source: "unfullscreenev";
             action: STATE_SET "active" 0.0;
-            target: "pos_play";
-         }
-         program {
-            signal: "mouse,up,1"; source: "pos_playev";
-            action: STATE_SET "default" 0.0;
-            target: "pos_play";
+            target: "unfullscreen";
          }
-         
          program {
-            signal: "action,play"; source: "rage";
+            signal: "mouse,up,1"; source: "unfullscreenev";
             action: STATE_SET "default" 0.0;
-            target: "playpause";
-            target: "playpause2";
-         }
-         program {
-            signal: "action,pause"; source: "rage";
-            action: STATE_SET "pause" 0.0;
-            target: "playpause";
-            target: "playpause2";
+            target: "unfullscreen";
          }
 
-         part { name: "pos_next";
+         part { name: "opt";
             scale: 1;
             clip_to: "posclip";
             description { state: "default" 0.0;
                fixed: 1 1;
-               rel1.to: "rage.pos.next.swallow";
-               rel2.to: "rage.pos.next.swallow";
-               image.normal: "icon_next.png";
+               rel1.to: "rage.options.swallow";
+               rel2.to: "rage.options.swallow";
+               image.normal: "icon_spanner.png";
                min: 20 20; max: 20 20;
             }
             description { state: "active" 0.0;
                inherit: "default" 0.0;
-               image.normal: "icon_next2.png";
+               image.normal: "icon_spanner2.png";
             }
          }
-         part { name: "pos_nextev"; type: RECT;
+         part { name: "optev"; type: RECT;
             description { state: "default" 0.0;
-               rel1.to: "rage.pos.next.swallow";
-               rel2.to: "rage.pos.next.swallow";
+               rel1.to: "rage.options.swallow";
+               rel2.to: "rage.options.swallow";
                color: 0 0 0 0;
             }
          }
          program {
-            signal: "mouse,down,1"; source: "pos_nextev";
+            signal: "mouse,down,1"; source: "optev";
             action: STATE_SET "active" 0.0;
-            target: "pos_next";
+            target: "opt";
          }
          program {
-            signal: "mouse,up,1"; source: "pos_nextev";
+            signal: "mouse,up,1"; source: "optev";
             action: STATE_SET "default" 0.0;
-            target: "pos_next";
+            target: "opt";
          }
 
-         program {
-            signal: "mouse,clicked,1"; source: "optev";
-            action: SIGNAL_EMIT "pos,action,options" "rage";
-         }
-         
-         program {
-            signal: "mouse,clicked,1"; source: "fullscreenev";
-            action: SIGNAL_EMIT "win,fullscreen" "rage";
-         }
-         program {
-            signal: "mouse,clicked,1"; source: "unfullscreenev";
-            action: SIGNAL_EMIT "win,unfullscreen" "rage";
-         }
-         
-         program {
-            signal: "mouse,clicked,1"; source: "closeev";
-            action: SIGNAL_EMIT "win,close" "rage";
-         }
-         
-         program {
-            signal: "mouse,clicked,1"; source: "pos_prevev";
-            action: SIGNAL_EMIT "pos,action,prev" "rage";
-         }
-         program {
-            signal: "mouse,clicked,1"; source: "pos_nextev";
-            action: SIGNAL_EMIT "pos,action,next" "rage";
-         }
-         program {
-            signal: "mouse,clicked,1"; source: "pos_playev";
-            action: SIGNAL_EMIT "pos,action,pause" "rage";
-         }
-         program {
-            signal: "mouse,clicked,1"; source: "pos_pauseev";
-            action: SIGNAL_EMIT "pos,action,play" "rage";
-         }
-         
-         part { name: "rage.pos"; type: TEXT; mouse_events: 0;
-            clip_to: "posclip";
-            effect: GLOW;
-            scale: 1;
-            description { state: "default" 0.0;
-               fixed: 1 1;
-               rel1.to: "slash";
-               rel1.relative: 0.0 0.0;
-               rel1.offset: -1 0;
-               rel2.to: "slash";
-               rel2.relative: 0.0 1.0;
-               rel2.offset: -1 -1;
-               color: 255 255 255 255;
-               color2: 51 153 255 128;
-               color3: 51 153 255 20;
-               align: 1.0 0.5;
-               text { font: "Sans"; size: 8;
-                  align: 1.0 0.5;
-                  min: 1 1;
-                  elipsis: -1;
-               }
-            }
-         }
-         part { name: "slash"; type: TEXT; mouse_events: 0;
-            clip_to: "posclip";
-            effect: GLOW;
-            scale: 1;
-            description { state: "default" 0.0;
-               fixed: 1 1;
-               rel1.to: "rage.length";
-               rel1.relative: 0.0 0.0;
-               rel1.offset: -1 0;
-               rel2.to: "rage.length";
-               rel2.relative: 0.0 1.0;
-               rel2.offset: -1 -1;
-               color: 255 255 255 255;
-               color2: 51 153 255 128;
-               color3: 51 153 255 20;
-               align: 1.0 0.5;
-               text { font: "Sans"; size: 8;
-                  align: 1.0 0.5;
-                  min: 1 1;
-                  text: "/";
-                  elipsis: -1;
-               }
-            }
-         }
-         part { name: "rage.length"; type: TEXT; mouse_events: 0;
-            clip_to: "posclip";
-            effect: GLOW;
-            scale: 1;
-            description { state: "default" 0.0;
-               fixed: 1 1;
-               rel1.to: "pos_next";
-               rel1.relative: 0.0 0.0;
-               rel1.offset: -6 0;
-               rel2.to: "pos_next";
-               rel2.relative: 0.0 1.0;
-               rel2.offset: -6 -1;
-               color: 255 255 255 255;
-               color2: 51 153 255 128;
-               color3: 51 153 255 20;
-               align: 1.0 0.5;
-               text { font: "Sans"; size: 8;
-                  align: 1.0 0.5;
-                  min: 1 1;
-                  elipsis: -1;
-               }
-            }
-         }
-         
          part { name: "dragover_master"; type: RECT;
             clip_to: "posclip";
             description { state: "default" 0.0;
@@ -1673,10 +1720,14 @@ collections {
             signal: "mouse,move"; source: "event";
             script {
                new t;
-               
+
                if (!get_int(pos_visible)) {
                   stop_program(PROGRAM:"poshide");
                   run_program(PROGRAM:"posshow");
+                  if (!get_int(novideo)) {
+                     stop_program(PROGRAM:"cbarhide");
+                     run_program(PROGRAM:"cbarshow");
+                  }
                   set_int(pos_visible, 1);
                }
                t = get_int(pos_timer);
@@ -1688,16 +1739,24 @@ collections {
          program { name: "posshow";
             action: STATE_SET "visible" 0.0;
             transition: SINUSOIDAL 0.3;
-            target: "poscover";
             target: "posclip";
          }
+         program { name: "cbarshow";
+            action: STATE_SET "visible" 0.0;
+            transition: SINUSOIDAL 0.3;
+            target: "controlbar_clip";
+         }
          program { name: "poshide";
             action: STATE_SET "default" 0.0;
             transition: SINUSOIDAL 1.0;
-            target: "poscover";
             target: "posclip";
          }
-         
+         program { name: "cbarhide";
+            action: STATE_SET "default" 0.0;
+            transition: SINUSOIDAL 1.0;
+            target: "controlbar_clip";
+         }
+
          part { name: "listevent"; type: RECT; repeat_events: 1;
             description { state: "default" 0.0;
                color: 0 0 0 0;
@@ -1718,7 +1777,7 @@ collections {
             signal: "mouse,in"; source: "listevent2";
             action: SIGNAL_EMIT "list,hide" "rage";
          }
-         
+
          program {
             signal: "action,newvid"; source: "rage";
             action: SIGNAL_EMIT "mouse,move" "event";
@@ -1748,6 +1807,11 @@ collections {
             action: SIGNAL_EMIT "mouse,move" "event";
          }
 
+
+
+
+
+         //// -- ABOUT IMAGE
          part { name: "tv-bg";
             clip_to: "tv-clip";
             description { state: "default" 0.0;
@@ -1818,13 +1882,17 @@ collections {
          }
       }
    }
-   
+
+
+
+
+
    group { name: "rage/list/item";
       images.image: "win_shadow.png" COMP;
       images.image: "win_glow.png" COMP;
       images.image: "bg_shine.png" COMP;
       images.image: "bg_glint.png" COMP;
-      
+
       parts {
          part { name: "shadow"; mouse_events: 0;
             description { state: "default" 0.0;
@@ -1877,7 +1945,7 @@ collections {
             transition: SINUSOIDAL 0.3;
             target: "glow";
          }
-         
+
          part { name: "clip"; type: RECT;
             description { state: "default" 0.0;
                rel1.offset: 4 4;
diff --git a/data/themes/images/Makefile.mk b/data/themes/images/Makefile.mk
index 390abcd..8af6326 100644
--- a/data/themes/images/Makefile.mk
+++ b/data/themes/images/Makefile.mk
@@ -4,7 +4,6 @@ data/themes/images/bg_bevel.png \
 data/themes/images/bg_glint.png \
 data/themes/images/bg_shine.png \
 data/themes/images/glow_exclam.png \
-data/themes/images/horizontal_separated_bar_small_glow.png \
 data/themes/images/icon_arrow_right.png \
 data/themes/images/icon_close2.png \
 data/themes/images/icon_close.png \
@@ -30,24 +29,24 @@ data/themes/images/icon_unfullscreen2.png \
 data/themes/images/icon_unfullscreen.png \
 data/themes/images/icon_volume2.png \
 data/themes/images/icon_volume.png \
-data/themes/images/inset_round_hilight.png \
-data/themes/images/inset_round_shading.png \
-data/themes/images/inset_round_shadow.png \
 data/themes/images/pm_fill.png \
 data/themes/images/pm_overlay.png \
 data/themes/images/pm_shadow.png \
-data/themes/images/pos_indicator_big.png \
-data/themes/images/pos_indicator.png \
 data/themes/images/r-0.png \
 data/themes/images/r-1.png \
 data/themes/images/r-2.png \
 data/themes/images/r-3.png \
 data/themes/images/r-4.png \
-data/themes/images/speaker.png \
 data/themes/images/tv-bg.png \
 data/themes/images/tv-over.png \
-data/themes/images/vgrad_shadow_bi.png \
 data/themes/images/win_glow.png \
-data/themes/images/win_shadow.png
+data/themes/images/win_shadow.png \
+data/themes/images/posglow.png \
+data/themes/images/speaker-base.png \
+data/themes/images/speaker-bevel-hi.png \
+data/themes/images/speaker-bevel-lo.png \
+data/themes/images/speaker-over.png \
+data/themes/images/speaker-shadow.png \
+data/themes/images/vgrad-dark-inv.png
 
 EXTRA_DIST += $(THEME_IMGS)
diff --git a/data/themes/images/horizontal_separated_bar_small_glow.png 
b/data/themes/images/horizontal_separated_bar_small_glow.png
deleted file mode 100644
index 31ddfee..0000000
Binary files a/data/themes/images/horizontal_separated_bar_small_glow.png and 
/dev/null differ
diff --git a/data/themes/images/icon_arrow_right.png 
b/data/themes/images/icon_arrow_right.png
index 28d7399..13589a1 100644
Binary files a/data/themes/images/icon_arrow_right.png and 
b/data/themes/images/icon_arrow_right.png differ
diff --git a/data/themes/images/icon_close.png 
b/data/themes/images/icon_close.png
index 717e15e..0750f22 100644
Binary files a/data/themes/images/icon_close.png and 
b/data/themes/images/icon_close.png differ
diff --git a/data/themes/images/icon_close2.png 
b/data/themes/images/icon_close2.png
index 1c2603f..69c740d 100644
Binary files a/data/themes/images/icon_close2.png and 
b/data/themes/images/icon_close2.png differ
diff --git a/data/themes/images/icon_eject.png 
b/data/themes/images/icon_eject.png
index 10c7c49..6da8c3c 100644
Binary files a/data/themes/images/icon_eject.png and 
b/data/themes/images/icon_eject.png differ
diff --git a/data/themes/images/icon_forward.png 
b/data/themes/images/icon_forward.png
index 155984a..ab8fb90 100644
Binary files a/data/themes/images/icon_forward.png and 
b/data/themes/images/icon_forward.png differ
diff --git a/data/themes/images/icon_fullscreen.png 
b/data/themes/images/icon_fullscreen.png
index 7d9d347..fe9ec50 100644
Binary files a/data/themes/images/icon_fullscreen.png and 
b/data/themes/images/icon_fullscreen.png differ
diff --git a/data/themes/images/icon_fullscreen2.png 
b/data/themes/images/icon_fullscreen2.png
index 10b8672..71aad4c 100644
Binary files a/data/themes/images/icon_fullscreen2.png and 
b/data/themes/images/icon_fullscreen2.png differ
diff --git a/data/themes/images/icon_mute.png b/data/themes/images/icon_mute.png
index f242605..b38a73d 100644
Binary files a/data/themes/images/icon_mute.png and 
b/data/themes/images/icon_mute.png differ
diff --git a/data/themes/images/icon_next.png b/data/themes/images/icon_next.png
index 049ec4d..cf0ac58 100644
Binary files a/data/themes/images/icon_next.png and 
b/data/themes/images/icon_next.png differ
diff --git a/data/themes/images/icon_next2.png 
b/data/themes/images/icon_next2.png
index 1d79003..33347ef 100644
Binary files a/data/themes/images/icon_next2.png and 
b/data/themes/images/icon_next2.png differ
diff --git a/data/themes/images/icon_pause.png 
b/data/themes/images/icon_pause.png
index b5dbfee..c749389 100644
Binary files a/data/themes/images/icon_pause.png and 
b/data/themes/images/icon_pause.png differ
diff --git a/data/themes/images/icon_pause2.png 
b/data/themes/images/icon_pause2.png
index 74083d8..6c40c8d 100644
Binary files a/data/themes/images/icon_pause2.png and 
b/data/themes/images/icon_pause2.png differ
diff --git a/data/themes/images/icon_play.png b/data/themes/images/icon_play.png
index b9b301c..1ebe192 100644
Binary files a/data/themes/images/icon_play.png and 
b/data/themes/images/icon_play.png differ
diff --git a/data/themes/images/icon_play2.png 
b/data/themes/images/icon_play2.png
index 8798878..35ffc68 100644
Binary files a/data/themes/images/icon_play2.png and 
b/data/themes/images/icon_play2.png differ
diff --git a/data/themes/images/icon_prev.png b/data/themes/images/icon_prev.png
index b486a37..3f22def 100644
Binary files a/data/themes/images/icon_prev.png and 
b/data/themes/images/icon_prev.png differ
diff --git a/data/themes/images/icon_prev2.png 
b/data/themes/images/icon_prev2.png
index bf5cb2f..6611718 100644
Binary files a/data/themes/images/icon_prev2.png and 
b/data/themes/images/icon_prev2.png differ
diff --git a/data/themes/images/icon_refresh.png 
b/data/themes/images/icon_refresh.png
index c84bd05..736a8cb 100644
Binary files a/data/themes/images/icon_refresh.png and 
b/data/themes/images/icon_refresh.png differ
diff --git a/data/themes/images/icon_rewind.png 
b/data/themes/images/icon_rewind.png
index 2cf6b27..1519dcb 100644
Binary files a/data/themes/images/icon_rewind.png and 
b/data/themes/images/icon_rewind.png differ
diff --git a/data/themes/images/icon_spanner.png 
b/data/themes/images/icon_spanner.png
index 6593f61..7e2d51a 100644
Binary files a/data/themes/images/icon_spanner.png and 
b/data/themes/images/icon_spanner.png differ
diff --git a/data/themes/images/icon_spanner2.png 
b/data/themes/images/icon_spanner2.png
index d518d57..baebf6b 100644
Binary files a/data/themes/images/icon_spanner2.png and 
b/data/themes/images/icon_spanner2.png differ
diff --git a/data/themes/images/icon_stop.png b/data/themes/images/icon_stop.png
index c229cd8..e306ec8 100644
Binary files a/data/themes/images/icon_stop.png and 
b/data/themes/images/icon_stop.png differ
diff --git a/data/themes/images/icon_unfullscreen.png 
b/data/themes/images/icon_unfullscreen.png
index 98ab953..6be4761 100644
Binary files a/data/themes/images/icon_unfullscreen.png and 
b/data/themes/images/icon_unfullscreen.png differ
diff --git a/data/themes/images/icon_unfullscreen2.png 
b/data/themes/images/icon_unfullscreen2.png
index feb8c9a..a5eab71 100644
Binary files a/data/themes/images/icon_unfullscreen2.png and 
b/data/themes/images/icon_unfullscreen2.png differ
diff --git a/data/themes/images/icon_volume.png 
b/data/themes/images/icon_volume.png
index f9a12d1..96644a6 100644
Binary files a/data/themes/images/icon_volume.png and 
b/data/themes/images/icon_volume.png differ
diff --git a/data/themes/images/icon_volume2.png 
b/data/themes/images/icon_volume2.png
index c467570..f8cda1c 100644
Binary files a/data/themes/images/icon_volume2.png and 
b/data/themes/images/icon_volume2.png differ
diff --git a/data/themes/images/inset_round_hilight.png 
b/data/themes/images/inset_round_hilight.png
deleted file mode 100644
index 7696175..0000000
Binary files a/data/themes/images/inset_round_hilight.png and /dev/null differ
diff --git a/data/themes/images/inset_round_shading.png 
b/data/themes/images/inset_round_shading.png
deleted file mode 100644
index 429f073..0000000
Binary files a/data/themes/images/inset_round_shading.png and /dev/null differ
diff --git a/data/themes/images/inset_round_shadow.png 
b/data/themes/images/inset_round_shadow.png
deleted file mode 100644
index 5dd3b0c..0000000
Binary files a/data/themes/images/inset_round_shadow.png and /dev/null differ
diff --git a/data/themes/images/pos_indicator.png 
b/data/themes/images/pos_indicator.png
deleted file mode 100644
index ec83095..0000000
Binary files a/data/themes/images/pos_indicator.png and /dev/null differ
diff --git a/data/themes/images/pos_indicator_big.png 
b/data/themes/images/pos_indicator_big.png
deleted file mode 100644
index 0a8e8f2..0000000
Binary files a/data/themes/images/pos_indicator_big.png and /dev/null differ
diff --git a/data/themes/images/posglow.png b/data/themes/images/posglow.png
new file mode 100644
index 0000000..9570d6f
Binary files /dev/null and b/data/themes/images/posglow.png differ
diff --git a/data/themes/images/speaker-base.png 
b/data/themes/images/speaker-base.png
new file mode 100644
index 0000000..3645874
Binary files /dev/null and b/data/themes/images/speaker-base.png differ
diff --git a/data/themes/images/speaker-bevel-hi.png 
b/data/themes/images/speaker-bevel-hi.png
new file mode 100644
index 0000000..66e4864
Binary files /dev/null and b/data/themes/images/speaker-bevel-hi.png differ
diff --git a/data/themes/images/speaker-bevel-lo.png 
b/data/themes/images/speaker-bevel-lo.png
new file mode 100644
index 0000000..73f4f2c
Binary files /dev/null and b/data/themes/images/speaker-bevel-lo.png differ
diff --git a/data/themes/images/speaker-over.png 
b/data/themes/images/speaker-over.png
new file mode 100644
index 0000000..d7dceb9
Binary files /dev/null and b/data/themes/images/speaker-over.png differ
diff --git a/data/themes/images/speaker-shadow.png 
b/data/themes/images/speaker-shadow.png
new file mode 100644
index 0000000..fe20437
Binary files /dev/null and b/data/themes/images/speaker-shadow.png differ
diff --git a/data/themes/images/speaker.png b/data/themes/images/speaker.png
deleted file mode 100644
index f6622f5..0000000
Binary files a/data/themes/images/speaker.png and /dev/null differ
diff --git a/data/themes/images/vgrad-dark-inv.png 
b/data/themes/images/vgrad-dark-inv.png
new file mode 100644
index 0000000..a29057c
Binary files /dev/null and b/data/themes/images/vgrad-dark-inv.png differ
diff --git a/data/themes/images/vgrad_shadow_bi.png 
b/data/themes/images/vgrad_shadow_bi.png
deleted file mode 100644
index 3e24272..0000000
Binary files a/data/themes/images/vgrad_shadow_bi.png and /dev/null differ
diff --git a/data/themes/orig/icons.svgz b/data/themes/orig/icons.svgz
new file mode 100644
index 0000000..7350a50
Binary files /dev/null and b/data/themes/orig/icons.svgz differ
diff --git a/data/themes/orig/musicmode.xcf.gz 
b/data/themes/orig/musicmode.xcf.gz
new file mode 100644
index 0000000..355817a
Binary files /dev/null and b/data/themes/orig/musicmode.xcf.gz differ
diff --git a/data/themes/orig/next.xcf.gz b/data/themes/orig/next.xcf.gz
new file mode 100644
index 0000000..fb10319
Binary files /dev/null and b/data/themes/orig/next.xcf.gz differ
diff --git a/data/themes/orig/pause.xcf.gz b/data/themes/orig/pause.xcf.gz
new file mode 100644
index 0000000..2af8017
Binary files /dev/null and b/data/themes/orig/pause.xcf.gz differ
diff --git a/data/themes/orig/play.xcf.gz b/data/themes/orig/play.xcf.gz
new file mode 100644
index 0000000..36b7f61
Binary files /dev/null and b/data/themes/orig/play.xcf.gz differ
diff --git a/data/themes/orig/prev.xcf.gz b/data/themes/orig/prev.xcf.gz
new file mode 100644
index 0000000..72fde3d
Binary files /dev/null and b/data/themes/orig/prev.xcf.gz differ
diff --git a/data/themes/orig/vol.xcf.gz b/data/themes/orig/vol.xcf.gz
new file mode 100644
index 0000000..d55ae1c
Binary files /dev/null and b/data/themes/orig/vol.xcf.gz differ
diff --git a/src/bin/controls.c b/src/bin/controls.c
index 666ff5d..b7886c5 100644
--- a/src/bin/controls.c
+++ b/src/bin/controls.c
@@ -179,13 +179,13 @@ controls_update(Evas_Object *lay, Evas_Object *vid)
    double p;
 
    _time_print(video_position_get(vid), video_length_get(vid),
-               sizeof(buf), buf, EINA_TRUE);
+               sizeof(buf), buf, EINA_FALSE);
    elm_object_part_text_set(lay, "rage.pos", buf);
    _time_print(video_length_get(vid), video_length_get(vid),
                sizeof(buf), buf, EINA_FALSE);
    elm_object_part_text_set(lay, "rage.length", buf);
    elm_layout_signal_emit(lay, "action,frame", "rage");
-   
+
    if (video_length_get(vid) > 0.0)
      p = video_position_get(vid) / video_length_get(vid);
    else p = 0.0;
diff --git a/src/bin/main.c b/src/bin/main.c
index 21ea6d5..2696390 100644
--- a/src/bin/main.c
+++ b/src/bin/main.c
@@ -94,7 +94,6 @@ elm_main(int argc, char **argv)
    if (argc <= 1)
      {
         elm_layout_signal_emit(inf->lay, "about,show", "rage");
-        elm_layout_signal_emit(inf->lay, "state,novideo", "rage");
         evas_object_show(win);
      }
    else
diff --git a/src/bin/win.c b/src/bin/win.c
index c473d74..5e5ee73 100644
--- a/src/bin/win.c
+++ b/src/bin/win.c
@@ -453,7 +453,10 @@ win_aspect_adjust(Evas_Object *win)
      {
         if ((!video_has_video_get(inf->vid)) &&
             (video_has_audio_get(inf->vid)))
-          w = h = 160;
+          {
+             w = 160;
+             h = 200;
+          }
         win_show(win, w, h);
      }
 }
diff --git a/src/bin/winvid.c b/src/bin/winvid.c
index e93d53c..c591b2c 100644
--- a/src/bin/winvid.c
+++ b/src/bin/winvid.c
@@ -86,7 +86,7 @@ static void
 _cb_play_finish(void *data, Evas_Object *obj EINA_UNUSED, void *event 
EINA_UNUSED)
 {
    Inf *inf = evas_object_data_get(data, "inf");
-   if (!inf->playing) win_show(data, 160, 160);
+   if (!inf->playing) win_show(data, 160, 200);
    inf->playing = EINA_FALSE;
 }
 

-- 


Reply via email to