From f461aeca957396a0e337fc8329a1ca6f99d2c5c9 Mon Sep 17 00:00:00 2001
From: Nick Winter <livelily@gmail.com>
Date: Tue, 4 Nov 2014 19:03:35 -0800
Subject: [PATCH] Implemented new playback scrubber textures.

---
 .../images/level/scrubber_background.png      | Bin 19807 -> 13366 bytes
 app/styles/base.sass                          |  38 +-----
 app/styles/play/level.sass                    |   8 --
 app/styles/play/level/goals.sass              |   2 +-
 app/styles/play/level/multiplayer-status.sass |   2 +
 app/styles/play/level/playback.sass           | 115 +++++++++-------
 app/styles/play/spectate.sass                 |   8 --
 app/templates/play/level/goals.jade           |   2 +-
 app/templates/play/level/hud.jade             |   2 -
 app/templates/play/level/playback.jade        |  50 +++----
 app/views/play/level/LevelPlaybackView.coffee | 129 +++++++-----------
 11 files changed, 141 insertions(+), 215 deletions(-)

diff --git a/app/assets/images/level/scrubber_background.png b/app/assets/images/level/scrubber_background.png
index a70abeb975a3de45c7d5e9318ff60535b0b78996..517a4c8c46bca5b355abdbb0ddc4b192883e8d11 100644
GIT binary patch
literal 13366
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

literal 19807
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
IM6N<$g6O;~7ytkO

diff --git a/app/styles/base.sass b/app/styles/base.sass
index 0acc6fb48..581dd249a 100644
--- a/app/styles/base.sass
+++ b/app/styles/base.sass
@@ -153,40 +153,6 @@ a
     cursor: pointer
       
 
-// Bigger versions of some Bootstrap icons
-// TODO: make the non-white versions of these if we ever need them
-.icon.big
-  background-image: url(/images/pages/base/glyphicons-simplified.png)
-
-.icon-white.big
-  background-image: url(/images/pages/base/glyphicons-simplified.png)
-
-.icon.big, .icon-white.big
-  width: 19px
-  height: 19px
-  line-height: 19px
-
-.icon-pause.big
-  background-position: -114px 0px
-
-.icon-play.big
-  background-position: -95px 0px
-
-.icon-repeat.big
-  background-position: -76px 0px
-
-.icon-volume-off.big
-  background-position: -57px 0px
-
-.icon-volume-down.big
-  background-position: -38px 0px
-
-.icon-volume-up.big
-  background-position: -19px 0px
-
-.icon-cog.big
-  background-position: 0px 0px
-
 // loading screens for everything but the play view
 .loading-screen
   .progress
@@ -339,3 +305,7 @@ kbd
   &.gem-60
     width: 60px
     height: 60px
+
+.popover
+  border-image: url(/images/level/popover_background.png) 29 39 fill stretch
+  border-width: 15px 20px
diff --git a/app/styles/play/level.sass b/app/styles/play/level.sass
index 2a1fc972d..3ba3274b6 100644
--- a/app/styles/play/level.sass
+++ b/app/styles/play/level.sass
@@ -144,14 +144,6 @@ $level-resize-transition-time: 0.5s
     left: -3px
     bottom: 0
     
-  #hud-top-gradient
-    top: -32px
-    background: linear-gradient(to bottom, rgba(0,0,0,0) 0%,rgba(0,0,0,0.8*$GI) 100%)
-    left: 0
-    right: 0
-    bottom: 0
-    height: 3px
-
   #canvas-left-gradient
     left: 0px
     width: 5px
diff --git a/app/styles/play/level/goals.sass b/app/styles/play/level/goals.sass
index 94aef8605..b65998a21 100644
--- a/app/styles/play/level/goals.sass
+++ b/app/styles/play/level/goals.sass
@@ -9,7 +9,7 @@
   background: transparent url(/images/level/goals_background.png)
   background-size: 100% 100%
 
-  padding: 19px 17px 6px 25px
+  padding: 19px 17px 2px 25px
   z-index: 3
   font-size: 14px
 
diff --git a/app/styles/play/level/multiplayer-status.sass b/app/styles/play/level/multiplayer-status.sass
index 0e16da6bf..c0fe93828 100644
--- a/app/styles/play/level/multiplayer-status.sass
+++ b/app/styles/play/level/multiplayer-status.sass
@@ -4,6 +4,8 @@
 // TODO: Replace this devart with nice shinies
 
 #multiplayer-status-view
+  position: absolute
+
   .player-count
     color: white
   .players-available
diff --git a/app/styles/play/level/playback.sass b/app/styles/play/level/playback.sass
index 2434fb1af..92e5a2c81 100644
--- a/app/styles/play/level/playback.sass
+++ b/app/styles/play/level/playback.sass
@@ -2,50 +2,52 @@
 @import "app/styles/bootstrap/variables"
 
 #playback-view
+  $playback-button-color: rgb(248, 197, 146)
+  // When 75% alpha, it will look like the rgb(194, 154, 114) from Heald's design
   width: 55%
-  height: 30px
+  height: 60px
+  padding-top: 17px
   position: relative
-  background: #383434
-  // Counteract 50px height of absolutely positioned control bar.
-  margin-top: 50px
+  background: transparent url(/images/level/scrubber_background.png)
+  background-size: 100% 100%
+  // Counteract 50px height of absolutely positioned control bar, but overlap by 10px of jagged transparent top.
+  margin-top: 50px - 10px
+  z-index: 2
 
   button
-    height: 26px
+    font-size: 26px
+    margin-left: 10px
     background: transparent
-    @include opacity(0.50)
-    i
+    @include opacity(0.75)
+    color: $playback-button-color
+    text-shadow: 1px 1px 0px black
+
+    .glyphicon
       position: relative
 
   button:hover
-    @include opacity(0.75)
-    
+    @include opacity(1)
+
   #play-button, #volume-button, #music-button
     float: left
-    margin-left: 2px
-    margin-top: 2px
-    width: 25px
     position: relative
     
   #music-button
-    @include opacity(0.25)
-    font-size: 20px
+    @include opacity(0.5)
     span
       position: relative
       left: -3px
       top: -2px
     &:hover
-      @include opacity(0.50)
+      @include opacity(0.75)
     &.music-on
-      @include opacity(0.50)
+      @include opacity(0.75)
       &:hover
-        @include opacity(0.75)
+        @include opacity(1)
     
   #play-button, #volume-button
-    i
+    .glyphicon
       display: none
-      position: absolute
-      left: 2px
-      top: 2px
  
   #settings-button
     padding-left: 4px
@@ -54,51 +56,58 @@
   #playback-settings
     float: right
     position: relative
-    top: 2px
-    margin-right: 2px
-    ul i
+    margin-right: 10px
+    ul button
       margin: 0 10px
     li:hover
       background: #add8e6
 
-  #play-button.disabled i
-    @include opacity(0.5)
-  #play-button.playing i.icon-pause
+  #play-button.disabled .glyphicon
+    @include opacity(0.75)
+  #play-button.playing .glyphicon-pause
     display: inline-block
-  #play-button.paused i.icon-play
+  #play-button.paused .glyphicon-play
     display: inline-block
-  #play-button.ended i.icon-repeat
+  #play-button.ended .glyphicon-repeat
     display: inline-block
 
-  #volume-button.vol-up i.icon-volume-up
+  #volume-button.vol-up .glyphicon.glyphicon-volume-up
     display: inline-block
-  #volume-button.vol-off i.icon-volume-off
+  #volume-button.vol-off .glyphicon.glyphicon-volume-off
     display: inline-block
-    @include opacity(0.50)
+    @include opacity(0.75)
     &:hover
-      @include opacity(0.75)
-  #volume-button.vol-down i.icon-volume-down
+      @include opacity(1)
+  #volume-button.vol-down .glyphicon.glyphicon-volume-down
     display: inline-block
 
   .scrubber
     position: absolute
-    left: 100px
-    top: 0px
+    left: 170px
+    top: 21px
     bottom: 0px
-    right: 125px
+    right: 175px
+    background: rgb(3, 3, 3)
+    height: 28px
+    border: 1px solid rgb(67, 67, 44)
+    border-radius: 14px
+
+    .scrubber-inner
+      border: 1px solid rgb(44, 38, 29)
+      width: 100%
+      height: 100%
+      border-radius: 14px
+      padding: 6px 8px
 
     .progress
       float: left
       width: 100%
-      height: 14px
-      margin-top: 8px
+      height: 12px
       cursor: pointer
       overflow: visible
       border: 1px solid #444
-      // Remove gradient background in favor of solid fill
-      background-color: #888
-      background-image: none
-      border-radius: 0
+      background: rgb(80, 67, 53)
+      border-radius: 6px
       border: 0
       // Can't do this transition because handle then jitters, but would be good for streaming.
       //@include transition(width .2s linear)
@@ -113,19 +122,19 @@
         @include transition(width .0s linear)
         position: relative
         // Remove gradient background in favor of solid fill
-        background-color: #67A4C8
-        //background-image: none  // gradient looks kind of cool though; keep it in
+        background: rgb(245, 170, 49)
+        border: 1px solid rgb(62, 45, 16)
+        border-radius: 6px
 
         .scrubber-handle
           cursor: pointer
           position: absolute
-          right: -16px
-          top: -9px
-          background: transparent url(/images/level/playback_thumb.png)
-          width: 32px
-          height: 32px
-          // z: above the gradient line bordering the playback bar
-          z-index: 6
+          right: -18px
+          top: -11px
+          background: transparent url(/images/level/scrubber_knob.png)
+          background-size: contain
+          width: 36px
+          height: 36px
 
       .ui-slider-handle
         height: 100%
@@ -140,3 +149,5 @@
 body.ipad #playback-view
   #playback-settings
     display: none
+  .scrubber
+    right: 25px
diff --git a/app/styles/play/spectate.sass b/app/styles/play/spectate.sass
index 227b86db0..d102a7197 100644
--- a/app/styles/play/spectate.sass
+++ b/app/styles/play/spectate.sass
@@ -124,14 +124,6 @@
     left: -3px
     bottom: 0
 
-  #hud-top-gradient
-    top: -32px
-    background: linear-gradient(to bottom, rgba(0,0,0,0) 0%,rgba(0,0,0,0.8*$GI) 100%)
-    left: 0
-    right: 0
-    bottom: 0
-    height: 3px
-
   #canvas-left-gradient
     left: 0px
     width: 5px
diff --git a/app/templates/play/level/goals.jade b/app/templates/play/level/goals.jade
index d1e0b689c..5186106dd 100644
--- a/app/templates/play/level/goals.jade
+++ b/app/templates/play/level/goals.jade
@@ -1,6 +1,6 @@
 ul#primary-goals-list
 div.goals-status
-  strong(data-i18n="play_level.goals") Goals
+  span(data-i18n="play_level.goals") Goals
   span.spr :
   span(data-i18n="play_level.success").secret.goal-status.success Success!
   span(data-i18n="play_level.incomplete").secret.goal-status.incomplete Incomplete
diff --git a/app/templates/play/level/hud.jade b/app/templates/play/level/hud.jade
index 5153f1379..5e093bf04 100644
--- a/app/templates/play/level/hud.jade
+++ b/app/templates/play/level/hud.jade
@@ -1,5 +1,3 @@
-#hud-top-gradient.gradient
-
 .center
 
   .thang-canvas-wrapper.thang-elem
diff --git a/app/templates/play/level/playback.jade b/app/templates/play/level/playback.jade
index 5502f78cb..5d494cb67 100644
--- a/app/templates/play/level/playback.jade
+++ b/app/templates/play/level/playback.jade
@@ -1,45 +1,29 @@
 button.btn.btn-xs.btn-inverse#play-button.paused(title="Ctrl/Cmd + P: Toggle level play/pause")
-  i.icon-play.icon-white.big
-  i.icon-pause.icon-white.big
-  i.icon-repeat.icon-white.big
+  .glyphicon.glyphicon-play
+  .glyphicon.glyphicon-pause
+  .glyphicon.glyphicon-repeat
 
 button.btn.btn-xs.btn-inverse#volume-button(title="Adjust volume")
-  i.icon-volume-off.icon-white.big
-  i.icon-volume-down.icon-white.big
-  i.icon-volume-up.icon-white.big
+  .glyphicon.glyphicon-volume-off
+  .glyphicon.glyphicon-volume-down
+  .glyphicon.glyphicon-volume-up
 button.btn.btn-xs.btn-inverse#music-button(title="Toggle Music")
   span ♫
 
 .scrubber
-  .progress.secret#timeProgress
-    .progress-bar
-      .scrubber-handle
-      .popover.fade.top.in#timePopover
-        .arrow
-        h3.popover-title
-        .popover-content
+  .scrubber-inner
+    .progress.secret#timeProgress
+      .progress-bar
+        .scrubber-handle
+        .popover.fade.top.in#timePopover
+          .arrow
+          h3.popover-title
+          .popover-content
 
 .btn-group.dropup#playback-settings
   button.btn.btn-xs.btn-inverse.toggle-fullscreen(title="Toggle fullscreen")
-    i.icon-fullscreen.icon-white
+    .glyphicon.glyphicon-fullscreen
   button.btn.btn-xs.btn-inverse#zoom-in-button(title="Zoom In (or scroll down)")
-    i.icon-zoom-in.icon-white
+    .glyphicon.glyphicon-zoom-in
   button.btn.btn-xs.btn-inverse#zoom-out-button(title="Zoom Out (or scroll up)")
-    i.icon-zoom-out.icon-white
-  button.btn.btn-xs.btn-inverse.dropdown-toggle(data-toggle="dropdown")#settings-button
-    i.icon-cog.icon-white.big
-  ul.dropdown-menu
-    if me.get('name') == "Nick"
-      li(title="Ctrl/Cmd + \\: Toggle debug display").selectable#debug-toggle
-        i.icon-globe
-        | Debug Mode
-        i.icon-ok.secret
-    li.selectable#view-keyboard-shortcuts
-      i.icon-info-sign
-      span(data-i18n="play_level.keyboard_shortcuts") Key Shortcuts
-    li.selectable#edit-wizard-settings
-      i.icon-user
-      span(data-i18n="play_level.customize_wizard") Customize Wizard
-    li.selectable#edit-editor-config
-      i.icon-edit
-      span(data-i18n="play_level.editor_config") Editor Config
+    .glyphicon.glyphicon-zoom-out
diff --git a/app/views/play/level/LevelPlaybackView.coffee b/app/views/play/level/LevelPlaybackView.coffee
index 81bf36555..31b495642 100644
--- a/app/views/play/level/LevelPlaybackView.coffee
+++ b/app/views/play/level/LevelPlaybackView.coffee
@@ -17,7 +17,6 @@ module.exports = class LevelPlaybackView extends CocoView
     'level:scrub-forward': 'onScrubForward'
     'level:scrub-back': 'onScrubBack'
     'level:set-volume': 'onSetVolume'
-    'level:set-debug': 'onSetDebug'
     'surface:frame-changed': 'onFrameChanged'
     'god:new-world-created': 'onNewWorld'
     'god:streaming-world-updated': 'onNewWorld'
@@ -28,10 +27,6 @@ module.exports = class LevelPlaybackView extends CocoView
     'real-time-multiplayer:manual-cast': 'onRealTimeMultiplayerCast'
 
   events:
-    'click #debug-toggle': 'onToggleDebug'
-    'click #edit-wizard-settings': 'onEditWizardSettings'
-    'click #edit-editor-config': 'onEditEditorConfig'
-    'click #view-keyboard-shortcuts': 'onViewKeyboardShortcuts'
     'click #music-button': 'onToggleMusic'
     'click #zoom-in-button': -> Backbone.Mediator.publish 'camera:zoom-in', {} unless @shouldIgnore()
     'click #zoom-out-button': -> Backbone.Mediator.publish 'camera:zoom-out', {} unless @shouldIgnore()
@@ -52,59 +47,6 @@ module.exports = class LevelPlaybackView extends CocoView
     '⌘+], ctrl+]': 'onScrubForward'
     '⌘+⇧+], ctrl+⇧+]': 'onSingleScrubForward'
 
-  # popover that shows at the current mouse position on the progressbar, using the bootstrap popover.
-  # Could make this into a jQuery plugins itself theoretically.
-  class HoverPopup extends $.fn.popover.Constructor
-    constructor: () ->
-      @enabled = true
-      @shown = false
-      @type = 'HoverPopup'
-      @options =
-        placement: 'top'
-        container: 'body'
-        animation: true
-        html: true
-        delay:
-          show: 400
-      @$element = $('#timeProgress')
-      @$tip = $('#timePopover')
-
-      @content = ''
-
-    getContent: -> @content
-
-    show: ->
-      unless @shown
-        super()
-        @shown = true
-
-    updateContent: (@content) ->
-      @setContent()
-      @$tip.addClass('fade top in')
-
-    onHover: (@e) ->
-      pos = @getPosition()
-      actualWidth  = @$tip[0].offsetWidth
-      actualHeight = @$tip[0].offsetHeight
-      calculatedOffset =
-        top: pos.top - actualHeight
-        left: pos.left + pos.width / 2 - actualWidth / 2
-      this.applyPlacement(calculatedOffset, 'top')
-
-    getPosition: ->
-      top: @$element.offset().top
-      left: if @e? then @e.pageX else @$element.offset().left
-      height: 0
-      width: 0
-
-    hide: ->
-      super()
-      @shown = false
-
-    disable: ->
-      super()
-      @hide()
-
   constructor: ->
     super(arguments...)
     me.on('change:music', @updateMusicButton, @)
@@ -192,20 +134,6 @@ module.exports = class LevelPlaybackView extends CocoView
     @currentTime = 0
     @lastLoadedFrameCount = loadedFrameCount
 
-  onToggleDebug: ->
-    return if @shouldIgnore()
-    flag = $('#debug-toggle i.icon-ok')
-    Backbone.Mediator.publish('level:set-debug', {debug: flag.hasClass('invisible')})
-
-  onEditWizardSettings: ->
-    Backbone.Mediator.publish 'level:edit-wizard-settings', {}
-
-  onEditEditorConfig: ->
-    @openModalView new EditorConfigModal session: @options.session
-
-  onViewKeyboardShortcuts: ->
-    @openModalView new KeyboardShortcutsModal()
-
   onDisableControls: (e) ->
     if not e.controls or 'playback' in e.controls
       @disabled = true
@@ -340,10 +268,6 @@ module.exports = class LevelPlaybackView extends CocoView
     Backbone.Mediator.publish 'level:set-letterbox', on: false
     Backbone.Mediator.publish 'playback:real-time-playback-ended', {}
 
-  onSetDebug: (e) ->
-    flag = $('#debug-toggle i.icon-ok')
-    flag.toggleClass 'invisible', not e.debug
-
   # to refactor
 
   hookUpScrubber: ->
@@ -423,3 +347,56 @@ module.exports = class LevelPlaybackView extends CocoView
     $(window).off('resize', @onWindowResize)
     @onWindowResize = null
     super()
+
+# popover that shows at the current mouse position on the progressbar, using the bootstrap popover.
+# Could make this into a jQuery plugins itself theoretically.
+class HoverPopup extends $.fn.popover.Constructor
+  constructor: () ->
+    @enabled = true
+    @shown = false
+    @type = 'HoverPopup'
+    @options =
+      placement: 'top'
+      container: 'body'
+      animation: true
+      html: true
+      delay:
+        show: 400
+    @$element = $('#timeProgress')
+    @$tip = $('#timePopover')
+
+    @content = ''
+
+  getContent: -> @content
+
+  show: ->
+    unless @shown
+      super()
+      @shown = true
+
+  updateContent: (@content) ->
+    @setContent()
+    @$tip.addClass('fade top in')
+
+  onHover: (@e) ->
+    pos = @getPosition()
+    actualWidth  = @$tip[0].offsetWidth
+    actualHeight = @$tip[0].offsetHeight
+    calculatedOffset =
+      top: pos.top - actualHeight
+      left: pos.left + pos.width / 2 - actualWidth / 2
+    this.applyPlacement(calculatedOffset, 'top')
+
+  getPosition: ->
+    top: @$element.offset().top
+    left: if @e? then @e.pageX else @$element.offset().left
+    height: 0
+    width: 0
+
+  hide: ->
+    super()
+    @shown = false
+
+  disable: ->
+    super()
+    @hide()