some minor refactoring...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2013-02-19 20:08:05 +04:00
parent 025aafc177
commit 24272ae701

View File

@ -5,7 +5,7 @@
**********************************************************************/ **********************************************************************/
//var NAVIGATE_RELATIVE_TO_VISIBLE = false //var NAVIGATE_RELATIVE_TO_VISIBLE = false
var NAVIGATE_RELATIVE_TO_VISIBLE = true //var NAVIGATE_RELATIVE_TO_VISIBLE = true
var USE_PAGE_ALIGN = true var USE_PAGE_ALIGN = true
@ -78,6 +78,8 @@ var togglePageView = createCSSClassToggler(
/************************************************** event handlers ***/ /************************************************** event handlers ***/
// XXX make this more universal...
// XXX should we use a callback or an event???
function makeScrollHandler(root, callback){ function makeScrollHandler(root, callback){
// local data... // local data...
@ -113,6 +115,7 @@ function makeScrollHandler(root, callback){
return false return false
} }
// XXX add limits to this... // XXX add limits to this...
// XXX slow down drag when at limit...
// XXX try and make this adaptive to stay ahead of the lags... // XXX try and make this adaptive to stay ahead of the lags...
function moveHandler(evt){ function moveHandler(evt){
evt.preventDefault() evt.preventDefault()
@ -185,6 +188,9 @@ function makeScrollHandler(root, callback){
} }
return this return this
}, },
setCallback: function(func){
this.callback = func
},
// NOTE: this is updated live but not used by the system in any way... // NOTE: this is updated live but not used by the system in any way...
state: 'stopped' state: 'stopped'
} }
@ -195,6 +201,13 @@ function makeScrollHandler(root, callback){
/********************************************************* helpers ***/ /********************************************************* helpers ***/
// XXX make this more acurate...
// ...should check mode or if we are in a ribbon...
function isNavigationViewRelative(){
return getMagazineScale() < 1
}
// XXX there is something here that depends on scale that is either not // XXX there is something here that depends on scale that is either not
// compensated, or is over compensated... // compensated, or is over compensated...
function getMagazineOffset(page, scale, align){ function getMagazineOffset(page, scale, align){
@ -231,22 +244,23 @@ function getMagazineOffset(page, scale, align){
// XXX make this work for narrow and left/right alligned pages... // XXX make this work for narrow and left/right alligned pages...
function getPageNumber(page){ function getPageNumber(page){
// a page is given... // a page is given explicitly, get the next one...
if(page != null){ if(page != null){
return $('.page').index($(page)) return $('.page').index($(page))
} }
// get the next page... // get the next page relative to the current...
if(!NAVIGATE_RELATIVE_TO_VISIBLE){ //if(!NAVIGATE_RELATIVE_TO_VISIBLE){
if(!isNavigationViewRelative()){
return $('.page').index($('.current.page')) return $('.page').index($('.current.page'))
// get the closest page to view... // get the closest page to view center...
// NOTE: this ignores page aligns and only gets the page who's center
// is closer to view's center
} else { } else {
// XXX this gets crazy when magazine is scaled... var scale = getMagazineScale()
//var s = $('.viewer').scrollLeft()
var o = -$($('.magazine')[0]).offset().left - $('.viewer').offset().left var o = -$($('.magazine')[0]).offset().left - $('.viewer').offset().left
var W = $('.viewer').width() var W = $('.viewer').width()
var scale = getMagazineScale()
var cur = -1 var cur = -1
var res = $('.page').map(function(i, e){ var res = $('.page').map(function(i, e){
e = $(e) e = $(e)
@ -267,9 +281,15 @@ function setMagazineScale(scale){
var mag = $('.magazine') var mag = $('.magazine')
var cur = $('.current.page') var cur = $('.current.page')
var left = getMagazineOffset(cur, scale, 'center') // XXX make this check more unversal...
// center-align ribbon view pages...
var align = scale < 1 ? 'center' : null
var left = getMagazineOffset(cur, scale, align)
setElementTransform(mag, left, scale) setElementTransform(mag, left, scale)
return mag
} }
@ -291,7 +311,11 @@ function setCurrentPage(n){
var cur = $('.current.page') var cur = $('.current.page')
var left = getMagazineOffset(cur) // XXX make this check more unversal...
// center-align pages in ribbon view...
var align = scale < 1 ? 'center' : null
var left = getMagazineOffset(cur, null, align)
setElementTransform($('.magazine'), left, scale) setElementTransform($('.magazine'), left, scale)