1 <!DOCTYPE HTML> 2 <html i18n-values="dir:textdirection;"> 3 <head> 4 <meta charset="utf-8"> 5 <title>Slideshow</title> 6 <style> 7 8 body { 9 overflow: hidden; 10 background: black; 11 } 12 13 #glow { 14 left: 0; 15 right: 0; 16 bottom: 30px; 17 height: 8px; 18 opacity: .4; 19 position: absolute; 20 background: -webkit-linear-gradient(transparent, white); 21 } 22 23 #main { 24 position: absolute; 25 left: 0; 26 right:0; 27 top: 0; 28 bottom: 30px; 29 overflow: hidden; 30 } 31 32 #playercontrols { 33 bottom: 0; 34 left: 0; 35 z-index: 999; 36 height: 30px; 37 opacity: .9; 38 right: 0; 39 align:center; 40 -webkit-box-align: center; 41 -webkit-box-pack: center; 42 display: -webkit-box; 43 position: absolute; 44 background: -webkit-linear-gradient(#323232, #070707); 45 } 46 47 #prevbutton > div { 48 background: url('shared/images/mediaplayer_prev.png'); 49 background-repeat: no-repeat; 50 background-position: 4px 8px; 51 width: 100%; 52 height: 30px; 53 z-index: 9999; 54 } 55 56 .currentpicture { 57 width: 100%; 58 height: 100%; 59 position: absolute; 60 top: 0; 61 -webkit-transition-property: left; 62 -webkit-transition-duration: 1s; 63 display: -webkit-box; 64 -webkit-box-align: center; 65 -webkit-box-pack: center; 66 pointer-events: none; 67 } 68 69 .comingfromleft { 70 left: -100%; 71 } 72 73 .comingfromright { 74 left: 100%; 75 } 76 77 #nextbutton > div { 78 background: url('shared/images/mediaplayer_next.png'); 79 background-repeat: no-repeat; 80 background-position: 4px 8px; 81 width: 100%; 82 height: 30px; 83 z-index: 9999; 84 } 85 86 button { 87 z-index: 9999; 88 cursor: pointer; 89 width: 28px; 90 height: 30px; 91 webkit-appearance: none; 92 padding: 0; 93 border: 0; 94 background: transparent; 95 } 96 97 button:hover { 98 background: -webkit-linear-gradient(#6a7eac, #000000); 99 } 100 101 </style> 102 <script src="shared/js/local_strings.js"></script> 103 <script src="shared/js/media_common.js"></script> 104 <script> 105 106 document.addEventListener('DOMContentLoaded', load); 107 108 document.onselectstart = function(e) { 109 e.preventDefault(); 110 }; 111 112 function $(o) { 113 return document.getElementById(o); 114 } 115 116 /////////////////////////////////////////////////////////////////////////////// 117 // Document Functions: 118 119 var currentPicture = null; 120 var prevPicture = null; 121 var currentFileOffset = 0; 122 var filelist; 123 var moveRight = false; 124 var lastimg = null; 125 126 function loadedPicture() { 127 if (prevPicture) { 128 if (moveRight) { 129 prevPicture.style.left = '-100%'; 130 } else { 131 prevPicture.style.left = '100%'; 132 } 133 } 134 if (window.innerHeight < lastimg.height || 135 window.innerWidth < lastimg.width) { 136 if (lastimg.width > lastimg.height) { 137 lastimg.style.height = 'auto'; 138 lastimg.style.width = '100%'; 139 } else { 140 lastimg.style.width = 'auto'; 141 lastimg.style.height = '100%'; 142 } 143 } 144 setTimeout(function() { 145 currentPicture.style.left = '0'; 146 }, 10); 147 } 148 149 function transitionTo(path, fromTheRight) { 150 if (currentPicture) { 151 if (prevPicture) { 152 $('main').removeChild(prevPicture); 153 } 154 prevPicture = currentPicture; 155 } 156 157 currentPicture = document.createElement('div'); 158 159 $('main').appendChild(currentPicture); 160 if (fromTheRight) { 161 currentPicture.className = 'currentpicture comingfromright'; 162 } else { 163 currentPicture.className = 'currentpicture comingfromleft'; 164 } 165 var image = document.createElement('img'); 166 lastimg = image; 167 image.onload = loadedPicture; 168 image.onerror = loadedPicture; 169 document.location.hash = path; 170 image.src = 'file://' + path; 171 currentPicture.appendChild(image); 172 moveRight = fromTheRight; 173 } 174 175 function browseFileResult(info, results) { 176 filelist = results; 177 if (info.currentOffset) { 178 currentFileOffset = info.currentOffset; 179 } else { 180 currentFileOffset = 0; 181 } 182 transitionTo(filelist[currentFileOffset].path, true); 183 } 184 185 function keyPressed(e) { 186 // Left Pressed 187 if (e.keyCode == 37) { 188 if (currentFileOffset > 0) { 189 currentFileOffset--; 190 transitionTo(filelist[currentFileOffset].path, false); 191 } 192 } 193 // Right Pressed 194 if (e.keyCode == 39) { 195 if (currentFileOffset < (filelist.length - 1)) { 196 currentFileOffset++; 197 transitionTo(filelist[currentFileOffset].path, true); 198 } 199 } 200 } 201 202 function load() { 203 localStrings = new LocalStrings(); 204 205 document.onkeydown = keyPressed; 206 if (document.location.href.indexOf('#') != -1) { 207 var currentpathArray = document.location.href.split('#'); 208 var path = currentpathArray[1]; 209 chrome.send('getChildren', [path]); 210 } 211 } 212 213 function prevButtonClick() { 214 if (currentFileOffset > 0) { 215 currentFileOffset--; 216 transitionTo(filelist[currentFileOffset].path, false); 217 } 218 } 219 220 function nextButtonClick() { 221 if (currentFileOffset < (filelist.length - 1)) { 222 currentFileOffset++; 223 transitionTo(filelist[currentFileOffset].path, true); 224 } 225 } 226 227 function toggleFullscreen() { 228 chrome.send('toggleFullscreen', ['']); 229 } 230 231 </script> 232 <body> 233 <div id="main"></div> 234 <div id="glow"></div> 235 <div id="playercontrols"> 236 <button id="prevbutton" onclick="prevButtonClick()"> 237 <div></div> 238 </button> 239 <button id="nextbutton" onclick="nextButtonClick()"> 240 <div></div> 241 </button> 242 </div> 243 </body> 244 </html> 245