more refactoring and cleanup...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2012-08-19 20:32:37 +04:00
parent e19816da67
commit d29b2bb1c9
2 changed files with 77 additions and 90 deletions

View File

@ -264,7 +264,7 @@ ImageGrid.GROUP('State',
'NOTE: null represents the default style.', 'NOTE: null represents the default style.',
callback: function(){ callback: function(){
if(ImageGrid.toggleSingleImageMode('?') == 'off'){ if(ImageGrid.toggleSingleImageMode('?') == 'off'){
setBackgroundMode(ImageGrid.option.NORMAL_MODE_BG) ImageGrid.setBackgroundMode(ImageGrid.option.NORMAL_MODE_BG)
} }
} }
}), }),
@ -277,7 +277,7 @@ ImageGrid.GROUP('State',
'NOTE: null represents the default style.', 'NOTE: null represents the default style.',
callback: function(){ callback: function(){
if(ImageGrid.toggleSingleImageMode('?') == 'on'){ if(ImageGrid.toggleSingleImageMode('?') == 'on'){
setBackgroundMode(ImageGrid.option.SINGLE_IMAGE_MODE_BG) ImageGrid.setBackgroundMode(ImageGrid.option.SINGLE_IMAGE_MODE_BG)
} }
} }
}), }),
@ -375,6 +375,8 @@ function showInOverlay(obj){
// Return a scale value for the given element(s).
// NOTE: this will only return a single scale value...
function getElementScale(elem){ function getElementScale(elem){
//var transform = elem.css('transform') //var transform = elem.css('transform')
var vendors = ['o', 'moz', 'ms', 'webkit'] var vendors = ['o', 'moz', 'ms', 'webkit']
@ -1006,66 +1008,68 @@ function makeKeyboardHandler(keybindings, unhandled){
/************************************************ Mode & UI Actions **/ /************************************************ Mode & UI Actions **/
function getBackgroundMode(){
var mode = null
var BACKGROUND_MODES = ImageGrid.option.BACKGROUND_MODES
// find a mode to set...
for(var i = 0; i < BACKGROUND_MODES.length; i++){
// we found our mode...
if( $('.' + BACKGROUND_MODES[i]).length > 0 ){
return BACKGROUND_MODES[i]
}
}
return mode
}
// set the background mode
// NOTE: passing null will set the default.
function setBackgroundMode(mode){
var BACKGROUND_MODES = ImageGrid.option.BACKGROUND_MODES
var cur = BACKGROUND_MODES.indexOf(mode)
// invalid mode...
if( cur == -1 && mode != null ){
return null
}
// set the mode...
if(mode != null){
$('.viewer').addClass(mode)
}
// remove all others...
for(var i = 0; i < BACKGROUND_MODES.length; i++){
if( i == cur ){
continue
}
mode = BACKGROUND_MODES[i]
$('.' + mode).removeClass(mode)
}
}
// this will toggle through background theems: none -> dark -> black
function toggleBackgroundModes(){
var BACKGROUND_MODES = ImageGrid.option.BACKGROUND_MODES
var mode = getBackgroundMode()
// default -> first
if(mode == null){
setBackgroundMode(BACKGROUND_MODES[0])
// last -> default...
} else if(mode == BACKGROUND_MODES[BACKGROUND_MODES.length-1]){
setBackgroundMode()
// next...
} else {
setBackgroundMode(BACKGROUND_MODES[BACKGROUND_MODES.indexOf(mode)+1])
}
}
ImageGrid.GROUP('Mode: All', ImageGrid.GROUP('Mode: All',
ImageGrid.ACTION({
title: 'Get the background mode',
},
function getBackgroundMode(){
var mode = null
var BACKGROUND_MODES = ImageGrid.option.BACKGROUND_MODES
// find a mode to set...
for(var i = 0; i < BACKGROUND_MODES.length; i++){
// we found our mode...
if( $('.' + BACKGROUND_MODES[i]).length > 0 ){
return BACKGROUND_MODES[i]
}
}
return mode
}),
ImageGrid.ACTION({
title: 'Set the background mode',
doc: 'NOTE: passing null will set the default.'
},
function setBackgroundMode(mode){
var BACKGROUND_MODES = ImageGrid.option.BACKGROUND_MODES
var cur = BACKGROUND_MODES.indexOf(mode)
// invalid mode...
if( cur == -1 && mode != null ){
return null
}
// set the mode...
if(mode != null){
$('.viewer').addClass(mode)
}
// remove all others...
for(var i = 0; i < BACKGROUND_MODES.length; i++){
if( i == cur ){
continue
}
mode = BACKGROUND_MODES[i]
$('.' + mode).removeClass(mode)
}
}),
ImageGrid.ACTION({
title: 'Toggle background modes',
doc: 'Toggle through background theems: none -> dark -> black\n\n'+
'NOTE: modes are toggled independently for single image and '+
'rinbon modes',
},
function toggleBackgroundModes(){
var BACKGROUND_MODES = ImageGrid.option.BACKGROUND_MODES
var mode = ImageGrid.getBackgroundMode()
// default -> first
if(mode == null){
ImageGrid.setBackgroundMode(BACKGROUND_MODES[0])
// last -> default...
} else if(mode == BACKGROUND_MODES[BACKGROUND_MODES.length-1]){
ImageGrid.setBackgroundMode()
// next...
} else {
ImageGrid.setBackgroundMode(BACKGROUND_MODES[BACKGROUND_MODES.indexOf(mode)+1])
}
}),
ImageGrid.ACTION({ ImageGrid.ACTION({
id: 'toggleControls', id: 'toggleControls',
title: 'Keyboard-oriented interface', title: 'Keyboard-oriented interface',
@ -1081,6 +1085,11 @@ ImageGrid.GROUP('Mode: All',
}, },
createCSSClassToggler('.viewer', 'transitions-enabled')), createCSSClassToggler('.viewer', 'transitions-enabled')),
ImageGrid.ACTION({
title: 'Close overlay'
},
function closeOverlay(){ $('.overlay').click() }),
// XXX use order and priority of options... // XXX use order and priority of options...
// XXX make history work for this... // XXX make history work for this...
// XXX should this be a toggle?? // XXX should this be a toggle??
@ -1145,12 +1154,7 @@ ImageGrid.GROUP('Mode: All',
return false return false
}) })
showInOverlay(opts_container) showInOverlay(opts_container)
}), }))
ImageGrid.ACTION({
title: 'Close overlay'
},
function closeOverlay(){ $('.overlay').click() }))
@ -1166,21 +1170,21 @@ ImageGrid.GROUP('Mode: Single Image',
// pre... // pre...
function(action){ function(action){
if(action == 'on'){ if(action == 'on'){
ImageGrid.option.NORMAL_MODE_BG = getBackgroundMode() ImageGrid.option.NORMAL_MODE_BG = ImageGrid.getBackgroundMode()
ImageGrid.option.ORIGINAL_FIELD_SCALE = getElementScale($('.field')) ImageGrid.option.ORIGINAL_FIELD_SCALE = getElementScale($('.field'))
// do this only when coming out of single image mode... // do this only when coming out of single image mode...
} else if(ImageGrid.toggleSingleImageMode('?') == 'on'){ } else if(ImageGrid.toggleSingleImageMode('?') == 'on'){
ImageGrid.option.SINGLE_IMAGE_MODE_BG = getBackgroundMode() ImageGrid.option.SINGLE_IMAGE_MODE_BG = ImageGrid.getBackgroundMode()
} }
}, },
// post... // post...
function(action){ function(action){
if(action == 'on'){ if(action == 'on'){
ImageGrid.fitImage() ImageGrid.fitImage()
setBackgroundMode(ImageGrid.option.SINGLE_IMAGE_MODE_BG) ImageGrid.setBackgroundMode(ImageGrid.option.SINGLE_IMAGE_MODE_BG)
} else { } else {
ImageGrid.setContainerScale(ImageGrid.option.ORIGINAL_FIELD_SCALE) ImageGrid.setContainerScale(ImageGrid.option.ORIGINAL_FIELD_SCALE)
setBackgroundMode(ImageGrid.option.NORMAL_MODE_BG) ImageGrid.setBackgroundMode(ImageGrid.option.NORMAL_MODE_BG)
} }
clickAfterTransitionsDone() clickAfterTransitionsDone()
})), })),
@ -1410,22 +1414,7 @@ ImageGrid.GROUP('Navigation',
/********************************************************** Zooming **/ /********************************************************** Zooming **/
ImageGrid.GROUP('Zooming', ImageGrid.GROUP('Zooming',
// XXX is this an action or a helper???
ImageGrid.ACTION({
title: 'Get element scale',
doc: 'Return a scale value for the given element(s).\n\n'+
'NOTE: this will only return a single scale value...',
},
getElementScale),
ImageGrid.ACTION({
title: 'Set element scale',
doc: 'Set the scale value for the given element(s).'
},
setElementScale),
ImageGrid.ACTION({ ImageGrid.ACTION({
title: 'Scale container by factor', title: 'Scale container by factor',
}, },
@ -1444,7 +1433,6 @@ ImageGrid.GROUP('Zooming',
function scaleContainerDown(){ function scaleContainerDown(){
return ImageGrid.scaleContainerBy(1/ImageGrid.option.ZOOM_FACTOR) return ImageGrid.scaleContainerBy(1/ImageGrid.option.ZOOM_FACTOR)
}), }),
ImageGrid.ACTION({ ImageGrid.ACTION({
title: 'Set container scale', title: 'Set container scale',
}, },
@ -1468,7 +1456,6 @@ ImageGrid.GROUP('Zooming',
ImageGrid.setContainerScale(f) ImageGrid.setContainerScale(f)
}), }),
// the fit N image pack, for 1 <= N <= 9 // the fit N image pack, for 1 <= N <= 9
ImageGrid.ACTION({ title: 'Fit single image' }, function fitImage(){ImageGrid.fitNImages(1)}), ImageGrid.ACTION({ title: 'Fit single image' }, function fitImage(){ImageGrid.fitNImages(1)}),
ImageGrid.ACTION({ title: 'Fit two images' }, function fitTwoImages(){ImageGrid.fitNImages(2)}), ImageGrid.ACTION({ title: 'Fit two images' }, function fitTwoImages(){ImageGrid.fitNImages(2)}),

View File

@ -9,11 +9,11 @@ var keybindings = {
84: ImageGrid.toggleSingleImageModeTransitions, // t 84: ImageGrid.toggleSingleImageModeTransitions, // t
65: ImageGrid.toggleTransitions, // a 65: ImageGrid.toggleTransitions, // a
9: ImageGrid.toggleControls, // tab 9: ImageGrid.toggleControls, // tab
66: toggleBackgroundModes, // b 66: ImageGrid.toggleBackgroundModes, // b
77: toggleMarkers, // m 77: toggleMarkers, // m
27: ImageGrid.closeOverlay(), // Esc 27: ImageGrid.closeOverlay, // Esc
// zooming... // zooming...
187: ImageGrid.scaleContainerUp, // + 187: ImageGrid.scaleContainerUp, // +