mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-10-29 02:10:08 +00:00
added experimental code features, still thinking about them...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
c0725e6218
commit
af56ac8e98
@ -53,7 +53,7 @@ function setup(){
|
||||
setDefaultInitialState()
|
||||
|
||||
// XXX
|
||||
toggleSingleImageMode('off')
|
||||
ImageGrid.toggleSingleImageMode('off')
|
||||
enableTransitions()
|
||||
|
||||
// setup event handlers...
|
||||
|
||||
@ -1,13 +1,60 @@
|
||||
/******************************************* Actions (EXPERIMENTAL) **/
|
||||
// XXX this set of features is experimental...
|
||||
//
|
||||
// the main questions are:
|
||||
// - is this overcomplicating things?
|
||||
// - are the benefits worth it?
|
||||
// - namespace cleanup
|
||||
// - auto-generated help
|
||||
|
||||
var ImageGrid = {
|
||||
option: {}
|
||||
}
|
||||
|
||||
// create an action...
|
||||
// the two values that are obligatory are:
|
||||
// name - name of the action
|
||||
// call - callable
|
||||
// XXX revise...
|
||||
function ACTION(obj){
|
||||
var call = obj.call
|
||||
// add all the attrs to the function...
|
||||
for(i in obj){
|
||||
call[i] = obj[i]
|
||||
}
|
||||
ImageGrid[obj.title] = call
|
||||
return call
|
||||
}
|
||||
|
||||
function OPTION(obj){
|
||||
obj.valueOf = function(){return this.value}
|
||||
ImageGrid.option[obj.name] = obj
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/******************************************* Setup Data and Globals **/
|
||||
|
||||
var DEBUG = true
|
||||
|
||||
// the list of style modes...
|
||||
// these are swithched through in order by toggleBackgroundModes()
|
||||
/*
|
||||
var BACKGROUND_MODES = [
|
||||
'dark',
|
||||
'black'
|
||||
]
|
||||
*/
|
||||
// XXX is this worth it??
|
||||
OPTION({
|
||||
name: 'BACKGROUND_MODES',
|
||||
doc: 'list of available background styles.',
|
||||
value: [
|
||||
'dark',
|
||||
'black'
|
||||
]
|
||||
})
|
||||
|
||||
|
||||
// remember the default backgrounds for modes...
|
||||
@ -35,7 +82,7 @@ var MOVE_DELTA = 50
|
||||
|
||||
|
||||
|
||||
/********************************************************** Helpers **/
|
||||
/************************************************ jQuery extensions **/
|
||||
|
||||
|
||||
jQuery.fn.reverseChildren = function(){
|
||||
@ -45,6 +92,7 @@ jQuery.fn.reverseChildren = function(){
|
||||
}
|
||||
|
||||
|
||||
|
||||
jQuery.fn.sortChildren = function(func){
|
||||
return $(this).each(function(_, e){
|
||||
return $(e).append($(e).children().detach().get().sort(func))
|
||||
@ -53,6 +101,9 @@ jQuery.fn.sortChildren = function(func){
|
||||
|
||||
|
||||
|
||||
|
||||
/********************************************************** Helpers **/
|
||||
|
||||
function getImageOrder(img){
|
||||
// XXX HACK need to parseInt this because '13' is less than '2'...
|
||||
// ...figure a way out of this!!!
|
||||
@ -71,7 +122,6 @@ function cmpImageOrder(a, b){
|
||||
|
||||
|
||||
|
||||
|
||||
// this will create a function that will add/remove a css_class to elem
|
||||
// calling the optional callbacks before and/or after.
|
||||
//
|
||||
@ -297,8 +347,8 @@ function setupControlElements(){
|
||||
$('.screen-button.promote').click(shiftImageDown)
|
||||
$('.screen-button.zoom-in').click(function(){scaleContainerBy(ZOOM_FACTOR)})
|
||||
$('.screen-button.zoom-out').click(function(){scaleContainerBy(1/ZOOM_FACTOR)})
|
||||
$('.screen-button.toggle-wide').click(toggleWideView)
|
||||
$('.screen-button.toggle-single').click(toggleSingleImageMode)
|
||||
$('.screen-button.toggle-wide').click(ImageGrid.toggleWideView)
|
||||
$('.screen-button.toggle-single').click(ImageGrid.toggleSingleImageMode)
|
||||
$('.screen-button.fit-three').click(fitThreeImages)
|
||||
$('.screen-button.show-controls').click(showControls)
|
||||
$('.screen-button.settings').click(function(){alert('not implemented yet...')})
|
||||
@ -645,14 +695,20 @@ function makeKeyboardHandler(keybindings, unhandled){
|
||||
|
||||
/************************************************************ Modes **/
|
||||
|
||||
var toggleSingleImageMode = createCSSClassToggler('.viewer', 'single-image-mode',
|
||||
// XXX is this worth it??
|
||||
ACTION({
|
||||
title: 'toggleSingleImageMode',
|
||||
doc: 'Toggle single image mode.',
|
||||
group: 'Modes',
|
||||
type: 'toggle',
|
||||
call: createCSSClassToggler('.viewer', 'single-image-mode',
|
||||
// pre...
|
||||
function(action){
|
||||
if(action == 'on'){
|
||||
NORMAL_MODE_BG = getBackgroundMode()
|
||||
ORIGINAL_FIELD_SCALE = getElementScale($('.field'))
|
||||
// do this only when coming out of single image mode...
|
||||
} else if(toggleSingleImageMode('?') == 'on'){
|
||||
} else if(ImageGrid.toggleSingleImageMode('?') == 'on'){
|
||||
SINGLE_IMAGE_MODE_BG = getBackgroundMode()
|
||||
}
|
||||
},
|
||||
@ -667,10 +723,16 @@ var toggleSingleImageMode = createCSSClassToggler('.viewer', 'single-image-mode'
|
||||
}
|
||||
clickAfterTransitionsDone()
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
// wide view mode toggle...
|
||||
var toggleWideView = createCSSClassToggler('.viewer', 'wide-view-mode',
|
||||
// XXX is this worth it??
|
||||
ACTION({
|
||||
title: 'toggleWideView',
|
||||
doc: 'Toggle wide view mode.',
|
||||
group: 'Modes',
|
||||
type: 'toggle',
|
||||
call: createCSSClassToggler('.viewer', 'wide-view-mode',
|
||||
// pre...
|
||||
function(action){
|
||||
if(action == 'on'){
|
||||
@ -682,11 +744,17 @@ var toggleWideView = createCSSClassToggler('.viewer', 'wide-view-mode',
|
||||
},
|
||||
// post...
|
||||
function(){})
|
||||
})
|
||||
|
||||
|
||||
|
||||
var toggleSingleRibbonMode = createCSSClassToggler('.viewer', 'single-ribbon-mode')
|
||||
|
||||
// XXX is this worth it??
|
||||
ACTION({
|
||||
title: 'toggleSingleRibbonMode',
|
||||
doc: 'Show/hide other ribbons.',
|
||||
group: 'Modes',
|
||||
type: 'toggle',
|
||||
call: createCSSClassToggler('.viewer', 'single-ribbon-mode')
|
||||
})
|
||||
|
||||
|
||||
// XXX this can be done in two ways:
|
||||
@ -696,12 +764,20 @@ var toggleSingleRibbonMode = createCSSClassToggler('.viewer', 'single-ribbon-mod
|
||||
// - will complicate reversing ribbons allot
|
||||
// - add/remove these images on demand
|
||||
// + a tad complicated...
|
||||
var toggleDisplayShiftedUpImages = createCSSClassToggler('.viewer', 'show-shifted-up-images')
|
||||
// XXX is this worth it??
|
||||
ACTION({
|
||||
title: 'toggleDisplayShiftedUpImages',
|
||||
doc: 'Toggle display of shifted images.',
|
||||
group: 'Modes',
|
||||
type: 'toggle',
|
||||
call: createCSSClassToggler('.viewer', 'show-shifted-up-images')
|
||||
})
|
||||
|
||||
|
||||
|
||||
function getBackgroundMode(){
|
||||
var mode = null
|
||||
var BACKGROUND_MODES = ImageGrid.option.BACKGROUND_MODES.valueOf()
|
||||
// find a mode to set...
|
||||
for(var i = 0; i < BACKGROUND_MODES.length; i++){
|
||||
// we found our mode...
|
||||
@ -717,6 +793,7 @@ function getBackgroundMode(){
|
||||
// set the background mode
|
||||
// NOTE: passing null will set the default.
|
||||
function setBackgroundMode(mode){
|
||||
var BACKGROUND_MODES = ImageGrid.option.BACKGROUND_MODES.valueOf()
|
||||
var cur = BACKGROUND_MODES.indexOf(mode)
|
||||
|
||||
// invalid mode...
|
||||
@ -741,6 +818,7 @@ function setBackgroundMode(mode){
|
||||
|
||||
// this will toggle through background theems: none -> dark -> black
|
||||
function toggleBackgroundModes(){
|
||||
var BACKGROUND_MODES = ImageGrid.option.BACKGROUND_MODES.valueOf()
|
||||
var mode = getBackgroundMode()
|
||||
// default -> first
|
||||
if(mode == null){
|
||||
|
||||
@ -50,7 +50,7 @@ function setup(){
|
||||
|
||||
// XXX
|
||||
// this will set the defaults...
|
||||
toggleSingleImageMode('off')
|
||||
ImageGrid.toggleSingleImageMode('off')
|
||||
enableTransitions()
|
||||
|
||||
// setup event handlers...
|
||||
@ -171,7 +171,7 @@ $(document).ready(setup);
|
||||
|
||||
<br><br>
|
||||
|
||||
<button onclick="toggleWideView()">toggle wide view</button>
|
||||
<button onclick="ImageGrid.toggleWideView()">toggle wide view</button>
|
||||
|
||||
<br><br>
|
||||
|
||||
|
||||
@ -3,8 +3,8 @@
|
||||
var keybindings = {
|
||||
// togglable modes and options...
|
||||
//191: toggleHelp, // ?
|
||||
70: toggleSingleImageMode, // f
|
||||
83: toggleSingleRibbonMode, // s
|
||||
70: ImageGrid.toggleSingleImageMode, // f
|
||||
83: ImageGrid.toggleSingleRibbonMode, // s
|
||||
13: 70, // Enter
|
||||
84: toggleSingleImageModeTransitions, // t
|
||||
65: toggleTransitions, // a
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user