Export 0.1.55
authorYoumin Ha <youmin.ha@samsung.com>
Tue, 9 Oct 2012 08:47:45 +0000 (17:47 +0900)
committerYoumin Ha <youmin.ha@samsung.com>
Tue, 9 Oct 2012 08:47:45 +0000 (17:47 +0900)
46 files changed:
Makefile
demos/tizen-winsets/widgets/datefield.html [changed mode: 0644->0755]
libs/patch/0002-JQM-nolabel-n-favorite-class-for-check-support.patch
libs/patch/0020-JQM-Block-click-event-only-with-the-element-that-doe.patch [new file with mode: 0644]
libs/patch/0021-JQM-add-event-blocker-when-load-a-first-page.patch [new file with mode: 0644]
packaging/web-ui-fw.spec
src/themes/tizen/common/jquery.mobile.core.less
src/themes/tizen/common/jquery.mobile.forms.textinput.less
src/themes/tizen/common/jquery.mobile.listview.less
src/themes/tizen/common/jquery.mobile.theme.less
src/themes/tizen/common/jquery.mobile.tizen.datetimepicker.less
src/themes/tizen/common/jquery.mobile.tizen.less [changed mode: 0644->0755]
src/themes/tizen/common/jquery.mobile.tizen.multibuttonentry.less
src/themes/tizen/common/jquery.mobile.tizen.notification.less
src/themes/tizen/common/jquery.mobile.tizen.slider.less
src/themes/tizen/tizen-black/style.less
src/themes/tizen/tizen-white/style.less
src/widgets/barlayout/js/jquery.mobile.tizen.barlayout.js
src/widgets/circularview/js/jquery.mobile.tizen.circularview.js
src/widgets/common/js/jquery.mobile.panning-page.js [deleted file]
src/widgets/common/js/jquery.mobile.tizen.core.js
src/widgets/common/js/jquery.mobile.tizen.jlayoutadaptor.js [deleted file]
src/widgets/common/js/jquery.mobile.tizen.scrollview.js
src/widgets/controlbar/js/jquery.mobile.tizen.controlbar.js
src/widgets/datetimepicker/js/jquery.mobile.tizen.datetimepicker.js
src/widgets/extendablelist/js/jquery.mobile.tizen.extendablelist.js
src/widgets/handler/js/jquery.tizen.scrollview.handler.js
src/widgets/imageslider/js/jquery.mobile.tizen.imageslider.js
src/widgets/layout-box/js/layout-box.js [deleted file]
src/widgets/listdivider/js/jquery.mobile.tizen.listdivider.js
src/widgets/listviewcontrols/js/listviewcontrols.js [deleted file]
src/widgets/multibuttonentry/js/jquery.mobile.tizen.multibuttonentry.js
src/widgets/notification/js/jquery.mobile.tizen.notification.js
src/widgets/pagelayout/js/jquery.mobile.tizen.pagelayout.js
src/widgets/pagelist/css/pagelist.css [deleted file]
src/widgets/pagelist/js/jquery.mobile.tizen.pagelist.js [deleted file]
src/widgets/pagelist/proto-html/pagelist.prototype.html [deleted file]
src/widgets/popupwindow/js/jquery.mobile.popup.js
tests/unit-tests/gallery3d/gallery3d-tests.js [new file with mode: 0755]
tests/unit-tests/gallery3d/index.html [new file with mode: 0755]
tests/unit-tests/multibuttonentry/multibuttonentry-tests.js
web-ui-fw-theme-default.manifest [new file with mode: 0644]
web-ui-fw-theme-tizen-black.manifest [new file with mode: 0644]
web-ui-fw-theme-tizen-gray.manifest [new file with mode: 0644]
web-ui-fw-theme-tizen-white.manifest [new file with mode: 0644]
web-ui-fw.manifest [new file with mode: 0644]

index f7f0ccb..6a8a551 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -76,14 +76,8 @@ JQUERY_MOBILE_IMAGES = submodules/jquery-mobile/css/themes/default/images
 JQM_VERSION = jquery-mobile-1.1.0
 JQM_LIB_PATH = $(CURDIR)/libs/js/${JQM_VERSION}
 
-ifeq (${DEBUG},yes)
 JQUERY = jquery-1.7.1.js
-else
-LIBS_JS_FILES +=\
-       jquery.mobile.min.js \
-    $(NULL)
-JQUERY = jquery-1.7.1.min.js
-endif
+JQUERY_MIN = $(subst .js,.min.js,$(JQUERY))
 
 LIBS_CSS_FILES =
 ifeq (${DEBUG},yes)
@@ -127,6 +121,7 @@ third_party: init jqm
                echo "" >> ${FW_LIB_MIN}; \
            done; \
            cp ${LIBS_DIR}/js/${JQUERY} ${JS_OUTPUT_ROOT}/jquery.js
+           cp ${LIBS_DIR}/js/${JQUERY_MIN} ${JS_OUTPUT_ROOT}/jquery.min.js
        @@cd ${LIBS_DIR}/css; \
            for f in ${LIBS_CSS_FILES}; do \
                cat $$f >> ${FW_CSS}; \
old mode 100644 (file)
new mode 100755 (executable)
index 090594f..d52b946
@@ -14,7 +14,7 @@
                                </div>
                        </li>
                        <li class="ui-li-dialogue ui-datetime ui-datetime">
-                               <div class="ui-datetime-text-main">
+                               <div class="ui-datetime-text-main ui-datetime-nosubtitle">
                                        <input type="datetime" name="demo-date2" id="demo-date2" />
                                </div>
                                <div class="ui-datetime-text-sub">
                                        Time Picker - <span id="selected-date4"><em>(select a date first)</em></span>
                                </div>
                        </li>
+                       <li class="ui-li-dialogue ui-datetime ui-datetime">
+                               <div class="ui-datetime-text-main ui-datetime-nosubtitle">
+                                       <input type="datetime" name="demo-date2" id="demo-date2" />
+                               </div>
+                       </li>
                </ul>
        </div><!-- /content -->
 </div> <!-- /page -->
index 79c3627..4e57495 100644 (file)
@@ -1,17 +1,27 @@
-From 2807a575905be49a8445aea0b1759a88339f4e16 Mon Sep 17 00:00:00 2001
+From 5f35008c978c291f67778bb72d39709109682d0c Mon Sep 17 00:00:00 2001
 From: Koeun Choi <koeun.choi@samsung.com>
 Date: Fri, 15 Jun 2012 17:11:51 +0900
 Subject: [PATCH] JQM:nolabel n favorite class for check support
 
 Signed-off-by: Koeun Choi <koeun.choi@samsung.com>
+Signed-off-by: Youmin Ha <youmin.ha@samsung.com>
 ---
- .../js/jquery.mobile.forms.checkboxradio.js        |   10 ++++++++++
- 1 file changed, 10 insertions(+)
+ .../js/jquery.mobile.forms.checkboxradio.js        |   12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
 
 diff --git a/libs/js/jquery-mobile-1.1.0/js/jquery.mobile.forms.checkboxradio.js b/libs/js/jquery-mobile-1.1.0/js/jquery.mobile.forms.checkboxradio.js
-index eb4731b..b373431 100644
+index eb4731b..08556cf 100644
 --- a/libs/js/jquery-mobile-1.1.0/js/jquery.mobile.forms.checkboxradio.js
 +++ b/libs/js/jquery-mobile-1.1.0/js/jquery.mobile.forms.checkboxradio.js
+@@ -26,7 +26,7 @@ $.widget( "mobile.checkboxradio", $.mobile.widget, {
+                       // NOTE: Windows Phone could not find the label through a selector
+                       // filter works though.
+                       parentLabel = $( input ).closest( "label" ),
+-                      label = parentLabel.length ? parentLabel : $( input ).closest( "form,fieldset,:jqmData(role='page'),:jqmData(role='dialog')" ).find( "label" ).filter( "[for='" + input[0].id + "']" ),
++                      label = parentLabel.length ? parentLabel : ( input[0].id ? $( input ).closest( "form,fieldset,:jqmData(role='page'),:jqmData(role='dialog')" ).find( "label" ).filter( "[for='" + input[0].id + "']" ) : [ ] ),
+                       inputtype = input[0].type,
+                       mini = inheritAttr( input, "mini" ),
+                       checkedState = inputtype + "-on",
 @@ -43,6 +43,12 @@ $.widget( "mobile.checkboxradio", $.mobile.widget, {
                        return;
                }
diff --git a/libs/patch/0020-JQM-Block-click-event-only-with-the-element-that-doe.patch b/libs/patch/0020-JQM-Block-click-event-only-with-the-element-that-doe.patch
new file mode 100644 (file)
index 0000000..442db89
--- /dev/null
@@ -0,0 +1,34 @@
+From ac56c1f0e6620cbd83127b2ca3192723dcf50d56 Mon Sep 17 00:00:00 2001
+From: Youmin Ha <youmin.ha@samsung.com>
+Date: Sat, 8 Sep 2012 22:43:29 +0900
+Subject: [PATCH] JQM: Block click event only with the element that does preventDefault on vclick
+
+Signed-off-by: Youmin Ha <youmin.ha@samsung.com>
+---
+ .../jquery-mobile-1.1.0/js/jquery.mobile.vmouse.js |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/libs/js/jquery-mobile-1.1.0/js/jquery.mobile.vmouse.js b/libs/js/jquery-mobile-1.1.0/js/jquery.mobile.vmouse.js
+index b608460..8d7d9a2 100644
+--- a/libs/js/jquery-mobile-1.1.0/js/jquery.mobile.vmouse.js
++++ b/libs/js/jquery-mobile-1.1.0/js/jquery.mobile.vmouse.js
+@@ -300,6 +300,7 @@ function handleTouchEnd( event ) {
+                       t = getNativeEvent( event ).changedTouches[ 0 ];
+                       clickBlockList.push({
+                               touchID: lastTouchID,
++                              target: event.target,
+                               x: t.clientX,
+                               y: t.clientY
+                       });
+@@ -494,7 +495,7 @@ if ( eventCaptureSupported ) {
+                                       o = clickBlockList[ i ];
+                                       touchID = 0;
+-                                      if ( ( ele === target && Math.abs( o.x - x ) < threshold && Math.abs( o.y - y ) < threshold ) ||
++                                      if ( ( ele === target && target === o.target && Math.abs( o.x - x ) < threshold && Math.abs( o.y - y ) < threshold ) ||
+                                                               $.data( ele, touchTargetPropertyName ) === o.touchID ) {
+                                               // XXX: We may want to consider removing matches from the block list
+                                               //      instead of waiting for the reset timer to fire.
+-- 
+1.7.9.5
+
diff --git a/libs/patch/0021-JQM-add-event-blocker-when-load-a-first-page.patch b/libs/patch/0021-JQM-add-event-blocker-when-load-a-first-page.patch
new file mode 100644 (file)
index 0000000..a639dc6
--- /dev/null
@@ -0,0 +1,61 @@
+From 90c6c1dae398b40abfd2f9325bd1ed57ecd69178 Mon Sep 17 00:00:00 2001
+From: Minkyu Kang <mk7.kang@samsung.com>
+Date: Wed, 26 Sep 2012 14:34:50 +0900
+Subject: [PATCH] JQM: add event blocker when load a first page
+
+Change-Id: I4b159977e158cf8358bdd118682b8291e3adb6d8
+Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
+---
+ .../jquery-mobile-1.1.0/js/jquery.mobile.init.js   |   13 +++++++++++++
+ .../js/jquery.mobile.navigation.js                 |    4 ++++
+ 2 files changed, 17 insertions(+)
+
+diff --git a/libs/js/jquery-mobile-1.1.0/js/jquery.mobile.init.js b/libs/js/jquery-mobile-1.1.0/js/jquery.mobile.init.js
+index 93c03e8..54c4615 100644
+--- a/libs/js/jquery-mobile-1.1.0/js/jquery.mobile.init.js
++++ b/libs/js/jquery-mobile-1.1.0/js/jquery.mobile.init.js
+@@ -106,6 +106,18 @@ define( [ "jquery", "./jquery.mobile.core", "./jquery.mobile.support", "./jquery
+                       $( window ).unbind( "scroll", checkLoaderPosition );
+               },
++              addEventBlocker: function () {
++                      $html.addClass( "ui-blocker" );
++                      $html.bind( "touchstart touchend vclick mousedown mouseup click", function () {
++                              return false;
++                      } );
++              },
++
++              removeEventBlocker: function () {
++                      $html.removeClass( "ui-blocker" );
++                      $html.unbind( "touchstart touchend vclick mousedown mouseup click" );
++              },
++
+               // find and enhance the pages in the dom and transition to the first page.
+               initializePage: function() {
+                       // find present pages
+@@ -138,6 +150,7 @@ define( [ "jquery", "./jquery.mobile.core", "./jquery.mobile.support", "./jquery
+                       // cue page loading message
+                       $.mobile.showPageLoadingMsg();
++                      $.mobile.addEventBlocker();
+                       //remove initial build class (only present on first pageshow)
+                       hideRenderingClass();
+diff --git a/libs/js/jquery-mobile-1.1.0/js/jquery.mobile.navigation.js b/libs/js/jquery-mobile-1.1.0/js/jquery.mobile.navigation.js
+index f6e11b3..841e8a9 100644
+--- a/libs/js/jquery-mobile-1.1.0/js/jquery.mobile.navigation.js
++++ b/libs/js/jquery-mobile-1.1.0/js/jquery.mobile.navigation.js
+@@ -529,6 +529,10 @@ define( [
+                       //trigger pageshow, define prevPage as either fromPage or empty jQuery obj
+                       toPage.data( "page" )._trigger( "show", null, { prevPage: fromPage || $( "" ) } );
++
++                      setTimeout( function () {
++                              $.mobile.removeEventBlocker();
++                      }, 0 );
+               });
+               return promise;
+-- 
+1.7.9.5
+
index 07f0d95..09b719e 100644 (file)
@@ -1,5 +1,5 @@
 Name:       web-ui-fw
-Version:    0.1.48
+Version:    0.1.55
 Release:    0
 Summary:    Tizen Web UI Framework Library
 Group:      Development/Other
@@ -28,6 +28,7 @@ make DESTDIR=%{buildroot} install
 %post
 
 %files
+%manifest web-ui-fw.manifest
 /usr/share/tizen-web-ui-fw/*/js
 /usr/share/tizen-web-ui-fw/latest
 
@@ -45,6 +46,7 @@ Summary:    Tizen Web UI Framework Theme : tizen-black
 %Description -n web-ui-fw-theme-tizen-black
     Tizen Web UI Framework Theme : tizen-black
 %files -n web-ui-fw-theme-tizen-black
+%manifest web-ui-fw-theme-tizen-black.manifest
 /usr/share/tizen-web-ui-fw/*/themes/tizen-black
 
 ###############################
@@ -54,6 +56,7 @@ Summary:    Tizen Web UI Framework Theme : tizen-white
 %Description -n web-ui-fw-theme-tizen-white
     Tizen Web UI Framework Theme : tizen-white
 %files -n web-ui-fw-theme-tizen-white
+%manifest web-ui-fw-theme-tizen-white.manifest
 /usr/share/tizen-web-ui-fw/*/themes/tizen-white
 
 ###############################
@@ -63,6 +66,7 @@ Summary:    Tizen Web UI Framework Theme : default
 %Description -n web-ui-fw-theme-default
     Tizen Web UI Framework Theme : default
 %files -n web-ui-fw-theme-default
+%manifest web-ui-fw-theme-default.manifest
 /usr/share/tizen-web-ui-fw/*/themes/default
 
 ###############################
@@ -87,6 +91,56 @@ Summary:    Tizen Web UI Framework Demo Application: tizen winset demo
 
 ###############################
 %changelog
+* Tue Oct 09 2012 Youmin Ha <youmin.ha@samsung.com> 0.1.55
+- FIX:
+       - Fix SMACK manifest bug (S1-9098)
+
+* Fri Oct 05 2012 Minkyu Kang <mk7.kang@samsung.com> 0.1.54
+- FIX:
+       - handler: don't append a handler if handler is not enabled
+       - scrollview: use static value
+       - datetimepicker: fix date-format HH display error
+- ETC:
+       - provide jquery.min.js
+       - barlayout: codes clean
+       - remove unused file
+
+* Wed Sep 26 2012 Minkyu Kang <mk7.kang@samsung.com> 0.1.53
+- FIX:
+       - listview: change focused color
+       - multibuttonentry: code refactoring
+       - datetimepicker: modify date format when triggered date-changed event
+       - slider: fix the top of slider bar
+       - add event blocker when load a first page
+
+* Fri Sep 21 2012 Youmin Ha <youmin.ha@samsung.com> 0.1.52
+- ETC.
+       - Move SMACK manifest files to the top SRCDIR
+
+* Fri Sep 21 2012 Youmin Ha <youmin.ha@samsung.com> 0.1.51
+- FIX:
+       - Popup: Do not focus container
+       - Header: show backbutton when both tabbar and header are present together
+       - Multi button entry: text ellipsis, code refactoring
+
+* Fri Sep 21 2012 Youmin Ha <youmin.ha@samsung.com> 0.1.50
+- ETC.
+       - Apply SMACK manifest
+
+* Thu Sep 20 2012 Youmin Ha <youmin.ha@samsung.com> 0.1.49
+- FIX:
+       - JSLINT code clean-up
+       - scrollview: firefox support
+       - scrollview: fix finding slider handle
+       - list: tweak text ellipsis
+       - checkbox: fix selecting wrong label tag (N_SE-8370)
+       - imageslider: check parameter
+       - smallpopup: fix position
+       - searchbar: fix 'clear' button size
+- Spec changes:
+       - scrollview: support outer scroll
+       - JQM: block click event only with the element that does preventdefault on vclick(N_SE-6090)
+       - remove S/W IME control
 
 * Thu Sep 13 2012 Youmin Ha <youmin.ha@samsung.com> 0.1.48
 - FIX:
index 29e6c71..31d9663 100755 (executable)
@@ -57,6 +57,8 @@
 .ui-loader h1 { font-size: 32 * @unit_base; text-align: center; }
 .ui-loader .ui-icon { position: static; display: block; opacity: .9; margin: 0 auto; width: 35px; height: 35px; background-color: transparent; }
 
+.ui-blocker { width:100%; height:100%; z-index:@z_base_maximum; }
+
 /*fouc*/
 .ui-mobile-rendering > * { visibility: hidden; }
 
index 026e80b..a7f1a88 100755 (executable)
@@ -14,11 +14,10 @@ input.ui-input-text, textarea.ui-input-text {
        line-height: 1.4;\r
        font-size: 32 * @unit_base;\r
        display: block;\r
-       width: 95%;\r
 }\r
 input.ui-input-text {\r
        appearance: none;\r
-       -webkit-appearance: none; \r
+       -webkit-appearance: none;\r
 }\r
 textarea.ui-input-text {\r
        height: 50*@unit_base;\r
@@ -30,9 +29,13 @@ textarea.ui-input-text {
 }\r
 \r
 .ui-input-search {\r
-       padding: 0 0;\r
        position: relative;\r
+\r
+       padding-right : 74 * @unit_base;\r
+       padding-left : 74 * @unit_base;\r
+\r
        input.ui-input-text {\r
+               width : 100%;\r
                border: none;\r
                background: transparent none;\r
                outline: 0 !important;\r
@@ -42,9 +45,11 @@ textarea.ui-input-text {
                background: transparent none;\r
        }\r
        .ui-btn-icon-notext.ui-input-clear {\r
-               width: 38 * @unit_base;\r
-               height: 38 * @unit_base;\r
-               .ui-btn-inner { padding: 0; }\r
+               width: 70 * @unit_base;\r
+               height: 70 * @unit_base;\r
+               .ui-btn-inner {\r
+                       padding : 16 * @unit_base;\r
+               }\r
        }\r
        .ui-icon-deleteSearch {\r
                width: 38 * @unit_base;\r
@@ -56,7 +61,6 @@ textarea.ui-input-text {
                right: 0;\r
                top: 0;\r
                vertical-align: middle;\r
-               margin: 16 * @unit_base;\r
        }\r
        .ui-input-clear-hidden { display: none; }\r
 }\r
@@ -70,28 +74,33 @@ textarea.ui-input-text {
        margin: 16 * @unit_base;\r
 }\r
 \r
-/* orientation adjustments - incomplete!*/\r
-@media all and (min-width: 721*@unit_base){\r
-       label.ui-input-text  {\r
+\r
+/* code for label+inputbox : remove this code if webApp dev. controls input area */\r
+@media all and (min-width: 721*@unit_base) {\r
+       label.ui-input-text:not([data-type='search']) {\r
                vertical-align: top;\r
                display: inline-block;\r
-               margin: 0 2% 0 0\r
+               margin: 0 2% 0 0;\r
+       }\r
+       input.ui-input-text:not([data-type='search']), textarea.ui-input-text:not([data-type='search']){\r
+               width: 60%;\r
+               display: inline-block;\r
+       }\r
+       .ui-input-search input.ui-input-text:not([data-type='search']) {\r
+               width: 85%;\r
        }\r
-       input.ui-input-text,\r
-       textarea.ui-input-text,\r
-       .ui-input-search { width: 60%; display: inline-block; }\r
-       .ui-input-search input.ui-input-text { width: 85%; /*echos rule from above*/ }\r
 }\r
 \r
+\r
 /* search bar */\r
 .ui-body-s > div > .ui-field-contain > .input-search-bar,\r
 .ui-body-s > .ui-field-contain > .input-search-bar {\r
        margin : -48*@unit_base -15*@unit_base -32*@unit_base -15*@unit_base;\r
-} /* Need to confirm exact concept : Jinhyuk */\r
+} /* Need to confirm exact concept */\r
 \r
 .input-search-bar {\r
-       position : relative;  /* In case searchbar in header : Jinhyuk */\r
-       \r
+       position : relative;\r
+\r
        background-color: @color_searchbar_bg;\r
        padding: @search-bar-padding;\r
        vertical-align: middle;\r
@@ -100,19 +109,20 @@ textarea.ui-input-text {
        }\r
        .ui-input-search {\r
                font-size : 32 * @unit_base;\r
-               display: inline-block;\r
+               display : block;\r
                position: relative;\r
-               width: 70%;\r
-               padding: 0;\r
+\r
+               margin-right : 150 * @unit_base;\r
                background-color: @color_searchbar_input_field_bg;\r
                .ui-input-text {\r
                        height: 74 * @unit_base;\r
                        padding : 0px;\r
-                       margin-left : 74 * @unit_base;\r
+\r
+                       margin-right : 38 * @unit_base;\r
                }\r
        }\r
        .ui-input-search-default {\r
-               width: 70%;\r
+               margin-right : 150 * @unit_base;\r
                -webkit-transition: width 400ms linear;\r
                -moz-transition: width 400ms linear;\r
                -o-transition: width 400ms linear;\r
@@ -120,7 +130,7 @@ textarea.ui-input-text {
                transition: width 400ms linear;\r
        }\r
        .ui-input-search-wide {\r
-               width: 100%;\r
+               margin-right : 0 * @unit_base;\r
                -webkit-transition: width 400ms linear;\r
                -moz-transition: width 400ms linear;\r
                -o-transition: width 400ms linear;\r
@@ -130,27 +140,28 @@ textarea.ui-input-text {
        .ui-btn-icon-cancel {\r
                display: inline-block;\r
                position: absolute;\r
-               left: 70%;\r
+\r
+               top     : 16 * @unit_base;\r
+               right : 0 * @unit_base;\r
+               margin-right : 16 * @unit_base;\r
 \r
                vertical-align: middle;\r
-               margin-left : 10 * @unit_base;\r
-               margin-right : 10 * @unit_base;\r
                padding : 0px;\r
 \r
                height : 74 * @unit_base;\r
-               \r
+\r
                border-color : none;\r
                .ui-btn-text{\r
                        font-size : 32 * @unit_base;\r
-               }       \r
+               }\r
                .ui-btn-inner {\r
                        padding-top : 18 * @unit_base;\r
                        padding-bottom : 18 * @unit_base;\r
-               }       \r
+               }\r
        }\r
-       \r
+\r
        .ui-btn-icon-cancel.ui-input-cancel {\r
-               width: 26%;             \r
+               width : 134 * @unit_base;\r
                -webkit-transition: all 400ms linear;\r
                -moz-transition: all 400ms linear;\r
                -o-transition: all 400ms linear;\r
@@ -158,11 +169,11 @@ textarea.ui-input-text {
                transition: all 400ms linear;\r
        }\r
        .ui-btn-cancel-hide {\r
-               left: 100%;\r
+               right : -150 * @unit_base;\r
                visibility: hidden;\r
        }\r
        .ui-btn-cancel-show {\r
-               left: 70%;\r
+               right : 0px;\r
                visibility: visible;\r
        }\r
 }\r
index cd9b28d..100ce7d 100755 (executable)
                padding-right : 16 * @unit_base;
                display: block;
 
-               white-space: nowrap;    // default: 1line
+               white-space: normal;    // default: 1line
        }
 
        .ui-btn-inner a.ui-link-inherit {
-               .LESStext-ellipsis();
+               .LESStext-no-ellipsis();
        }
 
 
@@ -279,12 +279,27 @@ li.ui-li-thumbnail-right {
        }
 
        a {
-               .LESStext-ellipsis();
+               .LESStext-no-ellipsis();
                padding-right : 16 * @unit_base; /* ellipsis for normal text */
        }
 }
 
+/********************************************/
+/************  Add ellipsis *****************/
+/********************************************/
+.ui-li.ui-li-text-ellipsis {
+       .ui-btn-inner a.ui-link-inherit {
+               .LESStext-ellipsis();
+       }
+
+       a {
+               .LESStext-ellipsis();
+       }
 
+       &.ui-li-static {
+               .LESStext-ellipsis();
+       }
+}
 /********************************************/
 /*************** Divider ********************/
 /********************************************/
@@ -394,7 +409,7 @@ li.ui-li-thumbnail-right {
 
 .ui-li.ui-li-has-right-btn {
        .ui-btn-inner a {
-               padding-right : 256 * @unit_base;
+               padding-right : 158 * @unit_base;
        }
 }
 
@@ -408,7 +423,7 @@ li.ui-li-thumbnail-right {
 }
 
 .ui-li.ui-li-static.ui-li-has-right-btn {
-       padding-right : 256 * @unit_base;
+       padding-right : 158 * @unit_base;
 }
 
 .ui-li.ui-li-static.ui-li-thumbnail-right {
@@ -518,6 +533,20 @@ li:not(.ui-li-has-multiline) .ui-li-text-sub {
        .LESStext-ellipsis();
 }
 
+.ui-li-has-multiline.ui-li-has-right-btn {
+       .ui-btn-inner a {
+               .ui-li-text-sub {
+                       width : 74%;
+               }
+       }
+}
+
+.ui-li-has-multiline.ui-li-static.ui-li-has-right-btn {
+       .ui-li-text-sub {
+               width : 74%;
+       }
+}
+
 .ui-li-icon-sub-right,
 .ui-li-icon-sub {
        position: absolute;
index ea8cb4f..1dd9067 100755 (executable)
        }
        /* listview: fonts for li with a link */
        li.ui-btn-up-s > .ui-li > .ui-btn-text > a.ui-link-inherit,
-       li.ui-btn-hover-s > .ui-li > .ui-btn-text > a.ui-link-inherit,
+       li.ui-btn-hover-s > .ui-li > .ui-btn-text > a.ui-link-inherit {
+               color:          @color_list_main_text_unfocus;
+       }
+
        li.ui-btn-down-s > .ui-li > .ui-btn-text > a.ui-link-inherit {
-               color:          @color_text;
+               color:          @color_list_main_text_focus;
        }
        /* listview divider */
        /* NOTE: this divider has no swatch tag! */
index b90ecd8..697d12b 100755 (executable)
        position: relative;
 }
 
+.ui-datetime-text-main.ui-datetime-nosubtitle {
+       top : 0px;
+}
+
 .ui-datetime-text-sub {
        position: absolute;
        top: 10 * @unit_base;
old mode 100644 (file)
new mode 100755 (executable)
index 11d203e..f76e8c8
        white-space: nowrap;
        text-overflow: ellipsis;
        -o-text-overflow: ellipsis;
-       overflow-x: hidden !important;
+       overflow: hidden !important;
 }
+
+.LESStext-no-ellipsis() {
+       white-space: normal;
+       overflow: visible !important;
+}
\ No newline at end of file
index ef339b7..70f0611 100755 (executable)
@@ -52,6 +52,9 @@
        border-radius : 1.5em;\r
        .LESSbox-shadow(0, .1em, .1em, rgba(0,0,0,.2));\r
        color : @color_multibuttonentry_block_text;\r
+       overflow : hidden;\r
+       text-overflow : ellipsis;\r
+       white-space : nowrap;\r
 }\r
 \r
 a.ui-multibuttonentry-link-base {\r
index ad11f6f..24895cf 100644 (file)
 
 /* smallpopup */
 
-@smallpopup-height: 48 * @unit_base;
-
 @-webkit-keyframes ui-smallpopup-show {
        from {
                opacity: 0;
                -webkit-transform: scaleY(1);
        } to {
                opacity: 0;
-               height: 0;
                left: 0;
                -webkit-transform: scaleY(0);
        }
        z-index: @z_base_smallpopup;
        background: @color_smallpopup_bg;
        vertical-align: middle;
+       word-break: break-all;
 }
 
 .ui-smallpopup.fix {
index cdf7f8e..53741f7 100644 (file)
@@ -28,15 +28,15 @@ select.ui-slider-switch {
 }
 
 .ui-slider-icon-bg {
-       margin-left: 96 * @unit_base;
-       margin-right: 96 * @unit_base;
+       margin-left: 112 * @unit_base;
+       margin-right: 112 * @unit_base;
 }
 
 .ui-slider-left-volume,
 .ui-slider-left-bright {
        position: absolute;
        top: -0.2em;
-       left: -96 * @unit_base;
+       left: -112 * @unit_base;
        height: @img-height;
        width: @img-width;
        vertical-align: middle;
@@ -53,7 +53,7 @@ select.ui-slider-switch {
 .ui-slider-right-bright {
        position: absolute;
        top: -0.2em;
-       right: -96 * @unit_base;
+       right: -112 * @unit_base;
        height: @img-height;
        width: @img-width;
        vertical-align: middle;
@@ -69,7 +69,7 @@ select.ui-slider-switch {
 .ui-slider-left-text {
        position: absolute;
        top: -0.2em;
-       left: -96 * @unit_base;
+       left: -112 * @unit_base;
        height: 80 * @unit_base;
        width: 80 * @unit_base;
        text-align: center;
@@ -79,7 +79,7 @@ select.ui-slider-switch {
 .ui-slider-right-text {
        position: absolute;
        top: -0.2em;
-       right: -96 * @unit_base;
+       right: -112 * @unit_base;
        height: 80 * @unit_base;
        width: 80 * @unit_base;
        text-align: center;
@@ -130,8 +130,8 @@ a.ui-slider-handle {
 }
 
 .ui-slider-bar {
-       position: absolute;
-       top: 0.75em;
+       position: relative;
+       top: -0.85em;
        height: 16 * @unit_base;
        width: 0;
        background-image: url(images/00_winset_list_progress_bar.png);
index 9774079..982adee 100755 (executable)
 /***************************************************************************
                    List 
 ***************************************************************************/
+@color_list_main_text_focus:           rgba(249, 249, 249, 1);
+@color_list_main_text_unfocus:         rgba(249, 249, 249, 1);
+
 @color_list_border_bottom:             rgb(68, 68, 68);
 @color_list_main_text_read:            rgba(158, 158, 158, 1);
 @color_list_main_text_unread:  rgba(249, 249, 249, 1);
-@color_list_main_text_focus:           rgba(249, 249, 249, 1);
 @color_list_sub_text_default:          rgba(100, 100, 100, 1);
 @color_list_sub_text_settings: rgba(0, 140, 210, 1);
 @color_list_sub_text_focus:            rgba(249, 249, 249, 1);
index 4c05509..f1b79ad 100755 (executable)
 /***************************************************************************
                    List 
 ***************************************************************************/
+@color_list_main_text_focus:           rgba(249, 249, 249, 1);
+@color_list_main_text_unfocus:         rgba(0, 0, 0, 1);
+
 @color_list_border_bottom:             rgb(169, 169, 169);
 @color_list_main_text_read:            rgba(158, 158, 158, 1);
 @color_list_main_text_unread:  rgba(249, 249, 249, 1);
-@color_list_main_text_focus:           rgba(249, 249, 249, 1);
 @color_list_sub_text_default:          rgba(100, 100, 100, 1);
 @color_list_sub_text_settings: rgba(0, 140, 210, 1);
 @color_list_sub_text_focus:            rgba(249, 249, 249, 1);
index 52709db..79606b8 100755 (executable)
@@ -1,45 +1,42 @@
-(function( $, undefined ) {
+( function ( $, undefined ) {
 
        $.widget( "mobile.barlayout", $.mobile.widget, {
                options: {
                        addBackBtn: false ,
                        backBtnText: "Back",
-
                        initSelector: ":jqmData(role='header'), :jqmData(role='footer')"
-                       },
-               _create: function() {
+               },
+               _create: function () {
                        var self = this;
-
                        /* this call api will be moved to jquery.mobile.page.section.js patch */
                        /* call _generateFooter in header(just 1 time in first step) because to calculate another layout width footer/header */
                        /* skip below step to attach bind/addclass only 1 time */
                        self._generateFooter();
                        self._addBackbutton();
                        self._disableSelection();
-                       self._disableContext();
                },
 
                /* Make dummy footer
                *  because minimum fixed bar needs to attach back button
                *  check footer exist on current page, then check footer-Exist option check */
-               _generateFooter: function(){
+               _generateFooter: function () {
                        var self = this,
                                $el = self.element,
                                $elPage = $el.closest( ".ui-page" ),
                                dummyFooter;
 
-                               if ( $elPage.children(":jqmData(role='footer')").length == 0 && $elPage.data().page.options.footerExist != false ) {
-                                       dummyFooter = $( "<div data-role='footer' class='ui-footer ui-bar-s ui-footer-fixed fade ui-fixed-overlay' data-position='fixed'></div>" )
-                                               .insertAfter( $elPage.find( ".ui-content" ) );
+                       if ( $elPage.children(":jqmData(role='footer')").length == 0 && $elPage.data().page.options.footerExist != false ) {
+                               dummyFooter = $( "<div data-role='footer' class='ui-footer ui-bar-s ui-footer-fixed fade ui-fixed-overlay' data-position='fixed'></div>" )
+                                       .insertAfter( $elPage.find( ".ui-content" ) );
                        }
                },
 
-               _addBackbutton: function( target, status ) {
+               _addBackbutton: function ( target, status ) {
                        // need to add parameter target wherels this requert occurs header/footer
                        var self = this,
                                $el = self.element,
-                               $elHeader = $( this.element ).jqmData( "role" )=="header" ? self.element : $el.siblings( ":jqmData(role='header')" ),
-                               $elFooter = $( this.element ).jqmData( "role" )=="footer" ? self.element : $el.siblings( ":jqmData(role='footer')" ),
+                               $elHeader = $el.jqmData( "role" ) === "header" ? $el : $el.siblings( ":jqmData(role='header')" ),
+                               $elFooter = $el.jqmData( "role" ) === "footer" ? $el : $el.siblings( ":jqmData(role='footer')" ),
                                $elPage = $el.closest( ".ui-page" ),
                                backBtn,
                                attachElement = $elFooter,
                                * 2. footer does not exist and addBackBtn is set to "footer"
                                * 3. user define data-add-Back-Btn = "false"
                                */
-                               if ( status != "external" ) {
-                                       if ( $elFooter.children( ":jqmData(role='controlbar')" ).jqmData( "style" ) == "tabbar" || $elPage.data().page.options.addBackBtn == "none" || ( $elPage.data().page.options.addBackBtn == "footer" && $elPage.data().page.options.footerExist == false )  ) {
-                                               return true;
-                                       }
+                       if ( status != "external" ) {
+                               if ( ( $elFooter.children( ":jqmData(role='controlbar')" ).jqmData( "style" ) == "tabbar" && $elPage.jqmData( "addBackBtn" ) != "header" )
+                                               || $elPage.data().page.options.addBackBtn == "none" || ( $elPage.data().page.options.addBackBtn == "footer" && $elPage.data().page.options.footerExist == false )  ) {
+                                       return true;
                                }
+                       }
 
-                               $elPage.data().page.options.addBackBtn == "header"?     attachElement = $elHeader : attachElement = $elFooter;
-
-                               backBtn = $( "<a href='#' class='ui-btn-back' data-"+ $.mobile.ns +"rel='back'></a>" )
-                                               .buttonMarkup( {icon: "header-back-btn", theme : "s"} );
-
-                               if ( status == "external" ) {
-                                       if ( $el.is(".ui-page") ) {
-                                               $elHeader = $el.find( ":jqmData(role='header')" );
-                                               $elFooter = $el.find( ":jqmData(role='footer')" );
-                                               target == "header" ? attachElement = $elHeader : attachElement = $elFooter;
-                                       } else {
-                                               attachElement = $el;
-                                       }
-                                       if ( attachElement.find(".ui-btn-back").length == 0 ) {
-                                               backBtn.prependTo( attachElement );
-                                       }
+                       attachElement = ( $elPage.data().page.options.addBackBtn === "header" ) ? $elHeader : $elFooter;
+
+                       backBtn = $( "<a href='#' class='ui-btn-back' data-" + $.mobile.ns + "rel='back'></a>" )
+                                       .buttonMarkup( {icon: "header-back-btn", theme : "s"} );
+
+                       if ( status == "external" ) {
+                               if ( $el.is(".ui-page") ) {
+                                       $elHeader = $el.find( ":jqmData(role='header')" );
+                                       $elFooter = $el.find( ":jqmData(role='footer')" );
+                                       attachElement = ( target === "header" ) ? $elHeader : $elFooter;
+                               } else {
+                                       attachElement = $el;
                                }
+                               if ( attachElement.find(".ui-btn-back").length == 0 ) {
+                                       backBtn.prependTo( attachElement );
+                               }
+                       }
 
-                               if ( $elPage.jqmData( "url" ) !== $.mobile.path.stripHash( location.hash ) ) {
-                                       if ( attachElement.find(".ui-btn-back").length == 0) {
-                                               backBtn.prependTo( attachElement );
-                                       }
+                       if ( $elPage.jqmData( "url" ) !== $.mobile.path.stripHash( location.hash ) ) {
+                               if ( attachElement.find(".ui-btn-back").length == 0) {
+                                       backBtn.prependTo( attachElement );
                                }
+                       }
 
-/* jQM 1.1.0 do not need this code
-* navigation.js control whote back button  */
-/*                             backBtn.bind( "vclick", function( event ) {
+                               /* jQM 1.1.0 does not need this code.
+                                  navigation.js control whole back buttons. */
+                               /*
+                               backBtn.bind( "vclick", function( event ) {
                                        window.history.back();
-                               });*/
+                               });
+                               */
                },
 
-               _disableSelection : function() {
+               _disableSelection : function () {
                        var self = this,
-                                $el = self.element,
-                                $elHeader = $( this.element ).jqmData( "role" )=="header" ? self.element : $el.siblings( ":jqmData(role='header')" ),
-                               $elFooter = $( this.element ).jqmData( "role" )=="footer" ? self.element : $el.siblings( ":jqmData(role='footer')" );
+                               $el = self.element,
+                               $elHeader = $el.jqmData( "role" ) === "header" ? $el : $el.siblings( ":jqmData(role='header')" ),
+                               $elFooter = $el.jqmData( "role" ) === "footer" ? $el : $el.siblings( ":jqmData(role='footer')" );
 
+                       // disable selection
                        $.mobile.tizen.disableSelection( $elHeader );
                        $.mobile.tizen.disableSelection( $elFooter );
-               },
-
-               _disableContext : function() {
-                       var self = this,
-                               $el = self.element,
-                               $elHeader = $( this.element ).jqmData( "role" )=="header" ? self.element : $el.siblings( ":jqmData(role='header')" ),
-                               $elFooter = $( this.element ).jqmData( "role" )=="footer" ? self.element : $el.siblings( ":jqmData(role='footer')" );
 
+                       // disable context menu
                        $.mobile.tizen.disableContextMenu( $elHeader );
                        $.mobile.tizen.disableContextMenu( $elFooter );
                },
 
-               addBackBtn : function(target) {
+               addBackBtn : function ( target ) {
                        this._addBackbutton( target, "external" );
                },
 
 
-               show: function(){
+               show: function () {
                        var self = $( this.element );
                        self.show();
                        self.siblings( ".ui-content" ).pagelayout( "updatePageLayout" );
                },
 
-               hide: function(){
+               hide: function () {
                        var self = $( this.element );
                        self.hide();
                        self.siblings( ".ui-content" ).pagelayout( "updatePageLayout" );
                },
 
        });
-       $( document ).bind("pagecreate", function( e ){
+       $( document ).bind("pagecreate", function ( e ) {
                $.mobile.barlayout.prototype.enhanceWithin( e.target );
        });
 })( jQuery );
index 3296cdf..4f5dfa0 100755 (executable)
@@ -35,6 +35,8 @@
        function setElementTransform( $ele, x, y ) {
                var v = "translate3d( " + x + "," + y + ", 0px)";
                $ele.css({
+                       "-ms-transform": v,
+                       "-o-transform": v,
                        "-moz-transform": v,
                        "-webkit-transform": v,
                        "transform": v
diff --git a/src/widgets/common/js/jquery.mobile.panning-page.js b/src/widgets/common/js/jquery.mobile.panning-page.js
deleted file mode 100644 (file)
index 336ee74..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Size pages to the window
- *
- * This software is licensed under the MIT licence (as defined by the OSI at
- * http://www.opensource.org/licenses/mit-license.php)
- * 
- * ***************************************************************************
- * Copyright (C) 2011 by Intel Corporation Ltd.
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- * ***************************************************************************
- */
-
-// Size pages to the window
-
-(function($, undefined) {
-
-var _fit_page_to_window_selector = ":jqmData(role='page'):jqmData(fit-page-to-window='true'):visible";
-
-$(document).bind("pageshow", function(e) {
-    if ($(e.target).is(_fit_page_to_window_selector))
-        $.mobile.tizen.fillPageWithContentArea($(e.target));
-});
-
-$(window).resize(function() {
-    if ($(_fit_page_to_window_selector)[0] !== undefined)
-        $.mobile.tizen.fillPageWithContentArea($(_fit_page_to_window_selector));
-});
-
-})(jQuery);
index c23f701..6248857 100644 (file)
@@ -35,166 +35,6 @@ ensureNS("jQuery.mobile.tizen");
 
 (function () {
 jQuery.extend(jQuery.mobile.tizen, {
-    Point: function (x, y) {
-        var X = isNaN(x) ? 0 : x;
-        var Y = isNaN(y) ? 0 : y;
-
-        this.add = function (Point) {
-            this.setX(X + Point.x());
-            this.setY(Y + Point.y());
-            return this;
-        }
-
-        this.subtract = function (Point) {
-            this.setX(X - Point.x());
-            this.setY(Y - Point.y());
-            return this;
-        }
-
-        this.multiply = function (Point) {
-            this.setX(Math.round(X * Point.x()));
-            this.setY(Math.round(Y * Point.y()));
-            return this;
-        }
-
-        this.divide = function (Point) {
-            this.setX(Math.round(X / Point.x()));
-            this.setY(Math.round(Y / Point.y()));
-            return this;
-        }
-
-        this.isNull = function () {
-            return (X === 0 && Y === 0);
-        }
-
-        this.x = function () {
-            return X;
-        }
-
-        this.setX = function (val) {
-            isNaN(val) ? X = 0 : X = val;
-        }
-
-        this.y = function () {
-            return Y;
-        }
-
-        this.setY = function (val) {
-            isNaN(val) ? Y = 0 : Y = val;
-        }
-
-        this.setNewPoint = function (point) {
-            this.setX(point.x());
-            this.setY(point.y());
-        }
-
-        this.isEqualTo = function (point) {
-            return (X === point.x() && Y === point.y());
-        }
-    },
-
-    Rect: function (left,top,width,height) {
-        var Left = left;
-        var Top = top;
-        var Right = Left+width;
-        var Bottom = Top+height;
-
-        this.setRect = function(varL,varR,varT,varB) {
-            this.setLeft(varL);
-            this.setRight(varR);
-            this.setTop(varT);
-            this.setBottom(varB);
-        }
-
-        this.right = function () {
-            return Right;
-        }
-
-        this.setRight = function (val) {
-            Right = val;
-        }
-
-        this.top = function () {
-            return Top;
-        }
-
-        this.setTop = function (val) {
-            Top = val;
-        }
-
-        this.bottom = function () {
-            return Bottom;
-        }
-
-        this.setBottom = function (val) {
-            Bottom = val;
-        }
-
-        this.left = function () {
-            return Left;
-        }
-
-        this.setLeft = function (val) {
-            Left = val;
-        }
-
-        this.moveTop = function(valY) {
-            var h = this.height();
-            Top = valY;
-            Bottom = Top + h;
-        }
-
-        this.isNull = function () {
-            return Right === Left && Bottom === Top;
-        }
-
-        this.isValid = function () {
-            return Left <= Right && Top <= Bottom;
-        }
-
-        this.isEmpty = function () {
-            return Left > Right || Top > Bottom;
-        }
-
-        this.contains = function (valX,valY) {
-            if (this.containsX(valX) && this.containsY(valY))
-                return true;
-            return false;
-        }
-
-        this.width = function () {
-            return Right - Left;
-        }
-
-        this.height = function () {
-            return Bottom - Top;
-        }
-
-        this.containsX = function(val) {
-            var l = Left,
-            r = Right;
-            if (Right<Left) {
-                l = Right;
-                r = Left;
-            }
-            if (l > val || r < val)
-                return false;
-        return true;
-        }
-
-        this.containsY = function(val) {
-            var t = Top,
-            b = Bottom;
-            if (Bottom<Top) {
-                t = Bottom;
-                b = Top;
-            }
-            if (t > val || b < val)
-                return false;
-          return true;
-        }
-    },
-
     disableSelection: function (element) {
        var self = this;
        return self.enableSelection( element, 'none' );
@@ -237,20 +77,6 @@ jQuery.extend(jQuery.mobile.tizen, {
        } );
     },
 
-    // Set the height of the content area to fill the space between a
-    // page's header and footer
-    fillPageWithContentArea: function (page) {
-        var $page = $(page);
-        var $content = $page.children(".ui-content:first");
-        var hh = $page.children(".ui-header").outerHeight(); hh = hh ? hh : 0;
-        var fh = $page.children(".ui-footer").outerHeight(); fh = fh ? fh : 0;
-        var pt = parseFloat($content.css("padding-top"));
-        var pb = parseFloat($content.css("padding-bottom"));
-        var wh = window.innerHeight;
-        var height = wh - (hh + fh) - (pt + pb);
-        $content.height(height);
-    },
-
     // Get document-relative mouse coordinates from a given event
     // From: http://www.quirksmode.org/js/events_properties.html#position
     documentRelativeCoordsFromEvent: function(ev) {
diff --git a/src/widgets/common/js/jquery.mobile.tizen.jlayoutadaptor.js b/src/widgets/common/js/jquery.mobile.tizen.jlayoutadaptor.js
deleted file mode 100644 (file)
index 4ca6cf1..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- *
- * This software is licensed under the MIT licence (as defined by the OSI at
- * http://www.opensource.org/licenses/mit-license.php)
- * 
- * ***************************************************************************
- * Copyright (C) 2011 by Intel Corporation Ltd.
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- * ***************************************************************************
- */
-
-// Wrapper round the jLayout functions to enable it to be used
-// for creating jQuery Mobile layout extensions.
-//
-// See the layouthbox and layoutvbox widgets for usage examples.
-(function ($, undefined) {
-
-$.widget("tizen.jlayoutadaptor", $.mobile.widget, {
-    options: {
-        hgap: null,
-        vgap: null,
-        scrollable: true,
-        showScrollBars: true,
-        direction: null
-    },
-
-    _create: function () {
-        var self = this,
-            options = this.element.data('layout-options'),
-            page = $(this.element).closest(':jqmData(role="page")');
-
-        $.extend(this.options, options);
-
-        if (page && !page.is(':visible')) {
-            this.element.hide();
-
-            page.bind('pageshow', function () {
-                self.refresh();
-            });
-        }
-        else {
-            this.refresh();
-        }
-    },
-
-    refresh: function () {
-        var container;
-        var config = $.extend(this.options, this.fixed);
-
-        if (config.scrollable) {
-            if (!(this.element.children().is('.ui-scrollview-view'))) {
-                // create the scrollview
-                this.element.scrollview({direction: config.direction,
-                                         showScrollBars: config.showScrollBars});
-            }
-            else if (config.showScrollBars) {
-                this.element.find('.ui-scrollbar').show();
-            }
-            else {
-                this.element.find('.ui-scrollbar').hide();
-            }
-
-            container = this.element.find('.ui-scrollview-view');
-        }
-        else {
-            container = this.element;
-        }
-
-        container.layout(config);
-
-        this.element.show();
-
-        if (config.scrollable) {
-            // get the right/bottom edge of the last child after layout
-            var lastItem = container.children().last();
-
-            var edge;
-
-            var scrollview = this.element.find('.ui-scrollview-view');
-
-            if (config.direction === 'x') {
-                edge = lastItem.position().left +
-                       lastItem.outerWidth(true);
-
-                // set the scrollview's view width to the original width
-                scrollview.width(edge);
-
-                // set the parent container's height to the height of
-                // the scrollview
-                this.element.height(scrollview.height());
-            }
-            else if (config.direction === 'y') {
-                edge = lastItem.position().top +
-                       lastItem.outerHeight(true);
-
-                // set the scrollview's view height to the original height
-                scrollview.height(edge);
-
-                // set the parent container's width to the width of the
-                // scrollview
-                this.element.width(scrollview.width());
-            }
-        }
-    }
-});
-
-})(jQuery);
index ffcc2a3..2a023e7 100644 (file)
@@ -59,7 +59,7 @@
 
                        showScrollBars:    true,
                        overshootEnable:   false,
-                       outerScrollEnable: false,
+                       outerScrollEnable: true,
                        scrollJump:        false,
                },
 
@@ -95,6 +95,7 @@
 
                        this._view_offset = this._$view.offset().top - this._$clip.offset().top;
                        this._view_height = this._getViewHeight();
+                       this._clip_height = this._$clip.height();
 
                        this._sx = 0;
                        this._sy = 0;
                        }
 
                        if ( vt ) {
-                               c = this._$clip.height();
-                               v = this._getViewHeight();
+                               c = this._clip_height;
+                               v = this._view_height;
 
                                vt.start( this._sy, speedY,
                                        duration, (v > c) ? -(v - c) : 0, 0 );
                        var keepGoing = false,
                                x = 0,
                                y = 0,
+                               scroll_height = 0,
                                vt = this._vTracker,
                                ht = this._hTracker;
 
                                vt.update( this.options.overshootEnable );
                                y = vt.getPosition();
                                keepGoing = !vt.done();
+
+                               if ( vt.getRemained() > this.options.overshootDuration ) {
+                                       scroll_height = this._view_height - this._clip_height;
+
+                                       if ( vt.isMin() ) {
+                                               this._outerScroll( y - vt.getRemained() / 3, scroll_height );
+                                       } else if ( vt.isMax() ) {
+                                               this._outerScroll( vt.getRemained() / 3, scroll_height );
+                                       }
+                               }
                        }
 
                        if ( ht ) {
                        }
 
                        if ( dirLock !== "x" && this._vTracker ) {
-                               scroll_height = this._getViewHeight() - $c.height();
-
-                               this._outerScroll( y, scroll_height );
+                               scroll_height = this._view_height - this._clip_height;
 
-                               if ( y >= 0 ) {
+                               if ( y > 0 ) {
                                        this._sy = 0;
                                } else if ( y < -scroll_height ) {
                                        this._sy = -scroll_height;
 
                                if ( sm === "translate" ) {
                                        this._setElementTransform( $sbt, "0px",
-                                               -y / this._getViewHeight() * $sbt.parent().height() + "px",
+                                               -y / this._view_height * $sbt.parent().height() + "px",
                                                duration );
                                } else {
-                                       $sbt.css( "top", -y / this._getViewHeight() * 100 + "%" );
+                                       $sbt.css( "top", -y / this._view_height * 100 + "%" );
                                }
                        }
 
 
                _outerScroll: function ( y, scroll_height ) {
                        var self = this,
-                               top = $( window ).scrollTop(),
+                               top = $( window ).scrollTop() - window.screenTop,
                                sy = 0,
                                duration = this.options.snapbackDuration,
                                start = getCurrentTime(),
                                return;
                        }
 
-                       if ( !this._dragging ) {
-                               return;
-                       }
-
                        if ( scroll_height < 0 ) {
                                return;
                        }
                                return;
                        }
 
-                       sy *= 10;
-
                        tfunc = function () {
                                var elapsed = getCurrentTime() - start;
 
                                if ( elapsed >= duration ) {
                                        window.scrollTo( 0, top + sy );
                                        self._outerScrolling = undefined;
+
+                                       self._stopMScroll();
                                } else {
-                                       ec = $.easing.easeOutQuad( elapsed / duration, elapsed, 0, 1, duration );
+                                       ec = $.easing.easeOutQuad( elapsed / duration,
+                                                       elapsed, 0, 1, duration );
 
                                        window.scrollTo( 0, top + ( sy * ec ) );
                                        self._outerScrolling = setTimeout( tfunc, self._timerInterval );
                                }
                        };
                        this._outerScrolling = setTimeout( tfunc, self._timerInterval );
-
-                       /* skip the srollview dragging */
-                       this._skip_dragging = true;
                },
 
                _scrollTo: function ( x, y, duration ) {
                                        target.is( '.ui-btn-inner .ui-icon' );
 
                        if ( this._is_button ) {
-                               if ( target.parents('.ui-slider-handle') ) {
+                               if ( target.parents('.ui-slider-handle').length ) {
                                        this._skip_dragging = true;
                                        return;
                                }
 
                        if ( this._is_inputbox ) {
                                target.one( "resize.scrollview", function () {
-                                       if ( ey > $c.height() ) {
-                                               self.scrollTo( -ex, self._sy - ey + $c.height(),
+                                       if ( ey > self._clip_height ) {
+                                               self.scrollTo( -ex, self._sy - ey + self._clip_height,
                                                        self.options.snapbackDuration );
                                        }
                                });
                        }
 
+                       if ( this.options.eventType === "mouse" && !this._is_inputbox && !this._is_button ) {
+                               e.preventDefault();
+                       }
+
                        this._lastX = ex;
                        this._lastY = ey;
                        this._startY = ey;
                        $c.bind( "updatelayout", function ( e ) {
                                var sy,
                                        vh,
+                                       clip_h = $c.height(),
                                        view_h = self._getViewHeight();
 
-                               if ( !$c.height() || !view_h ) {
+                               if ( !clip_h || !view_h ) {
                                        self.scrollTo( 0, 0, 0 );
                                        return;
                                }
 
-                               sy = $c.height() - view_h;
+                               sy = clip_h - view_h;
                                vh = view_h - self._view_height;
 
                                self._view_height = view_h;
+                               self._clip_height = clip_h;
 
-                               if ( vh == 0 || vh > $c.height() / 2 ) {
+                               if ( vh == 0 || vh > clip_h / 2 ) {
                                        return;
                                }
 
 
                        $( window ).bind( "resize", function ( e ) {
                                var focused,
+                                       clip_h = $c.height(),
                                        view_h = self._getViewHeight();
 
                                if ( $(".ui-page-active").get(0) !== $c.closest(".ui-page").get(0) ) {
                                        return;
                                }
 
-                               if ( !$c.height() || !view_h ) {
+                               if ( !clip_h || !view_h ) {
                                        return;
                                }
 
 
                                /* calibration - after triggered throttledresize */
                                setTimeout( function () {
-                                       if ( self._sy < $c.height() - self._getViewHeight() ) {
+                                       self._view_height = self._getViewHeight();
+                                       self._clip_height = $c.height();
+
+                                       if ( self._sy < self._clip_height - self._veiw_height ) {
                                                self.scrollTo( 0, self._sy,
                                                        self.options.snapbackDuration );
                                        }
                                }, 260 );
 
                                self._view_height = view_h;
+                               self._clip_height = clip_h;
                        });
 
                        $c.closest(".ui-page")
                                .one( "pageshow", function ( e ) {
                                        self._view_offset = self._$view.offset().top - self._$clip.offset().top;
-                                       self._view_height = self._getViewHeight();
                                })
                                .bind( "pageshow", function ( e ) {
                                        /* should be called after pagelayout */
                                        setTimeout( function () {
+                                               self._view_height = self._getViewHeight();
+                                               self._clip_height = self._$clip.height();
+
                                                self._set_scrollbar_size();
                                                self._setScrollPosition( self._sx, self._sy );
                                                self._showScrollBars( 2000 );
                        }
 
                        if ( this._vTracker ) {
-                               ch = $c.height();
-                               vh = this._getViewHeight();
+                               ch = this._clip_height;
+                               vh = this._view_height;
                                this._maxY = ch - vh;
 
                                if ( this._maxY > 0 ) {
                        this.minPos = 0;
                        this.maxPos = 0;
                        this.duration = 0;
+                       this.remained = 0;
                },
 
                update: function ( overshootEnable ) {
 
                        elapsed = elapsed > duration ? duration : elapsed;
 
+                       this.remained = duration - elapsed;
+
                        if ( state === tstates.scrolling || state === tstates.overshot ) {
                                dx = this.speed *
                                        ( 1 - $.easing[this.easing]( elapsed / duration,
                                this.pos = x;
 
                                if ( state === tstates.overshot ) {
+                                       if ( !overshootEnable ) {
+                                               this.state = tstates.done;
+                                       }
                                        if ( elapsed >= duration ) {
                                                this.state = tstates.snapback;
                                                this.fromPos = this.pos;
                        return this.state === tstates.done;
                },
 
+               isMin: function () {
+                       return this.pos === this.minPos;
+               },
+
+               isMax: function () {
+                       return this.pos === this.maxPos;
+               },
+
+               getRemained: function () {
+                       return this.remained;
+               },
+
                getPosition: function () {
                        return this.pos;
                }
index de5e3c9..41c89f1 100755 (executable)
                        var $controlbar = this.element;
 
                        $( window ).bind( "orientationchange", function ( e, ui ) {
-                               ww = window.innerWidth || $( window ).width();
-                               wh = window.innerHeight || $( window ).height();
-
-                               isLandscape = ww > wh && ( ww - wh );
+                               var ww = window.innerWidth || $( window ).width(),
+                                       wh = window.innerHeight || $( window ).height(),
+                                       isLandscape = ww > wh && ( ww - wh );
 
                                if ( isLandscape ) {
                                        $controlbar.removeClass( "ui-portrait-controlbar" ).addClass( "ui-landscape-controlbar" );
                                } else {
                                        $controlbar.removeClass( "ui-landscape-controlbar" ).addClass( "ui-portrait-controlbar" );
                                }
-                       })
+                       });
 
                },
 
index adeecc8..b97e649 100644 (file)
 
                        this.options.date = newdate;
 
-                       this._setValue( this.value() );
+                       this._setValue( newdate );
 
                        this.element.attr( "data-" + ( $.mobile.ns ? $.mobile.ns + "-" : "" ) + "date", this.options.date );
                        return this.options.date;
 
                        switch ( field ) {
                        case 'hour':
-                               if ( pat == 'H' ) {
+                               if ( pat == 'H' || pat == 'HH' ) {
                                        // twentyfour
                                        values = range( 0, 23 );
                                        data = range( 0, 23 );
                                $div.jqmData( "list", $li );
                                $div.circularview();
                                // cause ctxpopup forced to subtract 10
-                               if( $(window).width() / 2 < target.offset().left ) {
+                               if ( $( window ).width() / 2 < target.offset().left ) {
                                        newLeft = -10;
                                }
                                $ctx.popupwindow( 'open',
                                $div.bind( 'scrollend' , function ( e ) {
                                        if ( !obj._reflow ) {
                                                obj._reflow = function () {
-                                                               $div.circularview("reflow");
-                                                       };
+                                                       $div.circularview("reflow");
+                                               };
                                                $(window).bind("resize", obj._reflow);
                                        }
                                });
index 28f30d8..74f42d8 100755 (executable)
 
                recreate: function ( newArray ) {
                        this._create( {
-                               itemData: function ( idx ) { return newArray[ idx ] },
+                               itemData: function ( idx ) { return newArray[ idx ]; },
                                numItemData: newArray.length
                        } );
                },
                _create: function ( args ) {
                        var t = this,
                                o = this.options,
-                               $el = this.element;
+                               $el = this.element,
+                               dbtable_name;
 
 
                        t.destroy();
                                console.warn("WARNING: The data interface of extendable list is changed. \nOld data interface(data-dbtable) is still supported, but will be removed in next version. \nPlease fix your code soon!");
 
                                if ( $( o.id ).hasClass( "elLoadSuccess" ) ) {
-                                       var dbtable_name = $el.jqmData('dbtable');
+                                       dbtable_name = $el.jqmData('dbtable');
                                        o.dbtable = window[ dbtable_name ];
-                                       if( !(o.dbtable) ) {
+                                       if ( !(o.dbtable) ) {
                                                o.dbtable = { };
                                        }
                                        t._itemData = function ( idx ) {
 
 
                destroy : function () {
-                       var o = this.options;
+                       var o = this.options,
+                               eOTAL_ITEMS = 0,
+                               last_index = 0;
 
                        $( o.id ).empty();
 
-                       eOTAL_ITEMS = 0;
-                       last_index = 0;
-
                        $( "#load_more_message" ).die();
                },
 
index fc93e9a..debc3fe 100755 (executable)
                        return;
                }
 
+               if ( $( this ).jqmData("handler") !== true ) {
+                       return;
+               }
+
                var self = this,
                        $this = $( this ),
                        scrollview = $this.data( "scrollview" ),
index b35f8ba..fc42b02 100755 (executable)
                        var img = this.images[index],
                                img_top = 0;
 
+                       if ( !obj) {
+                               return;
+                       }
                        if ( !obj.length ) {
                                return;
                        }
                                        self._align( index, obj );
                                };
 
+                       if ( !obj) {
+                               return;
+                       }
                        if ( !obj.length ) {
                                return;
                        }
                },
 
                _detach: function ( index, obj ) {
+                       if ( !obj) {
+                               return;
+                       }
                        if ( !obj.length ) {
                                return;
                        }
diff --git a/src/widgets/layout-box/js/layout-box.js b/src/widgets/layout-box/js/layout-box.js
deleted file mode 100755 (executable)
index 5eb6065..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * jQuery Mobile Widget @VERSION
- *
- * This software is licensed under the MIT licence (as defined by the OSI at
- * http://www.opensource.org/licenses/mit-license.php)
- * 
- * ***************************************************************************
- * Copyright (C) 2011 by Intel Corporation Ltd.
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- * ***************************************************************************
- *
- * Authors: Elliot Smith <elliot.smith@intel.com>
- */
-
-// Horizontal/vertical box layout extension.
-//
-// This will arrange the child elements of a container in a horizontal
-// or vertical row. This only makes sense if your container is a div
-// and contains children which are also divs; the children should
-// also have a height and width set in CSS, otherwise the layout
-// manager won't know what to do with them.
-//
-// Apply it by setting data-layout="hbox" or data-layout="vbox" (vertical
-// on a container element or calling $(element).layouthbox() or
-// $(element).layoutvbox().
-//
-// Usually, you would use a div as the container to get the right effect
-// (an element with display:block).
-//
-// Options can be set programmatically:
-//
-//   $(element).layouthbox('option', 'scrollable', false)
-//   $(element).layoutvbox('option', 'scrollable', false)
-//
-// or via a data-layout-options attribute on the container:
-//
-//   <div data-layout="hbox" data-layout-options='{"hgap":5}'>
-//       <div>child 1</div>
-//       <div>child 2</div>
-//   </div>
-//
-//   <div data-layout="vbox" data-layout-options='{"vgap":5}'>
-//       <div>child 1</div>
-//       <div>child 2</div>
-//   </div>
-//
-// If you change any options after creating the widget, call
-// $(element).layout*box('refresh') to have them picked up.
-// However, note that it's currently not feasible to turn off scrolling
-// once it's on (as calling scrollview('destroy') doesn't remove the
-// scrollview custom mouse handlers).
-//
-// There is one major difference between the horizontal and
-// vertical box layouts: if scrollable=false, the horizontal layout
-// will clip children which overflow the edge of the parent container;
-// by comparison, the vertical container will grow vertically to
-// accommodate the height of its children. This mirrors the behaviour
-// of jQuery Mobile, where elements only ever expand horizontally
-// to fill the width of the window; but will expand vertically forever,
-// unless the page height is artificially constrained.
-//
-// Options:
-//
-//   {Integer} hgap (default=0)
-//   Horizontal gap (in pixels) between the child elements. Only has
-//   an effect on hbox.
-//
-//   {Integer} vgap (default=0)
-//   Vertical gap (in pixels) between the child elements. Only has
-//   an effect on vbox.
-//
-//   {Boolean} scrollable (default=true; can only be set at create time)
-//   Set to true to enable a scrollview on the
-//   container. If false, children will be clipped if
-//   they fall outside the edges of the container after
-//   layouting.
-//
-//   {Boolean} showScrollBars (default=true)
-//   Set to false to hide scrollbars on the container's scrollview.
-//   Has no effect is scrollable=false
-
-(function ( $, undefined ) {
-
-       // hbox
-       $.widget( "tizen.layouthbox", $.tizen.jlayoutadaptor, {
-               fixed: {
-                       type: 'flexGrid',
-                       rows: 1,
-                       direction: 'x',
-                       initSelector: ':jqmData(layout="hbox")'
-               },
-
-               _create: function () {
-                       if ( !this.options.hgap ) {
-                               this.options.hgap = 0;
-                       }
-
-                       $.tizen.jlayoutadaptor.prototype._create.apply( this, arguments );
-               }
-       } );
-
-       $( document ).bind( "pagecreate", function ( e ) {
-               $( $.tizen.layouthbox.prototype.fixed.initSelector, e.target )
-                       .not( ":jqmData(role='none'), :jqmData(role='nojs')" )
-                       .layouthbox();
-       } );
-
-       // vbox
-       $.widget( "tizen.layoutvbox", $.tizen.jlayoutadaptor, {
-               fixed: {
-                       type: 'flexGrid',
-                       columns: 1,
-                       direction: 'y',
-                       initSelector: ':jqmData(layout="vbox")'
-               },
-
-               _create: function () {
-                       if ( !this.options.vgap ) {
-                               this.options.vgap = 0;
-                       }
-
-                       $.tizen.jlayoutadaptor.prototype._create.apply( this, arguments );
-               }
-       } );
-
-       $( document ).bind( "pagecreate", function ( e ) {
-               $( $.tizen.layoutvbox.prototype.fixed.initSelector, e.target )
-                       .not( ":jqmData(role='none'), :jqmData(role='nojs')" )
-                       .layoutvbox();
-       } );
-
-}( jQuery ) );
index 940e29e..ff6c5ef 100755 (executable)
@@ -18,7 +18,7 @@
                                style = $listdivider.attr( "data-style" );
 
                        if ( style === "expandable" || style === "checkexpandable" ) {
-                               openStatus ? iconStatus = "opened" : iconStatus = "closed";
+                               iconStatus = openStatus ? "opened" : "closed";
                                expandSrc = "<span class='ui-divider-expand-div'><span class='ui-icon-expandable-divider-" + iconStatus + "'/></span>";
 
                                $( expandSrc ).appendTo( $listdivider );
diff --git a/src/widgets/listviewcontrols/js/listviewcontrols.js b/src/widgets/listviewcontrols/js/listviewcontrols.js
deleted file mode 100755 (executable)
index 97e1680..0000000
+++ /dev/null
@@ -1,303 +0,0 @@
-/*
- * jQuery Mobile Widget @VERSION - listview controls
- *
- * This software is licensed under the MIT licence (as defined by the OSI at
- * http://www.opensource.org/licenses/mit-license.php)
- * 
- * ***************************************************************************
- * Copyright (C) 2011 by Intel Corporation Ltd.
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- * ***************************************************************************
- *
- * Authors: Elliot Smith <elliot.smith@intel.com>
- */
-
-// This extension supplies API to toggle the "mode" in which a list
-// is displayed. The modes available is configurable, but defaults
-// to ['edit', 'view']. A list can also have a control panel associated
-// with it. The visibility of the control panel is governed by the current
-// mode (by default, it is visible in 'edit' mode); elements within
-// the listview can also be marked up to be visible in one or more of the
-// available modes.
-//
-// One example use case would be a control panel with a "Select all" checkbox
-// which, when clicked, selects all of the checkboxes in the associated
-// listview items.
-//
-// The control panel itself should be defined as a form element.
-// By default, the control panel will be hidden when the listview is
-// initialised, unless you supply mode="edit" as a
-// data-listview-controls option (when using the default modes). If you
-// want the control panel to be visible in some mode other than
-// the default, use a data-listviewcontrols-show-in="<mode>" attribute
-// on the control panel element.
-//
-// Example usage (using the default 'edit' and 'view' modes):
-//
-// <!-- this is the controls element, displayed in 'edit' mode by default -->
-// <form id="listviewcontrols-control-panel">
-//   <fieldset data-role="controlgroup">
-//     <input type="checkbox" id="listviewcontrols-demo-checkbox-uber" />
-//     <label for="listviewcontrols-demo-checkbox-uber">Select all</label>
-//   </fieldset>
-// </form>
-//
-// <!-- this is the list associated with the controls -->
-// <ul data-role="listview" data-listviewcontrols="#listviewcontrols-control-panel">
-//
-//   <li>
-//
-//     <!-- this element is only visible in 'edit' mode -->
-//     <fieldset data-role="controlgroup" data-listviewcontrols-show-in="edit">
-//       <input type="checkbox" id="listviewcontrols-demo-checkbox-1" />
-//       <label for="listviewcontrols-demo-checkbox-1">Greg</label>
-//     </fieldset>
-//
-//     <!-- this element is only visible in 'view' mode -->
-//     <span data-listviewcontrols-show-in="view">Greg</span>
-//
-//   </li>
-//
-//   ... more li elements marked up the same way ...
-//
-// </ul>
-//
-// To associate the listview with the control panel, add
-// data-listviewcontrols="..selector.." to a listview, where
-// selector selects a single element (the control panel
-// you defined). You can then call
-// listviewcontrols('option', 'mode', '<mode>') on the
-// listview to set the mode.
-//
-// Inside the listview's items, add controls to each item
-// which are only visible when in one of the modes. To do this,
-// add form elements (e.g. checkboxes) to the items as you see fit. Then,
-// mark each form element with data-listviewcontrols-show-in="<mode>".
-// The control's visibility now depends on the mode of the listviewcontrols:
-// it is only shown when its <mode> setting matches the current mode
-// of the listviewcontrols widget. You are responsible for properly
-// styling the form elements inside the listview so the listview looks
-// correct when they are hidden or visible.
-//
-// The control panel (by default, visible when in "show" mode) is flexible
-// and can contain any valid form elements (or other jqm components). It's
-// up to you to define the behaviour associated with interactions on
-// the control panel and/or controls inside list items.
-//
-// Methods:
-//
-//   visibleListItems
-//     Returns a jQuery object containing all the li elements in the
-//     listview which are currently visible and not dividers. (This
-//     is just a convenience to make operating on the list as a whole
-//     slightly simpler.)
-//
-// Options (set in options hash passed to constructor, or via the
-// option method, or declaratively by attribute described below):
-//
-//   controlPanelSelector {String}
-//     Selector string for selecting the element representing the
-//     control panel for the listview. The context for find() is the
-//     document (to give the most flexibility), so your selector
-//     should be specific. Set declaratively with
-//       data-listviewcontrols="...selector...".
-//
-//   modesAvailable {String[]; default=['edit', 'view']}
-//     An array of the modes available for these controls.
-//
-//   mode {String; default='view'}
-//     Current mode for the widget, which governs the visibility
-//     of the listview control panel and any elements marked
-//     with data-listviewcontrols-show-in="<mode>".
-//     Set declaratively with
-//       data-listviewcontrols-options='{"mode":"<mode>"}'.
-//
-//   controlPanelShowIn {String; default=modesAvailable[0]}
-//     The mode in which the control panel is visible; defaults to the
-//     first element of modesAvailable. Can be set declaratively
-//     on the listview controls element with
-//       data-listviewcontrols-show-in="<mode>"
-
-(function ($) {
-
-       $.widget( "todons.listviewcontrols", $.mobile.widget, {
-               _defaults: {
-                       controlPanelSelector: null,
-                       modesAvailable: ['edit', 'view'],
-                       mode: 'view',
-                       controlPanelShowIn: null
-               },
-
-               _listviewCssClass: 'ui-listviewcontrols-listview',
-               _controlsCssClass: 'ui-listviewcontrols-panel',
-
-               _create: function () {
-                       var self = this,
-                               o = this.options,
-                               optionsValid = true,
-                               page = this.element.closest( '.ui-page' ),
-                               controlPanelSelectorAttr = 'data-' + $.mobile.ns + 'listviewcontrols',
-                               controlPanelSelector = this.element.attr( controlPanelSelectorAttr ),
-                               dataOptions = this.element.jqmData( 'listviewcontrols-options' ),
-                               controlPanelShowInAttr;
-
-                       o.controlPanelSelector = o.controlPanelSelector || controlPanelSelector;
-
-                       // precedence for options: defaults < jqmData attribute < options arg
-                       o = $.extend( {}, this._defaults, dataOptions, o );
-
-                       optionsValid = ( this._validOption( 'modesAvailable', o.modesAvailable, o ) &&
-                                       this._validOption( 'controlPanelSelector', o.controlPanelSelector, o ) &&
-                                       this._validOption( 'mode', o.mode, o ) );
-
-                       if ( !optionsValid ) {
-                               return false;
-                       }
-
-                       // get the controls element
-                       this.controlPanel = $( document ).find( o.controlPanelSelector ).first();
-
-                       if ( this.controlPanel.length === 0 ) {
-                               return false;
-                       }
-
-                       // once we have the controls element, we may need to override the
-                       // mode in which controls are shown
-                       controlPanelShowInAttr = this.controlPanel.jqmData( 'listviewcontrols-show-in' );
-                       if ( controlPanelShowInAttr ) {
-                               o.controlPanelShowIn = controlPanelShowInAttr;
-                       } else if ( !o.controlPanelShowIn ) {
-                               o.controlPanelShowIn = o.modesAvailable[0];
-                       }
-
-                       if ( !this._validOption( 'controlPanelShowIn', o.controlPanelShowIn, o ) ) {
-                               return;
-                       }
-
-                       // done setting options
-                       this.options = o;
-
-                       // mark the controls and the list with a class
-                       this.element.removeClass(this._listviewCssClass).addClass(this._listviewCssClass);
-                       this.controlPanel.removeClass(this._controlsCssClass).addClass(this._controlsCssClass);
-
-                       // show the widget
-                       if ( page && !page.is( ':visible' ) ) {
-                               page.bind( 'pageshow', function () { self.refresh(); } );
-                       } else {
-                               this.refresh();
-                       }
-               },
-
-               _validOption: function ( varName, value, otherOptions ) {
-                       var ok = false,
-                               i = 0;
-
-                       if ( varName === 'mode' ) {
-                               ok = ( $.inArray( value, otherOptions.modesAvailable ) >= 0 );
-                       } else if ( varName === 'controlPanelSelector' ) {
-                               ok = ( $.type( value ) === 'string' );
-                       } else if ( varName === 'modesAvailable' ) {
-                               ok = ( $.isArray( value ) && value.length > 1 );
-
-                               if ( ok ) {
-                                       for ( i = 0; i < value.length; i++ ) {
-                                               if ( value[i] === '' || $.type( value[i] ) !== 'string' ) {
-                                                       ok = false;
-                                               }
-                                       }
-                               }
-                       } else if ( varName === 'controlPanelShowIn' ) {
-                               ok = ( $.inArray( value, otherOptions.modesAvailable ) >= 0 );
-                       }
-
-                       return ok;
-               },
-
-               _setOption: function ( varName, value ) {
-                       var oldValue = this.options[varName];
-
-                       if ( oldValue !== value && this._validOption( varName, value, this.options ) ) {
-                               this.options[varName] = value;
-                               this.refresh();
-                       }
-               },
-
-               visibleListItems: function () {
-                       return this.element.find( 'li:not(:jqmData(role=list-divider)):visible' );
-               },
-
-               refresh: function () {
-                       var self = this,
-                               triggerUpdateLayout = false,
-                               isVisible = null,
-                               showIn,
-                               modalElements;
-
-                       // hide/show the control panel and hide/show controls inside
-                       // list items based on their "show-in" option
-                       isVisible = this.controlPanel.is( ':visible' );
-
-                       if ( this.options.mode === this.options.controlPanelShowIn ) {
-                               this.controlPanel.show();
-                       } else {
-                               this.controlPanel.hide();
-                       }
-
-                       if ( this.controlPanel.is( ':visible' ) !== isVisible ) {
-                               triggerUpdateLayout = true;
-                       }
-
-                       // we only operate on elements inside list items which aren't dividers
-                       modalElements = this.element
-                                                               .find( 'li:not(:jqmData(role=list-divider))' )
-                                                               .find( ':jqmData(listviewcontrols-show-in)' );
-
-                       modalElements.each(function () {
-                               showIn = $( this ).jqmData( 'listviewcontrols-show-in' );
-
-                               isVisible = $( this ).is( ':visible' );
-
-                               if ( showIn === self.options.mode ) {
-                                       $( this ).show();
-                               } else {
-                                       $( this ).hide();
-                               }
-
-                               if ( $( this ).is( ':visible' ) !== isVisible ) {
-                                       triggerUpdateLayout = true;
-                               }
-                       } );
-
-                       if ( triggerUpdateLayout ) {
-                               this.element.trigger( 'updatelayout' );
-                       }
-               }
-       } );
-
-       $( 'ul' ).live( 'listviewcreate', function () {
-               var list = $(this);
-
-               if ( list.is( ':jqmData(listviewcontrols)' ) ) {
-                       list.listviewcontrols();
-               }
-       } );
-
-}( jQuery ) );
index 202f5ac..37323d9 100755 (executable)
@@ -21,6 +21,7 @@
  * ***************************************************************************
  *
  *     Author: Kangsik Kim <kangsik81.kim@samsung.com>
+ *                             Minkyeong Kim <minkyeong.kim@samsung.com>
 */
 
 /**
                        $view.append( inputbox );
 
                        // create a anchor tag.
-                       if ( option.listId === null ||  $.trim(option.listId).length < 1  ) {
+                       if ( option.listId === null || $.trim(option.listId).length < 1  ) {
                                className += "-dim";
                        }
-                       $( moreBlock ).text( "+" ).attr( "href",  $.trim(option.listId)).addClass( "ui-multibuttonentry-link-base" ).addClass( className );
+                       $( moreBlock ).text( "+" ).attr( "href", $.trim(option.listId) ).addClass( "ui-multibuttonentry-link-base" ).addClass( className );
 
                        // append default htmlelements to main widget.
                        $view.append( moreBlock );
                                moreBlock = $view.find( ".ui-multibuttonentry-link-base" ),
                                isSeparator = false;
 
+                       // delegate a event to HTMLDivElement(each block).
+                       $view.delegate( "div", "vclick", function ( event ) {
+                               if ( $( this ).hasClass( "ui-multibuttonentry-sblock" ) ) {
+                                       // If block is selected, it will be removed.
+                                       self._removeTextBlock();
+                               }
+
+                               var lockBlock = $view.find( "div.ui-multibuttonentry-sblock" );
+                               if ( typeof lockBlock !== "undefined" ) {
+                                       lockBlock.removeClass( "ui-multibuttonentry-sblock" ).addClass( "ui-multibuttonentry-block" );
+                               }
+                               $( this ).removeClass( "ui-multibuttonentry-block" ).addClass( "ui-multibuttonentry-sblock" );
+                               self._trigger( "select" );
+                       });
+
                        inputbox.bind( "keyup", function ( event ) {
                                // 8  : backspace
                                // 13 : Enter
                                        transition: "slide",
                                        reverse: false,
                                        changeHash: false
-                               } );
-                       } );
+                               });
+                       });
 
                        $( document ).bind( "pagechange.mbe", function ( event ) {
                                if ( $view.innerWidth() === 0 ) {
                                return;
                        }
 
-                       if ( ! messages ) {
+                       if ( !messages ) {
                                return ;
                        }
 
                                content = messages,
                                index = blockIndex,
                                blocks = null,
-                               dataBlock = null,
-                               displayText = null,
                                textBlock = null;
 
                        if ( self._viewWidth === 0 ) {
                                self._viewWidth = $view.innerWidth();
                        }
 
-                       // save src data
-                       dataBlock = $( document.createElement( 'input' ) );
-                       dataBlock.attr( "value", content ).addClass( "ui-multibuttonentry-data" ).hide();
-
                        // Create a new text HTMLDivElement.
                        textBlock = $( document.createElement( 'div' ) );
-                       displayText = self._ellipsisTextBlock( content ) ;
-                       textBlock.text( displayText ).addClass( "ui-multibuttonentry-block" );
-                       textBlock.append( dataBlock );
 
-                       // bind a event to HTMLDivElement.
-                       textBlock.bind( "vclick", function ( event ) {
-                               if ( $( this ).hasClass( "ui-multibuttonentry-sblock" ) ) {
-                                       // If block is selected, it will be removed.
-                                       self._removeTextBlock();
-                               }
-
-                               var lockBlock = $view.find( "div.ui-multibuttonentry-sblock" );
-                               if ( typeof lockBlock != "undefined" ) {
-                                       lockBlock.removeClass( "ui-multibuttonentry-sblock" ).addClass( "ui-multibuttonentry-block" );
-                               }
-                               $( this ).removeClass( "ui-multibuttonentry-block" ).addClass( "ui-multibuttonentry-sblock" );
-                               self._trigger( "select" );
-                       });
+                       textBlock.text( content ).addClass( "ui-multibuttonentry-block" );
+                       textBlock.css( {'visibility': 'hidden'} );
 
                        blocks = $view.find( "div" );
                        if ( index !== null && index <= blocks.length ) {
                                $view.find( ".ui-multibuttonentry-input" ).before( textBlock );
                        }
 
+                       textBlock = self._ellipsisTextBlock( textBlock );
+                       textBlock.css( {'visibility': 'visible'} );
+
                        self._currentWidth += self._calcBlockWidth( textBlock );
                        self._modifyInputBoxWidth();
                        self._trigger( "add" );
                _removeTextBlock : function () {
                        var self = this,
                                $view = this.element,
-                               targetBlock = null,
                                lockBlock = $view.find( "div.ui-multibuttonentry-sblock" );
 
                        if ( lockBlock !== null && lockBlock.length > 0 ) {
                },
 
                _calcBlockWidth : function ( block ) {
-                       var blockWidth = 0;
-                       blockWidth = $( block ).outerWidth( true );
-                       return blockWidth;
+                       return $( block ).outerWidth( true );
                },
 
                _unlockTextBlock : function () {
                        var $view = this.element,
                                lockBlock = $view.find( "div.ui-multibuttonentry-sblock" );
-                       if ( lockBlock !== null ) {
+                       if ( !lockBlock ) {
                                lockBlock.removeClass( "ui-multibuttonentry-sblock" ).addClass( "ui-multibuttonentry-block" );
                        }
                },
                        }
                },
 
-               _ellipsisTextBlock : function ( text ) {
+               _ellipsisTextBlock : function ( textBlock ) {
                        var self = this,
-                               str = text,
-                               length = 0,
-                               maxWidth = self._viewWidth,
-                               maxCharCnt = parseInt( ( self._viewWidth / self._fontSize ), 10 ) - 5,
-                               ellipsisStr = null;
-                       if ( str ) {
-                               length = str.length ;
-                               if ( length > maxCharCnt ) {
-                                       ellipsisStr = str.substring( 0, maxCharCnt );
-                                       ellipsisStr += "...";
-                               } else {
-                                       ellipsisStr = str;
-                               }
+                               $view = self.element,
+                               maxWidth = $view.innerWidth() - ( self._labelWidth + self._anchorWidth ) * 2;
+
+                       if ( self._calcBlockWidth( textBlock ) > maxWidth ) {
+                               $( textBlock ).width( maxWidth - self._marginWidth );
                        }
-                       return ellipsisStr;
+
+                       return textBlock;
                },
 
                _modifyInputBoxWidth : function () {
                        var self = this,
                                $view = self.element,
+                               margin = self._marginWidth,
                                labelWidth = self._labelWidth,
                                anchorWidth = self._anchorWidth,
-                               inputBoxWidth = self._viewWidth - labelWidth - anchorWidth,
+                               inputBoxWidth = self._viewWidth - labelWidth,
                                blocks = $view.find( "div" ),
                                blockWidth = 0,
                                index = 0,
-                               margin = self._marginWidth,
                                inputBox = $view.find( ".ui-multibuttonentry-input" );
 
                        if ( $view.width() === 0 ) {
 
                        for ( index = 0; index < blocks.length; index += 1 ) {
                                blockWidth = self._calcBlockWidth( blocks[index] );
-                               inputBoxWidth = inputBoxWidth - blockWidth;
-                               if ( inputBoxWidth <= 0 ) {
-                                       if ( inputBoxWidth + anchorWidth >= 0 ) {
-                                               inputBoxWidth = self._viewWidth - anchorWidth;
+
+                               if ( blockWidth >= inputBoxWidth + anchorWidth ) {
+                                       if ( blockWidth >= inputBoxWidth ) {
+                                               inputBoxWidth = self._viewWidth - blockWidth;
                                        } else {
-                                               inputBoxWidth = self._viewWidth - blockWidth - anchorWidth;
+                                               inputBoxWidth = self._viewWidth ;
+                                       }
+                               } else {
+                                       if ( blockWidth >= inputBoxWidth ) {
+                                               inputBoxWidth = self._viewWidth - blockWidth;
+                                       } else {
+                                               inputBoxWidth -= blockWidth;
                                        }
                                }
                        }
-                       $( inputBox ).width( inputBoxWidth - margin - 1 );
+
+                       inputBoxWidth -= margin;
+                       if ( inputBoxWidth < anchorWidth * 2 ) {
+                               inputBoxWidth = self._viewWidth - margin;
+                       }
+                       $( inputBox ).width( inputBoxWidth - anchorWidth );
                },
 
                _stringFormat : function ( expression ) {
                        return message;
                },
 
-               _resizeBlock : function () {
+               _resizeBlocks : function () {
                        var self = this,
                                $view = self.element,
-                               dataBlocks = $( ".ui-multibuttonentry-data" ),
                                blocks = $view.find( "div" ),
-                               srcTexts = [],
                                index = 0;
 
-                       $view.hide();
-                       for ( index = 0 ; index < dataBlocks.length ; index += 1 ) {
-                               srcTexts[index] = $( dataBlocks[index] ).val();
-                               self._addTextBlock( srcTexts[index] );
+                       for ( index = 0 ; index < blocks.length ; index += 1 ) {
+                               $( blocks[index] ).css( "width", "auto" );
+                               blocks[index] = self._ellipsisTextBlock( blocks[index] );
                        }
-                       blocks.remove();
-                       $view.show();
                },
 
                //---------------------------------------------------- //
 
                        if ( arguments.length === 0 ) {
                                // return a selected block.
-                               lockBlock = $view.find( "div.ui-multibuttonentry-sblock" ).children( ".ui-multibuttonentry-data" );
+                               lockBlock = $view.find( "div.ui-multibuttonentry-sblock" );
                                if ( lockBlock) {
-                                       return lockBlock.attr( "value" );
+                                       return lockBlock.text();
                                }
                                return null;
                        }
                },
 
                refresh : function () {
-                       var self = this;
-                       self.element.hide();
-                       self.element.show();
+                       var self = this,
+                               $view = this.element;
+
+                       self._viewWidth = $view.innerWidth();
+                       self._resizeBlocks();
+                       self._modifyInputBoxWidth();
                },
 
                destroy : function () {
                        var $view = this.element;
 
                        $view.find( "label" ).remove();
-                       $view.find( "div" ).unbind( "vclick" ).remove();
+                       $view.find( "div" ).undelegate( "vclick" ).remove();
                        $view.find( "a" ).remove();
                        $view.find( ".ui-multibuttonentry-input" ).unbind( "keyup" ).remove();
 
index 613d9d4..28db3a4 100644 (file)
 
                _set_position: function () {
                        var container = this._get_container(),
-                               container_h = parseFloat( container.height() ),
-                               $page = $('.ui-page'),
-                               $footer = $page.children('.ui-footer'),
-                               footer_h = $footer.outerHeight() || 0,
-                               position = $( window ).height() - container_h - footer_h;
+                               $footer = $('.ui-page-active').children('.ui-footer'),
+                               footer_h = $footer.outerHeight() || 0;
 
-                       container.css( 'top', position );
+                       container.css( 'bottom', footer_h);
                },
 
                _create: function () {
index dd1fb27..9e3bb3c 100755 (executable)
                                        if ( !o.visibleOnPageShow ) {
                                                self.hide( true );
                                        }
-                                       self._IMEShown = false;
+/* IME concenpt change after alpha2.0 */
+/*                                     self._IMEShown = false;*/
                                        self.setHeaderFooter( event );
                                } )
                                .bind( "webkitAnimationStart animationstart updatelayout", function ( e, data ) {
                                        if ( o.updatePagePadding ) {
                                                $( window ).bind( "throttledresize." + self.widgetName, function () {
                                                        self.updatePagePadding();       // FIXME: unused function.
-                                                       self.layoutPageIME();   // IME/resize reposition
+/* IME concenpt change after alpha2.0 */
+/*                                                     self.layoutPageIME();*/
                                                        self.updatePageLayout();
                                                        self._updateHeaderArea();
                                                });
                },
 
                _visible: true,
-               _IMEShown : false,
+/* IME concenpt change after alpha2.0 */
+/*             _IMEShown : false,
                _IMEindicatorHeight : window.outerHeight - window.innerHeight,
 
                layoutPageIME: function () {
                                        || $(".ui-page-active .ui-header .input-search-bar").length
                                        || $(".ui-page-active .ui-content").find("input").length
                                        || $(".ui-page-active .ui-content").find("textarea").length) {
-                                       /* Check vertical and horizontal ratio.
-                                        * If focus on input and two values are different, IME is drawed. */
 
                                if ( ( window.innerHeight + this._IMEindicatorHeight ) < window.outerHeight && window.innerWidth == window.outerWidth ) {
                                        if ( this._IMEShown === false ) {
                                }
                        }
                },
-
+*/
                // This will set the content element's top or bottom padding equal to the toolbar's height
                updatePagePadding: function (data) {
                        var $el = this.element,
diff --git a/src/widgets/pagelist/css/pagelist.css b/src/widgets/pagelist/css/pagelist.css
deleted file mode 100644 (file)
index 4149d05..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-.ui-pagelist {
-    text-align: center;
-}
diff --git a/src/widgets/pagelist/js/jquery.mobile.tizen.pagelist.js b/src/widgets/pagelist/js/jquery.mobile.tizen.pagelist.js
deleted file mode 100755 (executable)
index dec184a..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- *
- * This software is licensed under the MIT licence (as defined by the OSI at
- * http://www.opensource.org/licenses/mit-license.php)
- *
- * ***************************************************************************
- * Copyright (c) 2011 by Intel Corporation Ltd.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- * ***************************************************************************
- */
-
-// pagelist widget
-//
-// Given an element, this widget collects all links contained in the descendants of the element and constructs
-// a popupwindow widget containing numbered buttons for each encountered link.
-//
-// You can mark any one element in your document with "data-pagelist='true'" and a pagelist will be created that
-// will allow the user to navigate between the pages linked to within the element.
-//
-// Currently, only one pagelist can exist in a document and, once created, it cannot be modified.
-
-(function ( $, undefined ) {
-
-       window.ensureNS( "jQuery.mobile.tizen" );
-
-       $.widget( "tizen.pagelist", $.tizen.widgetex, {
-               _htmlProto: {
-                       ui: {
-                               pageList: "#pagelist",
-                               button:   "#pagelist-button",
-                               rowBreak: "#pagelist-rowbreak"
-                       }
-               },
-               _create: function () {
-                       var self = this,
-                               popPageList = false,
-                               idx = 0;
-
-                       this._ui.button.remove();
-                       this._ui.rowBreak.remove();
-                       this._ui.pageList
-                               .appendTo( $( "body" ) )
-                               .popupwindow()
-                               .bind( "vclick", function ( e ) {
-                                       $( this ).popupwindow( "close" );
-                               } );
-
-                       this.element.find( "a[href]" ).each( function ( elemIdx, elem ) {
-                               if ( idx > 0 && ( ( idx % 10 ) != 0 ) ) {
-                                       self._ui.pageList.append( self._ui.rowBreak.clone() );
-                               }
-
-                               self._ui.button
-                                       .clone()
-                                       .attr( "href", $( elem ).attr( "href" ) )
-                                       .text( ++idx )
-                                       .appendTo( self._ui.pageList )
-                                       .buttonMarkup()
-                                       .bind( "vclick", function () { self._ui.pageList.popupwindow( "close" ); } )
-                                       .find( ".ui-btn-inner" )
-                                       .css( { padding: 2 } );
-                       } );
-
-                       $( document ).bind( "keydown", function ( e ) {
-                               popPageList = ( e.keyCode === $.mobile.keyCode.CONTROL );
-                       } );
-                       $( document ).bind( "keyup", function ( e ) {
-                               if ( e.keyCode === $.mobile.keyCode.CONTROL && popPageList ) {
-                                       var maxDim = { cx: 0, cy: 0 };
-                                       self._ui.pageList.popupwindow( "open", undefined, 0 );
-                                       self._ui.pageList.find( "a" )
-                                               .each( function () {
-                                                       var btn = $( this ),
-                                                               dim = {
-                                                                       cx: btn.outerWidth( true ),
-                                                                       cy: btn.outerHeight( true )
-                                                               };
-
-                                                       // Make sure things will be even later, because padding cannot have decimals - apparently :-S
-                                                       if ( dim.cx % 2 ) {
-                                                               btn.css( "padding-left", parseInt( btn.css( "padding-left" ), 10 ) + 1 );
-                                                       }
-                                                       if ( dim.cy % 2 ) {
-                                                               btn.css( "padding-bottom", parseInt( btn.css( "padding-bottom" ), 10 ) + 1 );
-                                                       }
-
-                                                       maxDim.cx = Math.max( maxDim.cx, dim.cx );
-                                                       maxDim.cy = Math.max( maxDim.cy, dim.cy );
-                                               } )
-                                               .each( function () {
-                                                       var padding = {
-                                                                       h: Math.max( 0, ( maxDim.cx - $( this ).outerWidth( true ) ) / 2 ),
-                                                                       v: Math.max( 0, ( maxDim.cy - $( this ).outerHeight( true ) ) / 2 )
-                                                               },
-                                                               btn = $( this ),
-                                                               inner = btn.find( ".ui-btn-inner" );
-
-                                                       inner.css( {
-                                                               "padding-left"          : parseInt( inner.css( "padding-left" ), 10 ) + padding.h,
-                                                               "padding-top"           : parseInt( inner.css( "padding-top" ), 10 ) + padding.v,
-                                                               "padding-right"         : parseInt( inner.css( "padding-right" ), 10 ) + padding.h,
-                                                               "padding-bottom"        : parseInt( inner.css( "padding-bottom" ), 10 ) + padding.v
-                                                       } );
-                                                       btn[( ( btn.attr( "href" ) === "#" + $.mobile.activePage.attr( "id" ) ) ? "addClass" : "removeClass" )]( "ui-btn-active" );
-                                               } );
-                                       e.stopPropagation();
-                                       e.preventDefault();
-                               }
-                               popPageList = false;
-                       } );
-               }
-       } );
-
-       // Look for an element marked as a pagelist and assign $.mobile.tizen.pagelist with a newly created pagelist.
-       // If $.mobile.tizen.pagelist is already assigned, ignore any new "data-pagelist='true'" designations.
-       $( document ).bind( "pagecreate create", function ( e ) {
-               $( ":jqmData(pagelist='true')", e.target )
-                       .not( ":jqmData(role='none'), :jqmData(role='nojs')" )
-                       .each( function () {
-                               if ( $.mobile.tizen.pagelist === undefined ) {
-                                       $.extend( $.mobile.tizen, {
-                                               pagelist: $( this ).pagelist()
-                                       } );
-                               }
-                               return false;
-                       } );
-       } );
-
-}( jQuery ) );
diff --git a/src/widgets/pagelist/proto-html/pagelist.prototype.html b/src/widgets/pagelist/proto-html/pagelist.prototype.html
deleted file mode 100644 (file)
index 024388d..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<div id="pagelist" class="ui-pagelist" data-role="popupwindow" data-shadow="false" data-overlayTheme="">
-    <a id="pagelist-button" data-role="button" data-inline="true"></a>
-    <br id="pagelist-rowbreak"></br>
-</div>
index 4558292..0018dbb 100644 (file)
@@ -94,9 +94,7 @@ define( [ "jquery",
                                this.element.trigger( "popupbeforeposition" );
                                this._ui.container
                                        .removeClass( "ui-selectmenu-hidden" )
-                                       .offset( this._placementCoords( this._desiredCoords( undefined, undefined, "window" ) ) )
-                                       .attr( "tabindex", "0" )
-                                       .focus();
+                                       .offset( this._placementCoords( this._desiredCoords( undefined, undefined, "window" ) ) );
 
                                this._resizeData = null;
                                this._orientationchangeInProgress = false;
@@ -477,7 +475,6 @@ define( [ "jquery",
                _openPrereqsComplete: function() {
                        this._ui.container.addClass( "ui-popup-active" );
                        this._isOpen = true;
-                       this._ui.container.attr( "tabindex", "0" ).focus();
                        this.element.trigger( "popupafteropen" );
                },
 
diff --git a/tests/unit-tests/gallery3d/gallery3d-tests.js b/tests/unit-tests/gallery3d/gallery3d-tests.js
new file mode 100755 (executable)
index 0000000..85d7314
--- /dev/null
@@ -0,0 +1,99 @@
+/*
+ * Unit Test: Gallery3d
+ *
+ * Wonseop Kim <wonseop.kim@samsung.com>
+ */
+
+(function ($) {
+       $.mobile.defaultTransition = "none";
+
+       module("Galley3d");
+
+       asyncTest( "create & select", function() {
+               var widget = $( "#galley3dTest1" ),
+                       imageList = [],
+                       path = widget.attr( "data-json-url" ),
+                       key = widget.attr( "data-json-key" ),
+                       elem = "ui-gallery3d";
+
+               $.ajax({
+                       async : false,
+                       url : path,
+                       dataType: "json",
+                       success : function ( result ) {
+                               imageList = result[key];
+                       }
+               });
+
+               /* Create */
+               widget.gallery3d();
+               ok( widget.hasClass( elem ), "Create" );
+
+               /* API */
+               widget.gallery3d( "select", 1 );
+               setTimeout( function () {
+                       equal( widget.gallery3d( "select" ), imageList[1].src, "API : select" );
+                       start();
+               }, 2400 );
+       });
+
+       asyncTest( "remove", function() {
+               var widget = $( "#galley3dTest2" ),
+                       imageList = [],
+                       path = widget.attr( "data-json-url" ),
+                       key = widget.attr( "data-json-key" ),
+                       currentSource;
+
+               $.ajax({
+                       async : false,
+                       url : path,
+                       dataType: "json",
+                       success : function ( result ) {
+                               imageList = result[key];
+                       }
+               });
+
+               widget.gallery3d();
+               currentSource = widget.gallery3d( "select" );
+
+               /* API */
+               widget.gallery3d( "remove" );
+               notEqual( widget.gallery3d( "select" ), currentSource, "API : remove" );
+               start();
+       });
+
+       asyncTest( "move", function() {
+               var widget = $( "#galley3dTest3" ),
+                       imageList = [],
+                       path = widget.attr( "data-json-url" ),
+                       key = widget.attr( "data-json-key" ),
+                       currentSource;
+
+               $.ajax({
+                       async : false,
+                       url : path,
+                       dataType: "json",
+                       success : function ( result ) {
+                               imageList = result[key];
+                       }
+               });
+
+               widget.gallery3d();
+               currentSource = widget.gallery3d( "select" );
+
+               /* API */
+               widget.gallery3d( "moveNext" );
+               setTimeout( function () {
+                       equal( widget.gallery3d( "select" ), imageList[1].src, "API : moveNext" );
+                       start();
+
+                       stop();
+                       widget.gallery3d( "movePrev" );
+                       setTimeout( function () {
+                               equal( widget.gallery3d( "select" ), imageList[0].src, "API : movePrev" );
+                               start();
+                       }, 300 );
+               }, 2400 );
+       });
+
+}( jQuery ));
diff --git a/tests/unit-tests/gallery3d/index.html b/tests/unit-tests/gallery3d/index.html
new file mode 100755 (executable)
index 0000000..7935a4b
--- /dev/null
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<html>
+<head>
+       <script src="../../../build/tizen-web-ui-fw/latest/js/jquery.js"></script>
+       <script src="../../../build/tizen-web-ui-fw/latest/js/tizen-web-ui-fw-libs.js"></script>
+       <script src="../../../build/tizen-web-ui-fw/latest/js/tizen-web-ui-fw.js"
+               data-framework-theme="tizen-gray"
+               data-framework-viewport-scale=false>
+       </script>
+
+       <link rel="stylesheet" href="../../../libs/js/jquery-mobile-1.1.0/external/qunit.css" />
+
+       <script src="../../../libs/js/jquery-mobile-1.1.0/external/qunit.js"></script>
+       <script src="gallery3d-tests.js"></script>
+
+       <title>Galley3d</title>
+</head>
+
+<body>
+
+<h1 id="qunit-header">Galley3d</h1>
+<h2 id="qunit-banner"></h2>
+<div id="qunit-testrunner-toolbar"></div>
+<h2 id="qunit-userAgent"></h2>
+<ol id="qunit-tests"></ol>
+
+<div id="qunit-fixture">
+
+       <div data-role="page">
+               <div data-role="header" data-position="fixed">
+                       <h1>Galley3d</h1>
+               </div>
+               <div data-role="content">
+                       <div id="galley3dTest1" data-role="galley3d" style="width: 100%;"
+                               data-json-url="../../../demos/tizen-gray/widgets/gallery3d/gallery3d-db.json"
+                               data-json-key="JSON_DATA" > </div>
+               </div>
+       </div>
+
+       <div data-role="page">
+               <div data-role="header" data-position="fixed">
+                       <h1>Galley3d</h1>
+               </div>
+               <div data-role="content">
+                       <div id="galley3dTest2" data-role="galley3d" style="width: 100%;"
+                               data-json-url="../../../demos/tizen-gray/widgets/gallery3d/gallery3d-db.json"
+                               data-json-key="JSON_DATA" > </div>
+               </div>
+       </div>
+
+       <div data-role="page">
+               <div data-role="header" data-position="fixed">
+                       <h1>Galley3d</h1>
+               </div>
+               <div data-role="content">
+                       <div id="galley3dTest3" data-role="galley3d" style="width: 100%;"
+                               data-json-url="../../../demos/tizen-gray/widgets/gallery3d/gallery3d-db.json"
+                               data-json-key="JSON_DATA" > </div>
+               </div>
+       </div>
+
+</div>
+
+</body>
+</html>
index e33f222..3af8705 100755 (executable)
@@ -2,10 +2,11 @@
  * Unit Test: multibuttonentry
  *
  * Kangsik Kim <kangsik81.kim@samsung.com>
+ * Minkyeong Kim <minkyeong.kim@samsung.com>
  */
 
-(function ($) {
-       module("Multibuttonentry");
+(function ( $ ) {
+       module( "Multibuttonentry" );
 
        var unit_multibuttonentry = function ( widget, type ) {
                var multibuttonentry,
 
                /* Create */
                multibuttonentry = widget.multibuttonentry();
-               ok(multibuttonentry.length > 0, "Create");
+               ok( multibuttonentry.length > 0, "Create" );
 
                /* length */
-               equal( multibuttonentry.multibuttonentry("length"), 0, "API : length ");
+               equal( multibuttonentry.multibuttonentry( "length" ), 0, "API : length" );
 
                /* Add */
-               multibuttonentry.multibuttonentry("add", "string1");
-               equal(multibuttonentry.multibuttonentry("length"), 1, "API: add('string1') ");
-               multibuttonentry.multibuttonentry("add", "string2");
-               equal(multibuttonentry.multibuttonentry("length"), 2, "API: add('string2') ");
-               multibuttonentry.multibuttonentry("add", "string3");
-               equal(multibuttonentry.multibuttonentry("length"), 3, "API: add('string3') ");
+               multibuttonentry.multibuttonentry( "add", "string1" );
+               equal( multibuttonentry.multibuttonentry( "length" ), 1, "API : add( 'string1' )" );
+               multibuttonentry.multibuttonentry( "add", "string2" );
+               equal( multibuttonentry.multibuttonentry( "length" ), 2, "API : add( 'string2' )" );
+               multibuttonentry.multibuttonentry( "add", "string3" );
+               equal( multibuttonentry.multibuttonentry( "length" ), 3, "API : add( 'string3' )" );
 
                /* Select */
-               multibuttonentry.multibuttonentry("select", 1);
-               outputText = multibuttonentry.multibuttonentry("select");
-               equal( outputText, "string2", "API : select ( 1 )");
+               multibuttonentry.multibuttonentry( "select", 1 );
+               outputText = multibuttonentry.multibuttonentry( "select" );
+               equal( outputText, "string2", "API : select( 1 )" );
 
                /* Focus Out */
-               multibuttonentry.multibuttonentry("focusOut");
-               status = multibuttonentry.hasClass("ui-multibuttonentry-focusout");
-               equal( status, true, "API : focusOut ");
+               multibuttonentry.multibuttonentry( "focusOut" );
+               status = multibuttonentry.hasClass( "ui-multibuttonentry-focusout" );
+               equal( status, true, "API : focusOut);
 
                /* Focus In */
-               multibuttonentry.multibuttonentry("focusIn");
-               status = multibuttonentry.hasClass("ui-multibuttonentry-focusin");
-               equal(status, true,  "API : focusIn ");
+               multibuttonentry.multibuttonentry( "focusIn" );
+               status = multibuttonentry.hasClass( "ui-multibuttonentry-focusin" );
+               equal( status, true,  "API : focusIn" );
 
                /* Remove */
-               multibuttonentry.multibuttonentry("remove", 0);
-               equal(multibuttonentry.multibuttonentry("length"), 2 , "API : remove(0)");
+               multibuttonentry.multibuttonentry( "remove", 0 );
+               equal( multibuttonentry.multibuttonentry( "length" ), 2 , "API : remove( 0 )" );
 
                /* Reamove all */
-               multibuttonentry.multibuttonentry("remove");
-               equal( multibuttonentry.multibuttonentry("length"), 0, "API : remove");
+               multibuttonentry.multibuttonentry( "remove" );
+               equal( multibuttonentry.multibuttonentry( "length" ), 0, "API : remove" );
 
                /* input */
                inputText = "multibuttonentry";
                multibuttonentry.multibuttonentry( "inputText", inputText );
                outputText = multibuttonentry.multibuttonentry( "inputText" );
-               equal(outputText, inputText, "API : input('" + outputText + "')");
+               equal( outputText, inputText, "API : input( '" + outputText + "' )" );
        };
 
        test( "Multibuttonentry", function () {
-               unit_multibuttonentry( $("#multibuttonetnry-test"), "multibuttonetnry" );
+               unit_multibuttonentry( $( "#multibuttonetnry-test" ), "multibuttonetnry" );
        });
 
 }( jQuery ));
diff --git a/web-ui-fw-theme-default.manifest b/web-ui-fw-theme-default.manifest
new file mode 100644 (file)
index 0000000..97e8c31
--- /dev/null
@@ -0,0 +1,5 @@
+<manifest>
+       <request>
+               <domain name="_"/>
+       </request>
+</manifest>
diff --git a/web-ui-fw-theme-tizen-black.manifest b/web-ui-fw-theme-tizen-black.manifest
new file mode 100644 (file)
index 0000000..97e8c31
--- /dev/null
@@ -0,0 +1,5 @@
+<manifest>
+       <request>
+               <domain name="_"/>
+       </request>
+</manifest>
diff --git a/web-ui-fw-theme-tizen-gray.manifest b/web-ui-fw-theme-tizen-gray.manifest
new file mode 100644 (file)
index 0000000..97e8c31
--- /dev/null
@@ -0,0 +1,5 @@
+<manifest>
+       <request>
+               <domain name="_"/>
+       </request>
+</manifest>
diff --git a/web-ui-fw-theme-tizen-white.manifest b/web-ui-fw-theme-tizen-white.manifest
new file mode 100644 (file)
index 0000000..97e8c31
--- /dev/null
@@ -0,0 +1,5 @@
+<manifest>
+       <request>
+               <domain name="_"/>
+       </request>
+</manifest>
diff --git a/web-ui-fw.manifest b/web-ui-fw.manifest
new file mode 100644 (file)
index 0000000..97e8c31
--- /dev/null
@@ -0,0 +1,5 @@
+<manifest>
+       <request>
+               <domain name="_"/>
+       </request>
+</manifest>