work in progress & organization
21
LICENSE
Normal file
@ -0,0 +1,21 @@
|
||||
Copyright 2011 Andrew M. Trice. All rights reserved, except where otherwise noted.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, are
|
||||
permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
of conditions and the following disclaimer in the documentation and/or other materials
|
||||
provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY ANDREW M. TRICE ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANDREW M. TRICE OR
|
||||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
20
README
Normal file
@ -0,0 +1,20 @@
|
||||
app-UI
|
||||
--------------------------------------
|
||||
app-UI is a collection of user interface components that may be helpful to web and mobile developers for creating interactive applications using HTML and JavaScript, especially those targeting mobile devices.
|
||||
|
||||
app-UI has three application containers:
|
||||
|
||||
*ViewNavigator*
|
||||
|
||||
*SplitViewNavigator*
|
||||
|
||||
*SlidingView*
|
||||
|
||||
|
||||
Dependencies:
|
||||
The required dependencies are contained within this code repository, with links to the original files/sources. Dependencies include:
|
||||
|
||||
jQuery - http://jquery.com/
|
||||
jQuery Animate Enhanced - https://github.com/benbarnett/jQuery-Animate-Enhanced
|
||||
iScroll 4 - http://cubiq.org/iscroll-4
|
||||
NoClickDelay - http://cubiq.org/remove-onclick-delay-on-webkit-for-iphone
|
BIN
samples/.DS_Store
vendored
Normal file
BIN
samples/browser history/.DS_Store
vendored
Normal file
BIN
samples/browser history/assets/.DS_Store
vendored
Normal file
BIN
samples/browser history/assets/header_bg_wood.png
Normal file
After Width: | Height: | Size: 3.7 KiB |
208
samples/browser history/index.html
Normal file
@ -0,0 +1,208 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>TV Listings</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
||||
|
||||
<script src="../../src/libs/jquery-1.7.1.js"></script>
|
||||
<script src="../../src/libs/jquery.animate-enhanced.js"></script>
|
||||
<script src="../../src/libs/iscroll.js"></script>
|
||||
<script src="../../src/libs/noClickDelay.js"></script>
|
||||
<script type="text/javascript" src="libs/jquery.address-1.4.js"></script>
|
||||
|
||||
|
||||
<link rel="stylesheet" href="../../src/viewnavigator/viewnavigator.css" type="text/css" />
|
||||
<script src="../../src/viewnavigator/viewnavigator.js"></script>
|
||||
|
||||
<style>
|
||||
|
||||
body,ul,li,header,nav,aside,section,article,p,a {
|
||||
padding:0;
|
||||
margin:0;
|
||||
border:0;
|
||||
}
|
||||
|
||||
body {
|
||||
font: normal 1.25em Helvetica;
|
||||
background: #333;
|
||||
}
|
||||
|
||||
object{
|
||||
-webkit-overflow-scrolling: touch;
|
||||
}
|
||||
|
||||
#iframeWrapper {
|
||||
width: 100%;
|
||||
height:100%;
|
||||
overflow: scroll;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
}
|
||||
|
||||
iframe {
|
||||
width: 100%;
|
||||
min-height:100%;
|
||||
background-color: rgba(0,0,0,0);
|
||||
border: none;
|
||||
overflow: scroll;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
}
|
||||
|
||||
|
||||
.viewNavigator_header {
|
||||
background-color: #333;
|
||||
background: url("./assets/header_bg_wood.png") repeat;
|
||||
font: bold 1em Helvetica;
|
||||
}
|
||||
|
||||
.viewNavigator_content {
|
||||
border-top: 2px solid #666;
|
||||
background-color: #333;
|
||||
}
|
||||
|
||||
.viewNavigator_contentHolder {
|
||||
background-color: #333;
|
||||
}
|
||||
|
||||
.viewNavigator_header_title {
|
||||
max-width:100%;
|
||||
text-shadow: 1px 2px #777;
|
||||
}
|
||||
|
||||
.headerButton {
|
||||
-webkit-box-shadow:inset 0px 1px 0px 0px #999;
|
||||
box-shadow:inset 0px 1px 0px 0px #999;
|
||||
background-color:rgba(128,128,128,0.65);
|
||||
-moz-border-radius:6px;
|
||||
-webkit-border-radius:6px;
|
||||
border-radius:6px;
|
||||
border:1px solid #777;
|
||||
display:inline-block;
|
||||
color:#ffffff;
|
||||
font-family:arial;
|
||||
font-size:15px;
|
||||
font-weight:bold;
|
||||
padding:6px 24px;
|
||||
text-decoration:none;
|
||||
text-shadow:1px 1px 0px #736d73;
|
||||
padding: 6px;
|
||||
padding-top:5px;
|
||||
padding-bottom:4px;
|
||||
}.headerButton:active {
|
||||
position:relative;
|
||||
top:1px;
|
||||
}
|
||||
|
||||
.listItem {
|
||||
padding:0 10px;
|
||||
background-color: #222;
|
||||
color:white;
|
||||
border-bottom:1px solid #888;
|
||||
border-bottom:1px solid #444;
|
||||
height:40px; line-height:40px;
|
||||
font-weight:bold;
|
||||
cursor:pointer;
|
||||
text-shadow: 1px 2px #777;
|
||||
display:block;
|
||||
text-decoration:none;
|
||||
}
|
||||
|
||||
.oddRow {
|
||||
background-color: #333;
|
||||
}
|
||||
|
||||
|
||||
.listSelected {
|
||||
background:#015FE6;
|
||||
background-color:#015FE6;
|
||||
color: #FFF;
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<script>
|
||||
// jQuery Address Event handlers
|
||||
$.address.externalChange(function(event) {
|
||||
var text = event.value.substr(1);
|
||||
|
||||
if ( text.length > 0 ) {
|
||||
loadView( text );
|
||||
window.defaultView.find("a").each(function(i){
|
||||
var $this = $(this);
|
||||
if ($this.text() == text ) {
|
||||
$this.addClass( "listSelected" );
|
||||
}
|
||||
});
|
||||
$(this).addClass( "listSelected" );
|
||||
}
|
||||
else {
|
||||
resetList();
|
||||
window.viewNavigator.popView();
|
||||
$.address.value("");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
$(document).ready( function() {
|
||||
|
||||
//Setup the default view
|
||||
var template = $("#defaultViewTemplate").html();
|
||||
window.defaultView = $(template);
|
||||
|
||||
defaultViewDescriptor = { title: "TV Listings",
|
||||
view: window.defaultView
|
||||
};
|
||||
|
||||
//Setup the ViewNavigator
|
||||
window.viewNavigator = new ViewNavigator( 'body', 'headerButton' );
|
||||
window.viewNavigator.pushView( defaultViewDescriptor );
|
||||
|
||||
|
||||
});
|
||||
|
||||
function loadView( title ) {
|
||||
|
||||
var html = "<div style='min-height:100%; background:#FFF; padding: 3px 15px;'><h1>" + title + "</h1><strong>Cable television</strong> is a system of providing television programs to consumers via radio frequency (RF) signals transmitted to televisions through coaxial cables or digital light pulses through fixed optical fibers located on the subscriber's property. This can be compared to over-the-air method used in traditional broadcast television (via radio waves) in which a television antenna is required. FM radio programming, high-speed Internet, telephony, and similar non-television services may also be provided through cable television. Source: <a href='http://en.wikipedia.org/wiki/Cable_tv'>http://en.wikipedia.org/wiki/Cable_tv</a></div>";
|
||||
|
||||
var iframeView = { title: title,
|
||||
backLabel: "Home",
|
||||
view: $(html),
|
||||
backCallback: handleNavigateBack
|
||||
};
|
||||
window.viewNavigator.pushView( iframeView );
|
||||
}
|
||||
|
||||
function handleNavigateBack() {
|
||||
resetList();
|
||||
history.back();
|
||||
}
|
||||
|
||||
function resetList() {
|
||||
window.defaultView.find("a").each(function(i){
|
||||
$(this).removeClass( "listSelected" );
|
||||
});
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body></body>
|
||||
|
||||
<script type="text/html" id="defaultViewTemplate">
|
||||
<ul>
|
||||
<a class="listItem" href="#CBS">CBS</a>
|
||||
<a class="listItem oddRow" href="#NBC">NBC</a>
|
||||
<a class="listItem" href="#FOX">FOX</a>
|
||||
<a class="listItem oddRow" href="#ABC">ABC</a>
|
||||
<a class="listItem" href="#TLC">TLC</a>
|
||||
<a class="listItem oddRow" href="#CNN">CNN</a>
|
||||
<a class="listItem" href="#Food Network">Food Network</a>
|
||||
<a class="listItem oddRow" href="#ESPN">ESPN</a>
|
||||
<a class="listItem" href="#TBS">TBS</a>
|
||||
<a class="listItem oddRow" href="#USA">USA</a>
|
||||
<a class="listItem" href="#MTV">MTV</a>
|
||||
|
||||
</ul>
|
||||
</script>
|
||||
</html>
|
BIN
samples/browser history/libs/.DS_Store
vendored
Normal file
655
samples/browser history/libs/jquery.address-1.4.js
Normal file
@ -0,0 +1,655 @@
|
||||
/*
|
||||
* jQuery Address Plugin v1.4
|
||||
* http://www.asual.com/jquery/address/
|
||||
*
|
||||
* Copyright (c) 2009-2010 Rostislav Hristov
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* Date: 2011-05-04 14:22:12 +0300 (Wed, 04 May 2011)
|
||||
*/
|
||||
(function ($) {
|
||||
|
||||
$.address = (function () {
|
||||
|
||||
var _trigger = function(name) {
|
||||
$($.address).trigger(
|
||||
$.extend($.Event(name),
|
||||
(function() {
|
||||
var parameters = {},
|
||||
parameterNames = $.address.parameterNames();
|
||||
for (var i = 0, l = parameterNames.length; i < l; i++) {
|
||||
parameters[parameterNames[i]] = $.address.parameter(parameterNames[i]);
|
||||
}
|
||||
return {
|
||||
value: $.address.value(),
|
||||
path: $.address.path(),
|
||||
pathNames: $.address.pathNames(),
|
||||
parameterNames: parameterNames,
|
||||
parameters: parameters,
|
||||
queryString: $.address.queryString()
|
||||
};
|
||||
}).call($.address)
|
||||
)
|
||||
);
|
||||
},
|
||||
_bind = function(value, data, fn) {
|
||||
$().bind.apply($($.address), Array.prototype.slice.call(arguments));
|
||||
return $.address;
|
||||
},
|
||||
_supportsState = function() {
|
||||
return (_h.pushState && _opts.state !== UNDEFINED);
|
||||
},
|
||||
_hrefState = function() {
|
||||
return ('/' + _l.pathname.replace(new RegExp(_opts.state), '') +
|
||||
_l.search + (_hrefHash() ? '#' + _hrefHash() : '')).replace(_re, '/');
|
||||
},
|
||||
_hrefHash = function() {
|
||||
var index = _l.href.indexOf('#');
|
||||
return index != -1 ? _crawl(_l.href.substr(index + 1), FALSE) : '';
|
||||
},
|
||||
_href = function() {
|
||||
return _supportsState() ? _hrefState() : _hrefHash();
|
||||
},
|
||||
_window = function() {
|
||||
try {
|
||||
return top.document !== UNDEFINED ? top : window;
|
||||
} catch (e) {
|
||||
return window;
|
||||
}
|
||||
},
|
||||
_js = function() {
|
||||
return 'javascript';
|
||||
},
|
||||
_strict = function(value) {
|
||||
value = value.toString();
|
||||
return (_opts.strict && value.substr(0, 1) != '/' ? '/' : '') + value;
|
||||
},
|
||||
_crawl = function(value, direction) {
|
||||
if (_opts.crawlable && direction) {
|
||||
return (value !== '' ? '!' : '') + value;
|
||||
}
|
||||
return value.replace(/^\!/, '');
|
||||
},
|
||||
_cssint = function(el, value) {
|
||||
return parseInt(el.css(value), 10);
|
||||
},
|
||||
_search = function(el) {
|
||||
var url, s;
|
||||
for (var i = 0, l = el.childNodes.length; i < l; i++) {
|
||||
try {
|
||||
if ('src' in el.childNodes[i] && el.childNodes[i].src) {
|
||||
url = String(el.childNodes[i].src);
|
||||
}
|
||||
} catch (e) {
|
||||
// IE Invalid pointer problem with base64 encoded images
|
||||
}
|
||||
s = _search(el.childNodes[i]);
|
||||
if (s) {
|
||||
url = s;
|
||||
}
|
||||
}
|
||||
return url;
|
||||
},
|
||||
_listen = function() {
|
||||
if (!_silent) {
|
||||
var hash = _href(),
|
||||
diff = _value != hash;
|
||||
if (diff) {
|
||||
if (_msie && _version < 7) {
|
||||
_l.reload();
|
||||
} else {
|
||||
if (_msie && _version < 8 && _opts.history) {
|
||||
_st(_html, 50);
|
||||
}
|
||||
_value = hash;
|
||||
_update(FALSE);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
_update = function(internal) {
|
||||
_trigger(CHANGE);
|
||||
_trigger(internal ? INTERNAL_CHANGE : EXTERNAL_CHANGE);
|
||||
_st(_track, 10);
|
||||
},
|
||||
_track = function() {
|
||||
if (_opts.tracker !== 'null' && _opts.tracker !== null) {
|
||||
var fn = $.isFunction(_opts.tracker) ? _opts.tracker : _t[_opts.tracker],
|
||||
value = (_l.pathname + _l.search +
|
||||
($.address && !_supportsState() ? $.address.value() : ''))
|
||||
.replace(/\/\//, '/').replace(/^\/$/, '');
|
||||
if ($.isFunction(fn)) {
|
||||
fn(value);
|
||||
} else if ($.isFunction(_t.urchinTracker)) {
|
||||
_t.urchinTracker(value);
|
||||
} else if (_t.pageTracker !== UNDEFINED && $.isFunction(_t.pageTracker._trackPageview)) {
|
||||
_t.pageTracker._trackPageview(value);
|
||||
} else if (_t._gaq !== UNDEFINED && $.isFunction(_t._gaq.push)) {
|
||||
_t._gaq.push(['_trackPageview', decodeURI(value)]);
|
||||
}
|
||||
}
|
||||
},
|
||||
_html = function() {
|
||||
var src = _js() + ':' + FALSE + ';document.open();document.writeln(\'<html><head><title>' +
|
||||
_d.title.replace('\'', '\\\'') + '</title><script>var ' + ID + ' = "' + encodeURIComponent(_href()) +
|
||||
(_d.domain != _l.hostname ? '";document.domain="' + _d.domain : '') +
|
||||
'";</' + 'script></head></html>\');document.close();';
|
||||
if (_version < 7) {
|
||||
_frame.src = src;
|
||||
} else {
|
||||
_frame.contentWindow.location.replace(src);
|
||||
}
|
||||
},
|
||||
_options = function() {
|
||||
if (_url && _qi != -1) {
|
||||
var param, params = _url.substr(_qi + 1).split('&');
|
||||
for (i = 0; i < params.length; i++) {
|
||||
param = params[i].split('=');
|
||||
if (/^(autoUpdate|crawlable|history|strict|wrap)$/.test(param[0])) {
|
||||
_opts[param[0]] = (isNaN(param[1]) ? /^(true|yes)$/i.test(param[1]) : (parseInt(param[1], 10) !== 0));
|
||||
}
|
||||
if (/^(state|tracker)$/.test(param[0])) {
|
||||
_opts[param[0]] = param[1];
|
||||
}
|
||||
}
|
||||
_url = null;
|
||||
}
|
||||
_value = _href();
|
||||
},
|
||||
_load = function() {
|
||||
if (!_loaded) {
|
||||
_loaded = TRUE;
|
||||
_options();
|
||||
var complete = function() {
|
||||
_enable.call(this);
|
||||
_unescape.call(this);
|
||||
},
|
||||
body = $('body').ajaxComplete(complete);
|
||||
complete();
|
||||
if (_opts.wrap) {
|
||||
var wrap = $('body > *')
|
||||
.wrapAll('<div style="padding:' +
|
||||
(_cssint(body, 'marginTop') + _cssint(body, 'paddingTop')) + 'px ' +
|
||||
(_cssint(body, 'marginRight') + _cssint(body, 'paddingRight')) + 'px ' +
|
||||
(_cssint(body, 'marginBottom') + _cssint(body, 'paddingBottom')) + 'px ' +
|
||||
(_cssint(body, 'marginLeft') + _cssint(body, 'paddingLeft')) + 'px;" />')
|
||||
.parent()
|
||||
.wrap('<div id="' + ID + '" style="height:100%;overflow:auto;position:relative;' +
|
||||
(_webkit && !window.statusbar.visible ? 'resize:both;' : '') + '" />');
|
||||
$('html, body')
|
||||
.css({
|
||||
height: '100%',
|
||||
margin: 0,
|
||||
padding: 0,
|
||||
overflow: 'hidden'
|
||||
});
|
||||
if (_webkit) {
|
||||
$('<style type="text/css" />')
|
||||
.appendTo('head')
|
||||
.text('#' + ID + '::-webkit-resizer { background-color: #fff; }');
|
||||
}
|
||||
}
|
||||
if (_msie && _version < 8) {
|
||||
var frameset = _d.getElementsByTagName('frameset')[0];
|
||||
_frame = _d.createElement((frameset ? '' : 'i') + 'frame');
|
||||
if (frameset) {
|
||||
frameset.insertAdjacentElement('beforeEnd', _frame);
|
||||
frameset[frameset.cols ? 'cols' : 'rows'] += ',0';
|
||||
_frame.noResize = TRUE;
|
||||
_frame.frameBorder = _frame.frameSpacing = 0;
|
||||
} else {
|
||||
_frame.style.display = 'none';
|
||||
_frame.style.width = _frame.style.height = 0;
|
||||
_frame.tabIndex = -1;
|
||||
_d.body.insertAdjacentElement('afterBegin', _frame);
|
||||
}
|
||||
_st(function() {
|
||||
$(_frame).bind('load', function() {
|
||||
var win = _frame.contentWindow;
|
||||
_value = win[ID] !== UNDEFINED ? win[ID] : '';
|
||||
if (_value != _href()) {
|
||||
_update(FALSE);
|
||||
_l.hash = _crawl(_value, TRUE);
|
||||
}
|
||||
});
|
||||
if (_frame.contentWindow[ID] === UNDEFINED) {
|
||||
_html();
|
||||
}
|
||||
}, 50);
|
||||
}
|
||||
|
||||
_st(function() {
|
||||
_trigger('init');
|
||||
_update(FALSE);
|
||||
}, 1);
|
||||
|
||||
if (!_supportsState()) {
|
||||
if ((_msie && _version > 7) || (!_msie && ('on' + HASH_CHANGE) in _t)) {
|
||||
if (_t.addEventListener) {
|
||||
_t.addEventListener(HASH_CHANGE, _listen, FALSE);
|
||||
} else if (_t.attachEvent) {
|
||||
_t.attachEvent('on' + HASH_CHANGE, _listen);
|
||||
}
|
||||
} else {
|
||||
_si(_listen, 50);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
_enable = function() {
|
||||
var el,
|
||||
elements = $('a'),
|
||||
length = elements.size(),
|
||||
delay = 1,
|
||||
index = -1,
|
||||
fn = function() {
|
||||
if (++index != length) {
|
||||
el = $(elements.get(index));
|
||||
if (el.is('[rel*="address:"]')) {
|
||||
el.address();
|
||||
}
|
||||
_st(fn, delay);
|
||||
}
|
||||
};
|
||||
_st(fn, delay);
|
||||
},
|
||||
_popstate = function() {
|
||||
if (_value != _href()) {
|
||||
_value = _href();
|
||||
_update(FALSE);
|
||||
}
|
||||
},
|
||||
_unload = function() {
|
||||
if (_t.removeEventListener) {
|
||||
_t.removeEventListener(HASH_CHANGE, _listen, FALSE);
|
||||
} else if (_t.detachEvent) {
|
||||
_t.detachEvent('on' + HASH_CHANGE, _listen);
|
||||
}
|
||||
},
|
||||
_unescape = function() {
|
||||
if (_opts.crawlable) {
|
||||
var base = _l.pathname.replace(/\/$/, ''),
|
||||
fragment = '_escaped_fragment_';
|
||||
if ($('body').html().indexOf(fragment) != -1) {
|
||||
$('a[href]:not([href^=http]), a[href*="' + document.domain + '"]').each(function() {
|
||||
var href = $(this).attr('href').replace(/^http:/, '').replace(new RegExp(base + '/?$'), '');
|
||||
if (href === '' || href.indexOf(fragment) != -1) {
|
||||
$(this).attr('href', '#' + href.replace(new RegExp('/(.*)\\?' + fragment + '=(.*)$'), '!$2'));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
UNDEFINED,
|
||||
ID = 'jQueryAddress',
|
||||
STRING = 'string',
|
||||
HASH_CHANGE = 'hashchange',
|
||||
INIT = 'init',
|
||||
CHANGE = 'change',
|
||||
INTERNAL_CHANGE = 'internalChange',
|
||||
EXTERNAL_CHANGE = 'externalChange',
|
||||
TRUE = true,
|
||||
FALSE = false,
|
||||
_opts = {
|
||||
autoUpdate: TRUE,
|
||||
crawlable: FALSE,
|
||||
history: TRUE,
|
||||
strict: TRUE,
|
||||
wrap: FALSE
|
||||
},
|
||||
_browser = $.browser,
|
||||
_version = parseFloat($.browser.version),
|
||||
_mozilla = _browser.mozilla,
|
||||
_msie = _browser.msie,
|
||||
_opera = _browser.opera,
|
||||
_webkit = _browser.webkit || _browser.safari,
|
||||
_supported = FALSE,
|
||||
_t = _window(),
|
||||
_d = _t.document,
|
||||
_h = _t.history,
|
||||
_l = _t.location,
|
||||
_si = setInterval,
|
||||
_st = setTimeout,
|
||||
_re = /\/{2,9}/g,
|
||||
_agent = navigator.userAgent,
|
||||
_frame,
|
||||
_form,
|
||||
_url = _search(document),
|
||||
_qi = _url ? _url.indexOf('?') : -1,
|
||||
_title = _d.title,
|
||||
_silent = FALSE,
|
||||
_loaded = FALSE,
|
||||
_justset = TRUE,
|
||||
_juststart = TRUE,
|
||||
_updating = FALSE,
|
||||
_listeners = {},
|
||||
_value = _href();
|
||||
|
||||
if (_msie) {
|
||||
_version = parseFloat(_agent.substr(_agent.indexOf('MSIE') + 4));
|
||||
if (_d.documentMode && _d.documentMode != _version) {
|
||||
_version = _d.documentMode != 8 ? 7 : 8;
|
||||
}
|
||||
var pc = _d.onpropertychange;
|
||||
_d.onpropertychange = function() {
|
||||
if (pc) {
|
||||
pc.call(_d);
|
||||
}
|
||||
if (_d.title != _title && _d.title.indexOf('#' + _href()) != -1) {
|
||||
_d.title = _title;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
_supported =
|
||||
(_mozilla && _version >= 1) ||
|
||||
(_msie && _version >= 6) ||
|
||||
(_opera && _version >= 9.5) ||
|
||||
(_webkit && _version >= 523);
|
||||
|
||||
if (_supported) {
|
||||
if (_opera) {
|
||||
history.navigationMode = 'compatible';
|
||||
}
|
||||
if (document.readyState == 'complete') {
|
||||
var interval = setInterval(function() {
|
||||
if ($.address) {
|
||||
_load();
|
||||
clearInterval(interval);
|
||||
}
|
||||
}, 50);
|
||||
} else {
|
||||
_options();
|
||||
$(_load);
|
||||
}
|
||||
$(window).bind('popstate', _popstate).bind('unload', _unload);
|
||||
} else if (!_supported && _hrefHash() !== '') {
|
||||
_l.replace(_l.href.substr(0, _l.href.indexOf('#')));
|
||||
} else {
|
||||
_track();
|
||||
}
|
||||
|
||||
return {
|
||||
bind: function(type, data, fn) {
|
||||
return _bind(type, data, fn);
|
||||
},
|
||||
init: function(fn) {
|
||||
return _bind(INIT, fn);
|
||||
},
|
||||
change: function(fn) {
|
||||
return _bind(CHANGE, fn);
|
||||
},
|
||||
internalChange: function(fn) {
|
||||
return _bind(INTERNAL_CHANGE, fn);
|
||||
},
|
||||
externalChange: function(fn) {
|
||||
return _bind(EXTERNAL_CHANGE, fn);
|
||||
},
|
||||
baseURL: function() {
|
||||
var url = _l.href;
|
||||
if (url.indexOf('#') != -1) {
|
||||
url = url.substr(0, url.indexOf('#'));
|
||||
}
|
||||
if (/\/$/.test(url)) {
|
||||
url = url.substr(0, url.length - 1);
|
||||
}
|
||||
return url;
|
||||
},
|
||||
autoUpdate: function(value) {
|
||||
if (value !== UNDEFINED) {
|
||||
_opts.autoUpdate = value;
|
||||
return this;
|
||||
}
|
||||
return _opts.autoUpdate;
|
||||
},
|
||||
crawlable: function(value) {
|
||||
if (value !== UNDEFINED) {
|
||||
_opts.crawlable = value;
|
||||
return this;
|
||||
}
|
||||
return _opts.crawlable;
|
||||
},
|
||||
history: function(value) {
|
||||
if (value !== UNDEFINED) {
|
||||
_opts.history = value;
|
||||
return this;
|
||||
}
|
||||
return _opts.history;
|
||||
},
|
||||
state: function(value) {
|
||||
if (value !== UNDEFINED) {
|
||||
_opts.state = value;
|
||||
var hrefState = _hrefState();
|
||||
if (_opts.state !== UNDEFINED) {
|
||||
if (_h.pushState) {
|
||||
if (hrefState.substr(0, 3) == '/#/') {
|
||||
_l.replace(_opts.state.replace(/^\/$/, '') + hrefState.substr(2));
|
||||
}
|
||||
} else if (hrefState != '/' && hrefState.replace(/^\/#/, '') != _hrefHash()) {
|
||||
_st(function() {
|
||||
_l.replace(_opts.state.replace(/^\/$/, '') + '/#' + hrefState);
|
||||
}, 1);
|
||||
}
|
||||
}
|
||||
return this;
|
||||
}
|
||||
return _opts.state;
|
||||
},
|
||||
strict: function(value) {
|
||||
if (value !== UNDEFINED) {
|
||||
_opts.strict = value;
|
||||
return this;
|
||||
}
|
||||
return _opts.strict;
|
||||
},
|
||||
tracker: function(value) {
|
||||
if (value !== UNDEFINED) {
|
||||
_opts.tracker = value;
|
||||
return this;
|
||||
}
|
||||
return _opts.tracker;
|
||||
},
|
||||
wrap: function(value) {
|
||||
if (value !== UNDEFINED) {
|
||||
_opts.wrap = value;
|
||||
return this;
|
||||
}
|
||||
return _opts.wrap;
|
||||
},
|
||||
update: function() {
|
||||
_updating = TRUE;
|
||||
this.value(_value);
|
||||
_updating = FALSE;
|
||||
return this;
|
||||
},
|
||||
title: function(value) {
|
||||
if (value !== UNDEFINED) {
|
||||
_st(function() {
|
||||
_title = _d.title = value;
|
||||
if (_juststart && _frame && _frame.contentWindow && _frame.contentWindow.document) {
|
||||
_frame.contentWindow.document.title = value;
|
||||
_juststart = FALSE;
|
||||
}
|
||||
if (!_justset && _mozilla) {
|
||||
_l.replace(_l.href.indexOf('#') != -1 ? _l.href : _l.href + '#');
|
||||
}
|
||||
_justset = FALSE;
|
||||
}, 50);
|
||||
return this;
|
||||
}
|
||||
return _d.title;
|
||||
},
|
||||
value: function(value) {
|
||||
if (value !== UNDEFINED) {
|
||||
value = _strict(value);
|
||||
if (value == '/') {
|
||||
value = '';
|
||||
}
|
||||
if (_value == value && !_updating) {
|
||||
return;
|
||||
}
|
||||
_justset = TRUE;
|
||||
_value = value;
|
||||
if (_opts.autoUpdate || _updating) {
|
||||
_update(TRUE);
|
||||
if (_supportsState()) {
|
||||
_h[_opts.history ? 'pushState' : 'replaceState']({}, '',
|
||||
_opts.state.replace(/\/$/, '') + (_value === '' ? '/' : _value));
|
||||
} else {
|
||||
_silent = TRUE;
|
||||
if (_webkit) {
|
||||
if (_opts.history) {
|
||||
_l.hash = '#' + _crawl(_value, TRUE);
|
||||
} else {
|
||||
_l.replace('#' + _crawl(_value, TRUE));
|
||||
}
|
||||
} else if (_value != _href()) {
|
||||
if (_opts.history) {
|
||||
_l.hash = '#' + _crawl(_value, TRUE);
|
||||
} else {
|
||||
_l.replace('#' + _crawl(_value, TRUE));
|
||||
}
|
||||
}
|
||||
if ((_msie && _version < 8) && _opts.history) {
|
||||
_st(_html, 50);
|
||||
}
|
||||
if (_webkit) {
|
||||
_st(function(){ _silent = FALSE; }, 1);
|
||||
} else {
|
||||
_silent = FALSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
return this;
|
||||
}
|
||||
if (!_supported) {
|
||||
return null;
|
||||
}
|
||||
return _strict(_value);
|
||||
},
|
||||
path: function(value) {
|
||||
if (value !== UNDEFINED) {
|
||||
var qs = this.queryString(),
|
||||
hash = this.hash();
|
||||
this.value(value + (qs ? '?' + qs : '') + (hash ? '#' + hash : ''));
|
||||
return this;
|
||||
}
|
||||
return _strict(_value).split('#')[0].split('?')[0];
|
||||
},
|
||||
pathNames: function() {
|
||||
var path = this.path(),
|
||||
names = path.replace(_re, '/').split('/');
|
||||
if (path.substr(0, 1) == '/' || path.length === 0) {
|
||||
names.splice(0, 1);
|
||||
}
|
||||
if (path.substr(path.length - 1, 1) == '/') {
|
||||
names.splice(names.length - 1, 1);
|
||||
}
|
||||
return names;
|
||||
},
|
||||
queryString: function(value) {
|
||||
if (value !== UNDEFINED) {
|
||||
var hash = this.hash();
|
||||
this.value(this.path() + (value ? '?' + value : '') + (hash ? '#' + hash : ''));
|
||||
return this;
|
||||
}
|
||||
var arr = _value.split('?');
|
||||
return arr.slice(1, arr.length).join('?').split('#')[0];
|
||||
},
|
||||
parameter: function(name, value, append) {
|
||||
var i, params;
|
||||
if (value !== UNDEFINED) {
|
||||
var names = this.parameterNames();
|
||||
params = [];
|
||||
value = value ? value.toString() : '';
|
||||
for (i = 0; i < names.length; i++) {
|
||||
var n = names[i],
|
||||
v = this.parameter(n);
|
||||
if (typeof v == STRING) {
|
||||
v = [v];
|
||||
}
|
||||
if (n == name) {
|
||||
v = (value === null || value === '') ? [] :
|
||||
(append ? v.concat([value]) : [value]);
|
||||
}
|
||||
for (var j = 0; j < v.length; j++) {
|
||||
params.push(n + '=' + v[j]);
|
||||
}
|
||||
}
|
||||
if ($.inArray(name, names) == -1 && value !== null && value !== '') {
|
||||
params.push(name + '=' + value);
|
||||
}
|
||||
this.queryString(params.join('&'));
|
||||
return this;
|
||||
}
|
||||
value = this.queryString();
|
||||
if (value) {
|
||||
var r = [];
|
||||
params = value.split('&');
|
||||
for (i = 0; i < params.length; i++) {
|
||||
var p = params[i].split('=');
|
||||
if (p[0] == name) {
|
||||
r.push(p.slice(1).join('='));
|
||||
}
|
||||
}
|
||||
if (r.length !== 0) {
|
||||
return r.length != 1 ? r : r[0];
|
||||
}
|
||||
}
|
||||
},
|
||||
parameterNames: function() {
|
||||
var qs = this.queryString(),
|
||||
names = [];
|
||||
if (qs && qs.indexOf('=') != -1) {
|
||||
var params = qs.split('&');
|
||||
for (var i = 0; i < params.length; i++) {
|
||||
var name = params[i].split('=')[0];
|
||||
if ($.inArray(name, names) == -1) {
|
||||
names.push(name);
|
||||
}
|
||||
}
|
||||
}
|
||||
return names;
|
||||
},
|
||||
hash: function(value) {
|
||||
if (value !== UNDEFINED) {
|
||||
this.value(_value.split('#')[0] + (value ? '#' + value : ''));
|
||||
return this;
|
||||
}
|
||||
var arr = _value.split('#');
|
||||
return arr.slice(1, arr.length).join('#');
|
||||
}
|
||||
};
|
||||
})();
|
||||
|
||||
$.fn.address = function(fn) {
|
||||
if (!$(this).attr('address')) {
|
||||
var f = function(e) {
|
||||
if (e.shiftKey || e.ctrlKey || e.metaKey) {
|
||||
return true;
|
||||
}
|
||||
if ($(this).is('a')) {
|
||||
var value = fn ? fn.call(this) :
|
||||
/address:/.test($(this).attr('rel')) ? $(this).attr('rel').split('address:')[1].split(' ')[0] :
|
||||
$.address.state() !== undefined && $.address.state() != '/' ?
|
||||
$(this).attr('href').replace(new RegExp('^(.*' + $.address.state() + '|\\.)'), '') :
|
||||
$(this).attr('href').replace(/^(#\!?|\.)/, '');
|
||||
$.address.value(value);
|
||||
e.preventDefault();
|
||||
}
|
||||
};
|
||||
$(this).click(f).live('click', f).live('submit', function(e) {
|
||||
if ($(this).is('form')) {
|
||||
var action = $(this).attr('action'),
|
||||
value = fn ? fn.call(this) : (action.indexOf('?') != -1 ? action.replace(/&$/, '') : action + '?') +
|
||||
$(this).serialize();
|
||||
$.address.value(value);
|
||||
e.preventDefault();
|
||||
}
|
||||
}).attr('address', true);
|
||||
}
|
||||
return this;
|
||||
};
|
||||
|
||||
})(jQuery);
|
BIN
samples/multi-device form factor/.DS_Store
vendored
Normal file
1
samples/multi-device form factor/README
Normal file
@ -0,0 +1 @@
|
||||
This example is intended to be a phonegap application.
|
@ -0,0 +1,498 @@
|
||||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 46;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
531500C415052409004B5BB1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 531500C315052409004B5BB1 /* Foundation.framework */; };
|
||||
531500C615052409004B5BB1 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 531500C515052409004B5BB1 /* UIKit.framework */; };
|
||||
531500C815052409004B5BB1 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 531500C715052409004B5BB1 /* CoreGraphics.framework */; };
|
||||
531500CA15052409004B5BB1 /* AddressBook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 531500C915052409004B5BB1 /* AddressBook.framework */; };
|
||||
531500CC15052409004B5BB1 /* AddressBookUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 531500CB15052409004B5BB1 /* AddressBookUI.framework */; };
|
||||
531500CE15052409004B5BB1 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 531500CD15052409004B5BB1 /* AudioToolbox.framework */; };
|
||||
531500D015052409004B5BB1 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 531500CF15052409004B5BB1 /* AVFoundation.framework */; };
|
||||
531500D215052409004B5BB1 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 531500D115052409004B5BB1 /* CoreLocation.framework */; };
|
||||
531500D415052409004B5BB1 /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 531500D315052409004B5BB1 /* MediaPlayer.framework */; };
|
||||
531500D615052409004B5BB1 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 531500D515052409004B5BB1 /* QuartzCore.framework */; };
|
||||
531500D815052409004B5BB1 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 531500D715052409004B5BB1 /* SystemConfiguration.framework */; };
|
||||
531500DA15052409004B5BB1 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 531500D915052409004B5BB1 /* MobileCoreServices.framework */; };
|
||||
531500DC15052409004B5BB1 /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 531500DB15052409004B5BB1 /* CoreMedia.framework */; };
|
||||
531500E215052409004B5BB1 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 531500E015052409004B5BB1 /* InfoPlist.strings */; };
|
||||
531500E415052409004B5BB1 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 531500E315052409004B5BB1 /* main.m */; };
|
||||
531500E715052409004B5BB1 /* PhoneGap.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 531500E615052409004B5BB1 /* PhoneGap.framework */; };
|
||||
531500EC15052409004B5BB1 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 531500EA15052409004B5BB1 /* Localizable.strings */; };
|
||||
531500F015052409004B5BB1 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 531500EE15052409004B5BB1 /* Localizable.strings */; };
|
||||
531500F315052409004B5BB1 /* icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 531500F215052409004B5BB1 /* icon.png */; };
|
||||
531500F515052409004B5BB1 /* icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 531500F415052409004B5BB1 /* icon@2x.png */; };
|
||||
531500F715052409004B5BB1 /* icon-72.png in Resources */ = {isa = PBXBuildFile; fileRef = 531500F615052409004B5BB1 /* icon-72.png */; };
|
||||
531500FA15052409004B5BB1 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 531500F915052409004B5BB1 /* Default.png */; };
|
||||
531500FC1505240A004B5BB1 /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 531500FB1505240A004B5BB1 /* Default@2x.png */; };
|
||||
531500FE1505240A004B5BB1 /* Capture.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 531500FD1505240A004B5BB1 /* Capture.bundle */; };
|
||||
531501001505240A004B5BB1 /* PhoneGap.plist in Resources */ = {isa = PBXBuildFile; fileRef = 531500FF1505240A004B5BB1 /* PhoneGap.plist */; };
|
||||
531501041505240A004B5BB1 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 531501031505240A004B5BB1 /* AppDelegate.m */; };
|
||||
531501071505240A004B5BB1 /* MainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 531501061505240A004B5BB1 /* MainViewController.m */; };
|
||||
531501091505240A004B5BB1 /* MainViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 531501081505240A004B5BB1 /* MainViewController.xib */; };
|
||||
5315011215052542004B5BB1 /* www in Resources */ = {isa = PBXBuildFile; fileRef = 5315011115052542004B5BB1 /* www */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
531500BF15052409004B5BB1 /* RottenTomatoes.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RottenTomatoes.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
531500C315052409004B5BB1 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||
531500C515052409004B5BB1 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
||||
531500C715052409004B5BB1 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
|
||||
531500C915052409004B5BB1 /* AddressBook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AddressBook.framework; path = System/Library/Frameworks/AddressBook.framework; sourceTree = SDKROOT; };
|
||||
531500CB15052409004B5BB1 /* AddressBookUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AddressBookUI.framework; path = System/Library/Frameworks/AddressBookUI.framework; sourceTree = SDKROOT; };
|
||||
531500CD15052409004B5BB1 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
|
||||
531500CF15052409004B5BB1 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
|
||||
531500D115052409004B5BB1 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; };
|
||||
531500D315052409004B5BB1 /* MediaPlayer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MediaPlayer.framework; path = System/Library/Frameworks/MediaPlayer.framework; sourceTree = SDKROOT; };
|
||||
531500D515052409004B5BB1 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
|
||||
531500D715052409004B5BB1 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
|
||||
531500D915052409004B5BB1 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; };
|
||||
531500DB15052409004B5BB1 /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; };
|
||||
531500DF15052409004B5BB1 /* RottenTomatoes-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "RottenTomatoes-Info.plist"; sourceTree = "<group>"; };
|
||||
531500E115052409004B5BB1 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
531500E315052409004B5BB1 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
||||
531500E515052409004B5BB1 /* RottenTomatoes-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "RottenTomatoes-Prefix.pch"; sourceTree = "<group>"; };
|
||||
531500E615052409004B5BB1 /* PhoneGap.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PhoneGap.framework; path = /Users/Shared/PhoneGap/Frameworks/PhoneGap.framework; sourceTree = "<absolute>"; };
|
||||
531500EB15052409004B5BB1 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = Resources/en.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
531500EF15052409004B5BB1 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = Resources/es.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
531500F215052409004B5BB1 /* icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = icon.png; path = Resources/icons/icon.png; sourceTree = "<group>"; };
|
||||
531500F415052409004B5BB1 /* icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "icon@2x.png"; path = "Resources/icons/icon@2x.png"; sourceTree = "<group>"; };
|
||||
531500F615052409004B5BB1 /* icon-72.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "icon-72.png"; path = "Resources/icons/icon-72.png"; sourceTree = "<group>"; };
|
||||
531500F915052409004B5BB1 /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Default.png; path = Resources/splash/Default.png; sourceTree = "<group>"; };
|
||||
531500FB1505240A004B5BB1 /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default@2x.png"; path = "Resources/splash/Default@2x.png"; sourceTree = "<group>"; };
|
||||
531500FD1505240A004B5BB1 /* Capture.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = Capture.bundle; path = Resources/Capture.bundle; sourceTree = "<group>"; };
|
||||
531500FF1505240A004B5BB1 /* PhoneGap.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = PhoneGap.plist; sourceTree = "<group>"; };
|
||||
531501021505240A004B5BB1 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = Classes/AppDelegate.h; sourceTree = "<group>"; };
|
||||
531501031505240A004B5BB1 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = Classes/AppDelegate.m; sourceTree = "<group>"; };
|
||||
531501051505240A004B5BB1 /* MainViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MainViewController.h; path = Classes/MainViewController.h; sourceTree = "<group>"; };
|
||||
531501061505240A004B5BB1 /* MainViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = MainViewController.m; path = Classes/MainViewController.m; sourceTree = "<group>"; };
|
||||
531501081505240A004B5BB1 /* MainViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = MainViewController.xib; path = Classes/MainViewController.xib; sourceTree = "<group>"; };
|
||||
5315010B1505240A004B5BB1 /* README */ = {isa = PBXFileReference; lastKnownFileType = text; name = README; path = Plugins/README; sourceTree = "<group>"; };
|
||||
5315011115052542004B5BB1 /* www */ = {isa = PBXFileReference; lastKnownFileType = folder; path = www; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
531500B915052409004B5BB1 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
531500C415052409004B5BB1 /* Foundation.framework in Frameworks */,
|
||||
531500C615052409004B5BB1 /* UIKit.framework in Frameworks */,
|
||||
531500C815052409004B5BB1 /* CoreGraphics.framework in Frameworks */,
|
||||
531500CA15052409004B5BB1 /* AddressBook.framework in Frameworks */,
|
||||
531500CC15052409004B5BB1 /* AddressBookUI.framework in Frameworks */,
|
||||
531500CE15052409004B5BB1 /* AudioToolbox.framework in Frameworks */,
|
||||
531500D015052409004B5BB1 /* AVFoundation.framework in Frameworks */,
|
||||
531500D215052409004B5BB1 /* CoreLocation.framework in Frameworks */,
|
||||
531500D415052409004B5BB1 /* MediaPlayer.framework in Frameworks */,
|
||||
531500D615052409004B5BB1 /* QuartzCore.framework in Frameworks */,
|
||||
531500D815052409004B5BB1 /* SystemConfiguration.framework in Frameworks */,
|
||||
531500DA15052409004B5BB1 /* MobileCoreServices.framework in Frameworks */,
|
||||
531500DC15052409004B5BB1 /* CoreMedia.framework in Frameworks */,
|
||||
531500E715052409004B5BB1 /* PhoneGap.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
531500BC15052409004B5BB1 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
531500B115052409004B5BB1 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
5315011115052542004B5BB1 /* www */,
|
||||
531500DD15052409004B5BB1 /* RottenTomatoes */,
|
||||
531500C215052409004B5BB1 /* Frameworks */,
|
||||
531500C015052409004B5BB1 /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
531500C015052409004B5BB1 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
531500BF15052409004B5BB1 /* RottenTomatoes.app */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
531500C215052409004B5BB1 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
531500C315052409004B5BB1 /* Foundation.framework */,
|
||||
531500C515052409004B5BB1 /* UIKit.framework */,
|
||||
531500C715052409004B5BB1 /* CoreGraphics.framework */,
|
||||
531500C915052409004B5BB1 /* AddressBook.framework */,
|
||||
531500CB15052409004B5BB1 /* AddressBookUI.framework */,
|
||||
531500CD15052409004B5BB1 /* AudioToolbox.framework */,
|
||||
531500CF15052409004B5BB1 /* AVFoundation.framework */,
|
||||
531500D115052409004B5BB1 /* CoreLocation.framework */,
|
||||
531500D315052409004B5BB1 /* MediaPlayer.framework */,
|
||||
531500D515052409004B5BB1 /* QuartzCore.framework */,
|
||||
531500D715052409004B5BB1 /* SystemConfiguration.framework */,
|
||||
531500D915052409004B5BB1 /* MobileCoreServices.framework */,
|
||||
531500DB15052409004B5BB1 /* CoreMedia.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
531500DD15052409004B5BB1 /* RottenTomatoes */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
531500E615052409004B5BB1 /* PhoneGap.framework */,
|
||||
531500E815052409004B5BB1 /* Resources */,
|
||||
531501011505240A004B5BB1 /* Classes */,
|
||||
5315010A1505240A004B5BB1 /* Plugins */,
|
||||
531500DE15052409004B5BB1 /* Supporting Files */,
|
||||
);
|
||||
path = RottenTomatoes;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
531500DE15052409004B5BB1 /* Supporting Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
531500DF15052409004B5BB1 /* RottenTomatoes-Info.plist */,
|
||||
531500E015052409004B5BB1 /* InfoPlist.strings */,
|
||||
531500E315052409004B5BB1 /* main.m */,
|
||||
531500E515052409004B5BB1 /* RottenTomatoes-Prefix.pch */,
|
||||
531500FF1505240A004B5BB1 /* PhoneGap.plist */,
|
||||
531501081505240A004B5BB1 /* MainViewController.xib */,
|
||||
);
|
||||
name = "Supporting Files";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
531500E815052409004B5BB1 /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
531500FD1505240A004B5BB1 /* Capture.bundle */,
|
||||
531500E915052409004B5BB1 /* en.lproj */,
|
||||
531500ED15052409004B5BB1 /* es.lproj */,
|
||||
531500F115052409004B5BB1 /* icons */,
|
||||
531500F815052409004B5BB1 /* splash */,
|
||||
);
|
||||
name = Resources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
531500E915052409004B5BB1 /* en.lproj */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
531500EA15052409004B5BB1 /* Localizable.strings */,
|
||||
);
|
||||
name = en.lproj;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
531500ED15052409004B5BB1 /* es.lproj */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
531500EE15052409004B5BB1 /* Localizable.strings */,
|
||||
);
|
||||
name = es.lproj;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
531500F115052409004B5BB1 /* icons */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
531500F215052409004B5BB1 /* icon.png */,
|
||||
531500F415052409004B5BB1 /* icon@2x.png */,
|
||||
531500F615052409004B5BB1 /* icon-72.png */,
|
||||
);
|
||||
name = icons;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
531500F815052409004B5BB1 /* splash */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
531500F915052409004B5BB1 /* Default.png */,
|
||||
531500FB1505240A004B5BB1 /* Default@2x.png */,
|
||||
);
|
||||
name = splash;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
531501011505240A004B5BB1 /* Classes */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
531501021505240A004B5BB1 /* AppDelegate.h */,
|
||||
531501031505240A004B5BB1 /* AppDelegate.m */,
|
||||
531501051505240A004B5BB1 /* MainViewController.h */,
|
||||
531501061505240A004B5BB1 /* MainViewController.m */,
|
||||
);
|
||||
name = Classes;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
5315010A1505240A004B5BB1 /* Plugins */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
5315010B1505240A004B5BB1 /* README */,
|
||||
);
|
||||
name = Plugins;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
531500BE15052409004B5BB1 /* RottenTomatoes */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 5315010E1505240A004B5BB1 /* Build configuration list for PBXNativeTarget "RottenTomatoes" */;
|
||||
buildPhases = (
|
||||
531500B815052409004B5BB1 /* Sources */,
|
||||
531500B915052409004B5BB1 /* Frameworks */,
|
||||
531500BA15052409004B5BB1 /* Resources */,
|
||||
531500BB15052409004B5BB1 /* Sources */,
|
||||
531500BC15052409004B5BB1 /* Frameworks */,
|
||||
531500BD15052409004B5BB1 /* ShellScript */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = RottenTomatoes;
|
||||
productName = RottenTomatoes;
|
||||
productReference = 531500BF15052409004B5BB1 /* RottenTomatoes.app */;
|
||||
productType = "com.apple.product-type.application";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
531500B315052409004B5BB1 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0420;
|
||||
ORGANIZATIONNAME = "Adobe Systems";
|
||||
};
|
||||
buildConfigurationList = 531500B615052409004B5BB1 /* Build configuration list for PBXProject "RottenTomatoes" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
es,
|
||||
);
|
||||
mainGroup = 531500B115052409004B5BB1;
|
||||
productRefGroup = 531500C015052409004B5BB1 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
531500BE15052409004B5BB1 /* RottenTomatoes */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
531500BA15052409004B5BB1 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
531500E215052409004B5BB1 /* InfoPlist.strings in Resources */,
|
||||
531500EC15052409004B5BB1 /* Localizable.strings in Resources */,
|
||||
531500F015052409004B5BB1 /* Localizable.strings in Resources */,
|
||||
531500F315052409004B5BB1 /* icon.png in Resources */,
|
||||
531500F515052409004B5BB1 /* icon@2x.png in Resources */,
|
||||
531500F715052409004B5BB1 /* icon-72.png in Resources */,
|
||||
531500FA15052409004B5BB1 /* Default.png in Resources */,
|
||||
531500FC1505240A004B5BB1 /* Default@2x.png in Resources */,
|
||||
531500FE1505240A004B5BB1 /* Capture.bundle in Resources */,
|
||||
531501001505240A004B5BB1 /* PhoneGap.plist in Resources */,
|
||||
531501091505240A004B5BB1 /* MainViewController.xib in Resources */,
|
||||
5315011215052542004B5BB1 /* www in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXShellScriptBuildPhase section */
|
||||
531500BD15052409004B5BB1 /* ShellScript */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/bash;
|
||||
shellScript = "\n\t\t\t\t\t\t\t\tif [ ! -d \"$PROJECT_DIR/www\" ] ; then\n\t\t\t\t\t\t\t\t\tcp -R /Users/Shared/PhoneGap/Frameworks/PhoneGap.framework/www \"$PROJECT_DIR\"\n\t\t\t\t\t\t\t\tfi\n\t\t\t\t\t\t\t\t# detect www folder reference in project, if missing, print warning\n\t\t\t\t\t\t\t\tgrep \"{isa = PBXFileReference; lastKnownFileType = folder; path = www; sourceTree = \\\"<group>\\\"; };\" \"$PROJECT_DIR/$PROJECT_NAME.xcodeproj/project.pbxproj\"\n\t\t\t\t\t\t\t\trc=$? \n\t\t\t\t\t\t\t\tif [ $rc != 0 ] ; then\n\t\t\t\t\t\t\t\techo -e \"warning: Missing - Add $PROJECT_DIR/www as a folder reference in your project. Just drag and drop the folder into your project, into the Project Navigator of Xcode 4. Make sure you select the second radio-button: 'Create folder references for any added folders' (which will create a blue folder)\" 1>&2\n\t\t\t\t\t\t\t\tfi\t\t\t\t\t\t\t";
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
531500B815052409004B5BB1 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
531500E415052409004B5BB1 /* main.m in Sources */,
|
||||
531501041505240A004B5BB1 /* AppDelegate.m in Sources */,
|
||||
531501071505240A004B5BB1 /* MainViewController.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
531500BB15052409004B5BB1 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXVariantGroup section */
|
||||
531500E015052409004B5BB1 /* InfoPlist.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
531500E115052409004B5BB1 /* en */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
531500EA15052409004B5BB1 /* Localizable.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
531500EB15052409004B5BB1 /* en */,
|
||||
);
|
||||
name = Localizable.strings;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
531500EE15052409004B5BB1 /* Localizable.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
531500EF15052409004B5BB1 /* es */,
|
||||
);
|
||||
name = Localizable.strings;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXVariantGroup section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
5315010C1505240A004B5BB1 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
GCC_VERSION = com.apple.compilers.llvmgcc42;
|
||||
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 3.0;
|
||||
SDKROOT = iphoneos;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
5315010D1505240A004B5BB1 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_VERSION = com.apple.compilers.llvmgcc42;
|
||||
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 3.0;
|
||||
SDKROOT = iphoneos;
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
5315010F1505240A004B5BB1 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = YES;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
FRAMEWORK_SEARCH_PATHS = /Users/Shared/PhoneGap/Frameworks;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "RottenTomatoes/RottenTomatoes-Prefix.pch";
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "PHONEGAP_FRAMEWORK=YES";
|
||||
INFOPLIST_FILE = "RottenTomatoes/RottenTomatoes-Info.plist";
|
||||
OTHER_LDFLAGS = (
|
||||
"-weak_framework",
|
||||
UIKit,
|
||||
"-weak_framework",
|
||||
AVFoundation,
|
||||
"-weak_framework",
|
||||
CoreMedia,
|
||||
"-weak_library",
|
||||
/usr/lib/libSystem.B.dylib,
|
||||
);
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
WRAPPER_EXTENSION = app;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
531501101505240A004B5BB1 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = YES;
|
||||
COPY_PHASE_STRIP = YES;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
FRAMEWORK_SEARCH_PATHS = /Users/Shared/PhoneGap/Frameworks;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "RottenTomatoes/RottenTomatoes-Prefix.pch";
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "PHONEGAP_FRAMEWORK=YES";
|
||||
INFOPLIST_FILE = "RottenTomatoes/RottenTomatoes-Info.plist";
|
||||
OTHER_LDFLAGS = (
|
||||
"-weak_framework",
|
||||
UIKit,
|
||||
"-weak_framework",
|
||||
AVFoundation,
|
||||
"-weak_framework",
|
||||
CoreMedia,
|
||||
"-weak_library",
|
||||
/usr/lib/libSystem.B.dylib,
|
||||
);
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
WRAPPER_EXTENSION = app;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
531500B615052409004B5BB1 /* Build configuration list for PBXProject "RottenTomatoes" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
5315010C1505240A004B5BB1 /* Debug */,
|
||||
5315010D1505240A004B5BB1 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
5315010E1505240A004B5BB1 /* Build configuration list for PBXNativeTarget "RottenTomatoes" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
5315010F1505240A004B5BB1 /* Debug */,
|
||||
531501101505240A004B5BB1 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 531500B315052409004B5BB1 /* Project object */;
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "self:RottenTomatoes.xcodeproj">
|
||||
</FileRef>
|
||||
</Workspace>
|
@ -0,0 +1,84 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "531500BE15052409004B5BB1"
|
||||
BuildableName = "RottenTomatoes.app"
|
||||
BlueprintName = "RottenTomatoes"
|
||||
ReferencedContainer = "container:RottenTomatoes.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
buildConfiguration = "Debug">
|
||||
<Testables>
|
||||
</Testables>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "531500BE15052409004B5BB1"
|
||||
BuildableName = "RottenTomatoes.app"
|
||||
BlueprintName = "RottenTomatoes"
|
||||
ReferencedContainer = "container:RottenTomatoes.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Debug"
|
||||
debugDocumentVersioning = "YES"
|
||||
allowLocationSimulation = "YES">
|
||||
<BuildableProductRunnable>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "531500BE15052409004B5BB1"
|
||||
BuildableName = "RottenTomatoes.app"
|
||||
BlueprintName = "RottenTomatoes"
|
||||
ReferencedContainer = "container:RottenTomatoes.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Release"
|
||||
debugDocumentVersioning = "YES">
|
||||
<BuildableProductRunnable>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "531500BE15052409004B5BB1"
|
||||
BuildableName = "RottenTomatoes.app"
|
||||
BlueprintName = "RottenTomatoes"
|
||||
ReferencedContainer = "container:RottenTomatoes.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>SchemeUserState</key>
|
||||
<dict>
|
||||
<key>RottenTomatoes.xcscheme</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>SuppressBuildableAutocreation</key>
|
||||
<dict>
|
||||
<key>531500BE15052409004B5BB1</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
@ -0,0 +1,52 @@
|
||||
/*
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
*/
|
||||
|
||||
//
|
||||
// AppDelegate.h
|
||||
// RottenTomatoes
|
||||
//
|
||||
// Created by Andrew Trice on 3/5/12.
|
||||
// Copyright Adobe Systems 2012. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#ifdef PHONEGAP_FRAMEWORK
|
||||
#import <PhoneGap/PGViewController.h>
|
||||
#else
|
||||
#import "PGViewController.h"
|
||||
#endif
|
||||
|
||||
|
||||
@interface AppDelegate : NSObject < UIApplicationDelegate, UIWebViewDelegate, PGCommandDelegate > {
|
||||
|
||||
NSString* invokeString;
|
||||
}
|
||||
|
||||
// invoke string is passed to your app on launch, this is only valid if you
|
||||
// edit FooBar.plist to add a protocol
|
||||
// a simple tutorial can be found here :
|
||||
// http://iphonedevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html
|
||||
|
||||
@property (nonatomic, copy) NSString* invokeString;
|
||||
@property (nonatomic, retain) IBOutlet UIWindow* window;
|
||||
@property (nonatomic, retain) IBOutlet PGViewController* viewController;
|
||||
|
||||
@end
|
||||
|
@ -0,0 +1,191 @@
|
||||
/*
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
*/
|
||||
|
||||
//
|
||||
// AppDelegate.m
|
||||
// RottenTomatoes
|
||||
//
|
||||
// Created by Andrew Trice on 3/5/12.
|
||||
// Copyright Adobe Systems 2012. All rights reserved.
|
||||
//
|
||||
|
||||
#import "AppDelegate.h"
|
||||
#import "MainViewController.h"
|
||||
|
||||
#ifdef PHONEGAP_FRAMEWORK
|
||||
#import <PhoneGap/PGPlugin.h>
|
||||
#import <PhoneGap/PGURLProtocol.h>
|
||||
#else
|
||||
#import "PGPlugin.h"
|
||||
#import "PGURLProtocol.h"
|
||||
#endif
|
||||
|
||||
|
||||
@implementation AppDelegate
|
||||
|
||||
@synthesize invokeString, window, viewController;
|
||||
|
||||
- (id) init
|
||||
{
|
||||
/** If you need to do any extra app-specific initialization, you can do it here
|
||||
* -jm
|
||||
**/
|
||||
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
|
||||
[cookieStorage setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways];
|
||||
|
||||
[PGURLProtocol registerPGHttpURLProtocol];
|
||||
|
||||
return [super init];
|
||||
}
|
||||
|
||||
#pragma UIApplicationDelegate implementation
|
||||
|
||||
/**
|
||||
* This is main kick off after the app inits, the views and Settings are setup here. (preferred - iOS4 and up)
|
||||
*/
|
||||
- (BOOL) application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
|
||||
{
|
||||
NSURL* url = [launchOptions objectForKey:UIApplicationLaunchOptionsURLKey];
|
||||
if (url && [url isKindOfClass:[NSURL class]]) {
|
||||
self.invokeString = [url absoluteString];
|
||||
NSLog(@"RottenTomatoes launchOptions = %@", url);
|
||||
}
|
||||
|
||||
CGRect screenBounds = [[UIScreen mainScreen] bounds];
|
||||
self.window = [[[UIWindow alloc] initWithFrame:screenBounds] autorelease];
|
||||
self.window.autoresizesSubviews = YES;
|
||||
|
||||
CGRect viewBounds = [[UIScreen mainScreen] applicationFrame];
|
||||
|
||||
self.viewController = [[[MainViewController alloc] init] autorelease];
|
||||
self.viewController.useSplashScreen = YES;
|
||||
self.viewController.wwwFolderName = @"www";
|
||||
self.viewController.startPage = @"index.html";
|
||||
self.viewController.view.frame = viewBounds;
|
||||
|
||||
// over-ride delegates
|
||||
self.viewController.webView.delegate = self;
|
||||
self.viewController.commandDelegate = self;
|
||||
|
||||
// check whether the current orientation is supported: if it is, keep it, rather than forcing a rotation
|
||||
BOOL forceStartupRotation = YES;
|
||||
UIDeviceOrientation curDevOrientation = [[UIDevice currentDevice] orientation];
|
||||
|
||||
if (UIDeviceOrientationUnknown == curDevOrientation) {
|
||||
// UIDevice isn't firing orientation notifications yet… go look at the status bar
|
||||
curDevOrientation = (UIDeviceOrientation)[[UIApplication sharedApplication] statusBarOrientation];
|
||||
}
|
||||
|
||||
if (UIDeviceOrientationIsValidInterfaceOrientation(curDevOrientation)) {
|
||||
for (NSNumber *orient in self.viewController.supportedOrientations) {
|
||||
if ([orient intValue] == curDevOrientation) {
|
||||
forceStartupRotation = NO;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (forceStartupRotation) {
|
||||
NSLog(@"supportedOrientations: %@", self.viewController.supportedOrientations);
|
||||
// The first item in the supportedOrientations array is the start orientation (guaranteed to be at least Portrait)
|
||||
UIInterfaceOrientation newOrient = [[self.viewController.supportedOrientations objectAtIndex:0] intValue];
|
||||
NSLog(@"AppDelegate forcing status bar to: %d from: %d", newOrient, curDevOrientation);
|
||||
[[UIApplication sharedApplication] setStatusBarOrientation:newOrient];
|
||||
}
|
||||
|
||||
[self.window addSubview:self.viewController.view];
|
||||
[self.window makeKeyAndVisible];
|
||||
|
||||
return YES;
|
||||
}
|
||||
|
||||
// this happens while we are running ( in the background, or from within our own app )
|
||||
// only valid if FooBar.plist specifies a protocol to handle
|
||||
- (BOOL) application:(UIApplication*)application handleOpenURL:(NSURL*)url
|
||||
{
|
||||
if (!url) {
|
||||
return NO;
|
||||
}
|
||||
|
||||
// calls into javascript global function 'handleOpenURL'
|
||||
NSString* jsString = [NSString stringWithFormat:@"handleOpenURL(\"%@\");", url];
|
||||
[self.viewController.webView stringByEvaluatingJavaScriptFromString:jsString];
|
||||
|
||||
// all plugins will get the notification, and their handlers will be called
|
||||
[[NSNotificationCenter defaultCenter] postNotification:[NSNotification notificationWithName:PGPluginHandleOpenURLNotification object:url]];
|
||||
|
||||
return YES;
|
||||
}
|
||||
|
||||
#pragma PGCommandDelegate implementation
|
||||
|
||||
- (id) getCommandInstance:(NSString*)className
|
||||
{
|
||||
return [self.viewController getCommandInstance:className];
|
||||
}
|
||||
|
||||
- (BOOL) execute:(InvokedUrlCommand*)command
|
||||
{
|
||||
return [self.viewController execute:command];
|
||||
}
|
||||
|
||||
- (NSString*) pathForResource:(NSString*)resourcepath;
|
||||
{
|
||||
return [self.viewController pathForResource:resourcepath];
|
||||
}
|
||||
|
||||
#pragma UIWebDelegate implementation
|
||||
|
||||
- (void) webViewDidFinishLoad:(UIWebView*) theWebView
|
||||
{
|
||||
// only valid if FooBar.plist specifies a protocol to handle
|
||||
if (self.invokeString)
|
||||
{
|
||||
// this is passed before the deviceready event is fired, so you can access it in js when you receive deviceready
|
||||
NSString* jsString = [NSString stringWithFormat:@"var invokeString = \"%@\";", self.invokeString];
|
||||
[theWebView stringByEvaluatingJavaScriptFromString:jsString];
|
||||
}
|
||||
|
||||
// Black base color for background matches the native apps
|
||||
theWebView.backgroundColor = [UIColor blackColor];
|
||||
|
||||
return [self.viewController webViewDidFinishLoad:theWebView];
|
||||
}
|
||||
|
||||
- (void) webViewDidStartLoad:(UIWebView*)theWebView
|
||||
{
|
||||
return [self.viewController webViewDidStartLoad:theWebView];
|
||||
}
|
||||
|
||||
- (void) webView:(UIWebView*)theWebView didFailLoadWithError:(NSError*)error
|
||||
{
|
||||
return [self.viewController webView:theWebView didFailLoadWithError:error];
|
||||
}
|
||||
|
||||
- (BOOL) webView:(UIWebView*)theWebView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
|
||||
{
|
||||
return [self.viewController webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType];
|
||||
}
|
||||
|
||||
- (void) dealloc
|
||||
{
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
@end
|
@ -0,0 +1,17 @@
|
||||
//
|
||||
// MainViewController.h
|
||||
// FooBar
|
||||
//
|
||||
// Created by Shazron Abdullah on 12-01-26.
|
||||
// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
|
||||
//
|
||||
|
||||
#ifdef PHONEGAP_FRAMEWORK
|
||||
#import <PhoneGap/PGViewController.h>
|
||||
#else
|
||||
#import "PGViewController.h"
|
||||
#endif
|
||||
|
||||
@interface MainViewController : PGViewController
|
||||
|
||||
@end
|
@ -0,0 +1,47 @@
|
||||
//
|
||||
// MainViewController.m
|
||||
// RottenTomatoes
|
||||
//
|
||||
#import "MainViewController.h"
|
||||
|
||||
@implementation MainViewController
|
||||
|
||||
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
|
||||
{
|
||||
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
|
||||
if (self) {
|
||||
// Custom initialization
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)didReceiveMemoryWarning
|
||||
{
|
||||
// Releases the view if it doesn't have a superview.
|
||||
[super didReceiveMemoryWarning];
|
||||
|
||||
// Release any cached data, images, etc that aren't in use.
|
||||
}
|
||||
|
||||
#pragma mark - View lifecycle
|
||||
|
||||
- (void)viewDidLoad
|
||||
{
|
||||
[super viewDidLoad];
|
||||
// Do any additional setup after loading the view from its nib.
|
||||
}
|
||||
|
||||
- (void)viewDidUnload
|
||||
{
|
||||
[super viewDidUnload];
|
||||
// Release any retained subviews of the main view.
|
||||
// e.g. self.myOutlet = nil;
|
||||
}
|
||||
|
||||
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
|
||||
{
|
||||
// Return YES for supported orientations
|
||||
return [super shouldAutorotateToInterfaceOrientation:interfaceOrientation];
|
||||
}
|
||||
|
||||
@end
|
@ -0,0 +1,118 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1280</int>
|
||||
<string key="IBDocument.SystemVersion">11C25</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">1919</string>
|
||||
<string key="IBDocument.AppKitVersion">1138.11</string>
|
||||
<string key="IBDocument.HIToolboxVersion">566.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="NS.object.0">916</string>
|
||||
</object>
|
||||
<array key="IBDocument.IntegratedClassDependencies">
|
||||
<string>IBProxyObject</string>
|
||||
<string>IBUIView</string>
|
||||
</array>
|
||||
<array key="IBDocument.PluginDependencies">
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</array>
|
||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
|
||||
<integer value="1" key="NS.object.0"/>
|
||||
</object>
|
||||
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||
<object class="IBProxyObject" id="372490531">
|
||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBProxyObject" id="975951072">
|
||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="191373211">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrame">{{0, 20}, {320, 460}}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
<object class="NSColorSpace" key="NSCustomColorSpace">
|
||||
<int key="NSID">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<array class="NSMutableArray" key="connectionRecords">
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">view</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="191373211"/>
|
||||
</object>
|
||||
<int key="connectionID">3</int>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<array key="orderedObjects">
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">0</int>
|
||||
<array key="object" id="0"/>
|
||||
<reference key="children" ref="1000"/>
|
||||
<nil key="parent"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1</int>
|
||||
<reference key="object" ref="191373211"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-1</int>
|
||||
<reference key="object" ref="372490531"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">File's Owner</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-2</int>
|
||||
<reference key="object" ref="975951072"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
||||
<string key="-1.CustomClassName">MainViewController</string>
|
||||
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="-2.CustomClassName">UIResponder</string>
|
||||
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
|
||||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">3</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">MainViewController</string>
|
||||
<string key="superclassName">UIViewController</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/MainViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<string key="IBCocoaTouchPluginVersion">916</string>
|
||||
</data>
|
||||
</archive>
|
@ -0,0 +1,56 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>TopActivityIndicator</key>
|
||||
<string>gray</string>
|
||||
<key>EnableLocation</key>
|
||||
<false/>
|
||||
<key>EnableViewportScale</key>
|
||||
<false/>
|
||||
<key>AutoHideSplashScreen</key>
|
||||
<true/>
|
||||
<key>ShowSplashScreenSpinner</key>
|
||||
<true/>
|
||||
<key>MediaPlaybackRequiresUserAction</key>
|
||||
<false/>
|
||||
<key>AllowInlineMediaPlayback</key>
|
||||
<false/>
|
||||
<key>OpenAllWhitelistURLsInWebView</key>
|
||||
<false/>
|
||||
<key>ExternalHosts</key>
|
||||
<array>
|
||||
<string>*.flixster.com</string>
|
||||
<string>*.rottentomatoes.com</string>
|
||||
</array>
|
||||
<key>Plugins</key>
|
||||
<dict>
|
||||
<key>com.phonegap.accelerometer</key>
|
||||
<string>PGAccelerometer</string>
|
||||
<key>com.phonegap.camera</key>
|
||||
<string>PGCamera</string>
|
||||
<key>com.phonegap.connection</key>
|
||||
<string>PGConnection</string>
|
||||
<key>com.phonegap.contacts</key>
|
||||
<string>PGContacts</string>
|
||||
<key>com.phonegap.debugconsole</key>
|
||||
<string>PGDebugConsole</string>
|
||||
<key>com.phonegap.file</key>
|
||||
<string>PGFile</string>
|
||||
<key>com.phonegap.filetransfer</key>
|
||||
<string>PGFileTransfer</string>
|
||||
<key>com.phonegap.geolocation</key>
|
||||
<string>PGLocation</string>
|
||||
<key>com.phonegap.notification</key>
|
||||
<string>PGNotification</string>
|
||||
<key>com.phonegap.media</key>
|
||||
<string>PGSound</string>
|
||||
<key>com.phonegap.mediacapture</key>
|
||||
<string>PGCapture</string>
|
||||
<key>com.phonegap.splashscreen</key>
|
||||
<string>PGSplashScreen</string>
|
||||
<key>com.phonegap.battery</key>
|
||||
<string>PGBattery</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
@ -0,0 +1 @@
|
||||
Put the .h and .m files of your plugin here. The .js files of your plugin belong in the www folder.
|
After Width: | Height: | Size: 955 B |
After Width: | Height: | Size: 971 B |
After Width: | Height: | Size: 969 B |
After Width: | Height: | Size: 70 KiB |
After Width: | Height: | Size: 276 KiB |
After Width: | Height: | Size: 385 KiB |
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 7.4 KiB |
After Width: | Height: | Size: 973 B |
After Width: | Height: | Size: 990 B |
After Width: | Height: | Size: 996 B |
After Width: | Height: | Size: 5.4 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 7.0 KiB |
@ -0,0 +1,25 @@
|
||||
/*
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
*/
|
||||
|
||||
// accessibility label for recording button
|
||||
"toggle audio recording" = "toggle audio recording";
|
||||
// notification spoken by VoiceOver when timed recording finishes
|
||||
"timed recording complete" = "timed recording complete";
|
||||
// accessibility hint for display of recorded elapsed time
|
||||
"recorded time in minutes and seconds" = "recorded time in minutes and seconds";
|
@ -0,0 +1,25 @@
|
||||
/*
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
*/
|
||||
|
||||
// accessibility label for recording button
|
||||
"toggle audio recording" = "grabación de audio cambiar";
|
||||
// notification spoken by VoiceOver when timed recording finishes
|
||||
"timed recording complete" = "tiempo de grabación completo";
|
||||
// accessibility hint for display of recorded elapsed time
|
||||
"recorded time in minutes and seconds" = "tiempo registrado en minutos y segundos";
|
After Width: | Height: | Size: 4.8 KiB |
After Width: | Height: | Size: 3.8 KiB |
After Width: | Height: | Size: 7.7 KiB |
After Width: | Height: | Size: 9.3 KiB |
After Width: | Height: | Size: 22 KiB |
@ -0,0 +1,49 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleIconFiles</key>
|
||||
<array>
|
||||
<string>icon.png</string>
|
||||
<string>icon@2x.png</string>
|
||||
<string>icon-72.png</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations~ipad</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
</array>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>${PRODUCT_NAME}</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>icon.png</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.tricedesigns.RottenTomatoes</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${PRODUCT_NAME}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>NSMainNibFile</key>
|
||||
<string></string>
|
||||
<key>NSMainNibFile~ipad</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</plist>
|
@ -0,0 +1,7 @@
|
||||
//
|
||||
// Prefix header for all source files of the 'RottenTomatoes' target in the 'RottenTomatoes' project
|
||||
//
|
||||
|
||||
#ifdef __OBJC__
|
||||
#import <UIKit/UIKit.h>
|
||||
#endif
|
@ -0,0 +1,2 @@
|
||||
/* Localized versions of Info.plist keys */
|
||||
|
35
samples/multi-device form factor/RottenTomatoes/main.m
Normal file
@ -0,0 +1,35 @@
|
||||
/*
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
*/
|
||||
//
|
||||
// main.m
|
||||
// RottenTomatoes
|
||||
//
|
||||
// Created by Andrew Trice on 3/5/12.
|
||||
// Copyright Adobe Systems 2012. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
|
||||
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
|
||||
int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate");
|
||||
[pool release];
|
||||
return retVal;
|
||||
}
|
BIN
samples/multi-device form factor/www/.DS_Store
vendored
Normal file
BIN
samples/multi-device form factor/www/assets/tomato.jpeg
Normal file
After Width: | Height: | Size: 12 KiB |
233
samples/multi-device form factor/www/index.html
Normal file
@ -0,0 +1,233 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>View Navigator Sample</title>
|
||||
<meta name="viewport" content="width=device-width, user-scalable=no">
|
||||
|
||||
<script src="phonegap-1.4.1.js"></script>
|
||||
|
||||
<script src="libs/jquery-1.7.1.js"></script>
|
||||
<script src="libs/jquery.animate-enhanced.js"></script>
|
||||
<script src="libs/iscroll.js"></script>
|
||||
<script src="libs/noClickDelay.js"></script>
|
||||
|
||||
<link rel="stylesheet" href="viewnavigator/viewnavigator.css" type="text/css" />
|
||||
<script src="viewnavigator/viewnavigator.js"></script>
|
||||
|
||||
<link rel="stylesheet" href="libs/css/activityIndicator.css" type="text/css" />
|
||||
|
||||
<link rel="stylesheet" href="splitviewnavigator/splitviewnavigator.css" type="text/css" />
|
||||
<script src="splitviewnavigator/splitviewnavigator.js"></script>
|
||||
|
||||
|
||||
<style>
|
||||
|
||||
* {
|
||||
font-family: Arial, sans-serif;
|
||||
}
|
||||
|
||||
#detail {
|
||||
padding:10px;
|
||||
}
|
||||
|
||||
#defaultView {
|
||||
text-align:center;
|
||||
padding-top:100px;
|
||||
}
|
||||
|
||||
.moviePoster {
|
||||
float:right;
|
||||
width:120px;
|
||||
height:178px;
|
||||
overflow:hidden;
|
||||
margin:10px;
|
||||
padding:2px;
|
||||
border:1px solid #999999;
|
||||
}
|
||||
|
||||
.listSelected {
|
||||
background-color:#424242;
|
||||
background-image:-webkit-gradient(linear, 0 0, 0 100, from(#0069d6), to(#999da9));
|
||||
background-image:-moz-linear-gradient(top, #0069d6, #999da9);
|
||||
background-image:-o-linear-gradient(top, #0069d6, #999da9);
|
||||
color: #FFF;
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
ul,li {
|
||||
padding:0;
|
||||
margin:0;
|
||||
border:0;
|
||||
}
|
||||
|
||||
.viewNavigator_contentHolder li {
|
||||
padding:0 10px;
|
||||
border-bottom:1px solid #ccc;
|
||||
height:40px; line-height:40px;
|
||||
font-weight:normal;
|
||||
cursor:pointer;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
-o-text-overflow: ellipsis;
|
||||
-moz-binding: url('assets/xml/ellipsis.xml#ellipsis');
|
||||
}
|
||||
|
||||
|
||||
#detail li {
|
||||
|
||||
white-space: normal;
|
||||
overflow: visible;
|
||||
height:auto;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<script type="text/javascript" charset="utf-8">
|
||||
|
||||
var API_KEY = "put your rotten tomatoes API key here";
|
||||
|
||||
var sampleData;
|
||||
|
||||
/* ==================== Controller ==================== */
|
||||
|
||||
var controller = {
|
||||
data : []
|
||||
};
|
||||
|
||||
controller.init = function () {
|
||||
var url = "http://api.rottentomatoes.com/api/public/v1.0/lists/movies/box_office.json?limit=25&country=us&apikey=" + API_KEY;
|
||||
console.log( url );
|
||||
|
||||
this.rootView = { title: "Rotten Tomatoes",
|
||||
backLabel: null,
|
||||
view: $("<div id='rootView'><div class='activityIndicator'></div></div>")
|
||||
};
|
||||
|
||||
$.ajax({
|
||||
url: url,
|
||||
dataType: "json",
|
||||
success: function(data, textStatus, jqXHR) {
|
||||
|
||||
controller.rootData = data;
|
||||
controller.renderDefaultView();
|
||||
|
||||
},
|
||||
error: function(jqXHR, textStatus, errorThrown) {
|
||||
alert("error")
|
||||
}
|
||||
});
|
||||
|
||||
return;
|
||||
};
|
||||
|
||||
controller.renderDefaultView = function () {
|
||||
this.rootView.view.children().remove();
|
||||
var html = "<ul>";
|
||||
for ( var i = 0; i < controller.rootData.movies.length; i ++ )
|
||||
{
|
||||
var movie = controller.rootData.movies[i];
|
||||
html += "<li id='" + movie.id + "'onclick='controller.renderDetails(\"" + i + "\")'>" + movie.title + "</li>";
|
||||
}
|
||||
html += "</ul>";
|
||||
this.rootView.view.html( html );
|
||||
if ( controller.tabletView ) {
|
||||
setTimeout( function() {
|
||||
window.splitViewNavigator.sidebarViewNavigator.refreshScroller();
|
||||
}, 10 );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
controller.renderDetails = function (index) {
|
||||
var movie = controller.rootData.movies[index];
|
||||
|
||||
if ( controller.tabletView ) {
|
||||
window.splitViewNavigator.hideSidebar();
|
||||
window.splitViewNavigator.sidebarViewNavigator.content.find( "li" ).each(function(index) {
|
||||
$(this).removeClass( "listSelected" );
|
||||
});
|
||||
}
|
||||
else {
|
||||
controller.rootView.view.find( "li" ).each(function(index) {
|
||||
$(this).removeClass( "listSelected" );
|
||||
});
|
||||
}
|
||||
|
||||
$( "#"+movie.id ).addClass( "listSelected" );
|
||||
|
||||
var html = "<div id='detail'>";
|
||||
html += "<h1>" + movie.title + "</h1>";
|
||||
html += "<p><strong>" + movie.mpaa_rating + "</strong>, " + movie.runtime + "min. - (" + movie.year + ")</p>";
|
||||
html += "<img src=\"" + movie.posters.profile + "\" class='moviePoster'>";
|
||||
html += "<p>" + movie.synopsis + "</p>";
|
||||
html += "<h3>Ratings:</h3><p>";
|
||||
html += "<strong>Audience:</strong> " + movie.ratings.audience_score + " - " + movie.ratings.audience_rating + "<br>"
|
||||
html += "<strong>Critics:</strong> " + movie.ratings.critics_score + " - " + movie.ratings.critics_rating + "<br>"
|
||||
html += "</p>"
|
||||
html += "<h4>What the critics say:</h4><p>" + movie.critics_consensus + "</p>";
|
||||
html += "<h3>Cast:</h3><p><ul>";
|
||||
|
||||
for ( var i = 0; i < movie.abridged_cast.length; i ++ )
|
||||
{
|
||||
var actor = movie.abridged_cast[i];
|
||||
html += "<li><strong>" + actor.name + ":</strong> ";
|
||||
|
||||
if ( actor.characters ) {
|
||||
for ( var j = 0; j < actor.characters.length; j ++ )
|
||||
{
|
||||
if ( j > 0 ) { html += ", " };
|
||||
html += actor.characters[j];
|
||||
}
|
||||
}
|
||||
|
||||
html += "</li>";
|
||||
}
|
||||
|
||||
html += "</ul></p>";
|
||||
|
||||
html += "</div>";
|
||||
|
||||
var viewDescriptor = { title: movie.title,
|
||||
view: $(html)
|
||||
};
|
||||
|
||||
if ( controller.tabletView ) {
|
||||
window.splitViewNavigator.replaceBodyView( viewDescriptor );
|
||||
}
|
||||
else {
|
||||
viewDescriptor.backLabel = "Back";
|
||||
window.viewNavigator.pushView( viewDescriptor );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$(document).ready( function() {
|
||||
|
||||
controller.init();
|
||||
var _w = Math.max( $(window).width(), $(window).height() );
|
||||
var _h = Math.min( $(window).width(), $(window).height() );
|
||||
controller.tabletView = (_w >= 1000 && _h >= 600);
|
||||
|
||||
var defaultView = { title: "Rotten Tomatoes",
|
||||
view: $("<div id='defaultView'><img src='assets/tomato.jpeg' /></div>")
|
||||
};
|
||||
|
||||
if ( controller.tabletView ) {
|
||||
//Setup the ViewNavigator
|
||||
new SplitViewNavigator( 'body', "Movies" );
|
||||
window.splitViewNavigator.pushSidebarView( controller.rootView );
|
||||
window.splitViewNavigator.pushBodyView( defaultView );
|
||||
}
|
||||
else {
|
||||
//phone view
|
||||
window.viewNavigator = new ViewNavigator( 'body', "Movies" );
|
||||
window.viewNavigator.pushView( controller.rootView );
|
||||
}
|
||||
} );
|
||||
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body></body>
|
||||
</html>
|
4123
samples/multi-device form factor/www/phonegap-1.4.1.js
Normal file
@ -1,9 +1,4 @@
|
||||
.activityIndicator {
|
||||
/*
|
||||
The original height is:
|
||||
height: 304px;
|
||||
width: 305px;
|
||||
*/
|
||||
height: 40px;
|
||||
width: 40px;
|
||||
-webkit-background-size: 40px 40px;
|
||||
|
@ -1,4 +1,7 @@
|
||||
//original source: http://cubiq.org/remove-onclick-delay-on-webkit-for-iphone
|
||||
/*!
|
||||
* http://cubiq.org/remove-onclick-delay-on-webkit-for-iphone
|
||||
* Released under MIT license, http://cubiq.org/license
|
||||
*/
|
||||
|
||||
function NoClickDelay(el) {
|
||||
this.element = typeof el == 'object' ? el : document.getElementById(el);
|
||||
@ -49,6 +52,3 @@ NoClickDelay.prototype = {
|
||||
this.theTarget = undefined;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
|
@ -1,3 +1,14 @@
|
||||
/*
|
||||
THIS SOFTWARE IS PROVIDED BY ANDREW M. TRICE ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANDREW M. TRICE OR
|
||||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
* {
|
||||
-webkit-touch-callout: none;
|
||||
|
@ -1,3 +1,14 @@
|
||||
/*
|
||||
THIS SOFTWARE IS PROVIDED BY ANDREW M. TRICE ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANDREW M. TRICE OR
|
||||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
|
||||
|
||||
|
@ -1,3 +1,14 @@
|
||||
/*
|
||||
THIS SOFTWARE IS PROVIDED BY ANDREW M. TRICE ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANDREW M. TRICE OR
|
||||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
* {
|
||||
-webkit-touch-callout: none;
|
||||
|
@ -1,3 +1,16 @@
|
||||
/*
|
||||
THIS SOFTWARE IS PROVIDED BY ANDREW M. TRICE ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANDREW M. TRICE OR
|
||||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
|
||||
var SplitViewNavigator = function( target, toggleButtonLabel, backLinkCSS, bindToWindow ) {
|
||||
|
||||
this.animating = false;
|
||||
|
@ -1,3 +1,15 @@
|
||||
/*
|
||||
THIS SOFTWARE IS PROVIDED BY ANDREW M. TRICE ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANDREW M. TRICE OR
|
||||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
|
||||
* {
|
||||
-webkit-touch-callout: none;
|
||||
|
@ -1,3 +1,14 @@
|
||||
/*
|
||||
THIS SOFTWARE IS PROVIDED BY ANDREW M. TRICE ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANDREW M. TRICE OR
|
||||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
|
||||
var ViewNavigator = function( target, backLinkCSS, bindToWindow ) {
|
||||
|