From 4bee0d69d33dd3febccbefecc6a184caf9b0a70e Mon Sep 17 00:00:00 2001 From: m0qui Date: Mon, 20 Mar 2017 09:02:41 +0100 Subject: [PATCH] Added generic picture support with best fit option --- index.html | 1 + list.sahli | 50 ++++++++++++++++++++++++++++ sahli.coffee | 33 ++++++++++++++++-- sahli.css | 12 +++++++ sahli.js | 40 ++++++++++++++++++++-- testshow/AD - Green Beam.scaled.png | Bin 0 -> 16722 bytes testshow/om-boss.png | Bin 0 -> 3153 bytes 7 files changed, 131 insertions(+), 5 deletions(-) create mode 100644 testshow/AD - Green Beam.scaled.png create mode 100644 testshow/om-boss.png diff --git a/index.html b/index.html index e070433..233d273 100644 --- a/index.html +++ b/index.html @@ -47,6 +47,7 @@
  • B Jump to Bottom
  • 12345 Alter scrollspeed (fast -> slow)
  • Z Zoom full width
  • +
  • Q Best fit for images
  • ER Zoom in steps larger/smaller
  • C "panel" view toggle
  • UpDownPageupPagedown Move about by line/page
  • diff --git a/list.sahli b/list.sahli index e394280..5e6ceb5 100644 --- a/list.sahli +++ b/list.sahli @@ -14,6 +14,56 @@ "filedata": [ + { + "file": "AD - Green Beam.scaled.png", + "name": "Green Beam", + "amiga": false, + "filetype": "image", + "width": "1600", + "author": "AD", + "font": "Propaz", + "color": [ + 0, + 0, + 0, + 255 + ], + "bg": [ + 255, + 255, + 255, + 255 + ], + "line1": "", + "line2": "", + "text": "" + }, + + { + "file": "om-boss.png", + "name": "Green Beam", + "amiga": false, + "filetype": "image", + "width": "640", + "author": "AD", + "font": "Propaz", + "color": [ + 0, + 0, + 0, + 255 + ], + "bg": [ + 255, + 255, + 255, + 255 + ], + "line1": "", + "line2": "", + "text": "" + }, + { "file": "spaceflight.asc", diff --git a/sahli.coffee b/sahli.coffee index 9b2bb39..f1f313b 100644 --- a/sahli.coffee +++ b/sahli.coffee @@ -39,6 +39,8 @@ class @Sahli @loadhugeansi picdata, inserthere when 'tundra' @loadhugeansi picdata, inserthere + when 'image' + @loadpicture picdata, inserthere else @loadplain picdata, inserthere @@ -78,6 +80,29 @@ class @Sahli req.open 'GET', fname, true req.send null + @loadpicture = (picdata, inserthere) -> + fname = @location + '/' + picdata.file + pdiv = $('
    ') + pdiv.addClass 'scrolly' + pdiv.width picdata.width + pdiv.css 'display', 'inline-block' + pimg = $('') + pimg.addClass 'fullwidth' + pdiv.append pimg + inserthere.after pdiv + $('h6').hide() + $('body').scrollTop 0 + @origwidth = picdata.width + + @bestfit = => + if $('div.scrolly').hasClass('bestfit') + $('div.scrolly').removeClass 'bestfit' + $('div.scrolly').width @origwidth + else + $('h6').hide() + $('div.scrolly').addClass 'bestfit' + $('div.scrolly').width(""); + @loadhugeansi = (picdata, inserthere) -> fname = @location + '/' + picdata.file pdiv = $('
    ') @@ -97,7 +122,7 @@ class @Sahli @origwidth = canvwidth @origheight = calcheight pdiv.width canvwidth - ), 30, 'bits': '8' + ), 30, {'bits': '8', "font": picdata.font} @loadavatar = (picdata, inserthere) -> console.log 'avatar', picdata, inserthere @@ -137,6 +162,7 @@ class @Sahli filedata = @filedata filedata[i].pic = $('
    ' + filedata[i].file + '
    ') viewbox.append filedata[i].pic + $('h6').show() @loadpic filedata[i], filedata[i].pic @currentpic += 1 if @currentpic > filedata.length - 1 @@ -237,7 +263,7 @@ class @Sahli zoomee.width newwidth $('canvas').width newwidth else - if zoomee.width() != @origwidth + if parseInt( zoomee.width(), 10 ) != parseInt( @origwidth, 10) zoomee.width @origwidth $('canvas').width '100%' else @@ -342,6 +368,8 @@ class @Sahli @zoom 100 when @keycode 'r' @zoom -100 + when @keycode 'q' + @bestfit() when @keycode 'w' @changescrolldirection -1 when @keycode 'x' @@ -351,6 +379,7 @@ class @Sahli when @keycode 'i' $('div.infobox').toggle() when @keycode 'v' + $('h6').show() $('h6').height( (window.innerHeight - $('.scrolly').height()) / 2 ) when @keycode '1' @changespeed 1 diff --git a/sahli.css b/sahli.css index b0a213a..2429eae 100644 --- a/sahli.css +++ b/sahli.css @@ -52,6 +52,18 @@ h6 { width: 33%; } +.fullwidth { + width: 100%; +} + +.bestfit { + padding: 0; + display: block; + margin: 0 auto; + max-width: 100%; + max-height: 100%; +} + .keylist { border: inset lightgrey; background-color: white; diff --git a/sahli.js b/sahli.js index a80b989..7872b6d 100644 --- a/sahli.js +++ b/sahli.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.11.0 +// Generated by CoffeeScript 1.9.3 /* .___________________________________, ___ @@ -40,6 +40,8 @@ l__________/__________|___|______l__________j_____j return this.loadhugeansi(picdata, inserthere); case 'tundra': return this.loadhugeansi(picdata, inserthere); + case 'image': + return this.loadpicture(picdata, inserthere); default: return this.loadplain(picdata, inserthere); } @@ -87,6 +89,33 @@ l__________/__________|___|______l__________j_____j return req.send(null); }; + Sahli.loadpicture = function(picdata, inserthere) { + var fname, pdiv, pimg; + fname = this.location + '/' + picdata.file; + pdiv = $('
    '); + pdiv.addClass('scrolly'); + pdiv.width(picdata.width); + pdiv.css('display', 'inline-block'); + pimg = $(''); + pimg.addClass('fullwidth'); + pdiv.append(pimg); + inserthere.after(pdiv); + $('h6').hide(); + $('body').scrollTop(0); + return this.origwidth = picdata.width; + }; + + Sahli.bestfit = function() { + if ($('div.scrolly').hasClass('bestfit')) { + $('div.scrolly').removeClass('bestfit'); + return $('div.scrolly').width(Sahli.origwidth); + } else { + $('h6').hide(); + $('div.scrolly').addClass('bestfit'); + return $('div.scrolly').width(""); + } + }; + Sahli.loadhugeansi = function(picdata, inserthere) { var calcheight, canvwidth, fname, pdiv; fname = this.location + '/' + picdata.file; @@ -111,7 +140,8 @@ l__________/__________|___|______l__________j_____j return pdiv.width(canvwidth); }; })(this)), 30, { - 'bits': '8' + 'bits': '8', + "font": picdata.font }); }; @@ -161,6 +191,7 @@ l__________/__________|___|______l__________j_____j filedata = Sahli.filedata; filedata[i].pic = $('
    ' + filedata[i].file + '
    '); viewbox.append(filedata[i].pic); + $('h6').show(); Sahli.loadpic(filedata[i], filedata[i].pic); Sahli.currentpic += 1; if (Sahli.currentpic > filedata.length - 1) { @@ -280,7 +311,7 @@ l__________/__________|___|______l__________j_____j zoomee.width(newwidth); return $('canvas').width(newwidth); } else { - if (zoomee.width() !== this.origwidth) { + if (parseInt(zoomee.width(), 10) !== parseInt(this.origwidth, 10)) { zoomee.width(this.origwidth); return $('canvas').width('100%'); } else { @@ -404,6 +435,8 @@ l__________/__________|___|______l__________j_____j return _this.zoom(100); case _this.keycode('r'): return _this.zoom(-100); + case _this.keycode('q'): + return _this.bestfit(); case _this.keycode('w'): return _this.changescrolldirection(-1); case _this.keycode('x'): @@ -413,6 +446,7 @@ l__________/__________|___|______l__________j_____j case _this.keycode('i'): return $('div.infobox').toggle(); case _this.keycode('v'): + $('h6').show(); return $('h6').height((window.innerHeight - $('.scrolly').height()) / 2); case _this.keycode('1'): return _this.changespeed(1); diff --git a/testshow/AD - Green Beam.scaled.png b/testshow/AD - Green Beam.scaled.png new file mode 100644 index 0000000000000000000000000000000000000000..fbecb25f9bea7fe1f6a26564d1e213bb094d1ce3 GIT binary patch literal 16722 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 literal 0 HcmV?d00001 diff --git a/testshow/om-boss.png b/testshow/om-boss.png new file mode 100644 index 0000000000000000000000000000000000000000..e3abd45d77f1fefb01990f9921494133afa88b41 GIT binary patch literal 3153 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 literal 0 HcmV?d00001