Return-Path: X-Original-To: apmail-cordova-commits-archive@www.apache.org Delivered-To: apmail-cordova-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 9C05510780 for ; Mon, 26 Aug 2013 15:34:07 +0000 (UTC) Received: (qmail 11215 invoked by uid 500); 26 Aug 2013 15:33:56 -0000 Delivered-To: apmail-cordova-commits-archive@cordova.apache.org Received: (qmail 10541 invoked by uid 500); 26 Aug 2013 15:33:42 -0000 Mailing-List: contact commits-help@cordova.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cordova.apache.org Delivered-To: mailing list commits@cordova.apache.org Received: (qmail 9855 invoked by uid 99); 26 Aug 2013 15:33:36 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 26 Aug 2013 15:33:36 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id E35448C561E; Mon, 26 Aug 2013 15:33:35 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: pplaquette@apache.org To: commits@cordova.apache.org Date: Mon, 26 Aug 2013 15:34:02 -0000 Message-Id: In-Reply-To: <503968c98a874175b74a2c834ae46064@git.apache.org> References: <503968c98a874175b74a2c834ae46064@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [28/52] [abbrv] [cordova-tizen] tizen SDK 2.2 support http://git-wip-us.apache.org/repos/asf/cordova-tizen/blob/e21e0780/templates/CordovaTizenWebUIFrameworkTemplate/project/tizen-web-ui-fw/latest/js/modules/depData.json ---------------------------------------------------------------------- diff --git a/templates/CordovaTizenWebUIFrameworkTemplate/project/tizen-web-ui-fw/latest/js/modules/depData.json b/templates/CordovaTizenWebUIFrameworkTemplate/project/tizen-web-ui-fw/latest/js/modules/depData.json new file mode 100644 index 0000000..9242ea5 --- /dev/null +++ b/templates/CordovaTizenWebUIFrameworkTemplate/project/tizen-web-ui-fw/latest/js/modules/depData.json @@ -0,0 +1,442 @@ +{ + "jquery.mobile.tizen.scrollview": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "jquery.mobile.tizen.scrollview.js", + "name": "jquery.mobile.tizen.scrollview", + "depends": [], + "label": "Scrollview", + "group": "Tizen:Core", + "description": "Implements scroll by javascript" + }, + "jquery.mobile.tizen.pinch": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "jquery.mobile.tizen.pinch.js", + "name": "jquery.mobile.tizen.pinch", + "depends": [ + "jquery.mobile.core" + ], + "label": "Tizen core", + "group": "Tizen:Core", + "description": "Tizen core library" + }, + "jquery.mobile.tizen.core": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "jquery.mobile.tizen.core.js", + "name": "jquery.mobile.tizen.core", + "depends": [ + "jquery.mobile.core", + "jquery.mobile.tizen.configure", + "util/ensurens" + ], + "label": "Tizen core", + "group": "Tizen:Core", + "description": "Tizen core library" + }, + "util/range": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "util/range.js", + "name": "util/range", + "depends": [], + "label": "Range", + "group": "Tizen:Utilities", + "description": "Makes array with given range" + }, + "util/ensurens": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "util/ensurens.js", + "name": "util/ensurens", + "depends": [], + "label": "Ensurens", + "group": "Tizen:Utilities", + "description": "Make namespace for modules" + }, + "jquery.mobile.tizen.clrlib": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "jquery.mobile.tizen.clrlib.js", + "name": "jquery.mobile.tizen.clrlib", + "depends": [ + "util/ensurens" + ], + "label": "Color library", + "group": "Tizen:Core", + "description": "Color code converter" + }, + "jquery.mobile.tizen.configure": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "jquery.mobile.tizen.configure.js", + "name": "jquery.mobile.tizen.configure", + "depends": [], + "label": "Configuration", + "group": "Tizen:Core", + "description": "jQuery Mobile configuration for Tizen widgets" + }, + "widgets/jquery.mobile.tizen.gallery3d": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "widgets/jquery.mobile.tizen.gallery3d.js", + "name": "widgets/jquery.mobile.tizen.gallery3d", + "depends": [ + "widgets/components/imageloader", + "widgets/components/motionpath", + "widgets/components/webgl" + ], + "label": "Gallery3d", + "group": "Tizen:Widgets", + "description": "3D photo gallery widget." + }, + "widgets/jquery.mobile.tizen.multimediaview": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "widgets/jquery.mobile.tizen.multimediaview.js", + "name": "widgets/jquery.mobile.tizen.multimediaview", + "depends": [ + "jquery.mobile.tizen.scrollview" + ], + "label": "Multimedia view", + "group": "Tizen:Widgets", + "description": "Shows multimedia and its controls" + }, + "widgets/jquery.mobile.tizen.button": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "widgets/jquery.mobile.tizen.button.js", + "name": "widgets/jquery.mobile.tizen.button", + "depends": [], + "label": "Button", + "group": "Tizen:Widgets", + "description": "Tizen button" + }, + "widgets/jquery.mobile.tizen.scrollview.handler": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "widgets/jquery.mobile.tizen.scrollview.handler.js", + "name": "widgets/jquery.mobile.tizen.scrollview.handler", + "depends": [ + "jquery.mobile.tizen.core", + "jquery.mobile.tizen.scrollview" + ], + "label": "Scrollview Handler", + "group": "Tizen:Widgets", + "description": "Shows a scroll-handler with a scrollview" + }, + "widgets/jquery.mobile.tizen.popupwindow.ctxpopup": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "widgets/jquery.mobile.tizen.popupwindow.ctxpopup.js", + "name": "widgets/jquery.mobile.tizen.popupwindow.ctxpopup", + "depends": [ + "jquery.mobile.tizen.core", + "widgets/jquery.mobile.tizen.popupwindow", + "widgets/jquery.mobile.tizen.triangle" + ], + "label": "Context popup", + "group": "Tizen:Widgets", + "description": "Shows popup at any place in the page content, with various styles" + }, + "widgets/jquery.mobile.tizen.datetimepicker": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "widgets/jquery.mobile.tizen.datetimepicker.js", + "name": "widgets/jquery.mobile.tizen.datetimepicker", + "depends": [ + "widgets/jquery.mobile.tizen.widgetex", + "widgets/jquery.mobile.tizen.popupwindow", + "widgets/jquery.mobile.tizen.popupwindow.ctxpopup" + ], + "label": "Datetime picker", + "group": "Tizen:Widgets", + "description": "Shows date and time, and make them able to be changed by user" + }, + "widgets/jquery.mobile.tizen.slider": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "widgets/jquery.mobile.tizen.slider.js", + "name": "widgets/jquery.mobile.tizen.slider", + "depends": [ + "jquery.mobile.tizen.core" + ], + "label": "Slider", + "group": "Tizen:Widgets", + "description": "Shows slider bar to input number by dragging" + }, + "widgets/jquery.mobile.tizen.swipe": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "widgets/jquery.mobile.tizen.swipe.js", + "name": "widgets/jquery.mobile.tizen.swipe", + "depends": [ + "jquery.mobile.tizen.core" + ], + "label": "Swipe list", + "group": "Tizen:Widgets", + "description": "Shows background listitem by swiping left/right on a listitem" + }, + "widgets/jquery.mobile.tizen.listdivider": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "widgets/jquery.mobile.tizen.listdivider.js", + "name": "widgets/jquery.mobile.tizen.listdivider", + "depends": [], + "label": "List divider", + "group": "Tizen:Widgets", + "description": "Divider listitem in listview" + }, + "widgets/jquery.mobile.tizen.notification": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "widgets/jquery.mobile.tizen.notification.js", + "name": "widgets/jquery.mobile.tizen.notification", + "depends": [ + "jquery.mobile.tizen.core" + ], + "label": "Notification", + "group": "Tizen:Widgets", + "description": "Shows notification popup over header/footer" + }, + "widgets/jquery.mobile.tizen.pagelayout": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "widgets/jquery.mobile.tizen.pagelayout.js", + "name": "widgets/jquery.mobile.tizen.pagelayout", + "depends": [ + "jquery.mobile.tizen.core" + ], + "label": "Pagelayout", + "group": "Tizen:Widgets", + "description": "Set a layout of pages" + }, + "widgets/jquery.mobile.tizen.checkbox": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "widgets/jquery.mobile.tizen.checkbox.js", + "name": "widgets/jquery.mobile.tizen.checkbox", + "depends": [], + "label": "//>>label: Checkbox", + "group": "//>>group: Tizen:Widgets", + "description": "//>>description: Checkbox widget" + }, + "widgets/jquery.mobile.tizen.splitview": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "widgets/jquery.mobile.tizen.splitview.js", + "name": "widgets/jquery.mobile.tizen.splitview", + "depends": [ + "jquery.mobile.tizen.scrollview" + ], + "label": "Split view", + "group": "Tizen:Widgets", + "description": "Show different HTML contents at the same time on each divided pane." + }, + "widgets/jquery.mobile.tizen.virtualgrid": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "widgets/jquery.mobile.tizen.virtualgrid.js", + "name": "widgets/jquery.mobile.tizen.virtualgrid", + "depends": [ + "jquery.mobile.tizen.core", + "jquery.mobile.tizen.scrollview" + ], + "label": "Virtual grid", + "group": "Tizen:Widgets", + "description": "Shows grid swapping its contents automatically" + }, + "widgets/jquery.mobile.tizen.searchbar": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "widgets/jquery.mobile.tizen.searchbar.js", + "name": "widgets/jquery.mobile.tizen.searchbar", + "depends": [ + "jquery.mobile.tizen.core", + "widgets/jquery.mobile.tizen.pagelayout" + ], + "label": "Searchbar", + "group": "Tizen:Widgets", + "description": "Shows searchbar, for text search" + }, + "widgets/jquery.mobile.tizen.gallery": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "widgets/jquery.mobile.tizen.gallery.js", + "name": "widgets/jquery.mobile.tizen.gallery", + "depends": [], + "label": "Gallery", + "group": "Tizen:Widgets", + "description": "Shows images one by one, and moves them by flicking" + }, + "widgets/jquery.mobile.tizen.circularview": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "widgets/jquery.mobile.tizen.circularview.js", + "name": "widgets/jquery.mobile.tizen.circularview", + "depends": [ + "jquery.mobile.tizen.scrollview" + ], + "label": "Circularview", + "group": "Tizen:Widgets", + "description": "Container widget showing children circulary" + }, + "widgets/components/imageloader": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "widgets/components/imageloader.js", + "name": "widgets/components/imageloader", + "depends": [], + "label": "Image loader", + "group": "Tizen:Widgets:Components", + "description": "Tizen image loader component for gallery3d" + }, + "widgets/components/motionpath": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "widgets/components/motionpath.js", + "name": "widgets/components/motionpath", + "depends": [], + "label": "Motion path", + "group": "Tizen:Widgets:Components", + "description": "Tizen motion path component for gallery3d" + }, + "widgets/components/webgl": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "widgets/components/webgl.js", + "name": "widgets/components/webgl", + "depends": [], + "label": "WebGL", + "group": "Tizen:Widgets:Lib", + "description": "Tizen WebGL component for gallery3d" + }, + "widgets/jquery.mobile.tizen.popupwindow": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "widgets/jquery.mobile.tizen.popupwindow.js", + "name": "widgets/jquery.mobile.tizen.popupwindow", + "depends": [ + "jquery.mobile.tizen.core", + "widgets/jquery.mobile.tizen.widgetex" + ], + "label": "Popup", + "group": "Tizen:Widgets", + "description": "Shows popup on the page" + }, + "widgets/jquery.mobile.tizen.virtuallistview": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "widgets/jquery.mobile.tizen.virtuallistview.js", + "name": "widgets/jquery.mobile.tizen.virtuallistview", + "depends": [ + "jquery.mobile.tizen.core", + "jquery.mobile.tizen.scrollview" + ], + "label": "Virtual listview", + "group": "Tizen:Widgets", + "description": "Shows listview swapping its contents automatically" + }, + "widgets/jquery.mobile.tizen.progress": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "widgets/jquery.mobile.tizen.progress.js", + "name": "widgets/jquery.mobile.tizen.progress", + "depends": [ + "jquery.mobile.tizen.core" + ], + "label": "Progress", + "group": "Tizen:Widgets", + "description": "Shows progressbar or progress circle" + }, + "widgets/jquery.mobile.tizen.fastscroll": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "widgets/jquery.mobile.tizen.fastscroll.js", + "name": "widgets/jquery.mobile.tizen.fastscroll", + "depends": [ + "jquery.mobile.tizen.scrollview" + ], + "label": "Fastscroll", + "group": "Tizen:Widgets", + "description": "Shows list index and scroll to the index directly" + }, + "widgets/jquery.mobile.tizen.widgetex": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "widgets/jquery.mobile.tizen.widgetex.js", + "name": "widgets/jquery.mobile.tizen.widgetex", + "depends": [ + "jquery.mobile.tizen.core" + ], + "label": "Widget extension", + "group": "Tizen:Widgets", + "description": "Widget class extending functionality of jQueryMobile widget class" + }, + "widgets/jquery.mobile.tizen.tabbar": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "widgets/jquery.mobile.tizen.tabbar.js", + "name": "widgets/jquery.mobile.tizen.tabbar", + "depends": [ + "jquery.mobile.tizen.core", + "widgets/jquery.mobile.tizen.pagelayout" + ], + "label": "Tabbar", + "group": "Tizen:Widgets", + "description": "Shows buttons divided automatically on the header" + }, + "widgets/jquery.mobile.tizen.triangle": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "widgets/jquery.mobile.tizen.triangle.js", + "name": "widgets/jquery.mobile.tizen.triangle", + "depends": [ + "jquery.mobile.tizen.core", + "widgets/jquery.mobile.tizen.widgetex" + ], + "label": "Triangle", + "group": "Tizen:Widgets", + "description": "Shows triangle, used by context popup" + }, + "widgets/jquery.mobile.tizen.tokentextarea": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "widgets/jquery.mobile.tizen.tokentextarea.js", + "name": "widgets/jquery.mobile.tizen.tokentextarea", + "depends": [ + "jquery.mobile.tizen.core" + ], + "label": "Token textarea", + "group": "Tizen:Widgets", + "description": "Make words to selectable tokens" + }, + "widgets/jquery.mobile.tizen.progressbar": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "widgets/jquery.mobile.tizen.progressbar.js", + "name": "widgets/jquery.mobile.tizen.progressbar", + "depends": [ + "jquery.mobile.tizen.core" + ], + "label": "Progressbar", + "group": "Tizen:Widgets", + "description": "Shows progressbar" + }, + "widgets/jquery.mobile.tizen.extendablelist": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "widgets/jquery.mobile.tizen.extendablelist.js", + "name": "widgets/jquery.mobile.tizen.extendablelist", + "depends": [ + "jquery.mobile.tizen.scrollview" + ], + "label": "Extendable list", + "group": "Tizen:Widgets", + "description": "Listview which can be extended more and more" + }, + "jquery.mobile.tizen.loadprototype": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "jquery.mobile.tizen.loadprototype.js", + "name": "jquery.mobile.tizen.loadprototype", + "depends": [ + "util/ensurens" + ], + "label": "Widget prototype loader", + "group": "Tizen:Core", + "description": "Loads widget's prototype" + }, + "jquery.mobile.tizen.loader": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "jquery.mobile.tizen.loader.js", + "name": "jquery.mobile.tizen.loader", + "depends": [ + "jquery.mobile.tizen.core" + ], + "label": "Loader", + "group": "Tizen:Core", + "description": "Loader doing theme loading, viewport setting, globalize loading, etc." + }, + "jquery.mobile.label": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "jquery.mobile.label.js", + "name": "jquery.mobile.label", + "depends": [], + "label": "Label", + "group": "Tizen:Core", + "description": "Add markup for labels" + }, + "jquery.mobile.core": { + "basedir": "/home/blueisle/playground/web/tizen/web-ui-fw.release/src/js", + "path": "jquery.mobile.core", + "name": "jquery.mobile.core", + "depends": [], + "label": "", + "group": "", + "description": "" + } +} http://git-wip-us.apache.org/repos/asf/cordova-tizen/blob/e21e0780/templates/CordovaTizenWebUIFrameworkTemplate/project/tizen-web-ui-fw/latest/js/modules/jqm/depend.js ---------------------------------------------------------------------- diff --git a/templates/CordovaTizenWebUIFrameworkTemplate/project/tizen-web-ui-fw/latest/js/modules/jqm/depend.js b/templates/CordovaTizenWebUIFrameworkTemplate/project/tizen-web-ui-fw/latest/js/modules/jqm/depend.js new file mode 100644 index 0000000..8de7760 --- /dev/null +++ b/templates/CordovaTizenWebUIFrameworkTemplate/project/tizen-web-ui-fw/latest/js/modules/jqm/depend.js @@ -0,0 +1,27 @@ +/** @license + * Plugin to load JS files that have dependencies but aren't wrapped into + * `define` calls. + * Author: Miller Medeiros + * Version: 0.1.0 (2011/12/13) + * Released under the MIT license + */ +define(function () { + + var rParts = /^(.*)\[([^\]]*)\]$/; + + return { + + //example: depend!bar[jquery,lib/foo] + load : function(name, req, onLoad, config){ + var parts = rParts.exec(name); + + req(parts[2].split(','), function(){ + req([parts[1]], function(mod){ + onLoad(mod); + }); + }); + } + + }; + +}); \ No newline at end of file http://git-wip-us.apache.org/repos/asf/cordova-tizen/blob/e21e0780/templates/CordovaTizenWebUIFrameworkTemplate/project/tizen-web-ui-fw/latest/js/modules/jqm/events/orientationchange.js ---------------------------------------------------------------------- diff --git a/templates/CordovaTizenWebUIFrameworkTemplate/project/tizen-web-ui-fw/latest/js/modules/jqm/events/orientationchange.js b/templates/CordovaTizenWebUIFrameworkTemplate/project/tizen-web-ui-fw/latest/js/modules/jqm/events/orientationchange.js new file mode 100644 index 0000000..db9e01e --- /dev/null +++ b/templates/CordovaTizenWebUIFrameworkTemplate/project/tizen-web-ui-fw/latest/js/modules/jqm/events/orientationchange.js @@ -0,0 +1,155 @@ +//>>excludeStart("jqmBuildExclude", pragmas.jqmBuildExclude); +//>>description: Orientation change event +//>>label: orientationchange +//>>group: Events + +define( [ "jquery", "../jquery.mobile.support.orientation", "./throttledresize" ], function( jQuery ) { +//>>excludeEnd("jqmBuildExclude"); + +(function( $, window ) { + var win = $.mobile.$window, + event_name = "orientationchange", + special_event, + get_orientation, + last_orientation, + initial_orientation_is_landscape, + initial_orientation_is_default, + portrait_map = { "0": true, "180": true }; + + // It seems that some device/browser vendors use window.orientation values 0 and 180 to + // denote the "default" orientation. For iOS devices, and most other smart-phones tested, + // the default orientation is always "portrait", but in some Android and RIM based tablets, + // the default orientation is "landscape". The following code attempts to use the window + // dimensions to figure out what the current orientation is, and then makes adjustments + // to the to the portrait_map if necessary, so that we can properly decode the + // window.orientation value whenever get_orientation() is called. + // + // Note that we used to use a media query to figure out what the orientation the browser + // thinks it is in: + // + // initial_orientation_is_landscape = $.mobile.media("all and (orientation: landscape)"); + // + // but there was an iPhone/iPod Touch bug beginning with iOS 4.2, up through iOS 5.1, + // where the browser *ALWAYS* applied the landscape media query. This bug does not + // happen on iPad. + + if ( $.support.orientation ) { + + // Check the window width and height to figure out what the current orientation + // of the device is at this moment. Note that we've initialized the portrait map + // values to 0 and 180, *AND* we purposely check for landscape so that if we guess + // wrong, , we default to the assumption that portrait is the default orientation. + // We use a threshold check below because on some platforms like iOS, the iPhone + // form-factor can report a larger width than height if the user turns on the + // developer console. The actual threshold value is somewhat arbitrary, we just + // need to make sure it is large enough to exclude the developer console case. + + var ww = window.innerWidth || $.mobile.$window.width(), + wh = window.innerHeight || $.mobile.$window.height(), + landscape_threshold = 50; + + initial_orientation_is_landscape = ww > wh && ( ww - wh ) > landscape_threshold; + + + // Now check to see if the current window.orientation is 0 or 180. + initial_orientation_is_default = portrait_map[ window.orientation ]; + + // If the initial orientation is landscape, but window.orientation reports 0 or 180, *OR* + // if the initial orientation is portrait, but window.orientation reports 90 or -90, we + // need to flip our portrait_map values because landscape is the default orientation for + // this device/browser. + if ( ( initial_orientation_is_landscape && initial_orientation_is_default ) || ( !initial_orientation_is_landscape && !initial_orientation_is_default ) ) { + portrait_map = { "-90": true, "90": true }; + } + } + + $.event.special.orientationchange = $.extend( {}, $.event.special.orientationchange, { + setup: function() { + // If the event is supported natively, return false so that jQuery + // will bind to the event using DOM methods. + if ( $.support.orientation && + $.event.special.orientationchange.disabled === false ) { + return false; + } + + // Get the current orientation to avoid initial double-triggering. + last_orientation = get_orientation(); + + // Because the orientationchange event doesn't exist, simulate the + // event by testing window dimensions on resize. + win.bind( "throttledresize", handler ); + }, + teardown: function() { + // If the event is not supported natively, return false so that + // jQuery will unbind the event using DOM methods. + if ( $.support.orientation && !$.event.special.orientationchange.disabled ) { + return false; + } + + // Because the orientationchange event doesn't exist, unbind the + // resize event handler. + win.unbind( "throttledresize", handler ); + }, + add: function( handleObj ) { + // Save a reference to the bound event handler. + var old_handler = handleObj.handler; + + + handleObj.handler = function( event ) { + // Modify event object, adding the .orientation property. + event.orientation = get_orientation(); + + // Call the originally-bound event handler and return its result. + return old_handler.apply( this, arguments ); + }; + } + }); + + // If the event is not supported natively, this handler will be bound to + // the window resize event to simulate the orientationchange event. + function handler() { + // Get the current orientation. + var orientation = get_orientation(); + + if ( orientation !== last_orientation ) { + // The orientation has changed, so trigger the orientationchange event. + last_orientation = orientation; + win.trigger( event_name ); + } + } + + // Get the current page orientation. This method is exposed publicly, should it + // be needed, as jQuery.event.special.orientationchange.orientation() + $.event.special.orientationchange.orientation = get_orientation = function() { + var isPortrait = true, elem = document.documentElement; + + // prefer window orientation to the calculation based on screensize as + // the actual screen resize takes place before or after the orientation change event + // has been fired depending on implementation (eg android 2.3 is before, iphone after). + // More testing is required to determine if a more reliable method of determining the new screensize + // is possible when orientationchange is fired. (eg, use media queries + element + opacity) + if ( $.support.orientation ) { + // if the window orientation registers as 0 or 180 degrees report + // portrait, otherwise landscape + isPortrait = portrait_map[ window.orientation ]; + } else { + isPortrait = elem && elem.clientWidth / elem.clientHeight < 1.1; + } + + return isPortrait ? "portrait" : "landscape"; + }; + + $.fn[ event_name ] = function( fn ) { + return fn ? this.bind( event_name, fn ) : this.trigger( event_name ); + }; + + // jQuery < 1.8 + if ( $.attrFn ) { + $.attrFn[ event_name ] = true; + } + +}( jQuery, this )); + +//>>excludeStart("jqmBuildExclude", pragmas.jqmBuildExclude); +}); +//>>excludeEnd("jqmBuildExclude"); http://git-wip-us.apache.org/repos/asf/cordova-tizen/blob/e21e0780/templates/CordovaTizenWebUIFrameworkTemplate/project/tizen-web-ui-fw/latest/js/modules/jqm/events/throttledresize.js ---------------------------------------------------------------------- diff --git a/templates/CordovaTizenWebUIFrameworkTemplate/project/tizen-web-ui-fw/latest/js/modules/jqm/events/throttledresize.js b/templates/CordovaTizenWebUIFrameworkTemplate/project/tizen-web-ui-fw/latest/js/modules/jqm/events/throttledresize.js new file mode 100644 index 0000000..3efeb46 --- /dev/null +++ b/templates/CordovaTizenWebUIFrameworkTemplate/project/tizen-web-ui-fw/latest/js/modules/jqm/events/throttledresize.js @@ -0,0 +1,47 @@ +//>>excludeStart("jqmBuildExclude", pragmas.jqmBuildExclude); +//>>description: Throttled resize event +//>>label: throttledresize +//>>group: Events + +define( [ "jquery" ], function( jQuery ) { +//>>excludeEnd("jqmBuildExclude"); + + // throttled resize event + (function( $ ) { + $.event.special.throttledresize = { + setup: function() { + $( this ).bind( "resize", handler ); + }, + teardown: function() { + $( this ).unbind( "resize", handler ); + } + }; + + var throttle = 250, + handler = function() { + curr = ( new Date() ).getTime(); + diff = curr - lastCall; + + if ( diff >= throttle ) { + + lastCall = curr; + $( this ).trigger( "throttledresize" ); + + } else { + + if ( heldCall ) { + clearTimeout( heldCall ); + } + + // Promise a held call will still execute + heldCall = setTimeout( handler, throttle - diff ); + } + }, + lastCall = 0, + heldCall, + curr, + diff; + })( jQuery ); +//>>excludeStart("jqmBuildExclude", pragmas.jqmBuildExclude); +}); +//>>excludeEnd("jqmBuildExclude"); \ No newline at end of file http://git-wip-us.apache.org/repos/asf/cordova-tizen/blob/e21e0780/templates/CordovaTizenWebUIFrameworkTemplate/project/tizen-web-ui-fw/latest/js/modules/jqm/events/touch.js ---------------------------------------------------------------------- diff --git a/templates/CordovaTizenWebUIFrameworkTemplate/project/tizen-web-ui-fw/latest/js/modules/jqm/events/touch.js b/templates/CordovaTizenWebUIFrameworkTemplate/project/tizen-web-ui-fw/latest/js/modules/jqm/events/touch.js new file mode 100644 index 0000000..fbd2637 --- /dev/null +++ b/templates/CordovaTizenWebUIFrameworkTemplate/project/tizen-web-ui-fw/latest/js/modules/jqm/events/touch.js @@ -0,0 +1,209 @@ +//>>excludeStart("jqmBuildExclude", pragmas.jqmBuildExclude); +//>>description: Touch events: touchstart, touchmove, touchend, tap, taphold, swipe, swipeleft, swiperight, scrollstart, scrollstop +//>>label: touch +//>>group: Events + +define( [ "jquery", "../jquery.mobile.vmouse", "../jquery.mobile.support.touch" ], function( jQuery ) { +//>>excludeEnd("jqmBuildExclude"); + +(function( $, window, undefined ) { + // add new event shortcuts + $.each( ( "touchstart touchmove touchend " + + "tap taphold " + + "swipe swipeleft swiperight " + + "scrollstart scrollstop" ).split( " " ), function( i, name ) { + + $.fn[ name ] = function( fn ) { + return fn ? this.bind( name, fn ) : this.trigger( name ); + }; + + // jQuery < 1.8 + if ( $.attrFn ) { + $.attrFn[ name ] = true; + } + }); + + var supportTouch = $.mobile.support.touch, + scrollEvent = "touchmove scroll", + touchStartEvent = supportTouch ? "touchstart" : "mousedown", + touchStopEvent = supportTouch ? "touchend" : "mouseup", + touchMoveEvent = supportTouch ? "touchmove" : "mousemove"; + + function triggerCustomEvent( obj, eventType, event ) { + var originalType = event.type; + event.type = eventType; + // event.liveFired is already set by basic events, e.g. vclick, which is fired already. + // To fire this custom event, event.liveFired must be cleared. + event.liveFired = undefined; + + $.event.handle.call( obj, event ); + event.type = originalType; + } + + // also handles scrollstop + $.event.special.scrollstart = { + + enabled: true, + + setup: function() { + + var thisObject = this, + $this = $( thisObject ), + scrolling, + timer; + + function trigger( event, state ) { + scrolling = state; + triggerCustomEvent( thisObject, scrolling ? "scrollstart" : "scrollstop", event ); + } + + // iPhone triggers scroll after a small delay; use touchmove instead + $this.bind( scrollEvent, function( event ) { + + if ( !$.event.special.scrollstart.enabled ) { + return; + } + + if ( !scrolling ) { + trigger( event, true ); + } + + clearTimeout( timer ); + timer = setTimeout( function() { + trigger( event, false ); + }, 50 ); + }); + } + }; + + // also handles taphold + $.event.special.tap = { + tapholdThreshold: 750, + + setup: function() { + var thisObject = this, + $this = $( thisObject ); + + $this.bind( "vmousedown", function( event ) { + + if ( event.which && event.which !== 1 ) { + return false; + } + + var origTarget = event.target, + origEvent = event.originalEvent, + timer; + + function clearTapTimer() { + clearTimeout( timer ); + } + + function clearTapHandlers() { + clearTapTimer(); + + $this.unbind( "vclick", clickHandler ) + .unbind( "vmouseup", clearTapTimer ); + $.mobile.$document.unbind( "vmousecancel", clearTapHandlers ); + } + + function clickHandler( event ) { + clearTapHandlers(); + + // ONLY trigger a 'tap' event if the start target is + // the same as the stop target. + if ( origTarget === event.target ) { + triggerCustomEvent( thisObject, "tap", event ); + } + } + + $this.bind( "vmouseup", clearTapTimer ) + .bind( "vclick", clickHandler ); + $.mobile.$document.bind( "vmousecancel", clearTapHandlers ); + + timer = setTimeout( function() { + triggerCustomEvent( thisObject, "taphold", $.Event( "taphold", { target: origTarget } ) ); + }, $.event.special.tap.tapholdThreshold ); + }); + } + }; + + // also handles swipeleft, swiperight + $.event.special.swipe = { + scrollSupressionThreshold: 30, // More than this horizontal displacement, and we will suppress scrolling. + + durationThreshold: 1000, // More time than this, and it isn't a swipe. + + horizontalDistanceThreshold: 30, // Swipe horizontal displacement must be more than this. + + verticalDistanceThreshold: 75, // Swipe vertical displacement must be less than this. + + setup: function() { + var thisObject = this, + $this = $( thisObject ); + + $this.bind( touchStartEvent, function( event ) { + var data = event.originalEvent.touches ? + event.originalEvent.touches[ 0 ] : event, + start = { + time: ( new Date() ).getTime(), + coords: [ data.pageX, data.pageY ], + origin: $( event.target ) + }, + stop; + + function moveHandler( event ) { + + if ( !start ) { + return; + } + + var data = event.originalEvent.touches ? + event.originalEvent.touches[ 0 ] : event; + + stop = { + time: ( new Date() ).getTime(), + coords: [ data.pageX, data.pageY ] + }; + + // prevent scrolling + if ( Math.abs( start.coords[ 0 ] - stop.coords[ 0 ] ) > $.event.special.swipe.scrollSupressionThreshold ) { + event.preventDefault(); + } + } + + $this.bind( touchMoveEvent, moveHandler ) + .one( touchStopEvent, function( event ) { + $this.unbind( touchMoveEvent, moveHandler ); + + if ( start && stop ) { + if ( stop.time - start.time < $.event.special.swipe.durationThreshold && + Math.abs( start.coords[ 0 ] - stop.coords[ 0 ] ) > $.event.special.swipe.horizontalDistanceThreshold && + Math.abs( start.coords[ 1 ] - stop.coords[ 1 ] ) < $.event.special.swipe.verticalDistanceThreshold ) { + + start.origin.trigger( "swipe" ) + .trigger( start.coords[0] > stop.coords[ 0 ] ? "swipeleft" : "swiperight" ); + } + } + start = stop = undefined; + }); + }); + } + }; + $.each({ + scrollstop: "scrollstart", + taphold: "tap", + swipeleft: "swipe", + swiperight: "swipe" + }, function( event, sourceEvent ) { + + $.event.special[ event ] = { + setup: function() { + $( this ).bind( sourceEvent, $.noop ); + } + }; + }); + +})( jQuery, this ); +//>>excludeStart("jqmBuildExclude", pragmas.jqmBuildExclude); +}); +//>>excludeEnd("jqmBuildExclude"); http://git-wip-us.apache.org/repos/asf/cordova-tizen/blob/e21e0780/templates/CordovaTizenWebUIFrameworkTemplate/project/tizen-web-ui-fw/latest/js/modules/jqm/index.php ---------------------------------------------------------------------- diff --git a/templates/CordovaTizenWebUIFrameworkTemplate/project/tizen-web-ui-fw/latest/js/modules/jqm/index.php b/templates/CordovaTizenWebUIFrameworkTemplate/project/tizen-web-ui-fw/latest/js/modules/jqm/index.php new file mode 100644 index 0000000..f8ab8b9 --- /dev/null +++ b/templates/CordovaTizenWebUIFrameworkTemplate/project/tizen-web-ui-fw/latest/js/modules/jqm/index.php @@ -0,0 +1,61 @@ + and +// lowered its default value to 50. Added +// and properties plus document-domain.html +// file to address access denied issues when setting document.domain in +// IE6/7. +// 1.2 - (2/11/2010) Fixed a bug where coming back to a page using this plugin +// from a page on another domain would cause an error in Safari 4. Also, +// IE6/7 Iframe is now inserted after the body (this actually works), +// which prevents the page from scrolling when the event is first bound. +// Event can also now be bound before DOM ready, but it won't be usable +// before then in IE6/7. +// 1.1 - (1/21/2010) Incorporated document.documentMode test to fix IE8 bug +// where browser version is incorrectly reported as 8.0, despite +// inclusion of the X-UA-Compatible IE=EmulateIE7 meta tag. +// 1.0 - (1/9/2010) Initial Release. Broke out the jQuery BBQ event.special +// window.onhashchange functionality into a separate plugin for users +// who want just the basic event & back button support, without all the +// extra awesomeness that BBQ provides. This plugin will be included as +// part of jQuery BBQ, but also be available separately. + + +//>>excludeStart("jqmBuildExclude", pragmas.jqmBuildExclude); +//>>description: jQuery hashchange event +//>>label: jQuery hashchange event +//>>group: Core + +define( [ + "jquery" + ], function( jQuery ) { + +//>>excludeEnd("jqmBuildExclude"); + +(function( $, window, undefined ) { + // Reused string. + var str_hashchange = 'hashchange', + + // Method / object references. + doc = document, + fake_onhashchange, + special = $.event.special, + + // Does the browser support window.onhashchange? Note that IE8 running in + // IE7 compatibility mode reports true for 'onhashchange' in window, even + // though the event isn't supported, so also test document.documentMode. + doc_mode = doc.documentMode, + supports_onhashchange = 'on' + str_hashchange in window && ( doc_mode === undefined || doc_mode > 7 ); + + // Get location.hash (or what you'd expect location.hash to be) sans any + // leading #. Thanks for making this necessary, Firefox! + function get_fragment( url ) { + url = url || location.href; + return '#' + url.replace( /^[^#]*#?(.*)$/, '$1' ); + }; + + // Method: jQuery.fn.hashchange + // + // Bind a handler to the window.onhashchange event or trigger all bound + // window.onhashchange event handlers. This behavior is consistent with + // jQuery's built-in event handlers. + // + // Usage: + // + // > jQuery(window).hashchange( [ handler ] ); + // + // Arguments: + // + // handler - (Function) Optional handler to be bound to the hashchange + // event. This is a "shortcut" for the more verbose form: + // jQuery(window).bind( 'hashchange', handler ). If handler is omitted, + // all bound window.onhashchange event handlers will be triggered. This + // is a shortcut for the more verbose + // jQuery(window).trigger( 'hashchange' ). These forms are described in + // the section. + // + // Returns: + // + // (jQuery) The initial jQuery collection of elements. + + // Allow the "shortcut" format $(elem).hashchange( fn ) for binding and + // $(elem).hashchange() for triggering, like jQuery does for built-in events. + $.fn[ str_hashchange ] = function( fn ) { + return fn ? this.bind( str_hashchange, fn ) : this.trigger( str_hashchange ); + }; + + // Property: jQuery.fn.hashchange.delay + // + // The numeric interval (in milliseconds) at which the + // polling loop executes. Defaults to 50. + + // Property: jQuery.fn.hashchange.domain + // + // If you're setting document.domain in your JavaScript, and you want hash + // history to work in IE6/7, not only must this property be set, but you must + // also set document.domain BEFORE jQuery is loaded into the page. This + // property is only applicable if you are supporting IE6/7 (or IE8 operating + // in "IE7 compatibility" mode). + // + // In addition, the property must be set to the + // path of the included "document-domain.html" file, which can be renamed or + // modified if necessary (note that the document.domain specified must be the + // same in both your main JavaScript as well as in this file). + // + // Usage: + // + // jQuery.fn.hashchange.domain = document.domain; + + // Property: jQuery.fn.hashchange.src + // + // If, for some reason, you need to specify an Iframe src file (for example, + // when setting document.domain as in ), you can + // do so using this property. Note that when using this property, history + // won't be recorded in IE6/7 until the Iframe src file loads. This property + // is only applicable if you are supporting IE6/7 (or IE8 operating in "IE7 + // compatibility" mode). + // + // Usage: + // + // jQuery.fn.hashchange.src = 'path/to/file.html'; + + $.fn[ str_hashchange ].delay = 50; + /* + $.fn[ str_hashchange ].domain = null; + $.fn[ str_hashchange ].src = null; + */ + + // Event: hashchange event + // + // Fired when location.hash changes. In browsers that support it, the native + // HTML5 window.onhashchange event is used, otherwise a polling loop is + // initialized, running every milliseconds to + // see if the hash has changed. In IE6/7 (and IE8 operating in "IE7 + // compatibility" mode), a hidden Iframe is created to allow the back button + // and hash-based history to work. + // + // Usage as described in : + // + // > // Bind an event handler. + // > jQuery(window).hashchange( function(e) { + // > var hash = location.hash; + // > ... + // > }); + // > + // > // Manually trigger the event handler. + // > jQuery(window).hashchange(); + // + // A more verbose usage that allows for event namespacing: + // + // > // Bind an event handler. + // > jQuery(window).bind( 'hashchange', function(e) { + // > var hash = location.hash; + // > ... + // > }); + // > + // > // Manually trigger the event handler. + // > jQuery(window).trigger( 'hashchange' ); + // + // Additional Notes: + // + // * The polling loop and Iframe are not created until at least one handler + // is actually bound to the 'hashchange' event. + // * If you need the bound handler(s) to execute immediately, in cases where + // a location.hash exists on page load, via bookmark or page refresh for + // example, use jQuery(window).hashchange() or the more verbose + // jQuery(window).trigger( 'hashchange' ). + // * The event can be bound before DOM ready, but since it won't be usable + // before then in IE6/7 (due to the necessary Iframe), recommended usage is + // to bind it inside a DOM ready handler. + + // Override existing $.event.special.hashchange methods (allowing this plugin + // to be defined after jQuery BBQ in BBQ's source code). + special[ str_hashchange ] = $.extend( special[ str_hashchange ], { + + // Called only when the first 'hashchange' event is bound to window. + setup: function() { + // If window.onhashchange is supported natively, there's nothing to do.. + if ( supports_onhashchange ) { return false; } + + // Otherwise, we need to create our own. And we don't want to call this + // until the user binds to the event, just in case they never do, since it + // will create a polling loop and possibly even a hidden Iframe. + $( fake_onhashchange.start ); + }, + + // Called only when the last 'hashchange' event is unbound from window. + teardown: function() { + // If window.onhashchange is supported natively, there's nothing to do.. + if ( supports_onhashchange ) { return false; } + + // Otherwise, we need to stop ours (if possible). + $( fake_onhashchange.stop ); + } + + }); + + // fake_onhashchange does all the work of triggering the window.onhashchange + // event for browsers that don't natively support it, including creating a + // polling loop to watch for hash changes and in IE 6/7 creating a hidden + // Iframe to enable back and forward. + fake_onhashchange = (function() { + var self = {}, + timeout_id, + + // Remember the initial hash so it doesn't get triggered immediately. + last_hash = get_fragment(), + + fn_retval = function( val ) { return val; }, + history_set = fn_retval, + history_get = fn_retval; + + // Start the polling loop. + self.start = function() { + timeout_id || poll(); + }; + + // Stop the polling loop. + self.stop = function() { + timeout_id && clearTimeout( timeout_id ); + timeout_id = undefined; + }; + + // This polling loop checks every $.fn.hashchange.delay milliseconds to see + // if location.hash has changed, and triggers the 'hashchange' event on + // window when necessary. + function poll() { + var hash = get_fragment(), + history_hash = history_get( last_hash ); + + if ( hash !== last_hash ) { + history_set( last_hash = hash, history_hash ); + + $(window).trigger( str_hashchange ); + + } else if ( history_hash !== last_hash ) { + location.href = location.href.replace( /#.*/, '' ) + history_hash; + } + + timeout_id = setTimeout( poll, $.fn[ str_hashchange ].delay ); + }; + + // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv + // vvvvvvvvvvvvvvvvvvv REMOVE IF NOT SUPPORTING IE6/7/8 vvvvvvvvvvvvvvvvvvv + // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv + $.browser.msie && !supports_onhashchange && (function() { + // Not only do IE6/7 need the "magical" Iframe treatment, but so does IE8 + // when running in "IE7 compatibility" mode. + + var iframe, + iframe_src; + + // When the event is bound and polling starts in IE 6/7, create a hidden + // Iframe for history handling. + self.start = function() { + if ( !iframe ) { + iframe_src = $.fn[ str_hashchange ].src; + iframe_src = iframe_src && iframe_src + get_fragment(); + + // Create hidden Iframe. Attempt to make Iframe as hidden as possible + // by using techniques from http://www.paciellogroup.com/blog/?p=604. + iframe = $('