mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-10-28 18:00:09 +00:00
124 lines
2.9 KiB
JavaScript
Executable File
124 lines
2.9 KiB
JavaScript
Executable File
/**********************************************************************
|
|
*
|
|
*
|
|
*
|
|
**********************************************************************/
|
|
|
|
//var DEBUG = DEBUG != null ? DEBUG : true
|
|
|
|
var PANEL_ROOT = '.viewer'
|
|
|
|
|
|
/*********************************************************************/
|
|
// XXX these are a bit too general...
|
|
// ...the editor needs to speak in terms of the editor only...
|
|
// right now the editor mode depends on presence of panels and not
|
|
// the editor itself...
|
|
|
|
function _setupPanel(panel){
|
|
return panel
|
|
.on('panelClosing', function(){
|
|
if($('.sub-panel').length <= 1){
|
|
// XXX when not only the editor is using the panels, this
|
|
// is not the correct way to go...
|
|
toggleEditor('off')
|
|
}
|
|
})
|
|
.on('newPanel', function(evt, panel){
|
|
_setupPanel(panel)
|
|
})
|
|
// make clicks on unfocusable elements remove focus...
|
|
.click(function(){
|
|
if(event.target != $('.panel :focus')[0]){
|
|
$('.panel :focus').blur()
|
|
}
|
|
})
|
|
}
|
|
|
|
|
|
var toggleEditor = createCSSClassToggler(
|
|
'.viewer',
|
|
'.editor-visible',
|
|
function(action){
|
|
// XXX when not only the editor is using the panels, this
|
|
// is not the correct way to go...
|
|
var ed = $('.panel, .side-panel')
|
|
|
|
if(action == 'on'){
|
|
// create the editor if this is first init...
|
|
if(ed.length == 0){
|
|
$('.viewer')
|
|
.append(makeSidePanel('left'))
|
|
.append(makeSidePanel('right'))
|
|
.append(_setupPanel(openGroupedPanels([
|
|
'Edit: Filters',
|
|
'Edit: Snapshots'
|
|
]))
|
|
//.draggable('option', 'snap', '.viewer')
|
|
.css({
|
|
// prevent the editor from moving under
|
|
// the title bar, that will prevent us from
|
|
// ever moving it away or closing it...
|
|
'margin-top': '20px',
|
|
top: '50px',
|
|
left: '5px',
|
|
}))
|
|
// XXX add handlers for saving data to images...
|
|
// XXX
|
|
// show the editor...
|
|
} else {
|
|
ed.show()
|
|
}
|
|
|
|
// update the state...
|
|
reloadControls('.current.image')
|
|
|
|
// hide...
|
|
} else {
|
|
ed.remove()
|
|
}
|
|
})
|
|
|
|
|
|
|
|
/**********************************************************************
|
|
* Dialogs...
|
|
*/
|
|
|
|
function panelListDialog(){
|
|
updateStatus('Open panel...').show()
|
|
|
|
cfg = {}
|
|
// XXX indicate open panels...
|
|
cfg['Open panel'] = Object.keys(PANELS).map(function(e){
|
|
if(getPanel(e).length > 0){
|
|
return e + ' (open)'
|
|
}
|
|
return e
|
|
})
|
|
|
|
formDialog(null, '',
|
|
cfg,
|
|
'OK',
|
|
'panelListDialog')
|
|
.done(function(res){
|
|
|
|
var panel = res['Open panel'].split(' (open)')[0]
|
|
|
|
// toggle panel visibility on...
|
|
// XXX
|
|
|
|
openPanel(panel)
|
|
|
|
showStatusQ('Opening panel: '+panel+'...')
|
|
})
|
|
.fail(function(){
|
|
showStatusQ('Opening panel: canceled.')
|
|
})
|
|
}
|
|
|
|
|
|
|
|
/**********************************************************************
|
|
* vim:set ts=4 sw=4 : */
|