mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-11-02 20:30:09 +00:00
added double click action on images, some refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
0648729562
commit
fca8ecb604
@ -860,7 +860,8 @@ function setupEvents(){
|
|||||||
|
|
||||||
function setupControlElements(){
|
function setupControlElements(){
|
||||||
// images...
|
// images...
|
||||||
$(".image").mousedown(handleImageClick)
|
// NOTE: when the images are loaded, the actual handlers will be set by the loader...
|
||||||
|
setupImageEventHandlers($(".image"))
|
||||||
|
|
||||||
// buttons...
|
// buttons...
|
||||||
$('.screen-button.next-image').mousedown(ImageGrid.nextImage)
|
$('.screen-button.next-image').mousedown(ImageGrid.nextImage)
|
||||||
@ -883,6 +884,30 @@ function setupControlElements(){
|
|||||||
/**************************************************** Serialization **/
|
/**************************************************** Serialization **/
|
||||||
|
|
||||||
|
|
||||||
|
// setup image event handlers...
|
||||||
|
function setupImageEventHandlers(image){
|
||||||
|
return (image
|
||||||
|
.click(handleImageClick)
|
||||||
|
.dblclick(function(e){
|
||||||
|
$(this).click()
|
||||||
|
ImageGrid.toggleSingleImageMode()
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// build an image element...
|
||||||
|
function makeImage(url, order, set_order){
|
||||||
|
if(set_order == null){
|
||||||
|
set_order = setImageOrder
|
||||||
|
}
|
||||||
|
return (setupImageEventHandlers(
|
||||||
|
set_order($('<div class="image"></div>')
|
||||||
|
.css({ 'background-image': 'url('+url+')' }), order)))
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function loadImages(json){
|
function loadImages(json){
|
||||||
var images = json.images
|
var images = json.images
|
||||||
var ribbon = $('.ribbon').last()
|
var ribbon = $('.ribbon').last()
|
||||||
@ -890,10 +915,8 @@ function loadImages(json){
|
|||||||
$('.image').remove()
|
$('.image').remove()
|
||||||
|
|
||||||
for(var i = 0; i < images.length; i++){
|
for(var i = 0; i < images.length; i++){
|
||||||
setImageOrder($('<div class="image"></div>')
|
makeImage(images[i], i)
|
||||||
.css({ 'background-image': 'url('+images[i]+')' }), i)
|
.appendTo(ribbon)
|
||||||
.click(handleImageClick)
|
|
||||||
.appendTo(ribbon)
|
|
||||||
}
|
}
|
||||||
ribbon.children().first().click()
|
ribbon.children().first().click()
|
||||||
}
|
}
|
||||||
@ -960,10 +983,8 @@ function loadJSON(data, set_order){
|
|||||||
for(var j in images){
|
for(var j in images){
|
||||||
var image = $(images[j])
|
var image = $(images[j])
|
||||||
// create image...
|
// create image...
|
||||||
set_order($('<div class="image"></div>')
|
makeImage(image.attr('url'), j, set_order)
|
||||||
.css({ 'background-image': 'url('+image.attr('url')+')' }), j)
|
.appendTo(ribbon)
|
||||||
.click(handleImageClick)
|
|
||||||
.appendTo(ribbon)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$('.image').first().click()
|
$('.image').first().click()
|
||||||
@ -1114,19 +1135,26 @@ ImageGrid.GROUP('Mode: All',
|
|||||||
doc: 'Toggle through background theems: none -> dark -> black\n\n'+
|
doc: 'Toggle through background theems: none -> dark -> black\n\n'+
|
||||||
'NOTE: modes are toggled independently for single image and '+
|
'NOTE: modes are toggled independently for single image and '+
|
||||||
'rinbon modes',
|
'rinbon modes',
|
||||||
|
type: 'toggle',
|
||||||
},
|
},
|
||||||
function toggleBackgroundModes(){
|
function toggleBackgroundModes(action){
|
||||||
var BACKGROUND_MODES = ImageGrid.option.BACKGROUND_MODES
|
if(action == '?'){
|
||||||
var mode = ImageGrid.getBackgroundMode()
|
return ImageGrid.getBackgroundMode()
|
||||||
// default -> first
|
} else if(action != null){
|
||||||
if(mode == null){
|
return ImageGrid.setBackgroundMode(action)
|
||||||
ImageGrid.setBackgroundMode(BACKGROUND_MODES[0])
|
|
||||||
// last -> default...
|
|
||||||
} else if(mode == BACKGROUND_MODES[BACKGROUND_MODES.length-1]){
|
|
||||||
ImageGrid.setBackgroundMode()
|
|
||||||
// next...
|
|
||||||
} else {
|
} else {
|
||||||
ImageGrid.setBackgroundMode(BACKGROUND_MODES[BACKGROUND_MODES.indexOf(mode)+1])
|
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])
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
|
|
||||||
@ -1143,13 +1171,15 @@ ImageGrid.GROUP('Mode: All',
|
|||||||
doc: 'Toggle global transitions.',
|
doc: 'Toggle global transitions.',
|
||||||
type: 'toggle',
|
type: 'toggle',
|
||||||
},
|
},
|
||||||
createCSSClassToggler('.viewer', 'transitions-enabled')),
|
createCSSClassToggler('.viewer', 'transitions-enabled')))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ImageGrid.GROUP('Configuration and Help',
|
||||||
ImageGrid.ACTION({
|
ImageGrid.ACTION({
|
||||||
title: 'Close overlay'
|
title: 'Close overlay'
|
||||||
},
|
},
|
||||||
function closeOverlay(){ $('.overlay').click() }),
|
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??
|
||||||
@ -1159,7 +1189,10 @@ ImageGrid.GROUP('Mode: All',
|
|||||||
},
|
},
|
||||||
function showSetup(){
|
function showSetup(){
|
||||||
showOptionsUI(ImageGrid.option_props,
|
showOptionsUI(ImageGrid.option_props,
|
||||||
function(e){return ImageGrid.option[e.name]},
|
function(e){
|
||||||
|
// XXX need to update a value here...
|
||||||
|
return ImageGrid.option[e.name]
|
||||||
|
},
|
||||||
function(e){return e.click_handler})
|
function(e){return e.click_handler})
|
||||||
}),
|
}),
|
||||||
ImageGrid.ACTION({
|
ImageGrid.ACTION({
|
||||||
|
|||||||
@ -7,8 +7,8 @@ var keybindings = {
|
|||||||
'ctrl': ImageGrid.showSetup, // ctrl+?
|
'ctrl': ImageGrid.showSetup, // ctrl+?
|
||||||
},
|
},
|
||||||
70: ImageGrid.toggleSingleImageMode, // f
|
70: ImageGrid.toggleSingleImageMode, // f
|
||||||
83: ImageGrid.toggleSingleRibbonMode, // s
|
|
||||||
13: 70, // Enter
|
13: 70, // Enter
|
||||||
|
83: ImageGrid.toggleSingleRibbonMode, // s
|
||||||
84: ImageGrid.toggleSingleImageModeTransitions, // t
|
84: ImageGrid.toggleSingleImageModeTransitions, // t
|
||||||
65: ImageGrid.toggleTransitions, // a
|
65: ImageGrid.toggleTransitions, // a
|
||||||
9: ImageGrid.toggleControls, // tab
|
9: ImageGrid.toggleControls, // tab
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user