finished most of the controls, now time to do sorting and loading...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2012-06-07 02:54:13 +04:00
parent 7a30c347a2
commit 107f3e5b27

View File

@ -9,20 +9,29 @@ TODO:
touch zones / buttons touch zones / buttons
next DONE next DONE
prev DONE prev DONE
shift up ~ depends on image order/sorting shift up DONE
shift down ~ depends on image order/sorting shift down DONE
promote DONE promote DONE
demote DONE demote DONE
zoom in ~ need real zooming... zoom in ~ need real zooming...
zoom out ~ need real zooming... zoom out ~ need real zooming...
toggle single image DONE toggle single image DONE
- image sorting - image sorting
- will affect:
- promote
- demote
- shift up
- shift down
- ribbon merging
- add promote/demote events (to attach structure editors)... - add promote/demote events (to attach structure editors)...
- add real images... - add real images...
- make all the code relative to the current selection (multiple instances on a page support) - make all the code relative to the current selection (multiple instances on a page support)
- make this into a jquery plugin... - make this into a jquery plugin...
- add dynamic loading and unloading for very large sets... - add dynamic loading and unloading for very large sets...
- first stage refactoring:
- merge almost identical functions...
ISSUES: ISSUES:
- jumping... - jumping...
--> -->
@ -76,12 +85,14 @@ var keys = {
toggleRibbonView: [32], toggleRibbonView: [32],
closeKeys: [27, 88, 67], closeKeys: [27, 88, 67],
firstKeys: [36],
lastKeys: [35],
previousKeys: [37, 80], previousKeys: [37, 80],
nextKeys: [39, 78], nextKeys: [39, 78],
promoteKeys: [40], promoteKeys: [40],
demoteKeys: [38], demoteKeys: [38],
shiftKeys: [16], ignoreKeys: [16, 17, 18],
helpShowOnUnknownKey: true helpShowOnUnknownKey: true
} }
@ -89,11 +100,16 @@ var keys = {
function handleKeys(event){ function handleKeys(event){
var code = event.keyCode, fn = $.inArray; var code = event.keyCode, fn = $.inArray;
var _ = (fn(code, keys.closeKeys) >= 0) ? function(){}() var _ = (fn(code, keys.closeKeys) >= 0) ? function(){}()
: (fn(code, keys.firstKeys) >= 0) ? firstImage()
: (fn(code, keys.nextKeys) >= 0) ? nextImage() : (fn(code, keys.nextKeys) >= 0) ? nextImage()
: (fn(code, keys.previousKeys) >= 0) ? prevImage() : (fn(code, keys.previousKeys) >= 0) ? prevImage()
: (fn(code, keys.lastKeys) >= 0) ? lastImage()
: (fn(code, keys.promoteKeys) >= 0) ? function(){ : (fn(code, keys.promoteKeys) >= 0) ? function(){
if(event.shiftKey){ if(event.shiftKey){
focusBelowRibbon() focusBelowRibbon()
} else if(event.ctrlKey){
createRibbonBelow()
promoteImage()
} else { } else {
promoteImage() promoteImage()
} }
@ -101,12 +117,15 @@ function handleKeys(event){
: (fn(code, keys.demoteKeys) >= 0) ? function(){ : (fn(code, keys.demoteKeys) >= 0) ? function(){
if(event.shiftKey){ if(event.shiftKey){
focusAboveRibbon() focusAboveRibbon()
} else if(event.ctrlKey){
createRibbonAbove()
demoteImage()
} else { } else {
demoteImage() demoteImage()
} }
}() }()
: (fn(code, keys.toggleRibbonView) >= 0) ? toggleRibbonView() : (fn(code, keys.toggleRibbonView) >= 0) ? toggleRibbonView()
: (fn(code, keys.shiftKeys) >= 0) ? false : (fn(code, keys.ignoreKeys) >= 0) ? false
// XXX // XXX
: (keys.helpShowOnUnknownKey) ? function(){alert(code)}() : (keys.helpShowOnUnknownKey) ? function(){alert(code)}()
: false; : false;
@ -153,6 +172,10 @@ function toggleWideView(){
} }
// basic navigation... // basic navigation...
function firstImage(){
$('.current-ribbon').children('.image').first().click()
}
function prevImage(){ function prevImage(){
$('.current-image') $('.current-image')
.prev('.image') .prev('.image')
@ -165,14 +188,18 @@ function nextImage(){
.click() .click()
} }
// XXX focus to above ribbon... function lastImage(){
function focusAboveRibbon(){ $('.current-ribbon').children('.image').last().click()
alert('not implemmented...')
} }
// XXX focus to below ribbon... // XXX select appropriate image...
function focusAboveRibbon(){
$('.current-ribbon').prev('.ribbon').children('.image').first().click()
}
// XXX select appropriate image...
function focusBelowRibbon(){ function focusBelowRibbon(){
alert('not implemmented...') $('.current-ribbon').next('.ribbon').children('.image').first().click()
} }
@ -195,6 +222,8 @@ function createRibbonBelow(){
.removeClass('new-ribbon') .removeClass('new-ribbon')
} }
// Modifiers...
// XXX sort elements correctly... // XXX sort elements correctly...
function mergeRibbonsUp(){ function mergeRibbonsUp(){
$('.current-ribbon') $('.current-ribbon')
@ -225,7 +254,6 @@ function mergeRibbonsDown(){
}) })
} }
// promote...
// XXX sort elements correctly... // XXX sort elements correctly...
// XXX do animations... // XXX do animations...
function promoteImage(){ function promoteImage(){
@ -250,7 +278,6 @@ function promoteImage(){
$('.current-image').click() $('.current-image').click()
} }
// demote...
// XXX sort elements correctly... // XXX sort elements correctly...
// XXX do animations... // XXX do animations...
function demoteImage(){ function demoteImage(){
@ -324,7 +351,7 @@ function demoteImage(){
.ribbon { .ribbon {
height: 360px; height: 360px;
/* XXX make this expand dynamically */ /* XXX make this expand dynamically */
width: 8000px; width: 10000px;
overflow: visible; overflow: visible;
padding-top: 2px; padding-top: 2px;
padding-bottom: 2px; padding-bottom: 2px;
@ -446,8 +473,10 @@ function demoteImage(){
</div> </div>
</div> </div>
<button onclick="firstImage()">first (home)</button>
<button onclick="prevImage()">prev (left)</button> <button onclick="prevImage()">prev (left)</button>
<button onclick="nextImage()">next (right)</button> <button onclick="nextImage()">next (right)</button>
<button onclick="lastImage()">last (end)</button>
<br><br> <br><br>
@ -472,7 +501,8 @@ function demoteImage(){
<br><br> <br><br>
<button onclick="demoteImage()">demote image (up)</button><br> <button onclick="demoteImage()">demote image (up)</button><br>
<button onclick="promoteImage()">promote image (down)</button> <button onclick="promoteImage()">promote image (down)</button><br>
NOTE: ctrl-up / ctrl-down will demote / promote an image to a new empty ribbon (default if no ribbon exists)
<br><br> <br><br>