summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--public/assets/javascripts/rectangles/models/wall.js7
-rw-r--r--public/assets/javascripts/ui/editor/WallpaperPicker.js40
-rwxr-xr-xpublic/assets/stylesheets/app.css11
-rw-r--r--views/controls/editor/wallpaper.ejs12
4 files changed, 58 insertions, 12 deletions
diff --git a/public/assets/javascripts/rectangles/models/wall.js b/public/assets/javascripts/rectangles/models/wall.js
index cc298c6..7ff4ccb 100644
--- a/public/assets/javascripts/rectangles/models/wall.js
+++ b/public/assets/javascripts/rectangles/models/wall.js
@@ -45,6 +45,9 @@ window.Wall = (function(){
if (Scenery.nextMedia) {
Scenery.addNextToWall(base)
}
+ else if (Scenery.nextWallpaper) {
+ base.wallpaper()
+ }
else {
app.controller.hideExtras()
}
@@ -112,6 +115,10 @@ window.Wall = (function(){
this.$walls && this.$walls.css("background-color", color)
}
+ Wall.prototype.wallpaper = function(){
+ this.$walls.css("background-image", Scenery.nextWallpaper)
+ }
+
Wall.prototype.siblings = function(){
var base = this
var match = base.side | base.half_side
diff --git a/public/assets/javascripts/ui/editor/WallpaperPicker.js b/public/assets/javascripts/ui/editor/WallpaperPicker.js
index 474d4c1..cb1e361 100644
--- a/public/assets/javascripts/ui/editor/WallpaperPicker.js
+++ b/public/assets/javascripts/ui/editor/WallpaperPicker.js
@@ -3,10 +3,24 @@ var WallpaperPicker = View.extend({
el: ".wallpaper",
events: {
- "click .paper1": 'pick',
+ "click .swatch": 'pick',
},
initialize: function(){
+ var wm = new WallpaperManager()
+ app.on('wallpaper-ready', function(){
+ var black = [0,0,0,1.0]
+ var white = [255,255,255,1.0]
+ var swatches = wm.buildSwatches(black, white, 2)
+ swatches.forEach(function(swatch){
+ var dataUrl = swatch.toDataURL()
+ var span = document.createElement('span')
+ span.style.backgroundImage = "url(" + dataUrl + ")"
+ span.className = "swatch"
+ this.$el.append(span)
+ }.bind(this))
+ }.bind(this))
+ wm.init()
},
toggle: function(){
@@ -16,8 +30,28 @@ var WallpaperPicker = View.extend({
},
pick: function(e){
- $("body").toggleClass("pastePaper");
- $(e.currentTarget).toggleClass("active");
+ var $swatch = $(e.currentTarget)
+ var $floatingSwatch = $(".floatingSwatch")
+
+ $floatingSwatch.css('background-image', $swatch.css('background-image'))
+
+ Scenery.nextWallpaper = $swatch.css('background-image')
+
+ setTimeout(function(){
+ function _followCursor(e) {
+ $floatingSwatch.css({
+ top: (e.pageY + 10) + 'px',
+ left: (e.pageX + 10) + 'px'
+ });
+ }
+ $(window).on('mousemove', _followCursor);
+ $(window).one('click', function () {
+ $(window).off('mousemove', _followCursor);
+ $floatingSwatch.hide();
+ });
+ $floatingSwatch.show()
+ _followCursor(e);
+ })
}
})
diff --git a/public/assets/stylesheets/app.css b/public/assets/stylesheets/app.css
index a2d2120..2583284 100755
--- a/public/assets/stylesheets/app.css
+++ b/public/assets/stylesheets/app.css
@@ -58,6 +58,17 @@ a{
}
+.floatingSwatch {
+ width: 50px;
+ height: 50px;
+ position:absolute;
+ border: 2px solid black;
+ box-shadow: -2px 2px #fff;
+ display: none;
+ z-index: 10;
+ pointer-events: none;
+}
+
.ants {
max-width:320px;
height: auto;
diff --git a/views/controls/editor/wallpaper.ejs b/views/controls/editor/wallpaper.ejs
index 82460b7..144e419 100644
--- a/views/controls/editor/wallpaper.ejs
+++ b/views/controls/editor/wallpaper.ejs
@@ -1,10 +1,4 @@
<div class="vvbox wallpaper">
- <span class="paper1"></span>
- <span class="paper2"></span>
- <span class="paper3"></span>
- <span class="paper4"></span>
- <span class="paper5"></span>
- <span class="paper6"></span>
- <span class="paper7"></span>
- <span class="paper8"></span>
-</div> \ No newline at end of file
+</div>
+
+<div class="floatingSwatch"></div>