aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--credits.html99
-rwxr-xr-ximages/favicon.pngbin1085 -> 564 bytes
-rwxr-xr-xindex.html247
-rwxr-xr-xjs/io/system/coreioapi.js3
-rwxr-xr-xjs/io/system/fileio.js17
-rw-r--r--js/mediators/io-mediator.js41
-rwxr-xr-xjs/ninja.reel/ninja.js3
-rw-r--r--license.html52
8 files changed, 249 insertions, 213 deletions
diff --git a/credits.html b/credits.html
new file mode 100644
index 00000000..b2623600
--- /dev/null
+++ b/credits.html
@@ -0,0 +1,99 @@
1<!DOCTYPE html>
2<!-- <copyright>
3 This file contains proprietary software owned by Motorola Mobility, Inc.<br/>
4 No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/>
5 (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved.
6 </copyright> -->
7<html>
8
9 <head lang="en">
10 <title>Motorola Ninja - Third Party Credits</title>
11
12 <meta charset="utf-8"/>
13 <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
14 <meta http-equiv="cache-control" content="no-store, no-cache, must-revalidate" />
15 <meta http-equiv="Pragma" content="no-store, no-cache" />
16 <meta http-equiv="Expires" content="0" />
17
18 <link rel="icon" href="images/favicon.png" sizes="16x16">
19
20 <style type="text/css">
21 html, body
22 {
23 width: 98%;
24 height: 98%;
25 overflow: hidden;
26 background: white;
27 margin: 0;
28 padding: 0;
29 color: black;
30 text-align: left;
31 font-family: Arial;
32 margin: 1%;
33 }
34
35 ul
36 {
37 margin-top: -2px;
38 margin-left: -9px;
39 }
40 </style>
41 </head>
42
43 <body>
44 <h2>Motorola Mobility, Inc. Ninja Third Party Credits</h2>
45 <div>
46 Dotted stroke drawing from Gavin Kistner
47 <ul>
48 <li>Code from: <a href="http://stackoverflow.com/questions/4576724/dotted-stroke-in-canvas/7210370#7210370" target="_blank">http://stackoverflow.com/questions/4576724/dotted-stroke-in-canvas/7210370#7210370</a></li>
49 <li>Used by permission of Gavin Kistner</li>
50 </ul>
51 </div>
52 <div>
53 CSS specificity in JavaScript from Graham Bradley
54 <ul>
55 <li>Code from: <a href="http://gbradley.com/2009/10/02/css-specificity-in-javascript" target="_blank">http://gbradley.com/2009/10/02/css-specificity-in-javascript</a></li>
56 <li>Used by permission of Graham Bradley</li>
57 </ul>
58 </div>
59
60 <div>
61 Highest Z index code from Jason Jaeger
62 <ul>
63 <li>Code from: <a href="http://greengeckodesign.com/blog/2007/07/get-highest-z-index-in-javascript.html#comment-248" target="_blank">http://greengeckodesign.com/blog/2007/07/get-highest-z-index-in-javascript.html#comment-248</a></li>
64 <li>Used by permission of Jason Jaeger</li>
65 </ul>
66 </div>
67 <div>
68 Webkit CSS Matrix code from Joe Lambert
69 <ul>
70 <li>Code from: <a href="https://github.com/joelambert/morf/blob/master/js/src/WebkitCSSMatrix.ext.js" target="_blank">https://github.com/joelambert/morf/blob/master/js/src/WebkitCSSMatrix.ext.js</a></li>
71 <li>Used by permission of Joe Lambert</li>
72 </ul>
73 </div>
74
75 <div>
76 GLMatrix code from Code from Brandon Jones
77 <ul>
78 <li>Code from: <a href="https://github.com/toji/gl-matrix" target="_blank">https://github.com/toji/gl-matrix</a></li>
79 <li>License: <a href="https://github.com/toji/gl-matrix/blob/master/LICENSE.md" target="_blank">https://github.com/toji/gl-matrix/blob/master/LICENSE.md</a></li>
80 </ul>
81 </div>
82
83 <div>
84 CodeMirror Code Editor
85 <ul>
86 <li>Code from: <a href="http://codemirror.net/" target="_blank">http://codemirror.net/</a> and <a href="https://github.com/marijnh/CodeMirror">https://github.com/marijnh/CodeMirror</a></li>
87 <li>License: <a href="https://github.com/marijnh/CodeMirror/blob/master/LICENSE" target="_blank">https://github.com/marijnh/CodeMirror/blob/master/LICENSE</a></li>
88 </ul>
89 </div>
90
91 <div>
92 Mongoose HTTP Server (for the Ninja Local Cloud application)
93 <ul>
94 <li>Code from: <a href="http://code.google.com/p/mongoose/" target="_blank">http://code.google.com/p/mongoose/</a></li>
95 <li>License: <a href="http://www.opensource.org/licenses/mit-license.php" target="_blank">http://www.opensource.org/licenses/mit-license.php</a></li>
96 </ul>
97 </div>
98 </body>
99</html> \ No newline at end of file
diff --git a/images/favicon.png b/images/favicon.png
index b578b2bf..dba96b25 100755
--- a/images/favicon.png
+++ b/images/favicon.png
Binary files differ
diff --git a/index.html b/index.html
index de1d0b2e..941804a3 100755
--- a/index.html
+++ b/index.html
@@ -9,20 +9,19 @@
9 9
10 <head lang="en"> 10 <head lang="en">
11 11
12 <title>Ninja</title> 12 <title>Motorola Ninja</title>
13 13
14 <meta charset="utf-8"/> 14 <meta charset="utf-8"/>
15 <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> 15 <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
16 <meta http-equiv="cache-control" content="no-store, no-cache, must-revalidate" /> 16 <meta http-equiv="cache-control" content="no-store, no-cache, must-revalidate" />
17 <meta http-equiv="Pragma" content="no-store, no-cache" /> 17 <meta http-equiv="Pragma" content="no-store, no-cache" />
18 <meta http-equiv="Expires" content="0" /> 18 <meta http-equiv="Expires" content="0" />
19 19
20 <link rel="icon" href="images/favicon.png" sizes="16x16"> 20 <link rel="icon" href="images/favicon.png" sizes="16x16">
21 21
22 <link href='http://fonts.googleapis.com/css?family=Droid+Sans:400,700|Droid+Sans+Mono' rel='stylesheet' type='text/css'> 22 <link href='http://fonts.googleapis.com/css?family=Droid+Sans:400,700|Droid+Sans+Mono' rel='stylesheet' type='text/css'>
23 23
24 <style type="text/css"> 24 <style type="text/css">
25
26 html, body 25 html, body
27 { 26 {
28 width: 100%; 27 width: 100%;
@@ -40,11 +39,8 @@
40 left: 0%; 39 left: 0%;
41 width: 100%; 40 width: 100%;
42 height: 100%; 41 height: 100%;
43 background-image: -webkit-radial-gradient(center, ellipse cover, rgba(40, 40, 40, 1) 0%, rgba(5, 5, 5, 1) 80%, rgba(0, 0, 0, 1) 100%);
44 background-size: auto, 115%; 42 background-size: auto, 115%;
45 background-color: rgba(150, 0, 0, 1); 43 background-color: rgba(0, 0, 0, 1);
46 background-position: center center;
47 background-repeat: no-repeat;
48 } 44 }
49 45
50 .montage-app-loaded body 46 .montage-app-loaded body
@@ -57,7 +53,6 @@
57 { 53 {
58 opacity: 0; 54 opacity: 0;
59 -webkit-transition: opacity 250ms ease-in-out; 55 -webkit-transition: opacity 250ms ease-in-out;
60 /* This is a hack, trying to smooth the draw */
61 -webkit-transition-delay: 500ms; 56 -webkit-transition-delay: 500ms;
62 } 57 }
63 58
@@ -68,70 +63,66 @@
68 63
69 #ninja_logo 64 #ninja_logo
70 { 65 {
71 width: 320px; 66 width: 256px;
72 height: 320px; 67 height: 256px;
73 position: absolute; 68 position: absolute;
74 top: 50%; 69 top: 165px;
75 left: 50%; 70 left: 28%;
76 margin: -160px 0px 0px -160px; 71 overflow: hidden;
77 overflow: visible; 72 background: transparent url(data:image/png;base64,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